altos/stm: Make beeper driver support all possible tim234 configs
[fw/altos] / src / telelco-v2.0 / ao_pins.h
index cdca5c10d130e94d184221b2c0a3474deabe3f77..e06633145fe7a1dc097c5d4e4d13a3bc6d2749c5 100644 (file)
 #define USE_STORAGE_CONFIG     0
 #define HAS_USB                        1
 #define HAS_BEEP               1
+#define BEEPER_TIMER           3
+#define BEEPER_CHANNEL         1
+#define BEEPER_PORT            (&stm_gpioc)
+#define BEEPER_PIN             6
 #define HAS_RADIO              1
 #define HAS_RADIO_RATE         1
 #define HAS_TELEMETRY          0
 #define HAS_AES                        1
+#define HAS_STATIC_TEST                0
 
 #define HAS_SPI_1              0
 #define SPI_1_PA5_PA6_PA7      0
 
 #define LOW_LEVEL_DEBUG                0
 
-#define LED_PER_LED            1
-#define LED_TYPE               uint16_t
-
-#define LED_ENABLE_BITS                ((1 << STM_RCC_AHBENR_GPIOAEN) |        \
-                                (1 << STM_RCC_AHBENR_GPIOCEN) |        \
-                                (1 << STM_RCC_AHBENR_GPIODEN) |        \
-                                (1 << STM_RCC_AHBENR_GPIOEEN))
+#define HAS_LED                        1
 
 /* PC7 - PC9, LED 0 - 2 */
 #define LED_0_PORT             (&stm_gpioc)
 #define LED_15_PORT            (&stm_gpioa)
 #define LED_15_PIN             5
 
-#define LED_PIN_RED            0
-#define LED_PIN_AMBER          1
-#define LED_PIN_GREEN          2
-#define LED_PIN_BOX            3
-#define LED_PIN_PAD            4
-#define LED_PIN_DRAG           5
-#define LED_PIN_CONTINUITY_7   6
-#define LED_PIN_CONTINUITY_6   7
-#define LED_PIN_CONTINUITY_5   8
-#define LED_PIN_CONTINUITY_4   9
-#define LED_PIN_CONTINUITY_3   10
-#define LED_PIN_CONTINUITY_2   11
-#define LED_PIN_CONTINUITY_1   12
-#define LED_PIN_CONTINUITY_0   13
-#define LED_PIN_REMOTE_ARM     14
-#define LED_PIN_FIRE           15
-#define AO_LED_RED             (1 << LED_PIN_RED)
-#define AO_LED_AMBER           (1 << LED_PIN_AMBER)
-#define AO_LED_GREEN           (1 << LED_PIN_GREEN)
-#define AO_LED_BOX             (1 << LED_PIN_BOX)
-#define AO_LED_PAD             (1 << LED_PIN_PAD)
-#define AO_LED_DRAG            (1 << LED_PIN_DRAG)
-#define AO_LED_CONTINUITY_7    (1 << LED_PIN_CONTINUITY_7)
-#define AO_LED_CONTINUITY_6    (1 << LED_PIN_CONTINUITY_6)
-#define AO_LED_CONTINUITY_5    (1 << LED_PIN_CONTINUITY_5)
-#define AO_LED_CONTINUITY_4    (1 << LED_PIN_CONTINUITY_4)
-#define AO_LED_CONTINUITY_3    (1 << LED_PIN_CONTINUITY_3)
-#define AO_LED_CONTINUITY_2    (1 << LED_PIN_CONTINUITY_2)
-#define AO_LED_CONTINUITY_1    (1 << LED_PIN_CONTINUITY_1)
-#define AO_LED_CONTINUITY_0    (1 << LED_PIN_CONTINUITY_0)
+#define AO_LED_RED             AO_LED_0
+#define AO_LED_AMBER           AO_LED_1
+#define AO_LED_GREEN           AO_LED_2
+#define AO_LED_BOX             AO_LED_3
+#define AO_LED_PAD             AO_LED_4
+#define AO_LED_DRAG            AO_LED_5
+#define AO_LED_CONTINUITY_7    AO_LED_6
+#define AO_LED_CONTINUITY_6    AO_LED_7
+#define AO_LED_CONTINUITY_5    AO_LED_8
+#define AO_LED_CONTINUITY_4    AO_LED_9
+#define AO_LED_CONTINUITY_3    AO_LED_10
+#define AO_LED_CONTINUITY_2    AO_LED_11
+#define AO_LED_CONTINUITY_1    AO_LED_12
+#define AO_LED_CONTINUITY_0    AO_LED_13
 #define AO_LED_CONTINUITY_NUM  8
-#define AO_LED_REMOTE_ARM      (1 << LED_PIN_REMOTE_ARM)
-#define AO_LED_FIRE            (1 << LED_PIN_FIRE)
-
-#define LEDS_AVAILABLE         (AO_LED_RED |           \
-                                AO_LED_AMBER |         \
-                                AO_LED_GREEN |         \
-                                AO_LED_BOX |           \
-                                AO_LED_PAD |           \
-                                AO_LED_DRAG |          \
-                                AO_LED_CONTINUITY_7 |  \
-                                AO_LED_CONTINUITY_6 |  \
-                                AO_LED_CONTINUITY_5 |  \
-                                AO_LED_CONTINUITY_4 |  \
-                                AO_LED_CONTINUITY_3 |  \
-                                AO_LED_CONTINUITY_2 |  \
-                                AO_LED_CONTINUITY_1 |  \
-                                AO_LED_CONTINUITY_0 |  \
-                                AO_LED_REMOTE_ARM |    \
-                                AO_LED_FIRE)
+#define AO_LED_REMOTE_ARM      AO_LED_14
+#define AO_LED_FIRE            AO_LED_15
 
 /* LCD displays */
 
 #define AO_BUTTON_COUNT                9
 #define AO_BUTTON_MODE         AO_EXTI_MODE_PULL_UP
 
-#define AO_BUTTON_MODE_SELECT  0
+#define AO_BUTTON_DRAG_MODE    0
 #define AO_BUTTON_0_PORT       &stm_gpioe
 #define AO_BUTTON_0            1
 
 #define AO_BUTTON_DRAG_SELECT  1
 #define AO_BUTTON_1_PORT       &stm_gpioe
-#define AO_BUTTON_1            1
+#define AO_BUTTON_1            0
 
 #define AO_BUTTON_SPARE1               2
 #define AO_BUTTON_2_PORT       &stm_gpiob
 #define AO_BUTTON_7_PORT       &stm_gpiod
 #define AO_BUTTON_7            11
 
-#define AO_BUTTON_SELECT       8
+#define AO_BUTTON_ENCODER_SELECT       8
 #define AO_BUTTON_8_PORT       &stm_gpioe
 #define AO_BUTTON_8            13
 
+/* ADC */
+
+struct ao_adc {
+       int16_t         v_batt;
+};
+
+#define AO_ADC_DUMP(p) \
+       printf("batt: %5d\n", (p)->v_batt)
+
+#define HAS_ADC_SINGLE         1
+#define HAS_ADC_TEMP           0
+#define HAS_BATTERY_REPORT     1
+
+#define AO_ADC_V_BATT          0
+#define AO_ADC_V_BATT_PORT     (&stm_gpioa)
+#define AO_ADC_V_BATT_PIN      0
+
+#define AO_ADC_RCC_AHBENR      (1 << STM_RCC_AHBENR_GPIOAEN)
+
+#define AO_ADC_PIN0_PORT       AO_ADC_V_BATT_PORT
+#define AO_ADC_PIN0_PIN                AO_ADC_V_BATT_PIN
+
+#define AO_ADC_SQ1             AO_ADC_V_BATT
+
+#define AO_NUM_ADC             1
+
+/*
+ * Voltage divider on ADC battery sampler
+ */
+#define AO_BATTERY_DIV_PLUS    15      /* 15k */
+#define AO_BATTERY_DIV_MINUS   27      /* 27k */
+
+/*
+ * ADC reference in decivolts
+ */
+#define AO_ADC_REFERENCE_DV    33
+
 #endif /* _AO_PINS_H_ */