altos: Make serial, usb, beeper and accelerometer optional components
[fw/altos] / src / ao_pins.h
1 /*
2  * Copyright © 2010 Keith Packard <keithp@keithp.com>
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; version 2 of the License.
7  *
8  * This program is distributed in the hope that it will be useful, but
9  * WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11  * General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License along
14  * with this program; if not, write to the Free Software Foundation, Inc.,
15  * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
16  */
17
18 #ifndef _AO_PINS_H_
19 #define _AO_PINS_H_
20
21 #if defined(TELEMETRUM_V_1_0)
22         #define HAS_USB                 1
23         #define HAS_BEEP                1
24         #define HAS_GPS                 1
25         #define HAS_SERIAL_1            1
26         #define HAS_ADC                 1
27         #define HAS_EEPROM              1
28         #define HAS_DBG                 1
29         #define DBG_ON_P1               1
30         #define DBG_ON_P0               0
31         #define PACKET_HAS_MASTER       0
32         #define PACKET_HAS_SLAVE        1
33
34         #define AO_LED_RED              1
35         #define LEDS_AVAILABLE          (AO_LED_RED)
36         #define HAS_EXTERNAL_TEMP       0
37         #define HAS_ACCEL_REF           0
38         #define HAS_ACCEL               1
39 #endif
40
41 #if defined(TELEMETRUM_V_1_1)
42         #define HAS_USB                 1
43         #define HAS_BEEP                1
44         #define HAS_GPS                 1
45         #define HAS_SERIAL_1            1
46         #define HAS_ADC                 1
47         #define HAS_EEPROM              1
48         #define HAS_DBG                 1
49         #define DBG_ON_P1               1
50         #define DBG_ON_P0               0
51         #define PACKET_HAS_MASTER       0
52         #define PACKET_HAS_SLAVE        1
53
54         #define AO_LED_RED              1
55         #define LEDS_AVAILABLE          (AO_LED_RED)
56         #define HAS_EXTERNAL_TEMP       0
57         #define HAS_ACCEL_REF           1
58         #define SPI_CS_ON_P1            1
59         #define SPI_CS_ON_P0            0
60         #define M25_CS_MASK             0x02    /* CS0 is P1_1 */
61         #define M25_MAX_CHIPS           1
62         #define HAS_ACCEL               1
63 #endif
64
65 #if defined(TELEDONGLE_V_0_2)
66         #define HAS_USB                 1
67         #define HAS_BEEP                0
68         #define HAS_SERIAL_1            0
69         #define HAS_ADC                 0
70         #define HAS_DBG                 1
71         #define HAS_EEPROM              0
72         #define DBG_ON_P1               1
73         #define DBG_ON_P0               0
74         #define PACKET_HAS_MASTER       1
75         #define PACKET_HAS_SLAVE        0
76         #define AO_LED_RED              1
77         #define AO_LED_GREEN            2
78         #define LEDS_AVAILABLE          (AO_LED_RED|AO_LED_GREEN)
79         #define SPI_CS_ON_P1            1
80         #define SPI_CS_ON_P0            0
81 #endif
82
83 #if defined(TELEMETRUM_V_0_1)
84         #define HAS_USB                 1
85         #define HAS_BEEP                1
86         #define HAS_GPS                 1
87         #define HAS_SERIAL_1            1
88         #define HAS_ADC                 1
89         #define HAS_DBG                 0
90         #define HAS_EEPROM              1
91         #define DBG_ON_P1               0
92         #define DBG_ON_P0               1
93         #define PACKET_HAS_MASTER       0
94         #define PACKET_HAS_SLAVE        1
95         #define AO_LED_RED              2
96         #define AO_LED_GREEN            1
97         #define LEDS_AVAILABLE          (AO_LED_RED|AO_LED_GREEN)
98         #define HAS_EXTERNAL_TEMP       1
99         #define HAS_ACCEL_REF           0
100         #define SPI_CS_ON_P1            1
101         #define SPI_CS_ON_P0            0
102         #define HAS_ACCEL               1
103 #endif
104
105 #if defined(TELEDONGLE_V_0_1)
106         #define HAS_USB                 1
107         #define HAS_BEEP                0
108         #define HAS_SERIAL_1            0
109         #define HAS_ADC                 0
110         #define HAS_DBG                 0
111         #define HAS_EEPROM              0
112         #define DBG_ON_P1               0
113         #define DBG_ON_P0               1
114         #define PACKET_HAS_MASTER       1
115         #define PACKET_HAS_SLAVE        0
116         #define AO_LED_RED              2
117         #define AO_LED_GREEN            1
118         #define LEDS_AVAILABLE          (AO_LED_RED|AO_LED_GREEN)
119         #define SPI_CS_ON_P1            0
120         #define SPI_CS_ON_P0            1
121 #endif
122
123 #if defined(TIDONGLE)
124         #define HAS_USB                 1
125         #define HAS_BEEP                0
126         #define HAS_SERIAL_1            0
127         #define HAS_ADC                 0
128         #define HAS_DBG                 1
129         #define HAS_EEPROM              0
130         #define DBG_ON_P1               0
131         #define DBG_ON_P0               1
132         #define PACKET_HAS_MASTER       1
133         #define PACKET_HAS_SLAVE        0
134         #define AO_LED_RED              2
135         #define LEDS_AVAILABLE          (AO_LED_RED)
136         #define SPI_CS_ON_P1            0
137         #define SPI_CS_ON_P0            1
138 #endif
139
140 #if DBG_ON_P1
141
142         #define DBG_CLOCK       (1 << 4)        /* mi0 */
143         #define DBG_DATA        (1 << 5)        /* mo0 */
144         #define DBG_RESET_N     (1 << 3)        /* c0 */
145
146         #define DBG_CLOCK_PIN   (P1_4)
147         #define DBG_DATA_PIN    (P1_5)
148         #define DBG_RESET_N_PIN (P1_3)
149
150         #define DBG_PORT_NUM    1
151         #define DBG_PORT        P1
152         #define DBG_PORT_SEL    P1SEL
153         #define DBG_PORT_INP    P1INP
154         #define DBG_PORT_DIR    P1DIR
155
156 #endif /* DBG_ON_P1 */
157
158 #if DBG_ON_P0
159
160         #define DBG_CLOCK       (1 << 3)
161         #define DBG_DATA        (1 << 4)
162         #define DBG_RESET_N     (1 << 5)
163
164         #define DBG_CLOCK_PIN   (P0_3)
165         #define DBG_DATA_PIN    (P0_4)
166         #define DBG_RESET_N_PIN (P0_5)
167
168         #define DBG_PORT_NUM    0
169         #define DBG_PORT        P0
170         #define DBG_PORT_SEL    P0SEL
171         #define DBG_PORT_INP    P0INP
172         #define DBG_PORT_DIR    P0DIR
173
174 #endif /* DBG_ON_P0 */
175
176 #if SPI_CS_ON_P1
177         #define SPI_CS_PORT     P1
178         #define SPI_CS_SEL      P1SEL
179         #define SPI_CS_DIR      P1DIR
180 #endif
181
182 #if SPI_CS_ON_P0
183         #define SPI_CS_PORT     P0
184         #define SPI_CS_SEL      P0SEL
185         #define SPI_CS_DIR      P0DIR
186 #endif
187
188 #ifndef HAS_SERIAL_1
189 #error Please define HAS_SERIAL_1
190 #endif
191
192 #ifndef HAS_ADC
193 #error Please define HAS_ADC
194 #endif
195
196 #ifndef HAS_EEPROM
197 #error Please define HAS_EEPROM
198 #endif
199
200 #ifndef HAS_DBG
201 #error Please define HAS_DBG
202 #endif
203
204 #ifndef PACKET_HAS_MASTER
205 #error Please define PACKET_HAS_MASTER
206 #endif
207
208 #ifndef PACKET_HAS_SLAVE
209 #error Please define PACKET_HAS_SLAVE
210 #endif
211
212 #endif /* _AO_PINS_H_ */