/* 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.
 */

/* SoC level DTS fixup file */

#define CONFIG_NUM_IRQ_PRIO_BITS	ARM_V7M_NVIC_E000E100_ARM_NUM_IRQ_PRIORITY_BITS
#define CONFIG_UART_GECKO_0_NAME	SILABS_EFM32_USART_4000C000_LABEL

#define CONFIG_UART_GECKO_0_BAUD_RATE	SILABS_EFM32_USART_4000C000_CURRENT_SPEED
#define CONFIG_UART_GECKO_0_IRQ_PRI	SILABS_EFM32_USART_4000C000_IRQ_0_PRIORITY

/* End of SoC Level DTS fixup file */
