arm: nxp: mcux uart: Get IRQ info from DTS

Move to using the generated IRQ defines from the DTS instead of soc.h.
This change also fixes a minor bug in that the error irq priority wasn't
getting correctly picked up from device tree.

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
This commit is contained in:
Kumar Gala 2017-07-25 11:40:41 -05:00 committed by Maureen Helm
commit 0ef91e4d07
4 changed files with 84 additions and 60 deletions

View file

@ -76,14 +76,6 @@ extern "C" {
#define IRQ_I2S0_TX 28
#define IRQ_I2S0_RX 29
#define IRQ_RESERVED0 30
#define IRQ_UART0_STATUS 31
#define IRQ_UART0_ERROR 32
#define IRQ_UART1_STATUS 33
#define IRQ_UART1_ERROR 34
#define IRQ_UART2_STATUS 35
#define IRQ_UART2_ERROR 36
#define IRQ_UART3_STATUS 37
#define IRQ_UART3_ERROR 38
#define IRQ_ADC0 39
#define IRQ_CMP0 40
#define IRQ_CMP1 41
@ -111,10 +103,6 @@ extern "C" {
#define IRQ_GPIO_PORTE 63
#define IRQ_SOFTWARE 64
#define IRQ_SPI2 65
#define IRQ_UART4_STATUS 66
#define IRQ_UART4_ERROR 67
#define IRQ_RESERVED2 68 /* IRQ_UART5_STATUS - UART5 not implemented */
#define IRQ_RESERVED3 69 /* IRQ_UART5_ERROR - UART5 not implemented */
#define IRQ_CMP2 70
#define IRQ_FTM3 71
#define IRQ_DAC1 72

View file

@ -293,17 +293,17 @@ DEVICE_AND_API_INIT(uart_0, CONFIG_UART_MCUX_0_NAME,
#ifdef CONFIG_UART_INTERRUPT_DRIVEN
static void uart_mcux_config_func_0(struct device *dev)
{
IRQ_CONNECT(IRQ_UART0_STATUS, CONFIG_UART_MCUX_0_IRQ_PRI,
IRQ_CONNECT(CONFIG_UART_MCUX_0_IRQ_STATUS,
CONFIG_UART_MCUX_0_IRQ_STATUS_PRI,
uart_mcux_isr, DEVICE_GET(uart_0), 0);
irq_enable(IRQ_UART0_STATUS);
irq_enable(CONFIG_UART_MCUX_0_IRQ_STATUS);
#ifdef IRQ_UART0_ERROR
IRQ_CONNECT(IRQ_UART0_ERROR, CONFIG_UART_MCUX_0_IRQ_PRI,
IRQ_CONNECT(CONFIG_UART_MCUX_0_IRQ_ERROR,
CONFIG_UART_MCUX_0_IRQ_ERROR_PRI,
uart_mcux_isr, DEVICE_GET(uart_0), 0);
irq_enable(IRQ_UART0_ERROR);
#endif
irq_enable(CONFIG_UART_MCUX_0_IRQ_ERROR);
}
#endif
@ -335,17 +335,17 @@ DEVICE_AND_API_INIT(uart_1, CONFIG_UART_MCUX_1_NAME,
#ifdef CONFIG_UART_INTERRUPT_DRIVEN
static void uart_mcux_config_func_1(struct device *dev)
{
IRQ_CONNECT(IRQ_UART1_STATUS, CONFIG_UART_MCUX_1_IRQ_PRI,
IRQ_CONNECT(CONFIG_UART_MCUX_1_IRQ_STATUS,
CONFIG_UART_MCUX_1_IRQ_STATUS_PRI,
uart_mcux_isr, DEVICE_GET(uart_1), 0);
irq_enable(IRQ_UART1_STATUS);
irq_enable(CONFIG_UART_MCUX_1_IRQ_STATUS);
#ifdef IRQ_UART1_ERROR
IRQ_CONNECT(IRQ_UART1_ERROR, CONFIG_UART_MCUX_1_IRQ_PRI,
IRQ_CONNECT(CONFIG_UART_MCUX_1_IRQ_ERROR,
CONFIG_UART_MCUX_1_IRQ_ERROR_PRI,
uart_mcux_isr, DEVICE_GET(uart_1), 0);
irq_enable(IRQ_UART1_ERROR);
#endif
irq_enable(CONFIG_UART_MCUX_1_IRQ_ERROR);
}
#endif
@ -377,17 +377,17 @@ DEVICE_AND_API_INIT(uart_2, CONFIG_UART_MCUX_2_NAME,
#ifdef CONFIG_UART_INTERRUPT_DRIVEN
static void uart_mcux_config_func_2(struct device *dev)
{
IRQ_CONNECT(IRQ_UART2_STATUS, CONFIG_UART_MCUX_2_IRQ_PRI,
IRQ_CONNECT(CONFIG_UART_MCUX_2_IRQ_STATUS,
CONFIG_UART_MCUX_2_IRQ_STATUS_PRI,
uart_mcux_isr, DEVICE_GET(uart_2), 0);
irq_enable(IRQ_UART2_STATUS);
irq_enable(CONFIG_UART_MCUX_2_IRQ_STATUS);
#ifdef IRQ_UART2_ERROR
IRQ_CONNECT(IRQ_UART2_ERROR, CONFIG_UART_MCUX_2_IRQ_PRI,
IRQ_CONNECT(CONFIG_UART_MCUX_2_IRQ_ERROR,
CONFIG_UART_MCUX_2_IRQ_ERROR_PRI,
uart_mcux_isr, DEVICE_GET(uart_2), 0);
irq_enable(IRQ_UART2_ERROR);
#endif
irq_enable(CONFIG_UART_MCUX_2_IRQ_ERROR);
}
#endif
@ -419,17 +419,17 @@ DEVICE_AND_API_INIT(uart_3, CONFIG_UART_MCUX_3_NAME,
#ifdef CONFIG_UART_INTERRUPT_DRIVEN
static void uart_mcux_config_func_3(struct device *dev)
{
IRQ_CONNECT(IRQ_UART3_STATUS, CONFIG_UART_MCUX_3_IRQ_PRI,
IRQ_CONNECT(CONFIG_UART_MCUX_3_IRQ_STATUS,
CONFIG_UART_MCUX_3_IRQ_STATUS_PRI,
uart_mcux_isr, DEVICE_GET(uart_3), 0);
irq_enable(IRQ_UART3_STATUS);
irq_enable(CONFIG_UART_MCUX_3_IRQ_STATUS);
#ifdef IRQ_UART3_ERROR
IRQ_CONNECT(IRQ_UART3_ERROR, CONFIG_UART_MCUX_3_IRQ_PRI,
IRQ_CONNECT(CONFIG_UART_MCUX_3_IRQ_ERROR,
CONFIG_UART_MCUX_3_IRQ_ERROR_PRI,
uart_mcux_isr, DEVICE_GET(uart_3), 0);
irq_enable(IRQ_UART3_ERROR);
#endif
irq_enable(CONFIG_UART_MCUX_3_IRQ_ERROR);
}
#endif
@ -461,17 +461,17 @@ DEVICE_AND_API_INIT(uart_4, CONFIG_UART_MCUX_4_NAME,
#ifdef CONFIG_UART_INTERRUPT_DRIVEN
static void uart_mcux_config_func_4(struct device *dev)
{
IRQ_CONNECT(IRQ_UART4_STATUS, CONFIG_UART_MCUX_4_IRQ_PRI,
IRQ_CONNECT(CONFIG_UART_MCUX_4_IRQ_STATUS,
CONFIG_UART_MCUX_4_IRQ_STATUS_PRI,
uart_mcux_isr, DEVICE_GET(uart_4), 0);
irq_enable(IRQ_UART4_STATUS);
irq_enable(CONFIG_UART_MCUX_4_IRQ_STATUS);
#ifdef IRQ_UART4_ERROR
IRQ_CONNECT(IRQ_UART4_ERROR, CONFIG_UART_MCUX_4_IRQ_PRI,
IRQ_CONNECT(CONFIG_UART_MCUX_4_IRQ_ERROR,
CONFIG_UART_MCUX_4_IRQ_ERROR_PRI,
uart_mcux_isr, DEVICE_GET(uart_4), 0);
irq_enable(IRQ_UART4_ERROR);
#endif
irq_enable(CONFIG_UART_MCUX_4_IRQ_ERROR);
}
#endif
@ -503,17 +503,17 @@ DEVICE_AND_API_INIT(uart_5, CONFIG_UART_MCUX_5_NAME,
#ifdef CONFIG_UART_INTERRUPT_DRIVEN
static void uart_mcux_config_func_5(struct device *dev)
{
IRQ_CONNECT(IRQ_UART5_STATUS, CONFIG_UART_MCUX_5_IRQ_PRI,
IRQ_CONNECT(CONFIG_UART_MCUX_5_IRQ_STATUS,
CONFIG_UART_MCUX_5_IRQ_STATUS_PRI,
uart_mcux_isr, DEVICE_GET(uart_5), 0);
irq_enable(IRQ_UART5_STATUS);
irq_enable(CONFIG_UART_MCUX_5_IRQ_STATUS);
#ifdef IRQ_UART5_ERROR
IRQ_CONNECT(IRQ_UART5_ERROR, CONFIG_UART_MCUX_5_IRQ_PRI,
IRQ_CONNECT(CONFIG_UART_MCUX_5_IRQ_ERROR,
CONFIG_UART_MCUX_5_IRQ_ERROR_PRI,
uart_mcux_isr, DEVICE_GET(uart_5), 0);
irq_enable(IRQ_UART5_ERROR);
#endif
irq_enable(CONFIG_UART_MCUX_5_IRQ_ERROR);
}
#endif

View file

@ -1,28 +1,46 @@
#define CONFIG_NUM_IRQ_PRIO_BITS ARM_V7M_NVIC_E000E100_ARM_NUM_IRQ_PRIORITY_BITS
#define CONFIG_UART_MCUX_0_BAUD_RATE NXP_KINETIS_UART_4006A000_CURRENT_SPEED
#define CONFIG_UART_MCUX_0_IRQ_PRI NXP_KINETIS_UART_4006A000_IRQ_0_PRIORITY
#define CONFIG_UART_MCUX_0_NAME NXP_KINETIS_UART_4006A000_LABEL
#define CONFIG_UART_MCUX_0_IRQ_ERROR NXP_KINETIS_UART_4006A000_IRQ_ERROR
#define CONFIG_UART_MCUX_0_IRQ_ERROR_PRI NXP_KINETIS_UART_4006A000_IRQ_ERROR_PRIORITY
#define CONFIG_UART_MCUX_0_IRQ_STATUS NXP_KINETIS_UART_4006A000_IRQ_STATUS
#define CONFIG_UART_MCUX_0_IRQ_STATUS_PRI NXP_KINETIS_UART_4006A000_IRQ_STATUS_PRIORITY
#define CONFIG_UART_MCUX_1_BAUD_RATE NXP_KINETIS_UART_4006B000_CURRENT_SPEED
#define CONFIG_UART_MCUX_1_IRQ_PRI NXP_KINETIS_UART_4006B000_IRQ_0_PRIORITY
#define CONFIG_UART_MCUX_1_NAME NXP_KINETIS_UART_4006B000_LABEL
#define CONFIG_UART_MCUX_1_IRQ_ERROR NXP_KINETIS_UART_4006B000_IRQ_ERROR
#define CONFIG_UART_MCUX_1_IRQ_ERROR_PRI NXP_KINETIS_UART_4006B000_IRQ_ERROR_PRIORITY
#define CONFIG_UART_MCUX_1_IRQ_STATUS NXP_KINETIS_UART_4006B000_IRQ_STATUS
#define CONFIG_UART_MCUX_1_IRQ_STATUS_PRI NXP_KINETIS_UART_4006B000_IRQ_STATUS_PRIORITY
#define CONFIG_UART_MCUX_2_BAUD_RATE NXP_KINETIS_UART_4006C000_CURRENT_SPEED
#define CONFIG_UART_MCUX_2_IRQ_PRI NXP_KINETIS_UART_4006C000_IRQ_0_PRIORITY
#define CONFIG_UART_MCUX_2_NAME NXP_KINETIS_UART_4006C000_LABEL
#define CONFIG_UART_MCUX_2_IRQ_ERROR NXP_KINETIS_UART_4006C000_IRQ_ERROR
#define CONFIG_UART_MCUX_2_IRQ_ERROR_PRI NXP_KINETIS_UART_4006C000_IRQ_ERROR_PRIORITY
#define CONFIG_UART_MCUX_2_IRQ_STATUS NXP_KINETIS_UART_4006C000_IRQ_STATUS
#define CONFIG_UART_MCUX_2_IRQ_STATUS_PRI NXP_KINETIS_UART_4006C000_IRQ_STATUS_PRIORITY
#define CONFIG_UART_MCUX_3_BAUD_RATE NXP_KINETIS_UART_4006D000_CURRENT_SPEED
#define CONFIG_UART_MCUX_3_IRQ_PRI NXP_KINETIS_UART_4006D000_IRQ_0_PRIORITY
#define CONFIG_UART_MCUX_3_NAME NXP_KINETIS_UART_4006D000_LABEL
#define CONFIG_UART_MCUX_3_IRQ_ERROR NXP_KINETIS_UART_4006D000_IRQ_ERROR
#define CONFIG_UART_MCUX_3_IRQ_ERROR_PRI NXP_KINETIS_UART_4006D000_IRQ_ERROR_PRIORITY
#define CONFIG_UART_MCUX_3_IRQ_STATUS NXP_KINETIS_UART_4006D000_IRQ_STATUS
#define CONFIG_UART_MCUX_3_IRQ_STATUS_PRI NXP_KINETIS_UART_4006D000_IRQ_STATUS_PRIORITY
#define CONFIG_UART_MCUX_4_BAUD_RATE NXP_KINETIS_UART_400EA000_CURRENT_SPEED
#define CONFIG_UART_MCUX_4_IRQ_PRI NXP_KINETIS_UART_400EA000_IRQ_0_PRIORITY
#define CONFIG_UART_MCUX_4_NAME NXP_KINETIS_UART_400EA000_LABEL
#define CONFIG_UART_MCUX_4_IRQ_ERROR NXP_KINETIS_UART_400EA000_IRQ_ERROR
#define CONFIG_UART_MCUX_4_IRQ_ERROR_PRI NXP_KINETIS_UART_400EA000_IRQ_ERROR_PRIORITY
#define CONFIG_UART_MCUX_4_IRQ_STATUS NXP_KINETIS_UART_400EA000_IRQ_STATUS
#define CONFIG_UART_MCUX_4_IRQ_STATUS_PRI NXP_KINETIS_UART_400EA000_IRQ_STATUS_PRIORITY
#define CONFIG_UART_MCUX_5_BAUD_RATE NXP_KINETIS_UART_400EB000_CURRENT_SPEED
#define CONFIG_UART_MCUX_5_IRQ_PRI NXP_KINETIS_UART_400EB000_IRQ_0_PRIORITY
#define CONFIG_UART_MCUX_5_NAME NXP_KINETIS_UART_400EB000_LABEL
#define CONFIG_UART_MCUX_5_IRQ_ERROR NXP_KINETIS_UART_4006A000_IRQ_ERROR
#define CONFIG_UART_MCUX_5_IRQ_ERROR_PRI NXP_KINETIS_UART_4006A000_IRQ_ERROR_PRIORITY
#define CONFIG_UART_MCUX_5_IRQ_STATUS NXP_KINETIS_UART_4006A000_IRQ_STATUS
#define CONFIG_UART_MCUX_5_IRQ_STATUS_PRI NXP_KINETIS_UART_4006A000_IRQ_STATUS_PRIORITY
#define CONFIG_ADC_0_BASE_ADDRESS NXP_KINETIS_ADC16_4003B000_BASE_ADDRESS_0
#define CONFIG_ADC_0_IRQ NXP_KINETIS_ADC16_4003B000_IRQ_0

View file

@ -1,28 +1,46 @@
#define CONFIG_NUM_IRQ_PRIO_BITS ARM_V7M_NVIC_E000E100_ARM_NUM_IRQ_PRIORITY_BITS
#define CONFIG_UART_MCUX_0_BAUD_RATE NXP_KINETIS_UART_4006A000_CURRENT_SPEED
#define CONFIG_UART_MCUX_0_IRQ_PRI NXP_KINETIS_UART_4006A000_IRQ_0_PRIORITY
#define CONFIG_UART_MCUX_0_NAME NXP_KINETIS_UART_4006A000_LABEL
#define CONFIG_UART_MCUX_0_IRQ_ERROR NXP_KINETIS_UART_4006A000_IRQ_ERROR
#define CONFIG_UART_MCUX_0_IRQ_ERROR_PRI NXP_KINETIS_UART_4006A000_IRQ_ERROR_PRIORITY
#define CONFIG_UART_MCUX_0_IRQ_STATUS NXP_KINETIS_UART_4006A000_IRQ_STATUS
#define CONFIG_UART_MCUX_0_IRQ_STATUS_PRI NXP_KINETIS_UART_4006A000_IRQ_STATUS_PRIORITY
#define CONFIG_UART_MCUX_1_BAUD_RATE NXP_KINETIS_UART_4006B000_CURRENT_SPEED
#define CONFIG_UART_MCUX_1_IRQ_PRI NXP_KINETIS_UART_4006B000_IRQ_0_PRIORITY
#define CONFIG_UART_MCUX_1_NAME NXP_KINETIS_UART_4006B000_LABEL
#define CONFIG_UART_MCUX_1_IRQ_ERROR NXP_KINETIS_UART_4006B000_IRQ_ERROR
#define CONFIG_UART_MCUX_1_IRQ_ERROR_PRI NXP_KINETIS_UART_4006B000_IRQ_ERROR_PRIORITY
#define CONFIG_UART_MCUX_1_IRQ_STATUS NXP_KINETIS_UART_4006B000_IRQ_STATUS
#define CONFIG_UART_MCUX_1_IRQ_STATUS_PRI NXP_KINETIS_UART_4006B000_IRQ_STATUS_PRIORITY
#define CONFIG_UART_MCUX_2_BAUD_RATE NXP_KINETIS_UART_4006C000_CURRENT_SPEED
#define CONFIG_UART_MCUX_2_IRQ_PRI NXP_KINETIS_UART_4006C000_IRQ_0_PRIORITY
#define CONFIG_UART_MCUX_2_NAME NXP_KINETIS_UART_4006C000_LABEL
#define CONFIG_UART_MCUX_2_IRQ_ERROR NXP_KINETIS_UART_4006C000_IRQ_ERROR
#define CONFIG_UART_MCUX_2_IRQ_ERROR_PRI NXP_KINETIS_UART_4006C000_IRQ_ERROR_PRIORITY
#define CONFIG_UART_MCUX_2_IRQ_STATUS NXP_KINETIS_UART_4006C000_IRQ_STATUS
#define CONFIG_UART_MCUX_2_IRQ_STATUS_PRI NXP_KINETIS_UART_4006C000_IRQ_STATUS_PRIORITY
#define CONFIG_UART_MCUX_3_BAUD_RATE NXP_KINETIS_UART_4006D000_CURRENT_SPEED
#define CONFIG_UART_MCUX_3_IRQ_PRI NXP_KINETIS_UART_4006D000_IRQ_0_PRIORITY
#define CONFIG_UART_MCUX_3_NAME NXP_KINETIS_UART_4006D000_LABEL
#define CONFIG_UART_MCUX_3_IRQ_ERROR NXP_KINETIS_UART_4006D000_IRQ_ERROR
#define CONFIG_UART_MCUX_3_IRQ_ERROR_PRI NXP_KINETIS_UART_4006D000_IRQ_ERROR_PRIORITY
#define CONFIG_UART_MCUX_3_IRQ_STATUS NXP_KINETIS_UART_4006D000_IRQ_STATUS
#define CONFIG_UART_MCUX_3_IRQ_STATUS_PRI NXP_KINETIS_UART_4006D000_IRQ_STATUS_PRIORITY
#define CONFIG_UART_MCUX_4_BAUD_RATE NXP_KINETIS_UART_400EA000_CURRENT_SPEED
#define CONFIG_UART_MCUX_4_IRQ_PRI NXP_KINETIS_UART_400EA000_IRQ_0_PRIORITY
#define CONFIG_UART_MCUX_4_NAME NXP_KINETIS_UART_400EA000_LABEL
#define CONFIG_UART_MCUX_4_IRQ_ERROR NXP_KINETIS_UART_400EA000_IRQ_ERROR
#define CONFIG_UART_MCUX_4_IRQ_ERROR_PRI NXP_KINETIS_UART_400EA000_IRQ_ERROR_PRIORITY
#define CONFIG_UART_MCUX_4_IRQ_STATUS NXP_KINETIS_UART_400EA000_IRQ_STATUS
#define CONFIG_UART_MCUX_4_IRQ_STATUS_PRI NXP_KINETIS_UART_400EA000_IRQ_STATUS_PRIORITY
#define CONFIG_UART_MCUX_5_BAUD_RATE NXP_KINETIS_UART_400EB000_CURRENT_SPEED
#define CONFIG_UART_MCUX_5_IRQ_PRI NXP_KINETIS_UART_400EB000_IRQ_0_PRIORITY
#define CONFIG_UART_MCUX_5_NAME NXP_KINETIS_UART_400EB000_LABEL
#define CONFIG_UART_MCUX_5_IRQ_ERROR NXP_KINETIS_UART_4006A000_IRQ_ERROR
#define CONFIG_UART_MCUX_5_IRQ_ERROR_PRI NXP_KINETIS_UART_4006A000_IRQ_ERROR_PRIORITY
#define CONFIG_UART_MCUX_5_IRQ_STATUS NXP_KINETIS_UART_4006A000_IRQ_STATUS
#define CONFIG_UART_MCUX_5_IRQ_STATUS_PRI NXP_KINETIS_UART_4006A000_IRQ_STATUS_PRIORITY
#define CONFIG_ADC_0_BASE_ADDRESS NXP_KINETIS_ADC16_4003B000_BASE_ADDRESS_0
#define CONFIG_ADC_0_IRQ NXP_KINETIS_ADC16_4003B000_IRQ_0