/*
 * Copyright (c) 2018, Diego Sueiro <diego.sueiro@gmail.com>
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/* SoC level DTS fixup file */

#define CONFIG_NUM_IRQ_PRIO_BITS        ARM_V7M_NVIC_E000E100_ARM_NUM_IRQ_PRIORITY_BITS

#define CONFIG_GPIO_IMX_PORT_1_NAME            NXP_IMX_GPIO_30200000_LABEL
#define CONFIG_GPIO_IMX_PORT_1_BASE_ADDRESS    NXP_IMX_GPIO_30200000_BASE_ADDRESS
#define CONFIG_GPIO_IMX_PORT_1_IRQ_0           NXP_IMX_GPIO_30200000_IRQ_0
#define CONFIG_GPIO_IMX_PORT_1_IRQ_0_PRI       NXP_IMX_GPIO_30200000_IRQ_0_PRIORITY
#define CONFIG_GPIO_IMX_PORT_1_IRQ_1           NXP_IMX_GPIO_30200000_IRQ_1
#define CONFIG_GPIO_IMX_PORT_1_IRQ_1_PRI       NXP_IMX_GPIO_30200000_IRQ_1_PRIORITY

#define CONFIG_GPIO_IMX_PORT_2_NAME            NXP_IMX_GPIO_30210000_LABEL
#define CONFIG_GPIO_IMX_PORT_2_BASE_ADDRESS    NXP_IMX_GPIO_30210000_BASE_ADDRESS
#define CONFIG_GPIO_IMX_PORT_2_IRQ_0           NXP_IMX_GPIO_30210000_IRQ_0
#define CONFIG_GPIO_IMX_PORT_2_IRQ_0_PRI       NXP_IMX_GPIO_30210000_IRQ_0_PRIORITY
#define CONFIG_GPIO_IMX_PORT_2_IRQ_1           NXP_IMX_GPIO_30210000_IRQ_1
#define CONFIG_GPIO_IMX_PORT_2_IRQ_1_PRI       NXP_IMX_GPIO_30210000_IRQ_1_PRIORITY

#define CONFIG_GPIO_IMX_PORT_3_NAME            NXP_IMX_GPIO_30220000_LABEL
#define CONFIG_GPIO_IMX_PORT_3_BASE_ADDRESS    NXP_IMX_GPIO_30220000_BASE_ADDRESS
#define CONFIG_GPIO_IMX_PORT_3_IRQ_0           NXP_IMX_GPIO_30220000_IRQ_0
#define CONFIG_GPIO_IMX_PORT_3_IRQ_0_PRI       NXP_IMX_GPIO_30220000_IRQ_0_PRIORITY
#define CONFIG_GPIO_IMX_PORT_3_IRQ_1           NXP_IMX_GPIO_30220000_IRQ_1
#define CONFIG_GPIO_IMX_PORT_3_IRQ_1_PRI       NXP_IMX_GPIO_30220000_IRQ_1_PRIORITY

#define CONFIG_GPIO_IMX_PORT_4_NAME            NXP_IMX_GPIO_30230000_LABEL
#define CONFIG_GPIO_IMX_PORT_4_BASE_ADDRESS    NXP_IMX_GPIO_30230000_BASE_ADDRESS
#define CONFIG_GPIO_IMX_PORT_4_IRQ_0           NXP_IMX_GPIO_30230000_IRQ_0
#define CONFIG_GPIO_IMX_PORT_4_IRQ_0_PRI       NXP_IMX_GPIO_30230000_IRQ_0_PRIORITY
#define CONFIG_GPIO_IMX_PORT_4_IRQ_1           NXP_IMX_GPIO_30230000_IRQ_1
#define CONFIG_GPIO_IMX_PORT_4_IRQ_1_PRI       NXP_IMX_GPIO_30230000_IRQ_1_PRIORITY

#define CONFIG_GPIO_IMX_PORT_5_NAME            NXP_IMX_GPIO_30240000_LABEL
#define CONFIG_GPIO_IMX_PORT_5_BASE_ADDRESS    NXP_IMX_GPIO_30240000_BASE_ADDRESS
#define CONFIG_GPIO_IMX_PORT_5_IRQ_0           NXP_IMX_GPIO_30240000_IRQ_0
#define CONFIG_GPIO_IMX_PORT_5_IRQ_0_PRI       NXP_IMX_GPIO_30240000_IRQ_0_PRIORITY
#define CONFIG_GPIO_IMX_PORT_5_IRQ_1           NXP_IMX_GPIO_30240000_IRQ_1
#define CONFIG_GPIO_IMX_PORT_5_IRQ_1_PRI       NXP_IMX_GPIO_30240000_IRQ_1_PRIORITY

#define CONFIG_GPIO_IMX_PORT_6_NAME            NXP_IMX_GPIO_30250000_LABEL
#define CONFIG_GPIO_IMX_PORT_6_BASE_ADDRESS    NXP_IMX_GPIO_30250000_BASE_ADDRESS
#define CONFIG_GPIO_IMX_PORT_6_IRQ_0           NXP_IMX_GPIO_30250000_IRQ_0
#define CONFIG_GPIO_IMX_PORT_6_IRQ_0_PRI       NXP_IMX_GPIO_30250000_IRQ_0_PRIORITY
#define CONFIG_GPIO_IMX_PORT_6_IRQ_1           NXP_IMX_GPIO_30250000_IRQ_1
#define CONFIG_GPIO_IMX_PORT_6_IRQ_1_PRI       NXP_IMX_GPIO_30250000_IRQ_1_PRIORITY

#define CONFIG_GPIO_IMX_PORT_7_NAME            NXP_IMX_GPIO_30260000_LABEL
#define CONFIG_GPIO_IMX_PORT_7_BASE_ADDRESS    NXP_IMX_GPIO_30260000_BASE_ADDRESS
#define CONFIG_GPIO_IMX_PORT_7_IRQ_0           NXP_IMX_GPIO_30260000_IRQ_0
#define CONFIG_GPIO_IMX_PORT_7_IRQ_0_PRI       NXP_IMX_GPIO_30260000_IRQ_0_PRIORITY
#define CONFIG_GPIO_IMX_PORT_7_IRQ_1           NXP_IMX_GPIO_30260000_IRQ_1
#define CONFIG_GPIO_IMX_PORT_7_IRQ_1_PRI       NXP_IMX_GPIO_30260000_IRQ_1_PRIORITY


#define CONFIG_UART_IMX_UART_1_NAME         NXP_IMX_UART_30860000_LABEL
#define CONFIG_UART_IMX_UART_1_BASE_ADDRESS NXP_IMX_UART_30860000_BASE_ADDRESS
#define CONFIG_UART_IMX_UART_1_BAUD_RATE    NXP_IMX_UART_30860000_CURRENT_SPEED
#define CONFIG_UART_IMX_UART_1_IRQ_NUM      NXP_IMX_UART_30860000_IRQ_0
#define CONFIG_UART_IMX_UART_1_IRQ_PRI      NXP_IMX_UART_30860000_IRQ_0_PRIORITY
#define CONFIG_UART_IMX_UART_1_MODEM_MODE   NXP_IMX_UART_30860000_MODEM_MODE

#define CONFIG_UART_IMX_UART_2_NAME         NXP_IMX_UART_30890000_LABEL
#define CONFIG_UART_IMX_UART_2_BASE_ADDRESS NXP_IMX_UART_30890000_BASE_ADDRESS
#define CONFIG_UART_IMX_UART_2_BAUD_RATE    NXP_IMX_UART_30890000_CURRENT_SPEED
#define CONFIG_UART_IMX_UART_2_IRQ_NUM      NXP_IMX_UART_30890000_IRQ_0
#define CONFIG_UART_IMX_UART_2_IRQ_PRI      NXP_IMX_UART_30890000_IRQ_0_PRIORITY
#define CONFIG_UART_IMX_UART_2_MODEM_MODE   NXP_IMX_UART_30890000_MODEM_MODE

#define CONFIG_UART_IMX_UART_3_NAME         NXP_IMX_UART_30880000_LABEL
#define CONFIG_UART_IMX_UART_3_BASE_ADDRESS NXP_IMX_UART_30880000_BASE_ADDRESS
#define CONFIG_UART_IMX_UART_3_BAUD_RATE    NXP_IMX_UART_30880000_CURRENT_SPEED
#define CONFIG_UART_IMX_UART_3_IRQ_NUM      NXP_IMX_UART_30880000_IRQ_0
#define CONFIG_UART_IMX_UART_3_IRQ_PRI      NXP_IMX_UART_30880000_IRQ_0_PRIORITY
#define CONFIG_UART_IMX_UART_3_MODEM_MODE   NXP_IMX_UART_30880000_MODEM_MODE

#define CONFIG_UART_IMX_UART_4_NAME         NXP_IMX_UART_30A60000_LABEL
#define CONFIG_UART_IMX_UART_4_BASE_ADDRESS NXP_IMX_UART_30A60000_BASE_ADDRESS
#define CONFIG_UART_IMX_UART_4_BAUD_RATE    NXP_IMX_UART_30A60000_CURRENT_SPEED
#define CONFIG_UART_IMX_UART_4_IRQ_NUM      NXP_IMX_UART_30A60000_IRQ_0
#define CONFIG_UART_IMX_UART_4_IRQ_PRI      NXP_IMX_UART_30A60000_IRQ_0_PRIORITY
#define CONFIG_UART_IMX_UART_4_MODEM_MODE   NXP_IMX_UART_30A60000_MODEM_MODE

#define CONFIG_UART_IMX_UART_5_NAME         NXP_IMX_UART_30A70000_LABEL
#define CONFIG_UART_IMX_UART_5_BASE_ADDRESS NXP_IMX_UART_30A70000_BASE_ADDRESS
#define CONFIG_UART_IMX_UART_5_BAUD_RATE    NXP_IMX_UART_30A70000_CURRENT_SPEED
#define CONFIG_UART_IMX_UART_5_IRQ_NUM      NXP_IMX_UART_30A70000_IRQ_0
#define CONFIG_UART_IMX_UART_5_IRQ_PRI      NXP_IMX_UART_30A70000_IRQ_0_PRIORITY
#define CONFIG_UART_IMX_UART_5_MODEM_MODE   NXP_IMX_UART_30A70000_MODEM_MODE

#define CONFIG_UART_IMX_UART_6_NAME         NXP_IMX_UART_30A80000_LABEL
#define CONFIG_UART_IMX_UART_6_BASE_ADDRESS NXP_IMX_UART_30A80000_BASE_ADDRESS
#define CONFIG_UART_IMX_UART_6_BAUD_RATE    NXP_IMX_UART_30A80000_CURRENT_SPEED
#define CONFIG_UART_IMX_UART_6_IRQ_NUM      NXP_IMX_UART_30A80000_IRQ_0
#define CONFIG_UART_IMX_UART_6_IRQ_PRI      NXP_IMX_UART_30A80000_IRQ_0_PRIORITY
#define CONFIG_UART_IMX_UART_6_MODEM_MODE   NXP_IMX_UART_30A80000_MODEM_MODE

#define CONFIG_UART_IMX_UART_7_NAME         NXP_IMX_UART_30A90000_LABEL
#define CONFIG_UART_IMX_UART_7_BASE_ADDRESS NXP_IMX_UART_30A90000_BASE_ADDRESS
#define CONFIG_UART_IMX_UART_7_BAUD_RATE    NXP_IMX_UART_30A90000_CURRENT_SPEED
#define CONFIG_UART_IMX_UART_7_IRQ_NUM      NXP_IMX_UART_30A90000_IRQ_0
#define CONFIG_UART_IMX_UART_7_IRQ_PRI      NXP_IMX_UART_30A90000_IRQ_0_PRIORITY
#define CONFIG_UART_IMX_UART_7_MODEM_MODE   NXP_IMX_UART_30A90000_MODEM_MODE

/* End of SoC Level DTS fixup file */
