/* 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_IRQ_PRIO_BITS	ARM_V7M_NVIC_E000E100_ARM_NUM_IRQ_PRIORITY_BITS

#define CONFIG_I2C_0_BASE_ADDRESS	ATMEL_SAM_I2C_TWI_40018000_BASE_ADDRESS
#define CONFIG_I2C_0_NAME		ATMEL_SAM_I2C_TWI_40018000_LABEL
#define CONFIG_I2C_0_BITRATE		ATMEL_SAM_I2C_TWI_40018000_CLOCK_FREQUENCY
#define CONFIG_I2C_0_IRQ		ATMEL_SAM_I2C_TWI_40018000_IRQ_0
#define CONFIG_I2C_0_IRQ_PRI		ATMEL_SAM_I2C_TWI_40018000_IRQ_0_PRIORITY
#define CONFIG_I2C_0_PERIPHERAL_ID	ATMEL_SAM_I2C_TWI_40018000_PERIPHERAL_ID
#define CONFIG_I2C_1_BASE_ADDRESS	ATMEL_SAM_I2C_TWI_4001C000_BASE_ADDRESS
#define CONFIG_I2C_1_NAME		ATMEL_SAM_I2C_TWI_4001C000_LABEL
#define CONFIG_I2C_1_BITRATE		ATMEL_SAM_I2C_TWI_4001C000_CLOCK_FREQUENCY
#define CONFIG_I2C_1_IRQ		ATMEL_SAM_I2C_TWI_4001C000_IRQ_0
#define CONFIG_I2C_1_IRQ_PRI		ATMEL_SAM_I2C_TWI_4001C000_IRQ_0_PRIORITY
#define CONFIG_I2C_1_PERIPHERAL_ID	ATMEL_SAM_I2C_TWI_4001C000_PERIPHERAL_ID

#define CONFIG_UART_SAM_PORT_0_NAME	ATMEL_SAM_UART_400E0600_LABEL
#define CONFIG_UART_SAM_PORT_0_BAUD_RATE	ATMEL_SAM_UART_400E0600_CURRENT_SPEED
#define CONFIG_UART_SAM_PORT_1_NAME	ATMEL_SAM_UART_400E0800_LABEL
#define CONFIG_UART_SAM_PORT_1_BAUD_RATE	ATMEL_SAM_UART_400E0800_CURRENT_SPEED
#define CONFIG_USART_SAM_PORT_0_NAME	ATMEL_SAM_USART_40024000_LABEL
#define CONFIG_USART_SAM_PORT_0_BAUD_RATE	ATMEL_SAM_USART_40024000_CURRENT_SPEED
#define CONFIG_USART_SAM_PORT_1_NAME	ATMEL_SAM_USART_40028000_LABEL
#define CONFIG_USART_SAM_PORT_1_BAUD_RATE	ATMEL_SAM_USART_40028000_CURRENT_SPEED
