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

/* SoC level DTS fixup file */

#define DT_NUM_IRQ_PRIO_BITS	    DT_ARM_V7M_NVIC_E000E100_ARM_NUM_IRQ_PRIORITY_BITS

#define DT_GPIO_IMX_PORT_1_NAME		   DT_NXP_IMX_GPIO_30200000_LABEL
#define DT_GPIO_IMX_PORT_1_NGPIOS		   DT_NXP_IMX_GPIO_30200000_NGPIOS
#define DT_GPIO_IMX_PORT_1_BASE_ADDRESS    DT_NXP_IMX_GPIO_30200000_BASE_ADDRESS
#define DT_GPIO_IMX_PORT_1_IRQ_0	   DT_NXP_IMX_GPIO_30200000_IRQ_0
#define DT_GPIO_IMX_PORT_1_IRQ_0_PRI	   DT_NXP_IMX_GPIO_30200000_IRQ_0_PRIORITY
#define DT_GPIO_IMX_PORT_1_IRQ_1	   DT_NXP_IMX_GPIO_30200000_IRQ_1
#define DT_GPIO_IMX_PORT_1_IRQ_1_PRI	   DT_NXP_IMX_GPIO_30200000_IRQ_1_PRIORITY

#define DT_GPIO_IMX_PORT_2_NAME		   DT_NXP_IMX_GPIO_30210000_LABEL
#define DT_GPIO_IMX_PORT_2_NGPIOS		   DT_NXP_IMX_GPIO_30210000_NGPIOS
#define DT_GPIO_IMX_PORT_2_BASE_ADDRESS    DT_NXP_IMX_GPIO_30210000_BASE_ADDRESS
#define DT_GPIO_IMX_PORT_2_IRQ_0	   DT_NXP_IMX_GPIO_30210000_IRQ_0
#define DT_GPIO_IMX_PORT_2_IRQ_0_PRI	   DT_NXP_IMX_GPIO_30210000_IRQ_0_PRIORITY
#define DT_GPIO_IMX_PORT_2_IRQ_1	   DT_NXP_IMX_GPIO_30210000_IRQ_1
#define DT_GPIO_IMX_PORT_2_IRQ_1_PRI	   DT_NXP_IMX_GPIO_30210000_IRQ_1_PRIORITY

#define DT_GPIO_IMX_PORT_3_NAME		   DT_NXP_IMX_GPIO_30220000_LABEL
#define DT_GPIO_IMX_PORT_3_NGPIOS		   DT_NXP_IMX_GPIO_30220000_NGPIOS
#define DT_GPIO_IMX_PORT_3_BASE_ADDRESS    DT_NXP_IMX_GPIO_30220000_BASE_ADDRESS
#define DT_GPIO_IMX_PORT_3_IRQ_0	   DT_NXP_IMX_GPIO_30220000_IRQ_0
#define DT_GPIO_IMX_PORT_3_IRQ_0_PRI	   DT_NXP_IMX_GPIO_30220000_IRQ_0_PRIORITY
#define DT_GPIO_IMX_PORT_3_IRQ_1	   DT_NXP_IMX_GPIO_30220000_IRQ_1
#define DT_GPIO_IMX_PORT_3_IRQ_1_PRI	   DT_NXP_IMX_GPIO_30220000_IRQ_1_PRIORITY

#define DT_GPIO_IMX_PORT_4_NAME		   DT_NXP_IMX_GPIO_30230000_LABEL
#define DT_GPIO_IMX_PORT_4_NGPIOS		   DT_NXP_IMX_GPIO_30230000_NGPIOS
#define DT_GPIO_IMX_PORT_4_BASE_ADDRESS    DT_NXP_IMX_GPIO_30230000_BASE_ADDRESS
#define DT_GPIO_IMX_PORT_4_IRQ_0	   DT_NXP_IMX_GPIO_30230000_IRQ_0
#define DT_GPIO_IMX_PORT_4_IRQ_0_PRI	   DT_NXP_IMX_GPIO_30230000_IRQ_0_PRIORITY
#define DT_GPIO_IMX_PORT_4_IRQ_1	   DT_NXP_IMX_GPIO_30230000_IRQ_1
#define DT_GPIO_IMX_PORT_4_IRQ_1_PRI	   DT_NXP_IMX_GPIO_30230000_IRQ_1_PRIORITY

#define DT_GPIO_IMX_PORT_5_NAME		   DT_NXP_IMX_GPIO_30240000_LABEL
#define DT_GPIO_IMX_PORT_5_NGPIOS		   DT_NXP_IMX_GPIO_30240000_NGPIOS
#define DT_GPIO_IMX_PORT_5_BASE_ADDRESS    DT_NXP_IMX_GPIO_30240000_BASE_ADDRESS
#define DT_GPIO_IMX_PORT_5_IRQ_0	   DT_NXP_IMX_GPIO_30240000_IRQ_0
#define DT_GPIO_IMX_PORT_5_IRQ_0_PRI	   DT_NXP_IMX_GPIO_30240000_IRQ_0_PRIORITY
#define DT_GPIO_IMX_PORT_5_IRQ_1	   DT_NXP_IMX_GPIO_30240000_IRQ_1
#define DT_GPIO_IMX_PORT_5_IRQ_1_PRI	   DT_NXP_IMX_GPIO_30240000_IRQ_1_PRIORITY

#define DT_GPIO_IMX_PORT_6_NAME		   DT_NXP_IMX_GPIO_30250000_LABEL
#define DT_GPIO_IMX_PORT_6_NGPIOS		   DT_NXP_IMX_GPIO_30250000_NGPIOS
#define DT_GPIO_IMX_PORT_6_BASE_ADDRESS    DT_NXP_IMX_GPIO_30250000_BASE_ADDRESS
#define DT_GPIO_IMX_PORT_6_IRQ_0	   DT_NXP_IMX_GPIO_30250000_IRQ_0
#define DT_GPIO_IMX_PORT_6_IRQ_0_PRI	   DT_NXP_IMX_GPIO_30250000_IRQ_0_PRIORITY
#define DT_GPIO_IMX_PORT_6_IRQ_1	   DT_NXP_IMX_GPIO_30250000_IRQ_1
#define DT_GPIO_IMX_PORT_6_IRQ_1_PRI	   DT_NXP_IMX_GPIO_30250000_IRQ_1_PRIORITY

#define DT_GPIO_IMX_PORT_7_NAME		   DT_NXP_IMX_GPIO_30260000_LABEL
#define DT_GPIO_IMX_PORT_7_NGPIOS		   DT_NXP_IMX_GPIO_30260000_NGPIOS
#define DT_GPIO_IMX_PORT_7_BASE_ADDRESS    DT_NXP_IMX_GPIO_30260000_BASE_ADDRESS
#define DT_GPIO_IMX_PORT_7_IRQ_0	   DT_NXP_IMX_GPIO_30260000_IRQ_0
#define DT_GPIO_IMX_PORT_7_IRQ_0_PRI	   DT_NXP_IMX_GPIO_30260000_IRQ_0_PRIORITY
#define DT_GPIO_IMX_PORT_7_IRQ_1	   DT_NXP_IMX_GPIO_30260000_IRQ_1
#define DT_GPIO_IMX_PORT_7_IRQ_1_PRI	   DT_NXP_IMX_GPIO_30260000_IRQ_1_PRIORITY


#define DT_UART_IMX_UART_1_NAME		DT_NXP_IMX_UART_30860000_LABEL
#define DT_UART_IMX_UART_1_BASE_ADDRESS DT_NXP_IMX_UART_30860000_BASE_ADDRESS
#define DT_UART_IMX_UART_1_BAUD_RATE	DT_NXP_IMX_UART_30860000_CURRENT_SPEED
#define DT_UART_IMX_UART_1_IRQ_NUM	DT_NXP_IMX_UART_30860000_IRQ_0
#define DT_UART_IMX_UART_1_IRQ_PRI	DT_NXP_IMX_UART_30860000_IRQ_0_PRIORITY
#define DT_UART_IMX_UART_1_MODEM_MODE	DT_NXP_IMX_UART_30860000_MODEM_MODE

#define DT_UART_IMX_UART_2_NAME		DT_NXP_IMX_UART_30890000_LABEL
#define DT_UART_IMX_UART_2_BASE_ADDRESS DT_NXP_IMX_UART_30890000_BASE_ADDRESS
#define DT_UART_IMX_UART_2_BAUD_RATE	DT_NXP_IMX_UART_30890000_CURRENT_SPEED
#define DT_UART_IMX_UART_2_IRQ_NUM	DT_NXP_IMX_UART_30890000_IRQ_0
#define DT_UART_IMX_UART_2_IRQ_PRI	DT_NXP_IMX_UART_30890000_IRQ_0_PRIORITY
#define DT_UART_IMX_UART_2_MODEM_MODE	DT_NXP_IMX_UART_30890000_MODEM_MODE

#define DT_UART_IMX_UART_3_NAME		DT_NXP_IMX_UART_30880000_LABEL
#define DT_UART_IMX_UART_3_BASE_ADDRESS DT_NXP_IMX_UART_30880000_BASE_ADDRESS
#define DT_UART_IMX_UART_3_BAUD_RATE	DT_NXP_IMX_UART_30880000_CURRENT_SPEED
#define DT_UART_IMX_UART_3_IRQ_NUM	DT_NXP_IMX_UART_30880000_IRQ_0
#define DT_UART_IMX_UART_3_IRQ_PRI	DT_NXP_IMX_UART_30880000_IRQ_0_PRIORITY
#define DT_UART_IMX_UART_3_MODEM_MODE	DT_NXP_IMX_UART_30880000_MODEM_MODE

#define DT_UART_IMX_UART_4_NAME		DT_NXP_IMX_UART_30A60000_LABEL
#define DT_UART_IMX_UART_4_BASE_ADDRESS DT_NXP_IMX_UART_30A60000_BASE_ADDRESS
#define DT_UART_IMX_UART_4_BAUD_RATE	DT_NXP_IMX_UART_30A60000_CURRENT_SPEED
#define DT_UART_IMX_UART_4_IRQ_NUM	DT_NXP_IMX_UART_30A60000_IRQ_0
#define DT_UART_IMX_UART_4_IRQ_PRI	DT_NXP_IMX_UART_30A60000_IRQ_0_PRIORITY
#define DT_UART_IMX_UART_4_MODEM_MODE	DT_NXP_IMX_UART_30A60000_MODEM_MODE

#define DT_UART_IMX_UART_5_NAME		DT_NXP_IMX_UART_30A70000_LABEL
#define DT_UART_IMX_UART_5_BASE_ADDRESS DT_NXP_IMX_UART_30A70000_BASE_ADDRESS
#define DT_UART_IMX_UART_5_BAUD_RATE	DT_NXP_IMX_UART_30A70000_CURRENT_SPEED
#define DT_UART_IMX_UART_5_IRQ_NUM	DT_NXP_IMX_UART_30A70000_IRQ_0
#define DT_UART_IMX_UART_5_IRQ_PRI	DT_NXP_IMX_UART_30A70000_IRQ_0_PRIORITY
#define DT_UART_IMX_UART_5_MODEM_MODE	DT_NXP_IMX_UART_30A70000_MODEM_MODE

#define DT_UART_IMX_UART_6_NAME		DT_NXP_IMX_UART_30A80000_LABEL
#define DT_UART_IMX_UART_6_BASE_ADDRESS DT_NXP_IMX_UART_30A80000_BASE_ADDRESS
#define DT_UART_IMX_UART_6_BAUD_RATE	DT_NXP_IMX_UART_30A80000_CURRENT_SPEED
#define DT_UART_IMX_UART_6_IRQ_NUM	DT_NXP_IMX_UART_30A80000_IRQ_0
#define DT_UART_IMX_UART_6_IRQ_PRI	DT_NXP_IMX_UART_30A80000_IRQ_0_PRIORITY
#define DT_UART_IMX_UART_6_MODEM_MODE	DT_NXP_IMX_UART_30A80000_MODEM_MODE

#define DT_UART_IMX_UART_7_NAME		DT_NXP_IMX_UART_30A90000_LABEL
#define DT_UART_IMX_UART_7_BASE_ADDRESS DT_NXP_IMX_UART_30A90000_BASE_ADDRESS
#define DT_UART_IMX_UART_7_BAUD_RATE	DT_NXP_IMX_UART_30A90000_CURRENT_SPEED
#define DT_UART_IMX_UART_7_IRQ_NUM	DT_NXP_IMX_UART_30A90000_IRQ_0
#define DT_UART_IMX_UART_7_IRQ_PRI	DT_NXP_IMX_UART_30A90000_IRQ_0_PRIORITY
#define DT_UART_IMX_UART_7_MODEM_MODE	DT_NXP_IMX_UART_30A90000_MODEM_MODE

#define DT_IPM_IMX_MU_B_BASE_ADDRESS	DT_NXP_IMX_MU_30AB0000_BASE_ADDRESS
#define DT_IPM_IMX_MU_B_IRQ		DT_NXP_IMX_MU_30AB0000_IRQ_0
#define DT_IPM_IMX_MU_B_IRQ_PRI		DT_NXP_IMX_MU_30AB0000_IRQ_0_PRIORITY
#define DT_IPM_IMX_MU_B_NAME		DT_NXP_IMX_MU_30AB0000_LABEL

/* End of SoC Level DTS fixup file */
