diff --git a/drivers/spi/Kconfig.stm32 b/drivers/spi/Kconfig.stm32 index be1b0928932..02f652ef6d5 100644 --- a/drivers/spi/Kconfig.stm32 +++ b/drivers/spi/Kconfig.stm32 @@ -12,13 +12,6 @@ menuconfig SPI_STM32 if SPI_STM32 -config SPI_STM32_HAS_FIFO - bool - depends on (SOC_SERIES_STM32L4X || SOC_SERIES_STM32F0X || \ - SOC_SERIES_STM32F3X || SOC_SERIES_STM32F7X || SOC_SERIES_STM32MP1X || \ - SOC_SERIES_STM32WBX || SOC_SERIES_STM32G4X) - default y - config SPI_STM32_INTERRUPT bool "STM32 MCU SPI Interrupt Support" help diff --git a/drivers/spi/spi_ll_stm32.c b/drivers/spi/spi_ll_stm32.c index 268e3450666..5b16df8d5b6 100644 --- a/drivers/spi/spi_ll_stm32.c +++ b/drivers/spi/spi_ll_stm32.c @@ -195,7 +195,7 @@ static void spi_stm32_complete(struct spi_stm32_data *data, SPI_TypeDef *spi, spi_context_cs_control(&data->ctx, false); -#if defined(CONFIG_SPI_STM32_HAS_FIFO) +#if defined(DT_COMPAT_ST_STM32_SPI_FIFO) /* Flush RX buffer */ while (ll_func_rx_is_not_empty(spi)) { (void) LL_SPI_ReceiveData8(spi); @@ -342,7 +342,7 @@ static int spi_stm32_configure(struct device *dev, LL_SPI_SetDataWidth(spi, LL_SPI_DATAWIDTH_16BIT); } -#if defined(CONFIG_SPI_STM32_HAS_FIFO) +#if defined(DT_COMPAT_ST_STM32_SPI_FIFO) ll_func_set_fifo_threshold_8bit(spi); #endif @@ -407,7 +407,7 @@ static int transceive(struct device *dev, /* Set buffers info */ spi_context_buffers_setup(&data->ctx, tx_bufs, rx_bufs, 1); -#if defined(CONFIG_SPI_STM32_HAS_FIFO) +#if defined(DT_COMPAT_ST_STM32_SPI_FIFO) /* Flush RX buffer */ while (ll_func_rx_is_not_empty(spi)) { (void) LL_SPI_ReceiveData8(spi); diff --git a/drivers/spi/spi_ll_stm32.h b/drivers/spi/spi_ll_stm32.h index 38fa32588e3..acc7b2054c2 100644 --- a/drivers/spi/spi_ll_stm32.h +++ b/drivers/spi/spi_ll_stm32.h @@ -116,7 +116,7 @@ static inline u32_t ll_func_spi_is_busy(SPI_TypeDef *spi) /* Header is compiled first, this switch avoid the compiler to lookup for * non-existing LL FIFO functions for SoC without SPI FIFO */ -#ifdef CONFIG_SPI_STM32_HAS_FIFO +#ifdef DT_COMPAT_ST_STM32_SPI_FIFO static inline void ll_func_set_fifo_threshold_8bit(SPI_TypeDef *spi) { #ifdef CONFIG_SOC_SERIES_STM32MP1X diff --git a/dts/arm/st/f0/stm32f0.dtsi b/dts/arm/st/f0/stm32f0.dtsi index 1c06abee08a..451d680f53e 100644 --- a/dts/arm/st/f0/stm32f0.dtsi +++ b/dts/arm/st/f0/stm32f0.dtsi @@ -148,7 +148,7 @@ }; spi1: spi@40013000 { - compatible = "st,stm32-spi-fifo"; + compatible = "st,stm32-spi-fifo", "st,stm32-spi"; #address-cells = <1>; #size-cells = <0>; reg = <0x40013000 0x400>; diff --git a/dts/arm/st/f0/stm32f030X8.dtsi b/dts/arm/st/f0/stm32f030X8.dtsi index 34a95ae010a..5de6e2678e6 100644 --- a/dts/arm/st/f0/stm32f030X8.dtsi +++ b/dts/arm/st/f0/stm32f030X8.dtsi @@ -19,7 +19,7 @@ }; spi2: spi@40003800 { - compatible = "st,stm32-spi-fifo"; + compatible = "st,stm32-spi-fifo", "st,stm32-spi"; #address-cells = <1>; #size-cells = <0>; reg = <0x40003800 0x400>; diff --git a/dts/arm/st/f0/stm32f030Xc.dtsi b/dts/arm/st/f0/stm32f030Xc.dtsi index 16ec45aeeaf..454f0819094 100644 --- a/dts/arm/st/f0/stm32f030Xc.dtsi +++ b/dts/arm/st/f0/stm32f030Xc.dtsi @@ -10,7 +10,7 @@ / { soc { spi2: spi@40003800 { - compatible = "st,stm32-spi-fifo"; + compatible = "st,stm32-spi-fifo", "st,stm32-spi"; #address-cells = <1>; #size-cells = <0>; reg = <0x40003800 0x400>; diff --git a/dts/arm/st/f0/stm32f070.dtsi b/dts/arm/st/f0/stm32f070.dtsi index 83d6d527480..497cc9caaed 100644 --- a/dts/arm/st/f0/stm32f070.dtsi +++ b/dts/arm/st/f0/stm32f070.dtsi @@ -15,7 +15,7 @@ }; spi2: spi@40003800 { - compatible = "st,stm32-spi-fifo"; + compatible = "st,stm32-spi-fifo", "st,stm32-spi"; #address-cells = <1>; #size-cells = <0>; reg = <0x40003800 0x400>; diff --git a/dts/arm/st/f0/stm32f072.dtsi b/dts/arm/st/f0/stm32f072.dtsi index f73ff78a68d..28371ef25c4 100644 --- a/dts/arm/st/f0/stm32f072.dtsi +++ b/dts/arm/st/f0/stm32f072.dtsi @@ -43,7 +43,7 @@ }; spi2: spi@40003800 { - compatible = "st,stm32-spi-fifo"; + compatible = "st,stm32-spi-fifo", "st,stm32-spi"; #address-cells = <1>; #size-cells = <0>; reg = <0x40003800 0x400>; diff --git a/dts/arm/st/f0/stm32f091.dtsi b/dts/arm/st/f0/stm32f091.dtsi index ed96dc9338c..919f861f2f9 100644 --- a/dts/arm/st/f0/stm32f091.dtsi +++ b/dts/arm/st/f0/stm32f091.dtsi @@ -31,7 +31,7 @@ }; spi2: spi@40003800 { - compatible = "st,stm32-spi-fifo"; + compatible = "st,stm32-spi-fifo", "st,stm32-spi"; #address-cells = <1>; #size-cells = <0>; reg = <0x40003800 0x400>; diff --git a/dts/arm/st/f3/stm32f3.dtsi b/dts/arm/st/f3/stm32f3.dtsi index 103df3b6550..a87f5807595 100644 --- a/dts/arm/st/f3/stm32f3.dtsi +++ b/dts/arm/st/f3/stm32f3.dtsi @@ -161,7 +161,7 @@ }; spi1: spi@40013000 { - compatible = "st,stm32-spi-fifo"; + compatible = "st,stm32-spi-fifo", "st,stm32-spi"; #address-cells = <1>; #size-cells = <0>; reg = <0x40013000 0x400>; diff --git a/dts/arm/st/f3/stm32f302.dtsi b/dts/arm/st/f3/stm32f302.dtsi index 80ae0a1102f..9365d2bacea 100644 --- a/dts/arm/st/f3/stm32f302.dtsi +++ b/dts/arm/st/f3/stm32f302.dtsi @@ -40,7 +40,7 @@ }; spi2: spi@40003800 { - compatible = "st,stm32-spi-fifo"; + compatible = "st,stm32-spi-fifo", "st,stm32-spi"; #address-cells = <1>; #size-cells = <0>; reg = <0x40003800 0x400>; @@ -51,7 +51,7 @@ }; spi3: spi@40003c00 { - compatible = "st,stm32-spi-fifo"; + compatible = "st,stm32-spi-fifo", "st,stm32-spi"; #address-cells = <1>; #size-cells = <0>; reg = <0X40003c00 0x400>; diff --git a/dts/arm/st/f3/stm32f303.dtsi b/dts/arm/st/f3/stm32f303.dtsi index 5b825120e67..f26732c8fb0 100644 --- a/dts/arm/st/f3/stm32f303.dtsi +++ b/dts/arm/st/f3/stm32f303.dtsi @@ -27,7 +27,7 @@ }; spi2: spi@40003800 { - compatible = "st,stm32-spi-fifo"; + compatible = "st,stm32-spi-fifo", "st,stm32-spi"; #address-cells = <1>; #size-cells = <0>; reg = <0x40003800 0x400>; diff --git a/dts/arm/st/f3/stm32f373.dtsi b/dts/arm/st/f3/stm32f373.dtsi index cee21375ad6..c329d42317d 100644 --- a/dts/arm/st/f3/stm32f373.dtsi +++ b/dts/arm/st/f3/stm32f373.dtsi @@ -33,7 +33,7 @@ }; spi2: spi@40003800 { - compatible = "st,stm32-spi-fifo"; + compatible = "st,stm32-spi-fifo", "st,stm32-spi"; #address-cells = <1>; #size-cells = <0>; reg = <0x40003800 0x400>; @@ -44,7 +44,7 @@ }; spi3: spi@40003c00 { - compatible = "st,stm32-spi-fifo"; + compatible = "st,stm32-spi-fifo", "st,stm32-spi"; #address-cells = <1>; #size-cells = <0>; reg = <0x40003c00 0x400>; diff --git a/dts/arm/st/g4/stm32g4.dtsi b/dts/arm/st/g4/stm32g4.dtsi index bf04c700805..921c1dd8a78 100644 --- a/dts/arm/st/g4/stm32g4.dtsi +++ b/dts/arm/st/g4/stm32g4.dtsi @@ -223,7 +223,7 @@ }; spi1: spi@40013000 { - compatible = "st,stm32-spi-fifo"; + compatible = "st,stm32-spi-fifo", "st,stm32-spi"; #address-cells = <1>; #size-cells = <0>; reg = <0x40013000 0x400>; @@ -234,7 +234,7 @@ }; spi2: spi@40003800 { - compatible = "st,stm32-spi-fifo"; + compatible = "st,stm32-spi-fifo", "st,stm32-spi"; #address-cells = <1>; #size-cells = <0>; reg = <0x40003800 0x400>; @@ -245,7 +245,7 @@ }; spi3: spi@40003c00 { - compatible = "st,stm32-spi-fifo"; + compatible = "st,stm32-spi-fifo", "st,stm32-spi"; #address-cells = <1>; #size-cells = <0>; reg = <0x40003c00 0x400>; diff --git a/dts/arm/st/l4/stm32l4.dtsi b/dts/arm/st/l4/stm32l4.dtsi index 422007f10a1..c871c41a0f9 100644 --- a/dts/arm/st/l4/stm32l4.dtsi +++ b/dts/arm/st/l4/stm32l4.dtsi @@ -166,7 +166,7 @@ }; spi1: spi@40013000 { - compatible = "st,stm32-spi-fifo"; + compatible = "st,stm32-spi-fifo", "st,stm32-spi"; #address-cells = <1>; #size-cells = <0>; reg = <0x40013000 0x400>; diff --git a/dts/arm/st/l4/stm32l433.dtsi b/dts/arm/st/l4/stm32l433.dtsi index 1cf67b4903b..f9567a2bbe8 100644 --- a/dts/arm/st/l4/stm32l433.dtsi +++ b/dts/arm/st/l4/stm32l433.dtsi @@ -42,7 +42,7 @@ }; spi2: spi@40003800 { - compatible = "st,stm32-spi-fifo"; + compatible = "st,stm32-spi-fifo", "st,stm32-spi"; #address-cells = <1>; #size-cells = <0>; reg = <0x40003800 0x400>; diff --git a/dts/arm/st/l4/stm32l452.dtsi b/dts/arm/st/l4/stm32l452.dtsi index 127e6f52949..68ad9beb38f 100644 --- a/dts/arm/st/l4/stm32l452.dtsi +++ b/dts/arm/st/l4/stm32l452.dtsi @@ -68,7 +68,7 @@ }; spi2: spi@40003800 { - compatible = "st,stm32-spi-fifo"; + compatible = "st,stm32-spi-fifo", "st,stm32-spi"; #address-cells = <1>; #size-cells = <0>; reg = <0x40003800 0x400>; @@ -79,7 +79,7 @@ }; spi3: spi@40003c00 { - compatible = "st,stm32-spi-fifo"; + compatible = "st,stm32-spi-fifo", "st,stm32-spi"; #address-cells = <1>; #size-cells = <0>; reg = <0x40003c00 0x400>; diff --git a/dts/arm/st/l4/stm32l471.dtsi b/dts/arm/st/l4/stm32l471.dtsi index f6fd79c129b..815f8b04978 100644 --- a/dts/arm/st/l4/stm32l471.dtsi +++ b/dts/arm/st/l4/stm32l471.dtsi @@ -88,7 +88,7 @@ }; spi2: spi@40003800 { - compatible = "st,stm32-spi-fifo"; + compatible = "st,stm32-spi-fifo", "st,stm32-spi"; #address-cells = <1>; #size-cells = <0>; reg = <0x40003800 0x400>; @@ -99,7 +99,7 @@ }; spi3: spi@40003c00 { - compatible = "st,stm32-spi-fifo"; + compatible = "st,stm32-spi-fifo", "st,stm32-spi"; #address-cells = <1>; #size-cells = <0>; reg = <0x40003c00 0x400>; diff --git a/dts/arm/st/l4/stm32l4r5.dtsi b/dts/arm/st/l4/stm32l4r5.dtsi index a3029fd6207..dfb21398ecb 100644 --- a/dts/arm/st/l4/stm32l4r5.dtsi +++ b/dts/arm/st/l4/stm32l4r5.dtsi @@ -111,7 +111,7 @@ }; spi2: spi@40003800 { - compatible = "st,stm32-spi-fifo"; + compatible = "st,stm32-spi-fifo", "st,stm32-spi"; #address-cells = <1>; #size-cells = <0>; reg = <0x40003800 0x400>; @@ -122,7 +122,7 @@ }; spi3: spi@40003c00 { - compatible = "st,stm32-spi-fifo"; + compatible = "st,stm32-spi-fifo", "st,stm32-spi"; #address-cells = <1>; #size-cells = <0>; reg = <0x40003c00 0x400>; diff --git a/dts/arm/st/mp1/stm32mp157.dtsi b/dts/arm/st/mp1/stm32mp157.dtsi index 766b6013c8a..35b6890fceb 100644 --- a/dts/arm/st/mp1/stm32mp157.dtsi +++ b/dts/arm/st/mp1/stm32mp157.dtsi @@ -158,7 +158,7 @@ }; spi1: spi@44004000 { - compatible = "st,stm32-spi-fifo"; + compatible = "st,stm32-spi-fifo", "st,stm32-spi"; reg = <0x44004000 0x400>; #address-cells = <1>; #size-cells = <0>; @@ -168,7 +168,7 @@ }; spi2: spi@4400b000 { - compatible = "st,stm32-spi-fifo"; + compatible = "st,stm32-spi-fifo", "st,stm32-spi"; reg = <0x4400b000 0x400>; #address-cells = <1>; #size-cells = <0>; @@ -178,7 +178,7 @@ }; spi3: spi@4400c000 { - compatible = "st,stm32-spi-fifo"; + compatible = "st,stm32-spi-fifo", "st,stm32-spi"; reg = <0x4400c000 0x400>; #address-cells = <1>; #size-cells = <0>; @@ -188,7 +188,7 @@ }; spi4: spi@44005000 { - compatible = "st,stm32-spi-fifo"; + compatible = "st,stm32-spi-fifo", "st,stm32-spi"; reg = <0x44005000 0x400>; #address-cells = <1>; #size-cells = <0>; @@ -198,7 +198,7 @@ }; spi5: spi@44009000 { - compatible = "st,stm32-spi-fifo"; + compatible = "st,stm32-spi-fifo", "st,stm32-spi"; reg = <0x44009000 0x400>; #address-cells = <1>; #size-cells = <0>; diff --git a/dts/arm/st/wb/stm32wb.dtsi b/dts/arm/st/wb/stm32wb.dtsi index c78393076a7..96d5757c3bc 100644 --- a/dts/arm/st/wb/stm32wb.dtsi +++ b/dts/arm/st/wb/stm32wb.dtsi @@ -168,7 +168,7 @@ }; spi1: spi@40013000 { - compatible = "st,stm32-spi-fifo"; + compatible = "st,stm32-spi-fifo", "st,stm32-spi"; #address-cells = <1>; #size-cells = <0>; reg = <0x40013000 0x400>; @@ -179,7 +179,7 @@ }; spi2: spi@40003800 { - compatible = "st,stm32-spi-fifo"; + compatible = "st,stm32-spi-fifo", "st,stm32-spi"; #address-cells = <1>; #size-cells = <0>; reg = <0x40003800 0x400>;