#ifndef BOARD_BT6702_H
#define BOARD_BT6702_H

#define RS232_UART_TABLE(X)     \
X( TXDINT,   GPIOD,   5, AF_USART2) \
X( RXDINT,   GPIOD,   6, AF_USART2)

#define SPI2_TABLE(X) \
X( SPI2_MISO,   GPIOB,  14, AF_SPI2) \
X( SPI2_MOSI,   GPIOB,  15, AF_SPI2) \
X( SPI2_SCK,    GPIOB,  10, AF_SPI2) \
X( SPI2_NSS,    GPIOB,  9,  GPIO_OUT | GPIO_SET)

#define MCU_PERIPHERALS(X)  \
RS232_UART_TABLE(X) \
SPI2_TABLE(X)

#define DI_TABLE(X)                  \
X( DIN1,       GPIOA,   0, GPIO_IN)

#define RELAYS(X) \
X( DOUT1,      GPIOE,  4, GPIO_OUT)\
X( DOUT2,      GPIOE,  5, GPIO_OUT)

#define LEDS(X) \
X( LED_INIT_R,  GPIOA,  4,  GPIO_OUT | GPIO_INV) \
X( LED_INIT_G,  GPIOA,  3,  GPIO_OUT | GPIO_INV) \
X( LED_MAJOR_R, GPIOA,  5,  GPIO_OUT | GPIO_INV) \
X( LED_MINOR_G, GPIOE,  11, GPIO_OUT | GPIO_INV) \
X( LED_MINOR_R, GPIOE,  12, GPIO_OUT | GPIO_INV)

#define JUMPERS(X) \
X( MODE_JUMPER, GPIOE,  6,  GPIO_IN_PU | GPIO_INV)

#define BUTTONS(X) \
X( KEY_DEF,     GPIOE,  7,  GPIO_IN )//| GPIO_INV

#define WDG_PIN(X) \
X( _WDG,     GPIOE,   15, GPIO_OUT)

#define GPIO_TABLE(X)   \
MCU_PERIPHERALS(X)  \
DI_TABLE(X)         \
RELAYS(X) \
LEDS(X)             \
JUMPERS(X) \
BUTTONS(X)      \
WDG_PIN(X)


#define MAX_IRQ_HANDLERS 4

#endif /* BOARD_PRS_H */
