diff --git a/drivers/spi/spi_mcux_dspi.c b/drivers/spi/spi_mcux_dspi.c index e65d371f26d..36202052002 100644 --- a/drivers/spi/spi_mcux_dspi.c +++ b/drivers/spi/spi_mcux_dspi.c @@ -267,89 +267,45 @@ static const struct spi_driver_api spi_mcux_driver_api = { .release = spi_mcux_release, }; +#define SPI_MCUX_DSPI_DEVICE(id) \ + static void spi_mcux_config_func_##id(struct device *dev); \ + static const struct spi_mcux_config spi_mcux_config_##id = { \ + .base = \ + (SPI_Type *)DT_NXP_KINETIS_DSPI_SPI_##id##_BASE_ADDRESS,\ + .clock_name = DT_NXP_KINETIS_DSPI_SPI_##id##_CLOCK_CONTROLLER,\ + .clock_subsys = \ + (clock_control_subsys_t)DT_NXP_KINETIS_DSPI_SPI_##id##_CLOCK_NAME,\ + .irq_config_func = spi_mcux_config_func_##id, \ + }; \ + static struct spi_mcux_data spi_mcux_data_##id = { \ + SPI_CONTEXT_INIT_LOCK(spi_mcux_data_##id, ctx), \ + SPI_CONTEXT_INIT_SYNC(spi_mcux_data_##id, ctx), \ + }; \ + DEVICE_AND_API_INIT(spi_mcux_##id, \ + DT_NXP_KINETIS_DSPI_SPI_##id##_LABEL, \ + &spi_mcux_init, \ + &spi_mcux_data_##id, \ + &spi_mcux_config_##id, \ + POST_KERNEL, \ + CONFIG_KERNEL_INIT_PRIORITY_DEVICE, \ + &spi_mcux_driver_api); \ + static void spi_mcux_config_func_##id(struct device *dev) \ + { \ + IRQ_CONNECT(DT_NXP_KINETIS_DSPI_SPI_##id##_IRQ_0, \ + DT_NXP_KINETIS_DSPI_SPI_##id##_IRQ_0_PRIORITY,\ + spi_mcux_isr, DEVICE_GET(spi_mcux_##id), \ + 0); \ + irq_enable(DT_NXP_KINETIS_DSPI_SPI_##id##_IRQ_0); \ + } + #ifdef CONFIG_SPI_0 -static void spi_mcux_config_func_0(struct device *dev); - -static const struct spi_mcux_config spi_mcux_config_0 = { - .base = (SPI_Type *) DT_SPI_0_BASE_ADDRESS, - .clock_name = DT_SPI_0_CLOCK_NAME, - .clock_subsys = (clock_control_subsys_t) DT_SPI_0_CLOCK_SUBSYS, - .irq_config_func = spi_mcux_config_func_0, -}; - -static struct spi_mcux_data spi_mcux_data_0 = { - SPI_CONTEXT_INIT_LOCK(spi_mcux_data_0, ctx), - SPI_CONTEXT_INIT_SYNC(spi_mcux_data_0, ctx), -}; - -DEVICE_AND_API_INIT(spi_mcux_0, DT_SPI_0_NAME, &spi_mcux_init, - &spi_mcux_data_0, &spi_mcux_config_0, - POST_KERNEL, CONFIG_KERNEL_INIT_PRIORITY_DEVICE, - &spi_mcux_driver_api); - -static void spi_mcux_config_func_0(struct device *dev) -{ - IRQ_CONNECT(DT_SPI_0_IRQ, DT_SPI_0_IRQ_PRI, - spi_mcux_isr, DEVICE_GET(spi_mcux_0), 0); - - irq_enable(DT_SPI_0_IRQ); -} +SPI_MCUX_DSPI_DEVICE(0) #endif /* CONFIG_SPI_0 */ #ifdef CONFIG_SPI_1 -static void spi_mcux_config_func_1(struct device *dev); - -static const struct spi_mcux_config spi_mcux_config_1 = { - .base = (SPI_Type *) DT_SPI_1_BASE_ADDRESS, - .clock_name = DT_SPI_1_CLOCK_NAME, - .clock_subsys = (clock_control_subsys_t) DT_SPI_1_CLOCK_SUBSYS, - .irq_config_func = spi_mcux_config_func_1, -}; - -static struct spi_mcux_data spi_mcux_data_1 = { - SPI_CONTEXT_INIT_LOCK(spi_mcux_data_1, ctx), - SPI_CONTEXT_INIT_SYNC(spi_mcux_data_1, ctx), -}; - -DEVICE_AND_API_INIT(spi_mcux_1, DT_SPI_1_NAME, &spi_mcux_init, - &spi_mcux_data_1, &spi_mcux_config_1, - POST_KERNEL, CONFIG_KERNEL_INIT_PRIORITY_DEVICE, - &spi_mcux_driver_api); - -static void spi_mcux_config_func_1(struct device *dev) -{ - IRQ_CONNECT(DT_SPI_1_IRQ, DT_SPI_1_IRQ_PRI, - spi_mcux_isr, DEVICE_GET(spi_mcux_1), 0); - - irq_enable(DT_SPI_1_IRQ); -} +SPI_MCUX_DSPI_DEVICE(1) #endif /* CONFIG_SPI_1 */ #ifdef CONFIG_SPI_2 -static void spi_mcux_config_func_2(struct device *dev); - -static const struct spi_mcux_config spi_mcux_config_2 = { - .base = (SPI_Type *) DT_SPI_2_BASE_ADDRESS, - .clock_name = DT_SPI_2_CLOCK_NAME, - .clock_subsys = (clock_control_subsys_t) DT_SPI_2_CLOCK_SUBSYS, - .irq_config_func = spi_mcux_config_func_2, -}; - -static struct spi_mcux_data spi_mcux_data_2 = { - SPI_CONTEXT_INIT_LOCK(spi_mcux_data_2, ctx), - SPI_CONTEXT_INIT_SYNC(spi_mcux_data_2, ctx), -}; - -DEVICE_AND_API_INIT(spi_mcux_2, DT_SPI_2_NAME, &spi_mcux_init, - &spi_mcux_data_2, &spi_mcux_config_2, - POST_KERNEL, CONFIG_KERNEL_INIT_PRIORITY_DEVICE, - &spi_mcux_driver_api); - -static void spi_mcux_config_func_2(struct device *dev) -{ - IRQ_CONNECT(DT_SPI_2_IRQ, DT_SPI_2_IRQ_PRI, - spi_mcux_isr, DEVICE_GET(spi_mcux_2), 0); - - irq_enable(DT_SPI_2_IRQ); -} +SPI_MCUX_DSPI_DEVICE(2) #endif /* CONFIG_SPI_2 */ diff --git a/soc/arm/nxp_kinetis/k2x/dts_fixup.h b/soc/arm/nxp_kinetis/k2x/dts_fixup.h index 59c5c8d3a41..de958cfcf4f 100644 --- a/soc/arm/nxp_kinetis/k2x/dts_fixup.h +++ b/soc/arm/nxp_kinetis/k2x/dts_fixup.h @@ -24,20 +24,6 @@ #define DT_WDT_0_CLOCK_NAME DT_NXP_KINETIS_WDOG_40052000_CLOCK_CONTROLLER #define DT_WDT_0_CLOCK_SUBSYS DT_NXP_KINETIS_WDOG_40052000_CLOCK_NAME -#define DT_SPI_0_NAME DT_NXP_KINETIS_DSPI_4002C000_LABEL -#define DT_SPI_0_BASE_ADDRESS DT_NXP_KINETIS_DSPI_4002C000_BASE_ADDRESS -#define DT_SPI_0_IRQ DT_NXP_KINETIS_DSPI_4002C000_IRQ_0 -#define DT_SPI_0_IRQ_PRI DT_NXP_KINETIS_DSPI_4002C000_IRQ_0_PRIORITY -#define DT_SPI_0_CLOCK_NAME DT_NXP_KINETIS_DSPI_4002C000_CLOCK_CONTROLLER -#define DT_SPI_0_CLOCK_SUBSYS DT_NXP_KINETIS_DSPI_4002C000_CLOCK_NAME - -#define DT_SPI_1_NAME DT_NXP_KINETIS_DSPI_4002D000_LABEL -#define DT_SPI_1_BASE_ADDRESS DT_NXP_KINETIS_DSPI_4002D000_BASE_ADDRESS -#define DT_SPI_1_IRQ DT_NXP_KINETIS_DSPI_4002D000_IRQ_0 -#define DT_SPI_1_IRQ_PRI DT_NXP_KINETIS_DSPI_4002D000_IRQ_0_PRIORITY -#define DT_SPI_1_CLOCK_NAME DT_NXP_KINETIS_DSPI_4002D000_CLOCK_CONTROLLER -#define DT_SPI_1_CLOCK_SUBSYS DT_NXP_KINETIS_DSPI_4002D000_CLOCK_NAME - #define DT_USBD_KINETIS_NAME DT_NXP_KINETIS_USBD_40072000_LABEL #define DT_USBD_KINETIS_IRQ DT_NXP_KINETIS_USBD_40072000_IRQ_USB_OTG #define DT_USBD_KINETIS_IRQ_PRI DT_NXP_KINETIS_USBD_40072000_IRQ_USB_OTG_PRIORITY diff --git a/soc/arm/nxp_kinetis/k6x/dts_fixup.h b/soc/arm/nxp_kinetis/k6x/dts_fixup.h index 8b07616b6ca..1eb0b97132e 100644 --- a/soc/arm/nxp_kinetis/k6x/dts_fixup.h +++ b/soc/arm/nxp_kinetis/k6x/dts_fixup.h @@ -27,27 +27,6 @@ #define DT_WDT_0_CLOCK_NAME DT_NXP_KINETIS_WDOG_40052000_CLOCK_CONTROLLER #define DT_WDT_0_CLOCK_SUBSYS DT_NXP_KINETIS_WDOG_40052000_CLOCK_NAME -#define DT_SPI_0_NAME DT_NXP_KINETIS_DSPI_4002C000_LABEL -#define DT_SPI_0_BASE_ADDRESS DT_NXP_KINETIS_DSPI_4002C000_BASE_ADDRESS -#define DT_SPI_0_IRQ DT_NXP_KINETIS_DSPI_4002C000_IRQ_0 -#define DT_SPI_0_IRQ_PRI DT_NXP_KINETIS_DSPI_4002C000_IRQ_0_PRIORITY -#define DT_SPI_0_CLOCK_NAME DT_NXP_KINETIS_DSPI_4002C000_CLOCK_CONTROLLER -#define DT_SPI_0_CLOCK_SUBSYS DT_NXP_KINETIS_DSPI_4002C000_CLOCK_NAME - -#define DT_SPI_1_NAME DT_NXP_KINETIS_DSPI_4002D000_LABEL -#define DT_SPI_1_BASE_ADDRESS DT_NXP_KINETIS_DSPI_4002D000_BASE_ADDRESS -#define DT_SPI_1_IRQ DT_NXP_KINETIS_DSPI_4002D000_IRQ_0 -#define DT_SPI_1_IRQ_PRI DT_NXP_KINETIS_DSPI_4002D000_IRQ_0_PRIORITY -#define DT_SPI_1_CLOCK_NAME DT_NXP_KINETIS_DSPI_4002D000_CLOCK_CONTROLLER -#define DT_SPI_1_CLOCK_SUBSYS DT_NXP_KINETIS_DSPI_4002D000_CLOCK_NAME - -#define DT_SPI_2_NAME DT_NXP_KINETIS_DSPI_400AC000_LABEL -#define DT_SPI_2_BASE_ADDRESS DT_NXP_KINETIS_DSPI_400AC000_BASE_ADDRESS -#define DT_SPI_2_IRQ DT_NXP_KINETIS_DSPI_400AC000_IRQ_0 -#define DT_SPI_2_IRQ_PRI DT_NXP_KINETIS_DSPI_400AC000_IRQ_0_PRIORITY -#define DT_SPI_2_CLOCK_NAME DT_NXP_KINETIS_DSPI_400AC000_CLOCK_CONTROLLER -#define DT_SPI_2_CLOCK_SUBSYS DT_NXP_KINETIS_DSPI_400AC000_CLOCK_NAME - #define DT_USBD_KINETIS_NAME DT_NXP_KINETIS_USBD_40072000_LABEL #define DT_USBD_KINETIS_IRQ DT_NXP_KINETIS_USBD_40072000_IRQ_USB_OTG #define DT_USBD_KINETIS_IRQ_PRI DT_NXP_KINETIS_USBD_40072000_IRQ_USB_OTG_PRIORITY diff --git a/soc/arm/nxp_kinetis/k8x/dts_fixup.h b/soc/arm/nxp_kinetis/k8x/dts_fixup.h index 36e0af50efe..1263909b674 100644 --- a/soc/arm/nxp_kinetis/k8x/dts_fixup.h +++ b/soc/arm/nxp_kinetis/k8x/dts_fixup.h @@ -37,27 +37,6 @@ #define DT_RTC_MCUX_0_IRQ DT_NXP_KINETIS_RTC_4003D000_IRQ_ALARM #define DT_RTC_MCUX_0_IRQ_PRI DT_NXP_KINETIS_RTC_4003D000_IRQ_ALARM_PRIORITY -#define DT_SPI_0_NAME DT_NXP_KINETIS_DSPI_4002C000_LABEL -#define DT_SPI_0_BASE_ADDRESS DT_NXP_KINETIS_DSPI_4002C000_BASE_ADDRESS -#define DT_SPI_0_IRQ DT_NXP_KINETIS_DSPI_4002C000_IRQ_0 -#define DT_SPI_0_IRQ_PRI DT_NXP_KINETIS_DSPI_4002C000_IRQ_0_PRIORITY -#define DT_SPI_0_CLOCK_NAME DT_NXP_KINETIS_DSPI_4002C000_CLOCK_CONTROLLER -#define DT_SPI_0_CLOCK_SUBSYS DT_NXP_KINETIS_DSPI_4002C000_CLOCK_NAME - -#define DT_SPI_1_NAME DT_NXP_KINETIS_DSPI_4002D000_LABEL -#define DT_SPI_1_BASE_ADDRESS DT_NXP_KINETIS_DSPI_4002D000_BASE_ADDRESS -#define DT_SPI_1_IRQ DT_NXP_KINETIS_DSPI_4002D000_IRQ_0 -#define DT_SPI_1_IRQ_PRI DT_NXP_KINETIS_DSPI_4002D000_IRQ_0_PRIORITY -#define DT_SPI_1_CLOCK_NAME DT_NXP_KINETIS_DSPI_4002D000_CLOCK_CONTROLLER -#define DT_SPI_1_CLOCK_SUBSYS DT_NXP_KINETIS_DSPI_4002D000_CLOCK_NAME - -#define DT_SPI_2_NAME DT_NXP_KINETIS_DSPI_400AC000_LABEL -#define DT_SPI_2_BASE_ADDRESS DT_NXP_KINETIS_DSPI_400AC000_BASE_ADDRESS -#define DT_SPI_2_IRQ DT_NXP_KINETIS_DSPI_400AC000_IRQ_0 -#define DT_SPI_2_IRQ_PRI DT_NXP_KINETIS_DSPI_400AC000_IRQ_0_PRIORITY -#define DT_SPI_2_CLOCK_NAME DT_NXP_KINETIS_DSPI_400AC000_CLOCK_CONTROLLER -#define DT_SPI_2_CLOCK_SUBSYS DT_NXP_KINETIS_DSPI_400AC000_CLOCK_NAME - #define DT_USBD_KINETIS_NAME DT_NXP_KINETIS_USBD_40072000_LABEL #define DT_USBD_KINETIS_IRQ DT_NXP_KINETIS_USBD_40072000_IRQ_USB_OTG #define DT_USBD_KINETIS_IRQ_PRI DT_NXP_KINETIS_USBD_40072000_IRQ_USB_OTG_PRIORITY diff --git a/soc/arm/nxp_kinetis/kv5x/dts_fixup.h b/soc/arm/nxp_kinetis/kv5x/dts_fixup.h index bc914f99f07..80c05ab5491 100644 --- a/soc/arm/nxp_kinetis/kv5x/dts_fixup.h +++ b/soc/arm/nxp_kinetis/kv5x/dts_fixup.h @@ -22,24 +22,3 @@ #define DT_ADC_0_IRQ DT_NXP_KINETIS_ADC16_4003B000_IRQ_0 #define DT_ADC_0_IRQ_PRI DT_NXP_KINETIS_ADC16_4003B000_IRQ_0_PRIORITY #define DT_ADC_0_NAME DT_NXP_KINETIS_ADC16_4003B000_LABEL - -#define DT_SPI_0_NAME DT_NXP_KINETIS_DSPI_4002C000_LABEL -#define DT_SPI_0_BASE_ADDRESS DT_NXP_KINETIS_DSPI_4002C000_BASE_ADDRESS -#define DT_SPI_0_IRQ DT_NXP_KINETIS_DSPI_4002C000_IRQ_0 -#define DT_SPI_0_IRQ_PRI DT_NXP_KINETIS_DSPI_4002C000_IRQ_0_PRIORITY -#define DT_SPI_0_CLOCK_NAME DT_NXP_KINETIS_DSPI_4002C000_CLOCK_CONTROLLER -#define DT_SPI_0_CLOCK_SUBSYS DT_NXP_KINETIS_DSPI_4002C000_CLOCK_NAME - -#define DT_SPI_1_NAME DT_NXP_KINETIS_DSPI_4002D000_LABEL -#define DT_SPI_1_BASE_ADDRESS DT_NXP_KINETIS_DSPI_4002D000_BASE_ADDRESS -#define DT_SPI_1_IRQ DT_NXP_KINETIS_DSPI_4002D000_IRQ_0 -#define DT_SPI_1_IRQ_PRI DT_NXP_KINETIS_DSPI_4002D000_IRQ_0_PRIORITY -#define DT_SPI_1_CLOCK_NAME DT_NXP_KINETIS_DSPI_4002D000_CLOCK_CONTROLLER -#define DT_SPI_1_CLOCK_SUBSYS DT_NXP_KINETIS_DSPI_4002D000_CLOCK_NAME - -#define DT_SPI_2_NAME DT_NXP_KINETIS_DSPI_400AC000_LABEL -#define DT_SPI_2_BASE_ADDRESS DT_NXP_KINETIS_DSPI_400AC000_BASE_ADDRESS -#define DT_SPI_2_IRQ DT_NXP_KINETIS_DSPI_400AC000_IRQ_0 -#define DT_SPI_2_IRQ_PRI DT_NXP_KINETIS_DSPI_400AC000_IRQ_0_PRIORITY -#define DT_SPI_2_CLOCK_NAME DT_NXP_KINETIS_DSPI_400AC000_CLOCK_CONTROLLER -#define DT_SPI_2_CLOCK_SUBSYS DT_NXP_KINETIS_DSPI_400AC000_CLOCK_NAME diff --git a/soc/arm/nxp_kinetis/kwx/dts_fixup.h b/soc/arm/nxp_kinetis/kwx/dts_fixup.h index 9d23f2d9e4a..6ea14377304 100644 --- a/soc/arm/nxp_kinetis/kwx/dts_fixup.h +++ b/soc/arm/nxp_kinetis/kwx/dts_fixup.h @@ -29,20 +29,6 @@ #define DT_WDT_0_CLOCK_NAME DT_NXP_KINETIS_WDOG_40052000_CLOCK_CONTROLLER #define DT_WDT_0_CLOCK_SUBSYS DT_NXP_KINETIS_WDOG_40052000_CLOCK_NAME -#define DT_SPI_0_NAME DT_NXP_KINETIS_DSPI_4002C000_LABEL -#define DT_SPI_0_BASE_ADDRESS DT_NXP_KINETIS_DSPI_4002C000_BASE_ADDRESS -#define DT_SPI_0_IRQ DT_NXP_KINETIS_DSPI_4002C000_IRQ_0 -#define DT_SPI_0_IRQ_PRI DT_NXP_KINETIS_DSPI_4002C000_IRQ_0_PRIORITY -#define DT_SPI_0_CLOCK_NAME DT_NXP_KINETIS_DSPI_4002C000_CLOCK_CONTROLLER -#define DT_SPI_0_CLOCK_SUBSYS DT_NXP_KINETIS_DSPI_4002C000_CLOCK_NAME - -#define DT_SPI_1_NAME DT_NXP_KINETIS_DSPI_4002D000_LABEL -#define DT_SPI_1_BASE_ADDRESS DT_NXP_KINETIS_DSPI_4002D000_BASE_ADDRESS -#define DT_SPI_1_IRQ DT_NXP_KINETIS_DSPI_4002D000_IRQ_0 -#define DT_SPI_1_IRQ_PRI DT_NXP_KINETIS_DSPI_4002D000_IRQ_0_PRIORITY -#define DT_SPI_1_CLOCK_NAME DT_NXP_KINETIS_DSPI_4002D000_CLOCK_CONTROLLER -#define DT_SPI_1_CLOCK_SUBSYS DT_NXP_KINETIS_DSPI_4002D000_CLOCK_NAME - #define DT_USBD_KINETIS_NAME DT_NXP_KINETIS_USBD_40072000_LABEL #define DT_USBD_KINETIS_IRQ DT_NXP_KINETIS_USBD_40072000_IRQ_USB_OTG #define DT_USBD_KINETIS_IRQ_PRI DT_NXP_KINETIS_USBD_40072000_IRQ_USB_OTG_PRIORITY @@ -62,20 +48,6 @@ #define DT_FLASH_DEV_BASE_ADDRESS DT_NXP_KINETIS_FTFA_40020000_BASE_ADDRESS #define DT_FLASH_DEV_NAME DT_NXP_KINETIS_FTFA_40020000_LABEL -#define DT_SPI_0_NAME DT_NXP_KINETIS_DSPI_4002C000_LABEL -#define DT_SPI_0_BASE_ADDRESS DT_NXP_KINETIS_DSPI_4002C000_BASE_ADDRESS -#define DT_SPI_0_IRQ DT_NXP_KINETIS_DSPI_4002C000_IRQ_0 -#define DT_SPI_0_IRQ_PRI DT_NXP_KINETIS_DSPI_4002C000_IRQ_0_PRIORITY -#define DT_SPI_0_CLOCK_NAME DT_NXP_KINETIS_DSPI_4002C000_CLOCK_CONTROLLER -#define DT_SPI_0_CLOCK_SUBSYS DT_NXP_KINETIS_DSPI_4002C000_CLOCK_NAME - -#define DT_SPI_1_NAME DT_NXP_KINETIS_DSPI_4002D000_LABEL -#define DT_SPI_1_BASE_ADDRESS DT_NXP_KINETIS_DSPI_4002D000_BASE_ADDRESS -#define DT_SPI_1_IRQ DT_NXP_KINETIS_DSPI_4002D000_IRQ_0 -#define DT_SPI_1_IRQ_PRI DT_NXP_KINETIS_DSPI_4002D000_IRQ_0_PRIORITY -#define DT_SPI_1_CLOCK_NAME DT_NXP_KINETIS_DSPI_4002D000_CLOCK_CONTROLLER -#define DT_SPI_1_CLOCK_SUBSYS DT_NXP_KINETIS_DSPI_4002D000_CLOCK_NAME - #define DT_ENTROPY_MCUX_TRNG_BASE_ADDRESS DT_NXP_KINETIS_TRNG_40029000_BASE_ADDRESS #define DT_ENTROPY_MCUX_TRNG_IRQ DT_NXP_KINETIS_TRNG_40029000_IRQ_0 #define DT_ENTROPY_MCUX_TRNG_IRQ_PRI DT_NXP_KINETIS_TRNG_40029000_IRQ_0_PRIORITY