/* This file is a temporary workaround for mapping of the generated information
 * to the current driver definitions.  This will be removed when the drivers
 * are modified to handle the generated information, or the mapping of
 * generated data matches the driver definitions.
 */


#define CONFIG_NUM_IRQS			ARM_ARMV7M_NVIC_E000E100_NUM_IRQS
#define CONFIG_NUM_IRQ_PRIO_BITS	ARM_ARMV7M_NVIC_E000E100_NUM_IRQ_PRIO_BITS

#define CONFIG_UART_STM32_PORT_1_BASE_ADDRESS	ST_STM32_USART_40013800_BASE_ADDRESS
#define CONFIG_UART_STM32_PORT_1_BAUD_RATE	ST_STM32_USART_40013800_BAUD_RATE
#define CONFIG_UART_STM32_PORT_1_IRQ_PRI	ST_STM32_USART_40013800_ZEPHYR_IRQ_PRIO
#define PORT_1_IRQ				ST_STM32_USART_40013800_IRQ_0

#define CONFIG_UART_STM32_PORT_2_BASE_ADDRESS	ST_STM32_USART_40004400_BASE_ADDRESS
#define CONFIG_UART_STM32_PORT_2_BAUD_RATE	ST_STM32_USART_40004400_BAUD_RATE
#define CONFIG_UART_STM32_PORT_2_IRQ_PRI	ST_STM32_USART_40004400_ZEPHYR_IRQ_PRIO
#define PORT_2_IRQ				ST_STM32_USART_40004400_IRQ_0

#define CONFIG_UART_STM32_PORT_3_BASE_ADDRESS	ST_STM32_USART_40004800_BASE_ADDRESS
#define CONFIG_UART_STM32_PORT_3_BAUD_RATE	ST_STM32_USART_40004800_BAUD_RATE
#define CONFIG_UART_STM32_PORT_3_IRQ_PRI	ST_STM32_USART_40004800_ZEPHYR_IRQ_PRIO
#define PORT_3_IRQ				ST_STM32_USART_40004800_IRQ_0

#define CONFIG_UART_STM32_PORT_4_BASE_ADDRESS	ST_STM32_USART_40004C00_BASE_ADDRESS
#define CONFIG_UART_STM32_PORT_4_BAUD_RATE	ST_STM32_USART_40004C00_BAUD_RATE
#define CONFIG_UART_STM32_PORT_4_IRQ_PRI	ST_STM32_USART_40004C00_ZEPHYR_IRQ_PRIO
#define PORT_4_IRQ				ST_STM32_USART_40004C00_IRQ_0

#define CONFIG_UART_STM32_PORT_5_BASE_ADDRESS	ST_STM32_USART_40005000_BASE_ADDRESS
#define CONFIG_UART_STM32_PORT_5_BAUD_RATE	ST_STM32_USART_40005000_BAUD_RATE
#define CONFIG_UART_STM32_PORT_5_IRQ_PRI	ST_STM32_USART_40005000_ZEPHYR_IRQ_PRIO
#define PORT_5_IRQ				ST_STM32_USART_40005000_IRQ_0
