blob: ed8522a46f93683e74f41fe60584c38087ac0e95 [file] [log] [blame]
Brian Silvermanf92396c2013-09-12 20:13:13 -07001#include "digital.h"
2
Brian Silvermanf92396c2013-09-12 20:13:13 -07003inline int readGPIO_inline(int major, int minor) {
4 switch (major) {
5 case 0:
6 return readGPIO(GPIO0, minor);
7 case 1:
8 return readGPIO(GPIO1, minor);
9 case 2:
10 return readGPIO(GPIO2, minor);
11 default:
12 return -1;
13 }
14}
15
Brian Silvermanf92396c2013-09-12 20:13:13 -070016int dip_switch(int channel) {
17 switch (channel) {
18 case 0:
19 return readGPIO(GPIO1, 29);
20 case 1:
21 return readGPIO(GPIO2, 13);
22 case 2:
23 return readGPIO(GPIO0, 11);
24 case 3:
25 return readGPIO(GPIO0, 10);
26 default:
27 return -1;
28 }
29}
30
31int is_bot3;
32void digital_init(void) {
Daniel Petti03f58112013-11-09 16:35:55 +000033 if (dip_switch(1) || dip_switch(2) || dip_switch(3) || dip_switch(4)) {
Daniel Petti53b11092013-11-02 05:53:16 +000034 is_bot3 = 1;
35 } else {
36 is_bot3 = 0;
37 }
Brian Silvermanf92396c2013-09-12 20:13:13 -070038}