altos: Remove unused AES code from teledongle and tidongle
[fw/altos] / src / cc1111 / 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 #define HAS_RADIO       1
22
23 #if defined(TELEMETRUM_V_1_0)
24         #define HAS_FLIGHT              1
25         #define HAS_USB                 1
26         #define HAS_BEEP                1
27         #define HAS_GPS                 1
28         #define HAS_SERIAL_1            1
29         #define HAS_ADC                 1
30         #define HAS_EEPROM              1
31         #define HAS_LOG                 1
32         #define USE_INTERNAL_FLASH      0
33         #define HAS_DBG                 1
34         #define DBG_ON_P1               1
35         #define DBG_ON_P0               0
36         #define IGNITE_ON_P2            1
37         #define IGNITE_ON_P0            0
38         #define PACKET_HAS_MASTER       0
39         #define PACKET_HAS_SLAVE        1
40         #define NOISY_ACCEL             1
41
42         #define HAS_COMPANION           1
43         #define COMPANION_CS_ON_P1      1
44         #define COMPANION_CS_MASK       0x4     /* CS1 is P1_2 */
45         #define COMPANION_CS            P1_2
46
47         #define AO_LED_RED              1
48         #define LEDS_AVAILABLE          (AO_LED_RED)
49         #define HAS_EXTERNAL_TEMP       0
50         #define HAS_ACCEL_REF           0
51         #define HAS_ACCEL               1
52         #define HAS_IGNITE              1
53         #define HAS_MONITOR             0
54 #endif
55
56 #if defined(TELEMETRUM_V_1_1)
57         #define HAS_FLIGHT              1
58         #define HAS_USB                 1
59         #define HAS_BEEP                1
60         #define HAS_GPS                 1
61         #define HAS_SERIAL_1            1
62         #define HAS_ADC                 1
63         #define HAS_EEPROM              1
64         #define HAS_LOG                 1
65         #define USE_INTERNAL_FLASH      0
66         #define HAS_DBG                 1
67         #define DBG_ON_P1               1
68         #define DBG_ON_P0               0
69         #define IGNITE_ON_P2            1
70         #define IGNITE_ON_P0            0
71         #define PACKET_HAS_MASTER       0
72         #define PACKET_HAS_SLAVE        1
73
74         #define HAS_COMPANION           1
75         #define COMPANION_CS_ON_P1      1
76         #define COMPANION_CS_MASK       0x4     /* CS1 is P1_2 */
77         #define COMPANION_CS            P1_2
78
79         #define AO_LED_RED              1
80         #define LEDS_AVAILABLE          (AO_LED_RED)
81         #define HAS_EXTERNAL_TEMP       0
82         #define HAS_ACCEL_REF           1
83         #define SPI_CS_ON_P1            1
84         #define SPI_CS_ON_P0            0
85         #define AO_M25_SPI_CS_MASK      0x02    /* CS0 is P1_1 */
86         #define M25_MAX_CHIPS           1
87         #define HAS_ACCEL               1
88         #define HAS_IGNITE              1
89         #define HAS_MONITOR             0
90 #endif
91
92 #if defined(TELEMETRUM_V_1_2)
93         #define HAS_FLIGHT              1
94         #define HAS_USB                 1
95         #define HAS_BEEP                1
96         #define HAS_GPS                 1
97         #define HAS_SERIAL_1            1
98         #define HAS_ADC                 1
99         #define HAS_EEPROM              1
100         #define HAS_LOG                 1
101         #define USE_INTERNAL_FLASH      0
102         #define HAS_DBG                 1
103         #define DBG_ON_P1               1
104         #define DBG_ON_P0               0
105         #define IGNITE_ON_P2            1
106         #define IGNITE_ON_P0            0
107         #define PACKET_HAS_MASTER       0
108         #define PACKET_HAS_SLAVE        1
109
110         #define HAS_COMPANION           1
111         #define COMPANION_CS_ON_P1      1
112         #define COMPANION_CS_MASK       0x4     /* CS1 is P1_2 */
113         #define COMPANION_CS            P1_2
114
115         #define AO_LED_RED              1
116         #define LEDS_AVAILABLE          (AO_LED_RED)
117         #define HAS_EXTERNAL_TEMP       0
118         #define HAS_ACCEL_REF           1
119         #define SPI_CS_ON_P1            1
120         #define SPI_CS_ON_P0            0
121         #define AO_M25_SPI_CS_MASK      0x02    /* CS0 is P1_1 */
122         #define M25_MAX_CHIPS           1
123         #define HAS_ACCEL               1
124         #define HAS_IGNITE              1
125         #define HAS_MONITOR             0
126 #endif
127
128 #if defined(TELEDONGLE_V_0_2)
129         #define HAS_FLIGHT              0
130         #define HAS_USB                 1
131         #define HAS_BEEP                0
132         #define HAS_SERIAL_1            0
133         #define HAS_ADC                 0
134         #define HAS_DBG                 1
135         #define HAS_EEPROM              0
136         #define HAS_LOG                 0
137         #define DBG_ON_P1               1
138         #define DBG_ON_P0               0
139         #define IGNITE_ON_P2            0
140         #define IGNITE_ON_P0            0
141         #define PACKET_HAS_MASTER       1
142         #define PACKET_HAS_SLAVE        0
143         #define AO_LED_RED              1
144         #define AO_LED_GREEN            2
145         #define AO_MONITOR_LED          AO_LED_GREEN
146         #define LEDS_AVAILABLE          (AO_LED_RED|AO_LED_GREEN)
147         #define SPI_CS_ON_P1            1
148         #define SPI_CS_ON_P0            0
149         #define HAS_IGNITE              0
150         #define HAS_MONITOR             1
151         #define LEGACY_MONITOR          1
152         #define HAS_RSSI                1
153         #define HAS_AES                 0
154 #endif
155
156 #if defined(TELEMINI_V_1_0)
157         #define HAS_FLIGHT              1
158         #define HAS_USB                 0
159         #define HAS_BEEP                0
160         #define HAS_GPS                 0
161         #define HAS_SERIAL_1            0
162         #define HAS_ADC                 1
163         #define HAS_EEPROM              1
164         #define HAS_LOG                 1
165         #define USE_INTERNAL_FLASH      1
166         #define HAS_DBG                 0
167         #define IGNITE_ON_P2            0
168         #define IGNITE_ON_P0            1
169         #define PACKET_HAS_MASTER       0
170         #define PACKET_HAS_SLAVE        1
171         #define USE_FAST_ASCENT_LOG     1
172
173         #define AO_LED_GREEN            1
174         #define AO_LED_RED              2
175         #define LEDS_AVAILABLE          (AO_LED_RED|AO_LED_GREEN)
176         #define HAS_EXTERNAL_TEMP       0
177         #define HAS_ACCEL               0
178         #define HAS_IGNITE              1
179         #define HAS_MONITOR             0
180 #endif
181
182 #if defined(TELENANO_V_0_1)
183         #define HAS_FLIGHT              1
184         #define HAS_USB                 0
185         #define HAS_BEEP                0
186         #define HAS_GPS                 0
187         #define HAS_SERIAL_1            0
188         #define HAS_ADC                 1
189         #define HAS_EEPROM              1
190         #define HAS_LOG                 1
191         #define USE_INTERNAL_FLASH      1
192         #define HAS_DBG                 0
193         #define IGNITE_ON_P2            0
194         #define IGNITE_ON_P0            1
195         #define PACKET_HAS_MASTER       0
196         #define PACKET_HAS_SLAVE        1
197
198         #define AO_LED_GREEN            1
199         #define AO_LED_RED              2
200         #define LEDS_AVAILABLE          (AO_LED_RED|AO_LED_GREEN)
201         #define HAS_EXTERNAL_TEMP       0
202         #define HAS_ACCEL               0
203         #define HAS_IGNITE              0
204         #define HAS_MONITOR             0
205 #endif
206
207 #if defined(TELEMETRUM_V_0_1)
208         #define HAS_FLIGHT              1
209         #define HAS_USB                 1
210         #define HAS_BEEP                1
211         #define HAS_GPS                 1
212         #define HAS_SERIAL_1            1
213         #define HAS_ADC                 1
214         #define HAS_DBG                 0
215         #define HAS_EEPROM              1
216         #define HAS_LOG                 1
217         #define USE_INTERNAL_FLASH      0
218         #define DBG_ON_P1               0
219         #define DBG_ON_P0               1
220         #define IGNITE_ON_P2            1
221         #define IGNITE_ON_P0            0
222         #define PACKET_HAS_MASTER       0
223         #define PACKET_HAS_SLAVE        1
224         #define AO_LED_RED              2
225         #define AO_LED_GREEN            1
226         #define LEDS_AVAILABLE          (AO_LED_RED|AO_LED_GREEN)
227         #define HAS_EXTERNAL_TEMP       1
228         #define HAS_ACCEL_REF           0
229         #define SPI_CS_ON_P1            1
230         #define SPI_CS_ON_P0            0
231         #define HAS_ACCEL               1
232         #define HAS_IGNITE              1
233         #define HAS_MONITOR             0
234         #define AO_CONFIG_DEFAULT_FLIGHT_LOG_MAX        ((uint32_t) 127 * (uint32_t) 1024)
235 #endif
236
237 #if defined(TELEDONGLE_V_0_1)
238         #define HAS_FLIGHT              0
239         #define HAS_USB                 1
240         #define HAS_BEEP                0
241         #define HAS_SERIAL_1            0
242         #define HAS_ADC                 0
243         #define HAS_DBG                 0
244         #define HAS_EEPROM              0
245         #define HAS_LOG                 0
246         #define DBG_ON_P1               0
247         #define DBG_ON_P0               1
248         #define IGNITE_ON_P2            0
249         #define IGNITE_ON_P0            0
250         #define PACKET_HAS_MASTER       1
251         #define PACKET_HAS_SLAVE        0
252         #define AO_LED_RED              2
253         #define AO_LED_GREEN            1
254         #define AO_MONITOR_LED          AO_LED_GREEN
255         #define LEDS_AVAILABLE          (AO_LED_RED|AO_LED_GREEN)
256         #define SPI_CS_ON_P1            0
257         #define SPI_CS_ON_P0            1
258         #define HAS_IGNITE              0
259         #define HAS_MONITOR             1
260         #define LEGACY_MONITOR          1
261         #define HAS_RSSI                1
262         #define HAS_AES                 0
263 #endif
264
265 #if defined(TIDONGLE)
266         #define HAS_FLIGHT              0
267         #define HAS_USB                 1
268         #define HAS_BEEP                0
269         #define HAS_SERIAL_1            0
270         #define HAS_ADC                 0
271         #define HAS_DBG                 1
272         #define HAS_EEPROM              0
273         #define HAS_LOG                 0
274         #define DBG_ON_P1               0
275         #define DBG_ON_P0               1
276         #define IGNITE_ON_P2            0
277         #define IGNITE_ON_P0            0
278         #define PACKET_HAS_MASTER       1
279         #define PACKET_HAS_SLAVE        0
280         #define AO_LED_RED              2
281         #define AO_MONITOR_LED          AO_LED_RED
282         #define LEDS_AVAILABLE          (AO_LED_RED)
283         #define SPI_CS_ON_P1            0
284         #define SPI_CS_ON_P0            1
285         #define HAS_IGNITE              0
286         #define HAS_MONITOR             1
287         #define LEGACY_MONITOR          1
288         #define HAS_RSSI                1
289         #define HAS_AES                 0
290 #endif
291
292 #if defined(TELEBT_V_0_0)
293         #define HAS_FLIGHT              0
294         #define HAS_USB                 1
295         #define HAS_BEEP                0
296         #define HAS_SERIAL_1            1
297         #define USE_SERIAL_1_STDIN      1
298         #define DELAY_SERIAL_1_STDIN    1
299         #define HAS_ADC                 0
300         #define HAS_DBG                 1
301         #define HAS_EEPROM              0
302         #define HAS_LOG                 0
303         #define HAS_BTM                 1
304         #define DBG_ON_P1               0
305         #define DBG_ON_P0               1
306         #define IGNITE_ON_P2            0
307         #define IGNITE_ON_P0            0
308         #define PACKET_HAS_MASTER       1
309         #define PACKET_HAS_SLAVE        0
310         #define AO_LED_RED              2
311         #define AO_LED_GREEN            1
312         #define AO_MONITOR_LED          AO_LED_RED
313         #define LEDS_AVAILABLE          (AO_LED_RED|AO_LED_GREEN)
314         #define SPI_CS_ON_P1            1
315         #define SPI_CS_ON_P0            0
316         #define HAS_IGNITE              0
317         #define HAS_IGNITE_REPORT       1
318         #define BT_LINK_ON_P2           1
319         #define BT_LINK_ON_P1           0
320         #define BT_LINK_PIN_INDEX       7
321         #define BT_LINK_PIN             P2_1
322         #define HAS_MONITOR             1
323         #define LEGACY_MONITOR          1
324         #define HAS_RSSI                0
325         #define HAS_AES                 0
326 #endif
327
328 #if defined(TELEBT_V_0_1)
329         #define HAS_FLIGHT              0
330         #define HAS_USB                 1
331         #define HAS_BEEP                1
332         #define HAS_SERIAL_1            1
333         #define HAS_SERIAL_1_ALT_1      1
334         #define HAS_SERIAL_1_ALT_2      0
335         #define HAS_SERIAL_1_HW_FLOW    1
336         #define USE_SERIAL_1_STDIN      1
337         #define DELAY_SERIAL_1_STDIN    1
338         #define HAS_ADC                 0
339         #define HAS_DBG                 1
340         #define HAS_EEPROM              1
341         #define HAS_LOG                 1
342         #define USE_INTERNAL_FLASH      0
343         #define HAS_BTM                 1
344         #define DBG_ON_P1               1
345         #define DBG_ON_P0               0
346         #define IGNITE_ON_P2            0
347         #define IGNITE_ON_P0            0
348         #define PACKET_HAS_MASTER       1
349         #define PACKET_HAS_SLAVE        0
350         #define AO_LED_RED              1
351         #define AO_LED_GREEN            2
352         #define AO_MONITOR_LED          AO_LED_RED
353         #define LEDS_AVAILABLE          (AO_LED_RED|AO_LED_GREEN)
354         #define SPI_CS_ON_P1            1
355         #define SPI_CS_ON_P0            0
356         #define AO_M25_SPI_CS_MASK      0x04    /* CS0 is P1_2 */
357         #define M25_MAX_CHIPS           1
358         #define HAS_ACCEL               0
359         #define HAS_IGNITE              0
360         #define HAS_IGNITE_REPORT       1
361         #define BT_LINK_ON_P2           0
362         #define BT_LINK_ON_P1           1
363         #define BT_LINK_PIN_INDEX       7
364         #define BT_LINK_PIN             P1_7
365         #define HAS_MONITOR             1
366         #define LEGACY_MONITOR          1
367         #define HAS_RSSI                0
368         #define HAS_AES                 0
369 #endif
370
371 #if defined(TELELAUNCH_V_0_1)
372         #define HAS_FLIGHT              0
373         #define HAS_USB                 1
374         #define HAS_BEEP                1
375         #define HAS_GPS                 0
376         #define HAS_SERIAL_1            1
377         #define HAS_ADC                 1
378         #define HAS_DBG                 0
379         #define HAS_EEPROM              1
380         #define HAS_LOG                 0
381         #define USE_INTERNAL_FLASH      1
382         #define DBG_ON_P1               0
383         #define DBG_ON_P0               1
384         #define IGNITE_ON_P2            1
385         #define IGNITE_ON_P0            0
386         #define PACKET_HAS_MASTER       0
387         #define PACKET_HAS_SLAVE        0
388         #define AO_LED_RED              2
389         #define AO_LED_GREEN            1
390         #define LEDS_AVAILABLE          (AO_LED_RED|AO_LED_GREEN)
391         #define HAS_EXTERNAL_TEMP       1
392         #define HAS_ACCEL_REF           0
393         #define SPI_CS_ON_P1            1
394         #define SPI_CS_ON_P0            0
395         #define HAS_ACCEL               0
396         #define HAS_IGNITE              1
397         #define HAS_MONITOR             0
398         #define HAS_AES                 1
399 #endif
400
401 #if DBG_ON_P1
402
403         #define DBG_CLOCK       (1 << 4)        /* mi0 */
404         #define DBG_DATA        (1 << 5)        /* mo0 */
405         #define DBG_RESET_N     (1 << 3)        /* c0 */
406
407         #define DBG_CLOCK_PIN   (P1_4)
408         #define DBG_DATA_PIN    (P1_5)
409         #define DBG_RESET_N_PIN (P1_3)
410
411         #define DBG_PORT_NUM    1
412         #define DBG_PORT        P1
413         #define DBG_PORT_SEL    P1SEL
414         #define DBG_PORT_INP    P1INP
415         #define DBG_PORT_DIR    P1DIR
416
417 #endif /* DBG_ON_P1 */
418
419 #if DBG_ON_P0
420
421         #define DBG_CLOCK       (1 << 3)
422         #define DBG_DATA        (1 << 4)
423         #define DBG_RESET_N     (1 << 5)
424
425         #define DBG_CLOCK_PIN   (P0_3)
426         #define DBG_DATA_PIN    (P0_4)
427         #define DBG_RESET_N_PIN (P0_5)
428
429         #define DBG_PORT_NUM    0
430         #define DBG_PORT        P0
431         #define DBG_PORT_SEL    P0SEL
432         #define DBG_PORT_INP    P0INP
433         #define DBG_PORT_DIR    P0DIR
434
435 #endif /* DBG_ON_P0 */
436
437 #if COMPANION_CS_ON_P1
438         #define COMPANION_CS_PORT       P1
439         #define COMPANION_CS_SEL        P1SEL
440         #define COMPANION_CS_DIR        P1DIR
441 #endif
442
443 #if SPI_CS_ON_P1
444         #define SPI_CS_PORT     P1
445         #define SPI_CS_SEL      P1SEL
446         #define SPI_CS_DIR      P1DIR
447 #endif
448
449 #if SPI_CS_ON_P0
450         #define SPI_CS_PORT     P0
451         #define SPI_CS_SEL      P0SEL
452         #define SPI_CS_DIR      P0DIR
453 #endif
454
455 #define AO_M25_SPI_CS_PORT      SPI_CS_PORT
456
457 #ifndef IGNITE_ON_P2
458 #error Please define IGNITE_ON_P2
459 #endif
460
461 #ifndef IGNITE_ON_P0
462 #error Please define IGNITE_ON_P0
463 #endif
464
465 #ifndef HAS_ADC
466 #error Please define HAS_ADC
467 #endif
468
469 #ifndef HAS_EEPROM
470 #error Please define HAS_EEPROM
471 #endif
472
473 #ifndef HAS_LOG
474 #error Please define HAS_LOG
475 #endif
476
477 #if HAS_EEPROM
478 #ifndef USE_INTERNAL_FLASH
479 #error Please define USE_INTERNAL_FLASH
480 #endif
481 #endif
482
483 #ifndef HAS_DBG
484 #error Please define HAS_DBG
485 #endif
486
487 #ifndef HAS_IGNITE
488 #error Please define HAS_IGNITE
489 #endif
490
491 #if HAS_IGNITE
492 #define HAS_IGNITE_REPORT 1
493 #endif
494
495 #ifndef PACKET_HAS_MASTER
496 #error Please define PACKET_HAS_MASTER
497 #endif
498
499 #ifndef PACKET_HAS_SLAVE
500 #error Please define PACKET_HAS_SLAVE
501 #endif
502
503 #ifndef HAS_MONITOR
504 #error Please define HAS_MONITOR
505 #endif
506
507 #if HAS_MONITOR
508 #ifndef HAS_RSSI
509 #error Please define HAS_RSSI
510 #endif
511 #endif
512
513 #ifndef HAS_ADC
514 #error Please define HAS_ADC
515 #endif
516
517 #if HAS_ADC
518
519 #if HAS_ACCEL
520 #ifndef HAS_ACCEL_REF
521 #error Please define HAS_ACCEL_REF
522 #endif
523 #else
524 #define HAS_ACCEL_REF 0
525 #endif
526
527 #endif /* HAS_ADC */
528
529 #if IGNITE_ON_P2
530 #define AO_IGNITER_DROGUE       P2_3
531 #define AO_IGNITER_MAIN         P2_4
532 #define AO_IGNITER_DIR          P2DIR
533 #define AO_IGNITER_DROGUE_BIT   (1 << 3)
534 #define AO_IGNITER_MAIN_BIT     (1 << 4)
535 #endif
536
537 #if IGNITE_ON_P0
538 #define AO_IGNITER_DROGUE       P0_5
539 #define AO_IGNITER_MAIN         P0_4
540 #define AO_IGNITER_DIR          P0DIR
541 #define AO_IGNITER_DROGUE_BIT   (1 << 5)
542 #define AO_IGNITER_MAIN_BIT     (1 << 4)
543 #endif
544
545 /* test these values with real igniters */
546 #define AO_IGNITER_OPEN         1000
547 #define AO_IGNITER_CLOSED       7000
548 #define AO_IGNITER_FIRE_TIME    AO_MS_TO_TICKS(50)
549 #define AO_IGNITER_CHARGE_TIME  AO_MS_TO_TICKS(2000)
550
551 #endif /* _AO_PINS_H_ */