cortexelf-v1: Add pin definitions for 1802 connections
[fw/altos] / src / cortexelf-v1 / ao_pins.h
index d39f402234d915c0434a414c1279fd2e071bdfb4..d580ce3d2f4efcdab7eb79c5c6a81dceedeb6e1f 100644 (file)
 
 /* Buttons */
 
-#define AO_EVENT       1
+#define AO_EVENT               1
 
 #define AO_BUTTON_COUNT                4
 #define AO_BUTTON_MODE         AO_EXTI_MODE_PULL_DOWN
+#define AO_BUTTON_INVERTED     0
 
 /* INPUT */
 #define AO_BUTTON_0_PORT       (&stm_gpioc)
 #define AO_BUTTON_3_PORT       (&stm_gpioc)
 #define AO_BUTTON_3            11
 
+/* AS1107 */
+#define AO_AS1107_NUM_DIGITS   8
+
+/* Set the hex digits up for decode, leave the extra leds alone */
+
+#define AO_AS1107_DECODE       ((1 << 7) |     \
+                                (1 << 6) |     \
+                                (1 << 4) |     \
+                                (1 << 3) |     \
+                                (1 << 1) |     \
+                                (1 << 0))
+
+#define AO_AS1107_SPI_INDEX    AO_SPI_2_PD1_PD3_PD4
+#define AO_AS1107_SPI_SPEED    AO_SPI_SPEED_8MHz
+#define AO_AS1107_CS_PORT      (&stm_gpiod)
+#define AO_AS1107_CS_PIN       0
+
+/* Hex keypad */
+
+#define AO_MATRIX_ROWS 4
+#define AO_MATRIX_COLS 4
+
+#define AO_MATRIX_KEYCODES {                   \
+               { 0x0, 0x1, 0x2, 0x3 },         \
+               { 0x4, 0x5, 0x6, 0x7 },         \
+               { 0x8, 0x9, 0xa, 0xb },         \
+               { 0xc, 0xd, 0xe, 0xf }          \
+       }
+
+#include <ao_matrix.h>
+
+#define AO_TIMER_HOOK  ao_matrix_poll()
+
+#define AO_MATRIX_ROW_0_PORT   (&stm_gpioc)
+#define AO_MATRIX_ROW_0_PIN    4
+
+#define AO_MATRIX_ROW_1_PORT   (&stm_gpioc)
+#define AO_MATRIX_ROW_1_PIN    1
+
+#define AO_MATRIX_ROW_2_PORT   (&stm_gpioc)
+#define AO_MATRIX_ROW_2_PIN    7
+
+#define AO_MATRIX_ROW_3_PORT   (&stm_gpioc)
+#define AO_MATRIX_ROW_3_PIN    0
+
+#define AO_MATRIX_COL_0_PORT   (&stm_gpioc)
+#define AO_MATRIX_COL_0_PIN    2
+
+#define AO_MATRIX_COL_1_PORT   (&stm_gpioc)
+#define AO_MATRIX_COL_1_PIN    3
+
+#define AO_MATRIX_COL_2_PORT   (&stm_gpioc)
+#define AO_MATRIX_COL_2_PIN    5
+
+#define AO_MATRIX_COL_3_PORT   (&stm_gpioc)
+#define AO_MATRIX_COL_3_PIN    6
+
+/* 1802 connections */
+#define MA_PORT                        (&stm_gpioe)
+#define MA_SHIFT               0
+
+#define DATA_PORT              (&stm_gpioe)
+#define DATA_SHIFT             8
+
+#define MRD_PORT               (&stm_gpiob)
+#define MRD_BIT                        15
+
+#define MWR_PORT               (&stm_gpioa)
+#define MWR_BIT                        3
+
+#define TPB_PORT               (&stm_gpioa)
+#define TPB_BIT                        7
+
+#define TPA_PORT               (&stm_gpioa)
+#define TPA_BIT                        6
+
+#define MUX_PORT               (&stm_gpiob)
+#define MUX_BIT                        1
+
+#define WAIT_PORT              (&stm_gpioa)
+#define WAIT_PIN               4
+
+#define CLEAR_PORT             (&stm_gpioa)
+#define CLEAR_PIN              10
+
+#define Q_PORT                 (&stm_gpiob)
+#define Q_BIT                  12
+
+#define SC_PORT                        (&stm_gpiob)
+#define SC_SHIFT               13
+
+#define N_PORT                 (&stm_gpiod)
+#define N_SHIFT                        13
+
+#define DMA_IN_PORT            (&stm_gpioa)
+#define DMA_IN_PIN             0
+
+#define DMA_OUT_PORT           (&stm_gpioa)
+#define DMA_OUT_PIN            9
+
+#define INTERRUPT_PORT         (&stm_gpioa)
+#define INTERRUPT_PIN          2
+
+#define EF_PORT                        (&stm_gpiob)
+#define EF_SHIFT               8
 
 #endif /* _AO_PINS_H_ */