diff --git a/doc/releases/migration-guide-4.3.rst b/doc/releases/migration-guide-4.3.rst index dd1d52fd25f8f..00a529067cda0 100644 --- a/doc/releases/migration-guide-4.3.rst +++ b/doc/releases/migration-guide-4.3.rst @@ -81,6 +81,17 @@ Phy clock-reference. The selection directly depends on the value on OTGHSSEL (OTG_HS PHY kernel clock source selection) located in the RCC_CCIPR2 register. +SPI +=== + +* The macros :c:macro:`SPI_CS_CONTROL_INIT` :c:macro:`SPI_CS_CONTROL_INIT_INST`, + :c:macro:`SPI_CONFIG_DT`, :c:macro:`SPI_CONFIG_DT_INST`, :c:macro:`SPI_DT_SPEC_GET`, + and :c:macro:`SPI_DT_SPEC_INST_GET` have been changed so that they do not need to be + provided a delay parameter anymore. This is because the timing parameters of a SPI peripheral + chip select should now be specified in DT with the + ``spi-cs-setup-delay-ns`` and ``spi-cs-hold-delay-ns`` properties. + (:github:`87427`). + Sensors ======= diff --git a/doc/releases/release-notes-4.3.rst b/doc/releases/release-notes-4.3.rst index 2e157b25d62f9..90bae2a48646b 100644 --- a/doc/releases/release-notes-4.3.rst +++ b/doc/releases/release-notes-4.3.rst @@ -62,6 +62,10 @@ Deprecated APIs and options =========================== * :dtcompatible:`maxim,ds3231` is deprecated in favor of :dtcompatible:`maxim,ds3231-rtc`. +* Providing a third agument to :c:macro:`SPI_CONFIG_DT`, :c:macro:`SPI_CONFIG_DT_INST`, + :c:macro:`SPI_DT_SPEC_GET`, :c:macro:`SPI_DT_SPEC_INST_GET` is deprecated. Providing a + second argument to :c:macro:`SPI_CS_CONTROL_INIT` is deprecated. Use new DT properties + ``spi-cs-setup-delay-ns`` and ``spi-cs-hold-delay-ns`` to specify delay instead. * :c:enum:`bt_hci_bus` was deprecated as it was not used. :c:macro:`BT_DT_HCI_BUS_GET` should be used instead. diff --git a/drivers/adc/adc_ad405x.c b/drivers/adc/adc_ad405x.c index d311aebeaaf62..14852df6cc3d3 100644 --- a/drivers/adc/adc_ad405x.c +++ b/drivers/adc/adc_ad405x.c @@ -1328,7 +1328,7 @@ static DEVICE_API(adc, ad405x_api_funcs) = { #define AD405X_SPI_CFG SPI_WORD_SET(8) | SPI_TRANSFER_MSB #define AD405X_RTIO_DEFINE(inst) \ - SPI_DT_IODEV_DEFINE(ad405x_iodev_##inst, DT_DRV_INST(inst), AD405X_SPI_CFG, 0U); \ + SPI_DT_IODEV_DEFINE(ad405x_iodev_##inst, DT_DRV_INST(inst), AD405X_SPI_CFG); \ RTIO_DEFINE(ad405x_rtio_ctx_##inst, 16, 16); #define DT_INST_AD405X(inst, t) DT_INST(inst, adi_ad##t##_adc) @@ -1357,7 +1357,7 @@ static DEVICE_API(adc, ad405x_api_funcs) = { ()))) \ }; \ static const struct adc_ad405x_config ad##t##_config_##n = { \ - .bus = {.spi = SPI_DT_SPEC_GET(DT_INST_AD405X(n, t), AD405X_SPI_CFG, 0)}, \ + .bus = {.spi = SPI_DT_SPEC_GET(DT_INST_AD405X(n, t), AD405X_SPI_CFG)}, \ .conversion = GPIO_DT_SPEC_GET_BY_IDX(DT_INST_AD405X(n, t), \ conversion_gpios, 0), \ IF_ENABLED(CONFIG_AD405X_TRIGGER, (AD405X_GPIO(t, n))) \ diff --git a/drivers/adc/adc_ad4114.c b/drivers/adc/adc_ad4114.c index 7623b22761b14..4114f825f93b4 100644 --- a/drivers/adc/adc_ad4114.c +++ b/drivers/adc/adc_ad4114.c @@ -440,7 +440,7 @@ static DEVICE_API(adc, adc_ad4114_api) = { #define ADC_AD4114_DEVICE(inst) \ static struct adc_ad4114_data adc_ad4114_data_##inst; \ static const struct adc_ad4114_config adc_ad4114_config_##inst = { \ - .spi = SPI_DT_SPEC_INST_GET(inst, SPI_WORD_SET(8), 0), \ + .spi = SPI_DT_SPEC_INST_GET(inst, SPI_WORD_SET(8)), \ .resolution = AD4114_ADC_RESOLUTION, \ .map_input = DT_INST_PROP(inst, map_inputs), \ }; \ diff --git a/drivers/adc/adc_ad4130.c b/drivers/adc/adc_ad4130.c index eef671d61f2b6..190b804b5d981 100644 --- a/drivers/adc/adc_ad4130.c +++ b/drivers/adc/adc_ad4130.c @@ -1051,8 +1051,7 @@ static DEVICE_API(adc, adc_ad4130_driver_api) = { #define AD4130_ADC_INIT(inst) \ static const struct ad4130_config ad4130_config_##inst = { \ .bus = SPI_DT_SPEC_GET(DT_INST(inst, adi_ad4130_adc), \ - SPI_OP_MODE_MASTER | SPI_WORD_SET(8) | SPI_TRANSFER_MSB, \ - 1), \ + SPI_OP_MODE_MASTER | SPI_WORD_SET(8) | SPI_TRANSFER_MSB), \ .resolution = AD4130_ADC_RESOLUTION, \ .bipolar = DT_INST_PROP_OR(inst, bipolar, 1), \ .int_ref = DT_INST_PROP_OR(inst, internal_reference_value, 0), \ diff --git a/drivers/adc/adc_ad7124.c b/drivers/adc/adc_ad7124.c index ed9304603ea18..c8ed66541e092 100644 --- a/drivers/adc/adc_ad7124.c +++ b/drivers/adc/adc_ad7124.c @@ -1437,7 +1437,7 @@ static DEVICE_API(adc, adc_ad7124_api) = { static const struct adc_ad7124_config adc_ad7124_config##inst = { \ .bus = SPI_DT_SPEC_INST_GET( \ inst, \ - SPI_OP_MODE_MASTER | SPI_MODE_CPOL | SPI_MODE_CPHA | SPI_WORD_SET(8), 0), \ + SPI_OP_MODE_MASTER | SPI_MODE_CPOL | SPI_MODE_CPHA | SPI_WORD_SET(8)), \ .resolution = AD7124_RESOLUTION, \ .filter_type_mask = DT_INST_PROP(inst, filter_type_mask), \ .bipolar_mask = DT_INST_PROP(inst, bipolar_mask), \ diff --git a/drivers/adc/adc_ads131m02.c b/drivers/adc/adc_ads131m02.c index cde5aedda3658..ec480b196543f 100644 --- a/drivers/adc/adc_ads131m02.c +++ b/drivers/adc/adc_ads131m02.c @@ -721,7 +721,7 @@ static int ads131m02_init(const struct device *dev) static const struct ads131m02_config config_##n = { \ .spi = SPI_DT_SPEC_INST_GET( \ n, SPI_OP_MODE_MASTER | SPI_MODE_CPHA | \ - SPI_WORD_SET(8), 0), \ + SPI_WORD_SET(8)), \ .gpio_drdy = GPIO_DT_SPEC_INST_GET(n, drdy_gpios), \ }; \ static struct ads131m02_data data_##n; \ diff --git a/drivers/adc/adc_ads1x4s0x.c b/drivers/adc/adc_ads1x4s0x.c index c5d15d072e31f..2b813583a3b91 100644 --- a/drivers/adc/adc_ads1x4s0x.c +++ b/drivers/adc/adc_ads1x4s0x.c @@ -1576,7 +1576,7 @@ BUILD_ASSERT(CONFIG_ADC_INIT_PRIORITY > CONFIG_SPI_INIT_PRIORITY, ) \ static const struct ads1x4s0x_config config_##name##_##n = { \ .bus = SPI_DT_SPEC_INST_GET( \ - n, SPI_OP_MODE_MASTER | SPI_MODE_CPHA | SPI_WORD_SET(8), 0), \ + n, SPI_OP_MODE_MASTER | SPI_MODE_CPHA | SPI_WORD_SET(8)), \ IF_ENABLED(CONFIG_ADC_ASYNC, (.stack = thread_stack_##name##_##n,)) \ .gpio_reset = GPIO_DT_SPEC_INST_GET_OR(n, reset_gpios, {0}), \ .gpio_data_ready = GPIO_DT_SPEC_INST_GET(n, drdy_gpios), \ diff --git a/drivers/adc/adc_ads7052.c b/drivers/adc/adc_ads7052.c index c86e2de8ea4f1..88517b3737580 100644 --- a/drivers/adc/adc_ads7052.c +++ b/drivers/adc/adc_ads7052.c @@ -298,7 +298,7 @@ static DEVICE_API(adc, ads7052_api) = { #define ADC_ADS7052_INIT(n) \ \ static const struct ads7052_config ads7052_cfg_##n = { \ - .bus = SPI_DT_SPEC_INST_GET(n, ADC_ADS7052_SPI_CFG, 1U), \ + .bus = SPI_DT_SPEC_INST_GET(n, ADC_ADS7052_SPI_CFG), \ .channels = 1, \ }; \ \ diff --git a/drivers/adc/adc_lmp90xxx.c b/drivers/adc/adc_lmp90xxx.c index e2531618a0391..7397118ee7a8b 100644 --- a/drivers/adc/adc_lmp90xxx.c +++ b/drivers/adc/adc_lmp90xxx.c @@ -1065,7 +1065,7 @@ static DEVICE_API(adc, lmp90xxx_adc_api) = { }; \ static const struct lmp90xxx_config lmp##t##_config_##n = { \ .bus = SPI_DT_SPEC_GET(DT_INST_LMP90XXX(n, t), SPI_OP_MODE_MASTER | \ - SPI_TRANSFER_MSB | SPI_WORD_SET(8), 0), \ + SPI_TRANSFER_MSB | SPI_WORD_SET(8)), \ .drdyb = GPIO_DT_SPEC_GET_OR(DT_INST_LMP90XXX(n, t), drdyb_gpios, {0}), \ .rtd_current = LMP90XXX_UAMPS_TO_RTD_CUR_SEL( \ DT_PROP_OR(DT_INST_LMP90XXX(n, t), rtd_current, 0)), \ diff --git a/drivers/adc/adc_max11102_17.c b/drivers/adc/adc_max11102_17.c index 45c95971eaad8..35d194ae5c0ef 100644 --- a/drivers/adc/adc_max11102_17.c +++ b/drivers/adc/adc_max11102_17.c @@ -405,7 +405,7 @@ BUILD_ASSERT(CONFIG_ADC_INIT_PRIORITY > CONFIG_SPI_INIT_PRIORITY, static const struct max11102_17_config config_##name##_##index = { \ .bus = SPI_DT_SPEC_INST_GET( \ index, \ - SPI_OP_MODE_MASTER | SPI_MODE_CPOL | SPI_MODE_CPHA | SPI_WORD_SET(8), 0), \ + SPI_OP_MODE_MASTER | SPI_MODE_CPOL | SPI_MODE_CPHA | SPI_WORD_SET(8)), \ .gpio_chsel = GPIO_DT_SPEC_INST_GET_OR(index, chsel_gpios, {0}), \ .resolution = res, \ .channel_count = channels, \ diff --git a/drivers/adc/adc_max1125x.c b/drivers/adc/adc_max1125x.c index fe037140e9121..581c2ee672e21 100644 --- a/drivers/adc/adc_max1125x.c +++ b/drivers/adc/adc_max1125x.c @@ -787,8 +787,7 @@ static DEVICE_API(adc, max1125x_api) = { #define MAX1125X_INIT(t, n, odr_delay_us, res, mux, pgab) \ static const struct max1125x_config max##t##_cfg_##n = { \ .bus = SPI_DT_SPEC_GET(DT_INST_MAX1125X(n, t), \ - SPI_OP_MODE_MASTER | SPI_WORD_SET(8) | SPI_TRANSFER_MSB, \ - 1), \ + SPI_OP_MODE_MASTER | SPI_WORD_SET(8) | SPI_TRANSFER_MSB), \ .odr_delay = odr_delay_us, \ .resolution = res, \ .multiplexer = mux, \ diff --git a/drivers/adc/adc_mcp320x.c b/drivers/adc/adc_mcp320x.c index 1722b78bfce5f..fe81d5e21f24f 100644 --- a/drivers/adc/adc_mcp320x.c +++ b/drivers/adc/adc_mcp320x.c @@ -316,7 +316,7 @@ static DEVICE_API(adc, mcp320x_adc_api) = { static const struct mcp320x_config mcp##t##_config_##n = { \ .bus = SPI_DT_SPEC_GET(INST_DT_MCP320X(n, t), \ SPI_OP_MODE_MASTER | SPI_TRANSFER_MSB | \ - SPI_WORD_SET(8), 0), \ + SPI_WORD_SET(8)), \ .channels = ch, \ }; \ DEVICE_DT_DEFINE(INST_DT_MCP320X(n, t), \ diff --git a/drivers/adc/adc_mcp356xr.c b/drivers/adc/adc_mcp356xr.c index 7a6af771f4a8b..cfdc7ba085ad8 100644 --- a/drivers/adc/adc_mcp356xr.c +++ b/drivers/adc/adc_mcp356xr.c @@ -1209,7 +1209,6 @@ static DEVICE_API(adc, adc_mcp356xr_api) = { .ref_internal = 2400, }; -#define MCP356XR_SPI_CS_DELAY (1) #define MCP356XR_SPI_OPERATION \ (SPI_OP_MODE_MASTER | SPI_TRANSFER_MSB | SPI_WORD_SET(8) | SPI_LINES_SINGLE) @@ -1285,7 +1284,7 @@ static DEVICE_API(adc, adc_mcp356xr_api) = { #define ADC_MCP356XR_INIT(index) \ static const struct adc_mcp356xr_config adc_mcp356xr_config_##index = { \ - .spi = SPI_DT_SPEC_INST_GET(index, MCP356XR_SPI_OPERATION, MCP356XR_SPI_CS_DELAY), \ + .spi = SPI_DT_SPEC_INST_GET(index, MCP356XR_SPI_OPERATION), \ .address = DT_INST_PROP(index, address), \ .vref_settle_time = K_MSEC(DT_INST_PROP_OR(index, vref_settle_time_ms, 0)), \ .init_reg_value = \ diff --git a/drivers/audio/pcm1681.c b/drivers/audio/pcm1681.c index b9e3f717aa5b6..d456f89588206 100644 --- a/drivers/audio/pcm1681.c +++ b/drivers/audio/pcm1681.c @@ -378,7 +378,7 @@ static int pcm1681_init(const struct device *dev) #define PCM1681_CONFIG_SPI(inst) \ .bus_spec = \ { \ - .spi = SPI_DT_SPEC_INST_GET(inst, SPI_OP_MODE_SLAVE | SPI_WORD_SET(8), 0), \ + .spi = SPI_DT_SPEC_INST_GET(inst, SPI_OP_MODE_SLAVE | SPI_WORD_SET(8)), \ }, \ .bus_io = { \ .is_ready = pcm1681_spi_is_ready, \ diff --git a/drivers/auxdisplay/auxdisplay_pt6314.c b/drivers/auxdisplay/auxdisplay_pt6314.c index 293337b25138d..02bd83a4ecb2b 100644 --- a/drivers/auxdisplay/auxdisplay_pt6314.c +++ b/drivers/auxdisplay/auxdisplay_pt6314.c @@ -313,8 +313,7 @@ static DEVICE_API(auxdisplay, auxdisplay_pt6314_auxdisplay_api) = { }, \ .bus = SPI_DT_SPEC_INST_GET(n, \ SPI_OP_MODE_MASTER | SPI_MODE_CPOL | SPI_MODE_CPHA | \ - SPI_TRANSFER_MSB | SPI_WORD_SET(8), \ - 0), \ + SPI_TRANSFER_MSB | SPI_WORD_SET(8)) \ }; \ \ static struct auxdisplay_pt6314_data auxdisplay_pt6314_data_##n = { \ diff --git a/drivers/bluetooth/hci/hci_ambiq.c b/drivers/bluetooth/hci/hci_ambiq.c index b870a50da21ce..b89d7946d3dd4 100644 --- a/drivers/bluetooth/hci/hci_ambiq.c +++ b/drivers/bluetooth/hci/hci_ambiq.c @@ -57,8 +57,7 @@ static uint8_t __noinit rxmsg[SPI_MAX_RX_MSG_LEN]; static struct spi_dt_spec spi_bus = SPI_DT_SPEC_INST_GET(0, SPI_OP_MODE_MASTER | SPI_HALF_DUPLEX | SPI_TRANSFER_MSB | - SPI_MODE_CPOL | SPI_MODE_CPHA | SPI_WORD_SET(8), - 0); + SPI_MODE_CPOL | SPI_MODE_CPHA | SPI_WORD_SET(8)); static K_KERNEL_STACK_DEFINE(spi_rx_stack, CONFIG_BT_DRV_RX_STACK_SIZE); static struct k_thread spi_rx_thread_data; diff --git a/drivers/bluetooth/hci/hci_spi_st.c b/drivers/bluetooth/hci/hci_spi_st.c index 8f6bf72c0edb2..2c272a6d293f4 100644 --- a/drivers/bluetooth/hci/hci_spi_st.c +++ b/drivers/bluetooth/hci/hci_spi_st.c @@ -95,7 +95,7 @@ struct bt_spi_data { }; static const struct spi_dt_spec bus = SPI_DT_SPEC_INST_GET( - 0, SPI_OP_MODE_MASTER | SPI_TRANSFER_MSB | SPI_WORD_SET(8) | SPI_LOCK_ON, 0); + 0, SPI_OP_MODE_MASTER | SPI_TRANSFER_MSB | SPI_WORD_SET(8) | SPI_LOCK_ON); static struct spi_buf spi_tx_buf; static struct spi_buf spi_rx_buf; diff --git a/drivers/bluetooth/hci/spi.c b/drivers/bluetooth/hci/spi.c index 4a685ac351b7e..64de69ae8c3da 100644 --- a/drivers/bluetooth/hci/spi.c +++ b/drivers/bluetooth/hci/spi.c @@ -86,8 +86,7 @@ static K_KERNEL_STACK_DEFINE(spi_rx_stack, CONFIG_BT_DRV_RX_STACK_SIZE); static struct k_thread spi_rx_thread_data; static const struct spi_dt_spec bus = SPI_DT_SPEC_INST_GET( - 0, SPI_OP_MODE_MASTER | SPI_TRANSFER_MSB | SPI_WORD_SET(8), - DT_INST_PROP(0, controller_cs_delay_us)); + 0, SPI_OP_MODE_MASTER | SPI_TRANSFER_MSB | SPI_WORD_SET(8)) static struct spi_buf spi_tx_buf; static struct spi_buf spi_rx_buf; diff --git a/drivers/can/can_mcp2515.c b/drivers/can/can_mcp2515.c index b64fb1b7c76c9..f12a79ccc0b33 100644 --- a/drivers/can/can_mcp2515.c +++ b/drivers/can/can_mcp2515.c @@ -1005,7 +1005,7 @@ static int mcp2515_init(const struct device *dev) \ static const struct mcp2515_config mcp2515_config_##inst = { \ .common = CAN_DT_DRIVER_CONFIG_INST_GET(inst, 0, 1000000), \ - .bus = SPI_DT_SPEC_INST_GET(inst, SPI_WORD_SET(8), 0), \ + .bus = SPI_DT_SPEC_INST_GET(inst, SPI_WORD_SET(8)), \ .int_gpio = GPIO_DT_SPEC_INST_GET(inst, int_gpios), \ .int_thread_stack_size = CONFIG_CAN_MCP2515_INT_THREAD_STACK_SIZE, \ .int_thread_priority = CONFIG_CAN_MCP2515_INT_THREAD_PRIO, \ diff --git a/drivers/can/can_mcp251xfd.c b/drivers/can/can_mcp251xfd.c index 3335eceb2765a..893ff63e980ec 100644 --- a/drivers/can/can_mcp251xfd.c +++ b/drivers/can/can_mcp251xfd.c @@ -1751,7 +1751,7 @@ static DEVICE_API(can, mcp251xfd_api_funcs) = { }; \ static const struct mcp251xfd_config mcp251xfd_config_##inst = { \ .common = CAN_DT_DRIVER_CONFIG_INST_GET(inst, 0, 8000000), \ - .bus = SPI_DT_SPEC_INST_GET(inst, SPI_WORD_SET(8), 0), \ + .bus = SPI_DT_SPEC_INST_GET(inst, SPI_WORD_SET(8)), \ .int_gpio_dt = GPIO_DT_SPEC_INST_GET(inst, int_gpios), \ \ .sof_on_clko = DT_INST_PROP(inst, sof_on_clko), \ diff --git a/drivers/can/can_tcan4x5x.c b/drivers/can/can_tcan4x5x.c index 2abd0467a5ee3..34721daa8e4df 100644 --- a/drivers/can/can_tcan4x5x.c +++ b/drivers/can/can_tcan4x5x.c @@ -778,7 +778,7 @@ static const struct can_mcan_ops tcan4x5x_ops = { CAN_MCAN_DT_INST_CALLBACKS_DEFINE(inst, tcan4x5x_cbs_##inst); \ \ static const struct tcan4x5x_config tcan4x5x_config_##inst = { \ - .spi = SPI_DT_SPEC_INST_GET(inst, SPI_WORD_SET(8), 0), \ + .spi = SPI_DT_SPEC_INST_GET(inst, SPI_WORD_SET(8)), \ .int_gpio = GPIO_DT_SPEC_INST_GET(inst, int_gpios), \ .clk_freq = DT_INST_PROP(inst, clock_frequency), \ TCAN4X5X_RST_GPIO_INIT(inst) \ diff --git a/drivers/dac/dac_ad56xx.c b/drivers/dac/dac_ad56xx.c index afc09332b3b7d..b4411d58aff2a 100644 --- a/drivers/dac/dac_ad56xx.c +++ b/drivers/dac/dac_ad56xx.c @@ -171,7 +171,7 @@ BUILD_ASSERT(CONFIG_DAC_AD56XX_INIT_PRIORITY > CONFIG_SPI_INIT_PRIORITY, static struct ad56xx_data data_##name##_##index; \ static const struct ad56xx_config config_##name##_##index = { \ .bus = SPI_DT_SPEC_INST_GET( \ - index, SPI_OP_MODE_MASTER | SPI_MODE_CPHA | SPI_WORD_SET(8), 0), \ + index, SPI_OP_MODE_MASTER | SPI_MODE_CPHA | SPI_WORD_SET(8)), \ .resolution = res, \ .gpio_reset = GPIO_DT_SPEC_INST_GET_OR(index, reset_gpios, {0}), \ .channel_addresses = channels, \ diff --git a/drivers/dac/dac_dac161s997.c b/drivers/dac/dac_dac161s997.c index 283387268c690..b2b2936ee3391 100644 --- a/drivers/dac/dac_dac161s997.c +++ b/drivers/dac/dac_dac161s997.c @@ -296,7 +296,7 @@ static DEVICE_API(dac, dac161s997_driver_api) = { #define DAC_DAC161S997_INIT(n) \ static const struct dac161s997_config dac161s997_config_##n = { \ - .bus = SPI_DT_SPEC_INST_GET(n, SPI_TRANSFER_MSB | SPI_WORD_SET(8), 0), \ + .bus = SPI_DT_SPEC_INST_GET(n, SPI_TRANSFER_MSB | SPI_WORD_SET(8)), \ .gpio_errb = GPIO_DT_SPEC_INST_GET_OR(n, errb_gpios, {0}), \ }; \ \ diff --git a/drivers/dac/dac_dacx0508.c b/drivers/dac/dac_dacx0508.c index 6b5c48aa367b1..3caf824c0059a 100644 --- a/drivers/dac/dac_dacx0508.c +++ b/drivers/dac/dac_dacx0508.c @@ -373,7 +373,7 @@ static DEVICE_API(dac, dacx0508_driver_api) = { static const struct dacx0508_config dac##t##_config_##n = { \ .bus = SPI_DT_SPEC_GET(INST_DT_DACX0508(n, t), \ SPI_OP_MODE_MASTER | SPI_TRANSFER_MSB | \ - SPI_WORD_SET(8) | SPI_MODE_CPHA, 0), \ + SPI_WORD_SET(8) | SPI_MODE_CPHA), \ .resolution = res, \ .reference = DT_PROP(INST_DT_DACX0508(n, t), \ voltage_reference), \ diff --git a/drivers/dac/dac_ltc166x.c b/drivers/dac/dac_ltc166x.c index 2fc364dd25da8..d068d8e7ba117 100644 --- a/drivers/dac/dac_ltc166x.c +++ b/drivers/dac/dac_ltc166x.c @@ -115,7 +115,7 @@ static DEVICE_API(dac, ltc166x_driver_api) = { static const struct ltc166x_config ltc##t##_config_##n = { \ .bus = SPI_DT_SPEC_GET(INST_DT_LTC166X(n, t), \ SPI_OP_MODE_MASTER | \ - SPI_WORD_SET(8), 0), \ + SPI_WORD_SET(8)), \ .resolution = res, \ .nchannels = nchan, \ }; \ diff --git a/drivers/display/display_max7219.c b/drivers/display/display_max7219.c index 9430cf3c5d080..a04b92394f899 100644 --- a/drivers/display/display_max7219.c +++ b/drivers/display/display_max7219.c @@ -332,7 +332,7 @@ static int max7219_init(const struct device *dev) }; \ static const struct max7219_config max7219_config_##n = { \ .spi = SPI_DT_SPEC_INST_GET( \ - n, SPI_OP_MODE_MASTER | SPI_WORD_SET(8U), 0U), \ + n, SPI_OP_MODE_MASTER | SPI_WORD_SET(8U)), \ .num_cascading = DT_INST_PROP(n, num_cascading), \ .intensity = DT_INST_PROP(n, intensity), \ .scan_limit = DT_INST_PROP(n, scan_limit), \ diff --git a/drivers/display/display_st7567.c b/drivers/display/display_st7567.c index 20d860af25d38..5f4b7070dbaf4 100644 --- a/drivers/display/display_st7567.c +++ b/drivers/display/display_st7567.c @@ -462,7 +462,7 @@ static DEVICE_API(display, st7567_driver_api) = { #define ST7567_CONFIG_SPI(node_id) \ .bus = {.spi = SPI_DT_SPEC_GET( \ - node_id, SPI_OP_MODE_MASTER | SPI_TRANSFER_MSB | SPI_WORD_SET(8), 0)}, \ + node_id, SPI_OP_MODE_MASTER | SPI_TRANSFER_MSB | SPI_WORD_SET(8))}, \ .bus_ready = st7567_bus_ready_spi, .write_bus = st7567_write_bus_spi, \ .bus_name = st7567_bus_name_spi, .data_cmd = GPIO_DT_SPEC_GET(node_id, data_cmd_gpios), diff --git a/drivers/display/ls0xx.c b/drivers/display/ls0xx.c index 3e2adf07b9a6e..f940d801d8018 100644 --- a/drivers/display/ls0xx.c +++ b/drivers/display/ls0xx.c @@ -269,7 +269,7 @@ static const struct ls0xx_config ls0xx_config = { .bus = SPI_DT_SPEC_INST_GET( 0, SPI_OP_MODE_MASTER | SPI_WORD_SET(8) | SPI_TRANSFER_LSB | SPI_CS_ACTIVE_HIGH | - SPI_HOLD_ON_CS | SPI_LOCK_ON, 0), + SPI_HOLD_ON_CS | SPI_LOCK_ON), #if DT_INST_NODE_HAS_PROP(0, disp_en_gpios) .disp_en_gpio = GPIO_DT_SPEC_INST_GET(0, disp_en_gpios), #endif diff --git a/drivers/display/ssd1306.c b/drivers/display/ssd1306.c index abcf820bbc1e6..f1ed5d73a33e4 100644 --- a/drivers/display/ssd1306.c +++ b/drivers/display/ssd1306.c @@ -532,7 +532,7 @@ static DEVICE_API(display, ssd1306_driver_api) = { #define SSD1306_CONFIG_SPI(node_id) \ .bus = {.spi = SPI_DT_SPEC_GET( \ - node_id, SPI_OP_MODE_MASTER | SPI_TRANSFER_MSB | SPI_WORD_SET(8), 0)}, \ + node_id, SPI_OP_MODE_MASTER | SPI_TRANSFER_MSB | SPI_WORD_SET(8))}, \ .bus_ready = ssd1306_bus_ready_spi, \ .write_bus = ssd1306_write_bus_spi, \ .bus_name = ssd1306_bus_name_spi, \ diff --git a/drivers/eeprom/eeprom_at2x.c b/drivers/eeprom/eeprom_at2x.c index 0061ee9c26c02..38319d511375a 100644 --- a/drivers/eeprom/eeprom_at2x.c +++ b/drivers/eeprom/eeprom_at2x.c @@ -621,7 +621,7 @@ static DEVICE_API(eeprom, eeprom_at2x_api) = { #define EEPROM_AT25_BUS(n, t) \ { .spi = SPI_DT_SPEC_GET(INST_DT_AT2X(n, t), \ SPI_OP_MODE_MASTER | SPI_TRANSFER_MSB | \ - SPI_WORD_SET(8), 0) } + SPI_WORD_SET(8)) } #define EEPROM_AT2X_WP_GPIOS(id) \ IF_ENABLED(DT_NODE_HAS_PROP(id, wp_gpios), \ diff --git a/drivers/eeprom/eeprom_mb85rsxx.c b/drivers/eeprom/eeprom_mb85rsxx.c index 10d7577af324d..baf8f38e02cfe 100644 --- a/drivers/eeprom/eeprom_mb85rsxx.c +++ b/drivers/eeprom/eeprom_mb85rsxx.c @@ -306,7 +306,7 @@ static DEVICE_API(eeprom, mb85rsxx_driver_api) = { \ static const struct eeprom_mb85rsxx_config eeprom_mb85rsxx_config_##inst = { \ .spi = SPI_DT_SPEC_INST_GET( \ - inst, SPI_OP_MODE_MASTER | SPI_TRANSFER_MSB | SPI_WORD_SET(8), 0), \ + inst, SPI_OP_MODE_MASTER | SPI_TRANSFER_MSB | SPI_WORD_SET(8)), \ .size = DT_INST_PROP(inst, size), \ .readonly = DT_INST_PROP(inst, read_only), \ }; \ diff --git a/drivers/entropy/entropy_maxq10xx.c b/drivers/entropy/entropy_maxq10xx.c index d20e798330a6e..7d3f76481cc43 100644 --- a/drivers/entropy/entropy_maxq10xx.c +++ b/drivers/entropy/entropy_maxq10xx.c @@ -214,7 +214,7 @@ static DEVICE_API(entropy, entropy_maxq10xx_api) = { #define DEFINE_MAXQ10XX_ENTROPY(_num) \ static const struct entropy_maxq10xx_config entropy_maxq10xx_config##_num = { \ - .spi = SPI_DT_SPEC_GET(DT_INST_PARENT(_num), SPI_WORD_SET(8), 0), \ + .spi = SPI_DT_SPEC_GET(DT_INST_PARENT(_num), SPI_WORD_SET(8)), \ .parent = DEVICE_DT_GET(DT_INST_PARENT(_num)), \ }; \ DEVICE_DT_INST_DEFINE(_num, NULL, NULL, NULL, \ diff --git a/drivers/ethernet/dsa/dsa_ksz8xxx.c b/drivers/ethernet/dsa/dsa_ksz8xxx.c index 2c9a9b6337dd0..34df8c77541ff 100644 --- a/drivers/ethernet/dsa/dsa_ksz8xxx.c +++ b/drivers/ethernet/dsa/dsa_ksz8xxx.c @@ -1190,8 +1190,7 @@ static struct dsa_api dsa_api_f = { #if defined(CONFIG_DSA_SPI) #define DSA_SPI_BUS_CONFIGURATION(n) \ .spi = SPI_DT_SPEC_INST_GET(n, \ - SPI_WORD_SET(8), \ - 0U) + SPI_WORD_SET(8)) #else #define DSA_SPI_BUS_CONFIGURATION(n) #endif diff --git a/drivers/ethernet/eth_adin2111.c b/drivers/ethernet/eth_adin2111.c index 62b4b21f8f43c..687ef6e5553a0 100644 --- a/drivers/ethernet/eth_adin2111.c +++ b/drivers/ethernet/eth_adin2111.c @@ -1555,7 +1555,7 @@ static const struct ethernet_api adin2111_port_api = { ), ()) \ static const struct adin2111_config name##_config_##inst = { \ .id = dev_id, \ - .spi = SPI_DT_SPEC_INST_GET(inst, ADIN2111_SPI_OPERATION, 0), \ + .spi = SPI_DT_SPEC_INST_GET(inst, ADIN2111_SPI_OPERATION), \ .interrupt = GPIO_DT_SPEC_INST_GET(inst, int_gpios), \ .reset = GPIO_DT_SPEC_INST_GET_OR(inst, reset_gpios, { 0 }), \ }; \ diff --git a/drivers/ethernet/eth_enc28j60.c b/drivers/ethernet/eth_enc28j60.c index e19e4201b67df..0c4cbbf464829 100644 --- a/drivers/ethernet/eth_enc28j60.c +++ b/drivers/ethernet/eth_enc28j60.c @@ -914,7 +914,7 @@ static int eth_enc28j60_init(const struct device *dev) }; \ \ static const struct eth_enc28j60_config eth_enc28j60_config_##inst = { \ - .spi = SPI_DT_SPEC_INST_GET(inst, SPI_WORD_SET(8), 0), \ + .spi = SPI_DT_SPEC_INST_GET(inst, SPI_WORD_SET(8)), \ .interrupt = GPIO_DT_SPEC_INST_GET(inst, int_gpios), \ .full_duplex = DT_INST_PROP(0, full_duplex), \ .timeout = CONFIG_ETH_ENC28J60_TIMEOUT, \ diff --git a/drivers/ethernet/eth_enc424j600.c b/drivers/ethernet/eth_enc424j600.c index 9574d6f36f97f..c5584a3b36511 100644 --- a/drivers/ethernet/eth_enc424j600.c +++ b/drivers/ethernet/eth_enc424j600.c @@ -778,7 +778,7 @@ static struct enc424j600_runtime enc424j600_0_runtime = { }; static const struct enc424j600_config enc424j600_0_config = { - .spi = SPI_DT_SPEC_INST_GET(0, SPI_WORD_SET(8), 0), + .spi = SPI_DT_SPEC_INST_GET(0, SPI_WORD_SET(8)), .interrupt = GPIO_DT_SPEC_INST_GET(0, int_gpios), .timeout = CONFIG_ETH_ENC424J600_TIMEOUT, }; diff --git a/drivers/ethernet/eth_lan865x.c b/drivers/ethernet/eth_lan865x.c index 16250c8859fa8..603e44bf89a05 100644 --- a/drivers/ethernet/eth_lan865x.c +++ b/drivers/ethernet/eth_lan865x.c @@ -470,7 +470,7 @@ static const struct ethernet_api lan865x_api_func = { #define LAN865X_DEFINE(inst) \ static const struct lan865x_config lan865x_config_##inst = { \ - .spi = SPI_DT_SPEC_INST_GET(inst, SPI_WORD_SET(8), 0), \ + .spi = SPI_DT_SPEC_INST_GET(inst, SPI_WORD_SET(8)), \ .interrupt = GPIO_DT_SPEC_INST_GET(inst, int_gpios), \ .reset = GPIO_DT_SPEC_INST_GET(inst, rst_gpios), \ .timeout = CONFIG_ETH_LAN865X_TIMEOUT, \ diff --git a/drivers/ethernet/eth_lan9250.c b/drivers/ethernet/eth_lan9250.c index 58616f258f04b..f1a4dfd77f486 100644 --- a/drivers/ethernet/eth_lan9250.c +++ b/drivers/ethernet/eth_lan9250.c @@ -708,7 +708,7 @@ static int lan9250_init(const struct device *dev) }; \ \ static const struct lan9250_config lan9250_##inst##_config = { \ - .spi = SPI_DT_SPEC_INST_GET(inst, SPI_WORD_SET(8), 0), \ + .spi = SPI_DT_SPEC_INST_GET(inst, SPI_WORD_SET(8)), \ .interrupt = GPIO_DT_SPEC_INST_GET(inst, int_gpios), \ .timeout = CONFIG_ETH_LAN9250_BUF_ALLOC_TIMEOUT, \ }; \ diff --git a/drivers/ethernet/eth_w5500.c b/drivers/ethernet/eth_w5500.c index 61ed576e9c97a..512a6b74de77b 100644 --- a/drivers/ethernet/eth_w5500.c +++ b/drivers/ethernet/eth_w5500.c @@ -611,7 +611,7 @@ static struct w5500_runtime w5500_0_runtime = { }; static const struct w5500_config w5500_0_config = { - .spi = SPI_DT_SPEC_INST_GET(0, SPI_WORD_SET(8), 0), + .spi = SPI_DT_SPEC_INST_GET(0, SPI_WORD_SET(8)), .interrupt = GPIO_DT_SPEC_INST_GET(0, int_gpios), .reset = GPIO_DT_SPEC_INST_GET_OR(0, reset_gpios, { 0 }), .timeout = CONFIG_ETH_W5500_TIMEOUT, diff --git a/drivers/flash/Kconfig.nor b/drivers/flash/Kconfig.nor index ecf7a4e176a54..0abcff3d67da8 100644 --- a/drivers/flash/Kconfig.nor +++ b/drivers/flash/Kconfig.nor @@ -52,12 +52,6 @@ config SPI_NOR_INIT_PRIORITY Device is connected to SPI bus, it has to be initialized after SPI driver. -config SPI_NOR_CS_WAIT_DELAY - int "Delay time in us" - default 0 - help - This is the wait delay (in us) to allow for CS switching to take effect - config SPI_NOR_SLEEP_WHILE_WAITING_UNTIL_READY bool "Sleep while waiting for flash operations to complete" default y diff --git a/drivers/flash/spi_flash_at25xv021a.c b/drivers/flash/spi_flash_at25xv021a.c index 07b6da95e90b0..fc96af414d466 100644 --- a/drivers/flash/spi_flash_at25xv021a.c +++ b/drivers/flash/spi_flash_at25xv021a.c @@ -968,7 +968,7 @@ static DEVICE_API(flash, spi_flash_at25xv021a_api) = { ASSERT_TIMEOUTS(DT_INST_PROP(inst, timeout), DT_INST_PROP(inst, timeout_erase)); \ \ static const struct flash_at25xv021a_config flash_at25xv021a_config_##inst = { \ - .spi = SPI_DT_SPEC_INST_GET(inst, SPI_OP, 0), \ + .spi = SPI_DT_SPEC_INST_GET(inst, SPI_OP), \ .jedec_id = DT_INST_PROP(inst, jedec_id), \ .size = DT_INST_PROP(inst, size), \ .timeout = K_MSEC(DT_INST_PROP(inst, timeout)), \ diff --git a/drivers/flash/spi_flash_at45.c b/drivers/flash/spi_flash_at45.c index c6806d700f073..5ca6a71845df8 100644 --- a/drivers/flash/spi_flash_at45.c +++ b/drivers/flash/spi_flash_at45.c @@ -696,7 +696,7 @@ static DEVICE_API(flash, spi_flash_at45_api) = { static const struct spi_flash_at45_config inst_##idx##_config = { \ .bus = SPI_DT_SPEC_INST_GET( \ idx, SPI_OP_MODE_MASTER | SPI_TRANSFER_MSB | \ - SPI_WORD_SET(8), 0), \ + SPI_WORD_SET(8)), \ IF_ENABLED(INST_HAS_RESET_GPIO(idx), \ (.reset = &reset_##idx,)) \ IF_ENABLED(INST_HAS_WP_GPIO(idx), \ diff --git a/drivers/flash/spi_nor.c b/drivers/flash/spi_nor.c index 09c133be1a31d..c5ade5e07dd3d 100644 --- a/drivers/flash/spi_nor.c +++ b/drivers/flash/spi_nor.c @@ -1885,7 +1885,7 @@ static DEVICE_API(flash, spi_nor_api) = { #define GENERATE_CONFIG_STRUCT(idx) \ static const struct spi_nor_config spi_nor_##idx##_config = { \ - .spi = SPI_DT_SPEC_INST_GET(idx, SPI_WORD_SET(8), CONFIG_SPI_NOR_CS_WAIT_DELAY),\ + .spi = SPI_DT_SPEC_INST_GET(idx, SPI_WORD_SET(8)), \ .dpd_exist = DT_INST_PROP(idx, has_dpd), \ .dpd_wakeup_sequence_exist = DT_INST_NODE_HAS_PROP(idx, dpd_wakeup_sequence), \ .mxicy_mx25r_power_mode_exist = \ diff --git a/drivers/fpga/fpga_ice40_common.h b/drivers/fpga/fpga_ice40_common.h index 55faf0eef5654..3f437e3653687 100644 --- a/drivers/fpga/fpga_ice40_common.h +++ b/drivers/fpga/fpga_ice40_common.h @@ -42,8 +42,7 @@ static const struct fpga_ice40_config fpga_ice40_config_##inst = { \ .bus = SPI_DT_SPEC_INST_GET(inst, \ SPI_OP_MODE_MASTER | SPI_MODE_CPOL | SPI_MODE_CPHA | \ - SPI_WORD_SET(8) | SPI_TRANSFER_MSB, \ - 0), \ + SPI_WORD_SET(8) | SPI_TRANSFER_MSB), \ .creset = GPIO_DT_SPEC_INST_GET(inst, creset_gpios), \ .cdone = GPIO_DT_SPEC_INST_GET(inst, cdone_gpios), \ .config_delay_us = DT_INST_PROP(inst, config_delay_us), \ diff --git a/drivers/gpio/gpio_max14906.c b/drivers/gpio/gpio_max14906.c index be1a36991ba3d..0753e2a459e57 100644 --- a/drivers/gpio/gpio_max14906.c +++ b/drivers/gpio/gpio_max14906.c @@ -441,7 +441,7 @@ static DEVICE_API(gpio, gpio_max14906_api) = { #define GPIO_MAX14906_DEVICE(id) \ static const struct max14906_config max14906_##id##_cfg = { \ - .spi = SPI_DT_SPEC_INST_GET(id, SPI_OP_MODE_MASTER | SPI_WORD_SET(8U), 0U), \ + .spi = SPI_DT_SPEC_INST_GET(id, SPI_OP_MODE_MASTER | SPI_WORD_SET(8U)), \ .ready_gpio = GPIO_DT_SPEC_INST_GET(id, drdy_gpios), \ .fault_gpio = GPIO_DT_SPEC_INST_GET(id, fault_gpios), \ .sync_gpio = GPIO_DT_SPEC_INST_GET(id, sync_gpios), \ diff --git a/drivers/gpio/gpio_max14916.c b/drivers/gpio/gpio_max14916.c index b6b3942df4e84..3e32d454a53b4 100644 --- a/drivers/gpio/gpio_max14916.c +++ b/drivers/gpio/gpio_max14916.c @@ -367,7 +367,7 @@ static DEVICE_API(gpio, gpio_max14916_api) = { #define GPIO_MAX14906_DEVICE(id, model) \ static const struct max14916_config max##model##_##id##_cfg = { \ - .spi = SPI_DT_SPEC_INST_GET(id, SPI_OP_MODE_MASTER | SPI_WORD_SET(8U), 0U), \ + .spi = SPI_DT_SPEC_INST_GET(id, SPI_OP_MODE_MASTER | SPI_WORD_SET(8U)), \ .ready_gpio = GPIO_DT_SPEC_INST_GET(id, drdy_gpios), \ .fault_gpio = GPIO_DT_SPEC_INST_GET(id, fault_gpios), \ .sync_gpio = GPIO_DT_SPEC_INST_GET(id, sync_gpios), \ diff --git a/drivers/gpio/gpio_max14917.c b/drivers/gpio/gpio_max14917.c index 74c87f4568803..7537129385999 100644 --- a/drivers/gpio/gpio_max14917.c +++ b/drivers/gpio/gpio_max14917.c @@ -337,7 +337,7 @@ static DEVICE_API(gpio, gpio_max14917_api) = { #define GPIO_MAX14917_DEVICE(id) \ static const struct max14917_config max14917_##id##_cfg = { \ - .spi = SPI_DT_SPEC_INST_GET(id, SPI_OP_MODE_MASTER | SPI_WORD_SET(8U), 0U), \ + .spi = SPI_DT_SPEC_INST_GET(id, SPI_OP_MODE_MASTER | SPI_WORD_SET(8U)), \ .vddok_gpio = GPIO_DT_SPEC_INST_GET(id, vddok_gpios), \ .ready_gpio = GPIO_DT_SPEC_INST_GET(id, ready_gpios), \ .comerr_gpio = GPIO_DT_SPEC_INST_GET(id, comerr_gpios), \ diff --git a/drivers/gpio/gpio_max2219x.c b/drivers/gpio/gpio_max2219x.c index e68f187df8b78..e7c2590294454 100644 --- a/drivers/gpio/gpio_max2219x.c +++ b/drivers/gpio/gpio_max2219x.c @@ -657,7 +657,7 @@ static DEVICE_API(gpio, gpio_max22190_api) = { #define GPIO_MAX22190_DEVICE(id, model) \ static const struct max22190_config max##model##_##id##_cfg = { \ - .spi = SPI_DT_SPEC_INST_GET(id, SPI_OP_MODE_MASTER | SPI_WORD_SET(8U), 0U), \ + .spi = SPI_DT_SPEC_INST_GET(id, SPI_OP_MODE_MASTER | SPI_WORD_SET(8U)), \ .ready_gpio = GPIO_DT_SPEC_INST_GET(id, drdy_gpios), \ .fault_gpio = GPIO_DT_SPEC_INST_GET(id, fault_gpios), \ .latch_gpio = GPIO_DT_SPEC_INST_GET(id, latch_gpios), \ diff --git a/drivers/gpio/gpio_mcp23sxx.c b/drivers/gpio/gpio_mcp23sxx.c index 8d2749e50501a..822811cd2adbd 100644 --- a/drivers/gpio/gpio_mcp23sxx.c +++ b/drivers/gpio/gpio_mcp23sxx.c @@ -128,7 +128,7 @@ static int mcp23sxx_bus_is_ready(const struct device *dev) .bus = { \ .spi = SPI_DT_SPEC_INST_GET(inst, \ SPI_OP_MODE_MASTER | SPI_MODE_CPOL | \ - SPI_MODE_CPHA | SPI_WORD_SET(8), 0) \ + SPI_MODE_CPHA | SPI_WORD_SET(8)) \ }, \ .gpio_int = GPIO_DT_SPEC_INST_GET_OR(inst, int_gpios, {0}), \ .gpio_reset = GPIO_DT_SPEC_INST_GET_OR(inst, reset_gpios, {0}), \ diff --git a/drivers/gpio/gpio_sn74hc595.c b/drivers/gpio/gpio_sn74hc595.c index 80e3670305560..5c41a4f0505ef 100644 --- a/drivers/gpio/gpio_sn74hc595.c +++ b/drivers/gpio/gpio_sn74hc595.c @@ -225,7 +225,7 @@ static int gpio_sn74hc595_init(const struct device *dev) { \ .port_pin_mask = GPIO_PORT_PIN_MASK_FROM_DT_INST(n), \ }, \ - .bus = SPI_DT_SPEC_INST_GET(n, SN74HC595_SPI_OPERATION, 0), \ + .bus = SPI_DT_SPEC_INST_GET(n, SN74HC595_SPI_OPERATION), \ .reset_gpio = GPIO_DT_SPEC_INST_GET_OR(n, reset_gpio, {0}), \ .enable_gpio = GPIO_DT_SPEC_INST_GET_OR(n, enable_gpios, {0}), \ .num_registers = DT_INST_PROP(n, ngpios) / BITS_PER_BYTE, \ diff --git a/drivers/hdlc_rcp_if/hdlc_rcp_if_spi.c b/drivers/hdlc_rcp_if/hdlc_rcp_if_spi.c index 6459a255f193e..9ae959ab179b2 100644 --- a/drivers/hdlc_rcp_if/hdlc_rcp_if_spi.c +++ b/drivers/hdlc_rcp_if/hdlc_rcp_if_spi.c @@ -458,8 +458,7 @@ static const struct hdlc_api spi_hdlc_api = { #define MTU 1280 static const struct hdlc_rcp_if_spi_config ot_hdlc_rcp_cfg = { - .bus = SPI_DT_SPEC_INST_GET(0, SPI_OP_MODE_MASTER | SPI_WORD_SET(8), - DT_INST_PROP(0, cs_delay)), + .bus = SPI_DT_SPEC_INST_GET(0, SPI_OP_MODE_MASTER | SPI_WORD_SET(8)), .int_gpio = GPIO_DT_SPEC_INST_GET(0, int_gpios), .rst_gpio = GPIO_DT_SPEC_INST_GET_OR(0, reset_gpios, {}), .reset_time = DT_INST_PROP(0, reset_assert_time), diff --git a/drivers/ieee802154/ieee802154_cc1200.c b/drivers/ieee802154/ieee802154_cc1200.c index 50dad26faee89..b273c1f0acea0 100644 --- a/drivers/ieee802154/ieee802154_cc1200.c +++ b/drivers/ieee802154/ieee802154_cc1200.c @@ -805,7 +805,7 @@ static void cc1200_iface_init(struct net_if *iface) } static const struct cc1200_config cc1200_config = { - .bus = SPI_DT_SPEC_INST_GET(0, SPI_WORD_SET(8), 0), + .bus = SPI_DT_SPEC_INST_GET(0, SPI_WORD_SET(8)), .interrupt = GPIO_DT_SPEC_INST_GET(0, int_gpios) }; diff --git a/drivers/ieee802154/ieee802154_cc2520.c b/drivers/ieee802154/ieee802154_cc2520.c index 0ed4467dd3bb1..e81de86c099b5 100644 --- a/drivers/ieee802154/ieee802154_cc2520.c +++ b/drivers/ieee802154/ieee802154_cc2520.c @@ -1044,7 +1044,7 @@ static void cc2520_iface_init(struct net_if *iface) } static const struct cc2520_config cc2520_config = { - .bus = SPI_DT_SPEC_INST_GET(0, SPI_WORD_SET(8), 0), + .bus = SPI_DT_SPEC_INST_GET(0, SPI_WORD_SET(8)), .vreg_en = GPIO_DT_SPEC_INST_GET(0, vreg_en_gpios), .reset = GPIO_DT_SPEC_INST_GET(0, reset_gpios), .fifo = GPIO_DT_SPEC_INST_GET(0, fifo_gpios), diff --git a/drivers/ieee802154/ieee802154_dw1000.c b/drivers/ieee802154/ieee802154_dw1000.c index f8acaa928d470..1f5d01c498ac1 100644 --- a/drivers/ieee802154/ieee802154_dw1000.c +++ b/drivers/ieee802154/ieee802154_dw1000.c @@ -117,7 +117,7 @@ struct dwt_context { }; static const struct dwt_hi_cfg dw1000_0_config = { - .bus = SPI_DT_SPEC_INST_GET(0, SPI_WORD_SET(8), 0), + .bus = SPI_DT_SPEC_INST_GET(0, SPI_WORD_SET(8)), .irq_gpio = GPIO_DT_SPEC_INST_GET(0, int_gpios), .rst_gpio = GPIO_DT_SPEC_INST_GET(0, reset_gpios), }; diff --git a/drivers/ieee802154/ieee802154_mcr20a.c b/drivers/ieee802154/ieee802154_mcr20a.c index a57de53754ea7..2c82ca7566c5d 100644 --- a/drivers/ieee802154/ieee802154_mcr20a.c +++ b/drivers/ieee802154/ieee802154_mcr20a.c @@ -1442,7 +1442,7 @@ static void mcr20a_iface_init(struct net_if *iface) } static const struct mcr20a_config mcr20a_config = { - .bus = SPI_DT_SPEC_INST_GET(0, SPI_WORD_SET(8), 0), + .bus = SPI_DT_SPEC_INST_GET(0, SPI_WORD_SET(8)), .irq_gpio = GPIO_DT_SPEC_INST_GET(0, irqb_gpios), .reset_gpio = GPIO_DT_SPEC_INST_GET(0, reset_gpios), }; diff --git a/drivers/ieee802154/ieee802154_rf2xx.c b/drivers/ieee802154/ieee802154_rf2xx.c index 12c8106c08b18..79c2412547121 100644 --- a/drivers/ieee802154/ieee802154_rf2xx.c +++ b/drivers/ieee802154/ieee802154_rf2xx.c @@ -1129,7 +1129,7 @@ static const struct ieee802154_radio_api rf2xx_radio_api = { .dig2_gpio = GPIO_DT_SPEC_INST_GET_OR(n, dig2_gpios, {}), \ .clkm_gpio = GPIO_DT_SPEC_INST_GET_OR(n, clkm_gpios, {}), \ .spi = SPI_DT_SPEC_INST_GET(n, SPI_WORD_SET(8) | \ - SPI_TRANSFER_MSB, 0), \ + SPI_TRANSFER_MSB), \ \ .tx_pwr_min = DT_INST_PROP_OR(n, tx_pwr_min, 0), \ .tx_pwr_max = DT_INST_PROP_OR(n, tx_pwr_max, 0), \ diff --git a/drivers/input/input_paw32xx.c b/drivers/input/input_paw32xx.c index be9db7c33949f..7c1339452ca93 100644 --- a/drivers/input/input_paw32xx.c +++ b/drivers/input/input_paw32xx.c @@ -447,7 +447,7 @@ static int paw32xx_pm_action(const struct device *dev, RES_MIN, RES_MAX), "invalid res-cpi"); \ \ static const struct paw32xx_config paw32xx_cfg_##n = { \ - .spi = SPI_DT_SPEC_INST_GET(n, PAW32XX_SPI_MODE, 0), \ + .spi = SPI_DT_SPEC_INST_GET(n, PAW32XX_SPI_MODE), \ .motion_gpio = GPIO_DT_SPEC_INST_GET(n, motion_gpios), \ .axis_x = DT_INST_PROP(n, zephyr_axis_x), \ .axis_y = DT_INST_PROP(n, zephyr_axis_y), \ diff --git a/drivers/input/input_pinnacle.c b/drivers/input/input_pinnacle.c index c28fceeaeb3a2..2b27dcd3307d8 100644 --- a/drivers/input/input_pinnacle.c +++ b/drivers/input/input_pinnacle.c @@ -861,7 +861,7 @@ static int pinnacle_init(const struct device *dev) #define PINNACLE_SPI_OP (SPI_OP_MODE_MASTER | SPI_TRANSFER_MSB | SPI_MODE_CPHA | SPI_WORD_SET(8)) #define PINNACLE_CONFIG_BUS_SPI(inst) \ .bus = { \ - .spi = SPI_DT_SPEC_INST_GET(inst, PINNACLE_SPI_OP, 0U), \ + .spi = SPI_DT_SPEC_INST_GET(inst, PINNACLE_SPI_OP), \ .is_ready = pinnacle_is_ready_spi, \ .write = pinnacle_write_spi, \ .seq_write = pinnacle_seq_write_spi, \ diff --git a/drivers/input/input_pmw3610.c b/drivers/input/input_pmw3610.c index f88e6b2b0e3ec..10189c43b2f51 100644 --- a/drivers/input/input_pmw3610.c +++ b/drivers/input/input_pmw3610.c @@ -569,7 +569,7 @@ static int pmw3610_pm_action(const struct device *dev, RES_MIN, RES_MAX), "invalid res-cpi"); \ \ static const struct pmw3610_config pmw3610_cfg_##n = { \ - .spi = SPI_DT_SPEC_INST_GET(n, PMW3610_SPI_MODE, 0), \ + .spi = SPI_DT_SPEC_INST_GET(n, PMW3610_SPI_MODE), \ .motion_gpio = GPIO_DT_SPEC_INST_GET(n, motion_gpios), \ .reset_gpio = GPIO_DT_SPEC_INST_GET_OR(n, reset_gpios, {}), \ .axis_x = DT_INST_PROP(n, zephyr_axis_x), \ diff --git a/drivers/input/input_xpt2046.c b/drivers/input/input_xpt2046.c index 6e56fcb5874ee..722eff573628b 100644 --- a/drivers/input/input_xpt2046.c +++ b/drivers/input/input_xpt2046.c @@ -237,7 +237,7 @@ static int xpt2046_init(const struct device *dev) #define XPT2046_INIT(index) \ static const struct xpt2046_config xpt2046_config_##index = { \ .bus = SPI_DT_SPEC_INST_GET( \ - index, SPI_OP_MODE_MASTER | SPI_TRANSFER_MSB | SPI_WORD_SET(8), 0), \ + index, SPI_OP_MODE_MASTER | SPI_TRANSFER_MSB | SPI_WORD_SET(8)), \ .int_gpio = GPIO_DT_SPEC_INST_GET(index, int_gpios), \ .min_x = DT_INST_PROP(index, min_x), \ .min_y = DT_INST_PROP(index, min_y), \ diff --git a/drivers/led_strip/apa102.c b/drivers/led_strip/apa102.c index f0df75241d6db..af1f42abcefa1 100644 --- a/drivers/led_strip/apa102.c +++ b/drivers/led_strip/apa102.c @@ -115,8 +115,7 @@ static DEVICE_API(led_strip, apa102_api) = { static const struct apa102_config apa102_##idx##_config = { \ .bus = SPI_DT_SPEC_INST_GET( \ idx, \ - SPI_OP_MODE_MASTER | SPI_TRANSFER_MSB | SPI_WORD_SET(8), \ - 0), \ + SPI_OP_MODE_MASTER | SPI_TRANSFER_MSB | SPI_WORD_SET(8)),\ .length = DT_INST_PROP(idx, chain_length), \ .end_frame = apa102_end_frame_##idx, \ .end_frame_size = (DT_INST_PROP(idx, chain_length) / \ diff --git a/drivers/led_strip/lpd880x.c b/drivers/led_strip/lpd880x.c index df152f9208c61..28d8421932f0e 100644 --- a/drivers/led_strip/lpd880x.c +++ b/drivers/led_strip/lpd880x.c @@ -146,7 +146,7 @@ static int lpd880x_strip_init(const struct device *dev) } static const struct lpd880x_config lpd880x_config = { - .bus = SPI_DT_SPEC_INST_GET(0, LPD880X_SPI_OPERATION, 0), + .bus = SPI_DT_SPEC_INST_GET(0, LPD880X_SPI_OPERATION), .length = DT_INST_PROP(0, chain_length), }; diff --git a/drivers/led_strip/tlc5971.c b/drivers/led_strip/tlc5971.c index b235f7d3f4eee..4c09b5800c373 100644 --- a/drivers/led_strip/tlc5971.c +++ b/drivers/led_strip/tlc5971.c @@ -333,7 +333,7 @@ static DEVICE_API(led_strip, tlc5971_api) = { #define TLC5971_DEVICE(inst) \ static const uint8_t tlc5971_##inst##_color_mapping[] = DT_INST_PROP(inst, color_mapping); \ static const struct tlc5971_config tlc5971_##inst##_config = { \ - .bus = SPI_DT_SPEC_INST_GET(inst, TLC5971_SPI_OPERATION, 0), \ + .bus = SPI_DT_SPEC_INST_GET(inst, TLC5971_SPI_OPERATION), \ .num_pixels = DT_INST_PROP(inst, chain_length), \ .num_colors = DT_INST_PROP_LEN(inst, color_mapping), \ .color_mapping = tlc5971_##inst##_color_mapping, \ diff --git a/drivers/led_strip/ws2812_spi.c b/drivers/led_strip/ws2812_spi.c index 7227e630aaaf2..7f6fa5f3a36de 100644 --- a/drivers/led_strip/ws2812_spi.c +++ b/drivers/led_strip/ws2812_spi.c @@ -265,7 +265,7 @@ static DEVICE_API(led_strip, ws2812_spi_api) = { WS2812_COLOR_MAPPING(idx); \ \ static const struct ws2812_spi_cfg ws2812_spi_##idx##_cfg = { \ - .bus = SPI_DT_SPEC_INST_GET(idx, SPI_OPER(idx), 0), \ + .bus = SPI_DT_SPEC_INST_GET(idx, SPI_OPER(idx)), \ .px_buf = ws2812_spi_##idx##_px_buf, \ .one_frame = WS2812_SPI_ONE_FRAME(idx), \ .zero_frame = WS2812_SPI_ZERO_FRAME(idx), \ diff --git a/drivers/lora/lora_basics_modem/lbm_sx126x.c b/drivers/lora/lora_basics_modem/lbm_sx126x.c index 10d9b425750e3..af8f97e08baab 100644 --- a/drivers/lora/lora_basics_modem/lbm_sx126x.c +++ b/drivers/lora/lora_basics_modem/lbm_sx126x.c @@ -495,7 +495,7 @@ static int sx126x_init(const struct device *dev) static const struct lbm_sx126x_config config_##node_id = { \ .lbm_common.ralf = RALF_SX126X_INSTANTIATE(DEVICE_DT_GET(node_id)), \ .spi = SPI_DT_SPEC_GET( \ - node_id, SPI_WORD_SET(8) | SPI_OP_MODE_MASTER | SPI_TRANSFER_MSB, 0), \ + node_id, SPI_WORD_SET(8) | SPI_OP_MODE_MASTER | SPI_TRANSFER_MSB), \ .reset = GPIO_DT_SPEC_GET(node_id, reset_gpios), \ .busy = GPIO_DT_SPEC_GET(node_id, busy_gpios), \ .dio1 = GPIO_DT_SPEC_GET(node_id, dio1_gpios), \ diff --git a/drivers/lora/lora_basics_modem/lbm_sx127x.c b/drivers/lora/lora_basics_modem/lbm_sx127x.c index 434761502a560..1a12bd2421bf1 100644 --- a/drivers/lora/lora_basics_modem/lbm_sx127x.c +++ b/drivers/lora/lora_basics_modem/lbm_sx127x.c @@ -442,7 +442,7 @@ static int sx127x_driver_init(const struct device *dev) static const struct lbm_sx127x_config config_##node_id = { \ .lbm_common.ralf = RALF_SX127X_INSTANTIATE(&data_##node_id.radio), \ .spi = SPI_DT_SPEC_GET( \ - node_id, SPI_WORD_SET(8) | SPI_OP_MODE_MASTER | SPI_TRANSFER_MSB, 0), \ + node_id, SPI_WORD_SET(8) | SPI_OP_MODE_MASTER | SPI_TRANSFER_MSB), \ .reset = GPIO_DT_SPEC_GET(node_id, reset_gpios), \ .ant_enable = GPIO_DT_SPEC_GET_OR(node_id, antenna_enable_gpios, {0}), \ .rfi_enable = GPIO_DT_SPEC_GET_OR(node_id, rfi_enable_gpios, {0}), \ diff --git a/drivers/lora/loramac_node/sx126x.c b/drivers/lora/loramac_node/sx126x.c index 835f8ec56e1c9..6221943f5200b 100644 --- a/drivers/lora/loramac_node/sx126x.c +++ b/drivers/lora/loramac_node/sx126x.c @@ -40,7 +40,7 @@ BUILD_ASSERT(DT_NUM_INST_STATUS_OKAY(semtech_sx1261) + #define SX126X_CALIBRATION_ALL 0x7f static const struct sx126x_config dev_config = { - .bus = SPI_DT_SPEC_INST_GET(0, SPI_WORD_SET(8) | SPI_TRANSFER_MSB, 0), + .bus = SPI_DT_SPEC_INST_GET(0, SPI_WORD_SET(8) | SPI_TRANSFER_MSB), #if HAVE_GPIO_ANTENNA_ENABLE .antenna_enable = GPIO_DT_SPEC_INST_GET(0, antenna_enable_gpios), #endif diff --git a/drivers/lora/loramac_node/sx127x.c b/drivers/lora/loramac_node/sx127x.c index 1dc6404495fd0..d478b4081c71e 100644 --- a/drivers/lora/loramac_node/sx127x.c +++ b/drivers/lora/loramac_node/sx127x.c @@ -175,7 +175,7 @@ struct sx127x_config { }; static const struct sx127x_config dev_config = { - .bus = SPI_DT_SPEC_INST_GET(0, SPI_WORD_SET(8) | SPI_TRANSFER_MSB, 0), + .bus = SPI_DT_SPEC_INST_GET(0, SPI_WORD_SET(8) | SPI_TRANSFER_MSB), .reset = GPIO_DT_SPEC_INST_GET(0, reset_gpios), #if DT_INST_NODE_HAS_PROP(0, antenna_enable_gpios) .antenna_enable = GPIO_DT_SPEC_INST_GET(0, antenna_enable_gpios), diff --git a/drivers/mfd/mfd_ad559x.c b/drivers/mfd/mfd_ad559x.c index 1d298e8edae02..3643640bce40c 100644 --- a/drivers/mfd/mfd_ad559x.c +++ b/drivers/mfd/mfd_ad559x.c @@ -89,7 +89,7 @@ static int mfd_ad559x_init(const struct device *dev) (SPI_WORD_SET(8) | SPI_TRANSFER_MSB | SPI_OP_MODE_MASTER | SPI_MODE_CPOL) #define MDF_AD559X_DEFINE_SPI_BUS(inst) \ - .spi = SPI_DT_SPEC_INST_GET(inst, MDF_AD559X_DEFINE_SPI_BUS_FLAGS, 0), \ + .spi = SPI_DT_SPEC_INST_GET(inst, MDF_AD559X_DEFINE_SPI_BUS_FLAGS), \ .bus_init = mfd_ad559x_spi_init, .has_pointer_byte_map = false #define MFD_AD559X_DEFINE_BUS(inst) \ diff --git a/drivers/mfd/mfd_bd8lb600fs.c b/drivers/mfd/mfd_bd8lb600fs.c index 02e977e702df4..582d1d4367539 100644 --- a/drivers/mfd/mfd_bd8lb600fs.c +++ b/drivers/mfd/mfd_bd8lb600fs.c @@ -225,7 +225,7 @@ static int bd8lb600fs_init(const struct device *dev) #define BD8LB600FS_INIT(inst) \ static const struct bd8lb600fs_config bd8lb600fs_##inst##_config = { \ .bus = SPI_DT_SPEC_INST_GET( \ - inst, SPI_OP_MODE_MASTER | SPI_MODE_CPHA | SPI_WORD_SET(8), 0), \ + inst, SPI_OP_MODE_MASTER | SPI_MODE_CPHA | SPI_WORD_SET(8)), \ .gpio_reset = GPIO_DT_SPEC_GET_BY_IDX(DT_DRV_INST(inst), reset_gpios, 0), \ .instance_count = DT_INST_PROP(inst, instance_count), \ }; \ diff --git a/drivers/mfd/mfd_max22017.c b/drivers/mfd/mfd_max22017.c index a4b7d6fa1557c..2aca54edd86b2 100644 --- a/drivers/mfd/mfd_max22017.c +++ b/drivers/mfd/mfd_max22017.c @@ -375,7 +375,7 @@ static int max22017_init(const struct device *dev) #define INST_DT_MAX22017(index) \ static const struct max22017_config max22017_config_##index = { \ - .spi = SPI_DT_SPEC_INST_GET(index, SPI_OP_MODE_MASTER | SPI_WORD_SET(8U), 0U), \ + .spi = SPI_DT_SPEC_INST_GET(index, SPI_OP_MODE_MASTER | SPI_WORD_SET(8U)), \ .gpio_int = GPIO_DT_SPEC_INST_GET_OR(index, int_gpios, {0}), \ .gpio_reset = GPIO_DT_SPEC_INST_GET_OR(index, rst_gpios, {0}), \ .crc_mode = DT_INST_PROP_OR(index, crc_mode, 0), \ diff --git a/drivers/mfd/mfd_maxq10xx.c b/drivers/mfd/mfd_maxq10xx.c index d5c5642783f3e..228f213753486 100644 --- a/drivers/mfd/mfd_maxq10xx.c +++ b/drivers/mfd/mfd_maxq10xx.c @@ -45,7 +45,7 @@ BUILD_ASSERT(CONFIG_SPI_INIT_PRIORITY < CONFIG_MFD_MAXQ10XX_INIT_PRIORITY, #define DEFINE_MAXQ10XX_MFD(_num) \ static const struct mfd_maxq10xx_config mfd_maxq10xx_config##_num = { \ - .spi = SPI_DT_SPEC_INST_GET(_num, SPI_WORD_SET(8), 0), \ + .spi = SPI_DT_SPEC_INST_GET(_num, SPI_WORD_SET(8)), \ }; \ static struct mfd_maxq10xx_data mfd_maxq10xx_data##_num = { \ .sem_lock = Z_SEM_INITIALIZER(mfd_maxq10xx_data##_num.sem_lock, 1, 1), \ diff --git a/drivers/mfd/mfd_tle9104.c b/drivers/mfd/mfd_tle9104.c index 710c6d1d8a5d7..af9ac963a8e1d 100644 --- a/drivers/mfd/mfd_tle9104.c +++ b/drivers/mfd/mfd_tle9104.c @@ -598,7 +598,7 @@ static int tle9104_init(const struct device *dev) #define TLE9104_INIT(inst) \ static const struct tle9104_config tle9104_##inst##_config = { \ .bus = SPI_DT_SPEC_INST_GET( \ - inst, SPI_OP_MODE_MASTER | SPI_MODE_CPHA | SPI_WORD_SET(8), 0), \ + inst, SPI_OP_MODE_MASTER | SPI_MODE_CPHA | SPI_WORD_SET(8)), \ .gpio_enable = TLE9104_INIT_GPIO_FIELDS(inst, en_gpios), \ .gpio_reset = TLE9104_INIT_GPIO_FIELDS(inst, resn_gpios), \ .gpio_control = { \ diff --git a/drivers/misc/ft8xx/ft8xx.c b/drivers/misc/ft8xx/ft8xx.c index a77eb0016edc1..bda655d45f961 100644 --- a/drivers/misc/ft8xx/ft8xx.c +++ b/drivers/misc/ft8xx/ft8xx.c @@ -228,7 +228,7 @@ static struct ft8xx_data ft8xx_##idx##_data = { .irq_callback = NULL, \ .irq_callback_ud = NULL, \ \ - .spi = SPI_DT_SPEC_INST_GET(idx, SPI_WORD_SET(8) | SPI_OP_MODE_MASTER, 0), \ + .spi = SPI_DT_SPEC_INST_GET(idx, SPI_WORD_SET(8) | SPI_OP_MODE_MASTER), \ .irq_gpio = GPIO_DT_SPEC_INST_GET(idx, irq_gpios), \ }; \ DEVICE_DT_INST_DEFINE(idx, ft8xx_init, NULL, &ft8xx_##idx##_data, &ft8xx_##idx##_config, \ diff --git a/drivers/rtc/rtc_pcf2123.c b/drivers/rtc/rtc_pcf2123.c index 7d69d6744852f..08c584117f51b 100644 --- a/drivers/rtc/rtc_pcf2123.c +++ b/drivers/rtc/rtc_pcf2123.c @@ -655,7 +655,7 @@ int pcf2123_init(const struct device *dev) #define PCF2123_INIT(inst) \ static const struct pcf2123_config pcf2123_config_##inst = { \ - .spi = SPI_DT_SPEC_INST_GET(inst, SPI_WORD_SET(8) | SPI_TRANSFER_MSB, 0U), \ + .spi = SPI_DT_SPEC_INST_GET(inst, SPI_WORD_SET(8) | SPI_TRANSFER_MSB), \ IF_ENABLED(PCF2123_INT1_GPIOS_IN_USE,\ (.int1 = GPIO_DT_SPEC_INST_GET_OR(inst, int1_gpios, {0})) \ )}; \ diff --git a/drivers/sdhc/sdhc_spi.c b/drivers/sdhc/sdhc_spi.c index 950f511ade094..e34a306e8ab91 100644 --- a/drivers/sdhc/sdhc_spi.c +++ b/drivers/sdhc/sdhc_spi.c @@ -845,8 +845,7 @@ static DEVICE_API(sdhc, sdhc_spi_api) = { (SPI_LOCK_ON | SPI_HOLD_ON_CS | SPI_WORD_SET(8) \ | (DT_INST_PROP(n, spi_clock_mode_cpol) ? SPI_MODE_CPOL : 0) \ | (DT_INST_PROP(n, spi_clock_mode_cpha) ? SPI_MODE_CPHA : 0) \ - ),\ - 0), \ + )), \ }; \ \ DEVICE_DT_INST_DEFINE(n, \ diff --git a/drivers/sensor/adi/ad2s1210/ad2s1210.c b/drivers/sensor/adi/ad2s1210/ad2s1210.c index 73951ece0ae69..874b734e9c2d8 100644 --- a/drivers/sensor/adi/ad2s1210/ad2s1210.c +++ b/drivers/sensor/adi/ad2s1210/ad2s1210.c @@ -868,7 +868,7 @@ static int ad2s1210_init(const struct device *dev) /* cppcheck-suppress unusedFu static struct ad2s1210_data ad2s1210_data_##i; \ \ static const struct ad2s1210_config ad2s1210_config_##i = { \ - .spi = SPI_DT_SPEC_INST_GET(i, SPI_WORD_SET(8), 0), \ + .spi = SPI_DT_SPEC_INST_GET(i, SPI_WORD_SET(8)), \ .sample_gpio = GPIO_DT_SPEC_INST_GET(i, sample_gpios), \ .mode_gpios = \ { \ diff --git a/drivers/sensor/adi/adt7310/adt7310.c b/drivers/sensor/adi/adt7310/adt7310.c index ef4cb12cc0c68..b7dacb60ac506 100644 --- a/drivers/sensor/adi/adt7310/adt7310.c +++ b/drivers/sensor/adi/adt7310/adt7310.c @@ -291,7 +291,7 @@ static DEVICE_API(sensor, adt7310_driver_api) = { static const struct adt7310_dev_config adt7310_config_##inst = { \ .bus = SPI_DT_SPEC_INST_GET( \ inst, \ - (SPI_WORD_SET(8) | SPI_TRANSFER_MSB | SPI_MODE_CPOL | SPI_MODE_CPHA), 0), \ + (SPI_WORD_SET(8) | SPI_TRANSFER_MSB | SPI_MODE_CPOL | SPI_MODE_CPHA)), \ \ IF_ENABLED(CONFIG_ADT7310_TRIGGER, \ (.int_gpio = GPIO_DT_SPEC_INST_GET_OR(inst, int_gpios, {0}),))}; \ diff --git a/drivers/sensor/adi/adxl345/adxl345.c b/drivers/sensor/adi/adxl345/adxl345.c index 471341f1b9e79..5a8d5648e5171 100644 --- a/drivers/sensor/adi/adxl345/adxl345.c +++ b/drivers/sensor/adi/adxl345/adxl345.c @@ -515,7 +515,7 @@ static int adxl345_init(const struct device *dev) COND_CODE_1(CONFIG_SPI_RTIO, \ (SPI_DT_IODEV_DEFINE(adxl345_iodev_##inst, DT_DRV_INST(inst), \ SPI_WORD_SET(8) | SPI_TRANSFER_MSB | \ - SPI_MODE_CPOL | SPI_MODE_CPHA, 0U);), \ + SPI_MODE_CPOL | SPI_MODE_CPHA);), \ ()) #define ADXL345_RTIO_I2C_DEFINE(inst) \ @@ -554,8 +554,7 @@ static int adxl345_init(const struct device *dev) SPI_WORD_SET(8) | \ SPI_TRANSFER_MSB | \ SPI_MODE_CPOL | \ - SPI_MODE_CPHA, \ - 0)}, \ + SPI_MODE_CPHA)}, \ .bus_is_ready = adxl345_bus_is_ready_spi, \ .reg_access = adxl345_reg_access_spi, \ .bus_type = ADXL345_BUS_SPI, \ diff --git a/drivers/sensor/adi/adxl362/adxl362.c b/drivers/sensor/adi/adxl362/adxl362.c index 8ddddfeaef582..6e74cde7f873a 100644 --- a/drivers/sensor/adi/adxl362/adxl362.c +++ b/drivers/sensor/adi/adxl362/adxl362.c @@ -818,7 +818,7 @@ static int adxl362_init(const struct device *dev) #define ADXL362_RTIO_DEFINE(inst) \ SPI_DT_IODEV_DEFINE(adxl362_iodev_##inst, DT_DRV_INST(inst), \ - ADXL362_SPI_CFG, 0U); \ + ADXL362_SPI_CFG); \ RTIO_DEFINE(adxl362_rtio_ctx_##inst, 8, 8); #define ADXL362_DEFINE(inst)\ @@ -828,7 +828,7 @@ static int adxl362_init(const struct device *dev) .iodev = &adxl362_iodev_##inst,)) \ }; \ static const struct adxl362_config adxl362_config_##inst = { \ - .bus = SPI_DT_SPEC_INST_GET(inst, ADXL362_SPI_CFG, 0), \ + .bus = SPI_DT_SPEC_INST_GET(inst, ADXL362_SPI_CFG), \ .power_ctl = ADXL362_POWER_CTL_MEASURE(ADXL362_MEASURE_ON) | \ (DT_INST_PROP(inst, wakeup_mode) * ADXL362_POWER_CTL_WAKEUP) | \ (DT_INST_PROP(inst, autosleep) * ADXL362_POWER_CTL_AUTOSLEEP), \ diff --git a/drivers/sensor/adi/adxl367/adxl367.c b/drivers/sensor/adi/adxl367/adxl367.c index 476514cea776e..5196773c3f479 100644 --- a/drivers/sensor/adi/adxl367/adxl367.c +++ b/drivers/sensor/adi/adxl367/adxl367.c @@ -1145,13 +1145,13 @@ static int adxl367_init(const struct device *dev) #define ADXL367_RTIO_DEFINE(inst, chipid) \ SPI_DT_IODEV_DEFINE(adxl367_iodev_##inst##chipid, DT_DRV_INST(inst), \ - ADXL367_SPI_CFG, 0U); \ + ADXL367_SPI_CFG); \ RTIO_DEFINE(adxl367_rtio_ctx_##inst##chipid, 8, 8); #define ADXL367_CONFIG_SPI(inst, chipid) \ { \ .bus_init = adxl367_spi_init, \ - .spi = SPI_DT_SPEC_INST_GET(inst, ADXL367_SPI_CFG, 0), \ + .spi = SPI_DT_SPEC_INST_GET(inst, ADXL367_SPI_CFG), \ ADXL367_CONFIG(inst, chipid) \ COND_CODE_1(DT_INST_NODE_HAS_PROP(inst, int1_gpios), \ (ADXL367_CFG_IRQ(inst)), ()) \ diff --git a/drivers/sensor/adi/adxl372/adxl372.c b/drivers/sensor/adi/adxl372/adxl372.c index a0ac2ce73c3df..6bb25b2ebfb94 100644 --- a/drivers/sensor/adi/adxl372/adxl372.c +++ b/drivers/sensor/adi/adxl372/adxl372.c @@ -870,8 +870,8 @@ static int adxl372_init(const struct device *dev) */ #define ADXL372_SPI_CFG SPI_WORD_SET(8) | SPI_TRANSFER_MSB -#define ADXL372_RTIO_DEFINE(inst) \ - SPI_DT_IODEV_DEFINE(adxl372_iodev_##inst, DT_DRV_INST(inst), ADXL372_SPI_CFG, 0U); \ +#define ADXL372_RTIO_DEFINE(inst) \ + SPI_DT_IODEV_DEFINE(adxl372_iodev_##inst, DT_DRV_INST(inst), ADXL372_SPI_CFG); \ RTIO_DEFINE(adxl372_rtio_ctx_##inst, 16, 16); #ifdef CONFIG_ADXL372_TRIGGER @@ -910,7 +910,7 @@ static int adxl372_init(const struct device *dev) #define ADXL372_CONFIG_SPI(inst) \ { \ .bus_init = adxl372_spi_init, \ - .spi = SPI_DT_SPEC_INST_GET(inst, ADXL372_SPI_CFG, 0), \ + .spi = SPI_DT_SPEC_INST_GET(inst, ADXL372_SPI_CFG), \ ADXL372_CONFIG(inst) \ COND_CODE_1(DT_INST_NODE_HAS_PROP(inst, int1_gpios), \ (ADXL372_CFG_IRQ(inst)), ()) \ diff --git a/drivers/sensor/bosch/bma4xx/bma4xx.c b/drivers/sensor/bosch/bma4xx/bma4xx.c index a9afda946bbf4..543224716f661 100644 --- a/drivers/sensor/bosch/bma4xx/bma4xx.c +++ b/drivers/sensor/bosch/bma4xx/bma4xx.c @@ -338,7 +338,7 @@ static DEVICE_API(sensor, bma4xx_driver_api) = { * SPI operation is not currently supported. */ #define BMA4XX_CONFIG_SPI(inst) \ - .bus_cfg.spi = SPI_DT_SPEC_INST_GET(inst, 0, 0), .bus_init = &bma4xx_spi_init, \ + .bus_cfg.spi = SPI_DT_SPEC_INST_GET(inst, 0), .bus_init = &bma4xx_spi_init, \ .bus_type = BMA4XX_BUS_SPI, /* Initializes a struct bma4xx_config for an instance on an I2C bus. */ diff --git a/drivers/sensor/bosch/bme280/bme280.c b/drivers/sensor/bosch/bme280/bme280.c index 05566104ce655..13e61a4024405 100644 --- a/drivers/sensor/bosch/bme280/bme280.c +++ b/drivers/sensor/bosch/bme280/bme280.c @@ -439,7 +439,7 @@ static int bme280_pm_action(const struct device *dev, #define BME280_CONFIG_SPI(inst) \ { \ .bus.spi = SPI_DT_SPEC_INST_GET( \ - inst, BME280_SPI_OPERATION, 0), \ + inst, BME280_SPI_OPERATION), \ .bus_io = &bme280_bus_io_spi, \ } diff --git a/drivers/sensor/bosch/bme680/bme680.c b/drivers/sensor/bosch/bme680/bme680.c index 363a8cd8fe42f..7c96e46a73c43 100644 --- a/drivers/sensor/bosch/bme680/bme680.c +++ b/drivers/sensor/bosch/bme680/bme680.c @@ -489,7 +489,7 @@ static DEVICE_API(sensor, bme680_api_funcs) = { #define BME680_CONFIG_SPI(inst) \ { \ .bus.spi = SPI_DT_SPEC_INST_GET( \ - inst, BME680_SPI_OPERATION, 0), \ + inst, BME680_SPI_OPERATION), \ .bus_io = &bme680_bus_io_spi, \ } diff --git a/drivers/sensor/bosch/bmi08x/bmi08x_accel.c b/drivers/sensor/bosch/bmi08x/bmi08x_accel.c index 7de8c6ed68204..6053638b0d4c8 100644 --- a/drivers/sensor/bosch/bmi08x/bmi08x_accel.c +++ b/drivers/sensor/bosch/bmi08x/bmi08x_accel.c @@ -724,7 +724,7 @@ int bmi08x_accel_init(const struct device *dev) #define BMI08X_CONFIG_SPI(inst) \ .bus.spi = SPI_DT_SPEC_INST_GET( \ - inst, SPI_OP_MODE_MASTER | SPI_TRANSFER_MSB | SPI_WORD_SET(8), 2), + inst, SPI_OP_MODE_MASTER | SPI_TRANSFER_MSB | SPI_WORD_SET(8)), #define BMI08X_CONFIG_I2C(inst) .bus.i2c = I2C_DT_SPEC_INST_GET(inst), diff --git a/drivers/sensor/bosch/bmi08x/bmi08x_gyro.c b/drivers/sensor/bosch/bmi08x/bmi08x_gyro.c index 9ad076db865fa..9fec8f71222e9 100644 --- a/drivers/sensor/bosch/bmi08x/bmi08x_gyro.c +++ b/drivers/sensor/bosch/bmi08x/bmi08x_gyro.c @@ -421,7 +421,7 @@ int bmi08x_gyro_init(const struct device *dev) #define BMI08X_CONFIG_SPI(inst) \ .bus.spi = SPI_DT_SPEC_INST_GET( \ - inst, SPI_OP_MODE_MASTER | SPI_TRANSFER_MSB | SPI_WORD_SET(8), 2), + inst, SPI_OP_MODE_MASTER | SPI_TRANSFER_MSB | SPI_WORD_SET(8)), #define BMI08X_CONFIG_I2C(inst) .bus.i2c = I2C_DT_SPEC_INST_GET(inst), diff --git a/drivers/sensor/bosch/bmi160/bmi160.c b/drivers/sensor/bosch/bmi160/bmi160.c index 2652aa443eeba..245710bc016aa 100644 --- a/drivers/sensor/bosch/bmi160/bmi160.c +++ b/drivers/sensor/bosch/bmi160/bmi160.c @@ -1194,7 +1194,7 @@ int bmi160_pm(const struct device *dev, enum pm_device_action action) #define BMI160_DEFINE_SPI(inst) \ static struct bmi160_data bmi160_data_##inst; \ static const struct bmi160_cfg bmi160_cfg_##inst = { \ - .bus.spi = SPI_DT_SPEC_INST_GET(inst, SPI_WORD_SET(8), 0), \ + .bus.spi = SPI_DT_SPEC_INST_GET(inst, SPI_WORD_SET(8)), \ .bus_io = &bmi160_bus_io_spi, \ BMI160_TRIGGER_CFG(inst) \ }; \ diff --git a/drivers/sensor/bosch/bmi270/bmi270.c b/drivers/sensor/bosch/bmi270/bmi270.c index fc8652a7d1d9c..b9ef83c47c3ba 100644 --- a/drivers/sensor/bosch/bmi270/bmi270.c +++ b/drivers/sensor/bosch/bmi270/bmi270.c @@ -808,7 +808,7 @@ static const struct bmi270_feature_config bmi270_feature_base = { /* Initializes a struct bmi270_config for an instance on a SPI bus. */ #define BMI270_CONFIG_SPI(inst) \ .bus.spi = SPI_DT_SPEC_INST_GET( \ - inst, BMI270_SPI_OPERATION, 0), \ + inst, BMI270_SPI_OPERATION), \ .bus_io = &bmi270_bus_io_spi, /* Initializes a struct bmi270_config for an instance on an I2C bus. */ diff --git a/drivers/sensor/bosch/bmi323/bmi323_spi.h b/drivers/sensor/bosch/bmi323/bmi323_spi.h index 2908c1ca0ea17..d090144480304 100644 --- a/drivers/sensor/bosch/bmi323/bmi323_spi.h +++ b/drivers/sensor/bosch/bmi323/bmi323_spi.h @@ -15,7 +15,7 @@ extern const struct bosch_bmi323_bus_api bosch_bmi323_spi_bus_api; \ \ static const struct spi_dt_spec spi_spec##inst = \ - SPI_DT_SPEC_INST_GET(inst, SPI_WORD_SET(8), 0); \ + SPI_DT_SPEC_INST_GET(inst, SPI_WORD_SET(8)); \ \ static const struct bosch_bmi323_bus bosch_bmi323_bus_api##inst = { \ .context = &spi_spec##inst, .api = &bosch_bmi323_spi_bus_api} diff --git a/drivers/sensor/bosch/bmm150/bmm150.c b/drivers/sensor/bosch/bmm150/bmm150.c index fdca4a2335362..9db0f55531571 100644 --- a/drivers/sensor/bosch/bmm150/bmm150.c +++ b/drivers/sensor/bosch/bmm150/bmm150.c @@ -697,7 +697,7 @@ static int bmm150_init(const struct device *dev) /* Initializes a struct bmm150_config for an instance on a SPI bus. */ #define BMM150_CONFIG_SPI(inst) \ - .bus.spi = SPI_DT_SPEC_INST_GET(inst, BMM150_SPI_OPERATION, 0), \ + .bus.spi = SPI_DT_SPEC_INST_GET(inst, BMM150_SPI_OPERATION), \ .bus_io = &bmm150_bus_io_spi, /* Initializes a struct bmm150_config for an instance on an I2C bus. */ diff --git a/drivers/sensor/bosch/bmp388/bmp388.c b/drivers/sensor/bosch/bmp388/bmp388.c index a91ddd6bf4ddb..2b0c499f13f33 100644 --- a/drivers/sensor/bosch/bmp388/bmp388.c +++ b/drivers/sensor/bosch/bmp388/bmp388.c @@ -537,7 +537,7 @@ static int bmp388_init(const struct device *dev) /* Initializes a struct bmp388_config for an instance on a SPI bus. */ #define BMP388_CONFIG_SPI(inst) \ - .bus.spi = SPI_DT_SPEC_INST_GET(inst, BMP388_SPI_OPERATION, 0), \ + .bus.spi = SPI_DT_SPEC_INST_GET(inst, BMP388_SPI_OPERATION), \ .bus_io = &bmp388_bus_io_spi, /* Initializes a struct bmp388_config for an instance on an I2C bus. */ diff --git a/drivers/sensor/broadcom/afbr_s50/afbr_s50.c b/drivers/sensor/broadcom/afbr_s50/afbr_s50.c index 8ddcc2242c0b0..eb91c7e90144f 100644 --- a/drivers/sensor/broadcom/afbr_s50/afbr_s50.c +++ b/drivers/sensor/broadcom/afbr_s50/afbr_s50.c @@ -395,8 +395,7 @@ BUILD_ASSERT(CONFIG_MAIN_STACK_SIZE >= 4096, SPI_DT_IODEV_DEFINE(afbr_s50_bus_##inst, \ DT_DRV_INST(inst), \ SPI_OP_MODE_MASTER | SPI_WORD_SET(8) | SPI_TRANSFER_MSB | \ - SPI_MODE_CPOL | SPI_MODE_CPHA, \ - 0U); \ + SPI_MODE_CPOL | SPI_MODE_CPHA); \ \ static const struct afbr_s50_config afbr_s50_cfg_##inst = { \ .gpio = { \ diff --git a/drivers/sensor/ens160/ens160.c b/drivers/sensor/ens160/ens160.c index 5d41d6123aed7..d208892754afe 100644 --- a/drivers/sensor/ens160/ens160.c +++ b/drivers/sensor/ens160/ens160.c @@ -306,7 +306,7 @@ static int ens160_pm_action(const struct device *dev, enum pm_device_action acti #define ENS160_CONFIG_SPI(inst) \ .bus_init = &ens160_spi_init, \ - .spi = SPI_DT_SPEC_INST_GET(inst, ENS160_SPI_OPERATION, 0), + .spi = SPI_DT_SPEC_INST_GET(inst, ENS160_SPI_OPERATION), #define ENS160_CONFIG_I2C(inst) \ .bus_init = &ens160_i2c_init, \ diff --git a/drivers/sensor/maxim/max31855/max31855.c b/drivers/sensor/maxim/max31855/max31855.c index 2da53d035cb4a..990f4491600fb 100644 --- a/drivers/sensor/maxim/max31855/max31855.c +++ b/drivers/sensor/maxim/max31855/max31855.c @@ -124,7 +124,7 @@ static int max31855_init(const struct device *dev) #define MAX31855_INIT(n) \ static struct max31855_data max31855_data_##n; \ static const struct max31855_config max31855_config_##n = { \ - .spi = SPI_DT_SPEC_INST_GET(n, SPI_OP_MODE_MASTER | SPI_WORD_SET(8U), 0U), \ + .spi = SPI_DT_SPEC_INST_GET(n, SPI_OP_MODE_MASTER | SPI_WORD_SET(8U)), \ }; \ SENSOR_DEVICE_DT_INST_DEFINE(n, &max31855_init, NULL, &max31855_data_##n, \ &max31855_config_##n, POST_KERNEL, \ diff --git a/drivers/sensor/maxim/max31865/max31865.c b/drivers/sensor/maxim/max31865/max31865.c index e42992acf746d..a9924779d65f7 100644 --- a/drivers/sensor/maxim/max31865/max31865.c +++ b/drivers/sensor/maxim/max31865/max31865.c @@ -313,7 +313,7 @@ static DEVICE_API(sensor, max31865_api_funcs) = { static struct max31865_data max31865_data_##inst; \ \ static const struct max31865_config max31865_config_##inst = { \ - .spi = SPI_DT_SPEC_INST_GET(inst, SPI_MODE_CPHA | SPI_WORD_SET(8), 0), \ + .spi = SPI_DT_SPEC_INST_GET(inst, SPI_MODE_CPHA | SPI_WORD_SET(8)), \ .resistance_at_zero = DT_INST_PROP(inst, resistance_at_zero), \ .resistance_reference = DT_INST_PROP(inst, resistance_reference), \ .conversion_mode = false, \ diff --git a/drivers/sensor/maxim/max6675/max6675.c b/drivers/sensor/maxim/max6675/max6675.c index 8d37317789064..2c84c308b0cfb 100644 --- a/drivers/sensor/maxim/max6675/max6675.c +++ b/drivers/sensor/maxim/max6675/max6675.c @@ -104,8 +104,7 @@ static int max6675_init(const struct device *dev) static const struct max6675_config max6675_config_##n = { \ .spi = SPI_DT_SPEC_INST_GET(n, \ SPI_OP_MODE_MASTER | \ - SPI_WORD_SET(8U), \ - 0U), \ + SPI_WORD_SET(8U)), \ }; \ SENSOR_DEVICE_DT_INST_DEFINE(n, &max6675_init, NULL, \ &max6675_data_##n, &max6675_config_##n, \ diff --git a/drivers/sensor/meas/ms5607/ms5607.c b/drivers/sensor/meas/ms5607/ms5607.c index cd5ae0b82f8b8..f7154975c4112 100644 --- a/drivers/sensor/meas/ms5607/ms5607.c +++ b/drivers/sensor/meas/ms5607/ms5607.c @@ -324,8 +324,7 @@ static DEVICE_API(sensor, ms5607_api_funcs) = { { \ .tf = &ms5607_spi_transfer_function, \ .bus_cfg.spi = SPI_DT_SPEC_INST_GET(inst, \ - MS5607_SPI_OPERATION, \ - 0), \ + MS5607_SPI_OPERATION) \ } /* Initializes a struct ms5607_config for an instance on a I2C bus. */ diff --git a/drivers/sensor/nxp/fxas21002/fxas21002.c b/drivers/sensor/nxp/fxas21002/fxas21002.c index 32a53bf50132d..d32e39dfdf918 100644 --- a/drivers/sensor/nxp/fxas21002/fxas21002.c +++ b/drivers/sensor/nxp/fxas21002/fxas21002.c @@ -452,7 +452,7 @@ static DEVICE_API(sensor, fxas21002_driver_api) = { #define FXAS21002_CONFIG_SPI(inst) \ .bus_cfg = {.spi = SPI_DT_SPEC_INST_GET(inst, \ - SPI_OP_MODE_MASTER | SPI_WORD_SET(8), 0) }, \ + SPI_OP_MODE_MASTER | SPI_WORD_SET(8)) }, \ .ops = &fxas21002_spi_ops, \ .reset_gpio = GPIO_DT_SPEC_INST_GET(inst, reset_gpios), \ .inst_on_bus = FXAS21002_BUS_SPI, \ diff --git a/drivers/sensor/nxp/fxls8974/fxls8974.c b/drivers/sensor/nxp/fxls8974/fxls8974.c index 2c8ec8042767e..8eb318ecbf61f 100644 --- a/drivers/sensor/nxp/fxls8974/fxls8974.c +++ b/drivers/sensor/nxp/fxls8974/fxls8974.c @@ -594,7 +594,7 @@ static DEVICE_API(sensor, fxls8974_driver_api) = { #define FXLS8974_CONFIG_SPI(n) \ .bus_cfg = { .spi = SPI_DT_SPEC_INST_GET(n, \ - SPI_OP_MODE_MASTER | SPI_WORD_SET(8), 0) }, \ + SPI_OP_MODE_MASTER | SPI_WORD_SET(8)) }, \ .ops = &fxls8974_spi_ops, \ .range = DT_INST_PROP(n, range), \ .inst_on_bus = FXLS8974_BUS_SPI, \ diff --git a/drivers/sensor/nxp/fxos8700/fxos8700.c b/drivers/sensor/nxp/fxos8700/fxos8700.c index 285d8a38c578c..cad571c5c6932 100644 --- a/drivers/sensor/nxp/fxos8700/fxos8700.c +++ b/drivers/sensor/nxp/fxos8700/fxos8700.c @@ -744,7 +744,7 @@ static DEVICE_API(sensor, fxos8700_driver_api) = { #define FXOS8700_CONFIG_SPI(n) \ .bus_cfg = { .spi = SPI_DT_SPEC_INST_GET(n, \ - SPI_OP_MODE_MASTER | SPI_WORD_SET(8), 0) }, \ + SPI_OP_MODE_MASTER | SPI_WORD_SET(8)) }, \ .ops = &fxos8700_spi_ops, \ .power_mode = DT_INST_PROP(n, power_mode), \ .range = DT_INST_PROP(n, range), \ diff --git a/drivers/sensor/pixart/paa3905/paa3905.c b/drivers/sensor/pixart/paa3905/paa3905.c index bb867fbe7655b..88a2f667a7c85 100644 --- a/drivers/sensor/pixart/paa3905/paa3905.c +++ b/drivers/sensor/pixart/paa3905/paa3905.c @@ -310,8 +310,7 @@ static int paa3905_init(const struct device *dev) RTIO_DEFINE(paa3905_rtio_ctx_##inst, 8, 8); \ SPI_DT_IODEV_DEFINE(paa3905_bus_##inst, \ DT_DRV_INST(inst), \ - SPI_OP_MODE_MASTER | SPI_WORD_SET(8) | SPI_TRANSFER_MSB, \ - 0U); \ + SPI_OP_MODE_MASTER | SPI_WORD_SET(8) | SPI_TRANSFER_MSB); \ \ static const struct paa3905_config paa3905_cfg_##inst = { \ .int_gpio = GPIO_DT_SPEC_INST_GET_OR(inst, int_gpios, {0}), \ diff --git a/drivers/sensor/pixart/pat9136/pat9136.c b/drivers/sensor/pixart/pat9136/pat9136.c index 73f361ab268e6..7c6601483517e 100644 --- a/drivers/sensor/pixart/pat9136/pat9136.c +++ b/drivers/sensor/pixart/pat9136/pat9136.c @@ -444,8 +444,7 @@ static int pat9136_init(const struct device *dev) RTIO_DEFINE(pat9136_rtio_ctx_##inst, 16, 16); \ SPI_DT_IODEV_DEFINE(pat9136_bus_##inst, \ DT_DRV_INST(inst), \ - SPI_OP_MODE_MASTER | SPI_WORD_SET(8) | SPI_TRANSFER_MSB, \ - 0U); \ + SPI_OP_MODE_MASTER | SPI_WORD_SET(8) | SPI_TRANSFER_MSB); \ \ static const struct pat9136_config pat9136_cfg_##inst = { \ .int_gpio = GPIO_DT_SPEC_INST_GET_OR(inst, int_gpios, {0}), \ diff --git a/drivers/sensor/st/hts221/hts221.c b/drivers/sensor/st/hts221/hts221.c index 6dbb771207a26..e895e218a402f 100644 --- a/drivers/sensor/st/hts221/hts221.c +++ b/drivers/sensor/st/hts221/hts221.c @@ -240,8 +240,7 @@ int hts221_init(const struct device *dev) STMEMSC_CTX_SPI(&hts221_config_##inst.stmemsc_cfg), \ .stmemsc_cfg = { \ .spi = SPI_DT_SPEC_INST_GET(inst, \ - HTS221_SPI_OPERATION, \ - 0), \ + HTS221_SPI_OPERATION) \ }, \ HTS221_CONFIG_COMMON(inst) \ } diff --git a/drivers/sensor/st/i3g4250d/i3g4250d.c b/drivers/sensor/st/i3g4250d/i3g4250d.c index adb638459ad38..00e5a20fceaac 100644 --- a/drivers/sensor/st/i3g4250d/i3g4250d.c +++ b/drivers/sensor/st/i3g4250d/i3g4250d.c @@ -213,8 +213,7 @@ static int i3g4250d_init(const struct device *dev) static const struct i3g4250d_device_config i3g4250d_config_##inst = { \ .spi = SPI_DT_SPEC_INST_GET(inst, \ SPI_OP_MODE_MASTER | SPI_MODE_CPOL | \ - SPI_MODE_CPHA | SPI_WORD_SET(8) | SPI_LINES_SINGLE, \ - 0), \ + SPI_MODE_CPHA | SPI_WORD_SET(8) | SPI_LINES_SINGLE) \ }; \ SENSOR_DEVICE_DT_INST_DEFINE(inst, \ i3g4250d_init, \ diff --git a/drivers/sensor/st/iis2dh/iis2dh.c b/drivers/sensor/st/iis2dh/iis2dh.c index e827973bb90b2..07b29d422ce89 100644 --- a/drivers/sensor/st/iis2dh/iis2dh.c +++ b/drivers/sensor/st/iis2dh/iis2dh.c @@ -302,7 +302,7 @@ static int iis2dh_init(const struct device *dev) #define IIS2DH_SPI(inst) \ (.spi = SPI_DT_SPEC_INST_GET( \ - 0, SPI_OP_MODE_MASTER | SPI_MODE_CPOL | SPI_MODE_CPHA | SPI_WORD_SET(8), 0),) + 0, SPI_OP_MODE_MASTER | SPI_MODE_CPOL | SPI_MODE_CPHA | SPI_WORD_SET(8)),) #define IIS2DH_I2C(inst) (.i2c = I2C_DT_SPEC_INST_GET(inst),) diff --git a/drivers/sensor/st/iis2dlpc/iis2dlpc.c b/drivers/sensor/st/iis2dlpc/iis2dlpc.c index 2ccc6995f75f0..d3b0852ec0293 100644 --- a/drivers/sensor/st/iis2dlpc/iis2dlpc.c +++ b/drivers/sensor/st/iis2dlpc/iis2dlpc.c @@ -463,8 +463,7 @@ static int iis2dlpc_init(const struct device *dev) STMEMSC_CTX_SPI(&iis2dlpc_config_##inst.stmemsc_cfg), \ .stmemsc_cfg = { \ .spi = SPI_DT_SPEC_INST_GET(inst, \ - IIS2DLPC_SPI_OPERATION, \ - 0), \ + IIS2DLPC_SPI_OPERATION), \ }, \ IIS2DLPC_CONFIG_COMMON(inst) \ } diff --git a/drivers/sensor/st/iis2iclx/iis2iclx.c b/drivers/sensor/st/iis2iclx/iis2iclx.c index 864e13e2f5788..4eb54b7704d23 100644 --- a/drivers/sensor/st/iis2iclx/iis2iclx.c +++ b/drivers/sensor/st/iis2iclx/iis2iclx.c @@ -651,8 +651,7 @@ static int iis2iclx_init(const struct device *dev) STMEMSC_CTX_SPI(&iis2iclx_config_##inst.stmemsc_cfg), \ .stmemsc_cfg = { \ .spi = SPI_DT_SPEC_INST_GET(inst, \ - IIS2ICLX_SPI_OPERATION, \ - 0), \ + IIS2ICLX_SPI_OPERATION) \ }, \ IIS2ICLX_CONFIG_COMMON(inst) \ } diff --git a/drivers/sensor/st/iis2mdc/iis2mdc.c b/drivers/sensor/st/iis2mdc/iis2mdc.c index 2fbfd1891b528..86695bc7197fa 100644 --- a/drivers/sensor/st/iis2mdc/iis2mdc.c +++ b/drivers/sensor/st/iis2mdc/iis2mdc.c @@ -351,7 +351,7 @@ static int iis2mdc_init(const struct device *dev) #define IIS2MDC_CONFIG_SPI(inst) \ { \ - .spi = SPI_DT_SPEC_INST_GET(inst, IIS2MDC_SPI_OP, 0), \ + .spi = SPI_DT_SPEC_INST_GET(inst, IIS2MDC_SPI_OP), \ .bus_init = iis2mdc_spi_init, \ COND_CODE_1(DT_INST_NODE_HAS_PROP(inst, drdy_gpios), \ (IIS2MDC_CFG_IRQ(inst)), ()) \ diff --git a/drivers/sensor/st/iis328dq/iis328dq.c b/drivers/sensor/st/iis328dq/iis328dq.c index ada38da9b7dfe..5c9839bfc8fa9 100644 --- a/drivers/sensor/st/iis328dq/iis328dq.c +++ b/drivers/sensor/st/iis328dq/iis328dq.c @@ -405,8 +405,7 @@ static int iis328dq_init(const struct device *dev) STMEMSC_CTX_SPI_INCR(&iis328dq_config_##inst.stmemsc_cfg), \ .stmemsc_cfg = \ { \ - .spi = SPI_DT_SPEC_INST_GET(inst, IIS328DQ_SPI_OPERATION, \ - 0), \ + .spi = SPI_DT_SPEC_INST_GET(inst, IIS328DQ_SPI_OPERATION) \ }, \ IIS328DQ_CONFIG_COMMON(inst) \ } diff --git a/drivers/sensor/st/iis3dhhc/iis3dhhc.c b/drivers/sensor/st/iis3dhhc/iis3dhhc.c index dfa3e15e6ef3e..c844b214bb28c 100644 --- a/drivers/sensor/st/iis3dhhc/iis3dhhc.c +++ b/drivers/sensor/st/iis3dhhc/iis3dhhc.c @@ -233,7 +233,7 @@ static int iis3dhhc_init(const struct device *dev) .bus_init = iis3dhhc_spi_init, \ .spi = SPI_DT_SPEC_INST_GET(inst, SPI_OP_MODE_MASTER | \ SPI_MODE_CPOL | SPI_MODE_CPHA | \ - SPI_WORD_SET(8), 0U), \ + SPI_WORD_SET(8)), \ }; \ \ SENSOR_DEVICE_DT_INST_DEFINE(inst, iis3dhhc_init, NULL, \ diff --git a/drivers/sensor/st/ism330dhcx/ism330dhcx.c b/drivers/sensor/st/ism330dhcx/ism330dhcx.c index 44b8506664e6d..78def9b0c2f00 100644 --- a/drivers/sensor/st/ism330dhcx/ism330dhcx.c +++ b/drivers/sensor/st/ism330dhcx/ism330dhcx.c @@ -789,7 +789,7 @@ static int ism330dhcx_init(const struct device *dev) (.bus_init = ism330dhcx_spi_init, \ .spi = SPI_DT_SPEC_INST_GET(inst, SPI_OP_MODE_MASTER | \ SPI_MODE_CPOL | SPI_MODE_CPHA | \ - SPI_WORD_SET(8), 0),), \ + SPI_WORD_SET(8)),), \ ()) \ COND_CODE_1(DT_INST_ON_BUS(inst, i2c), \ (.bus_init = ism330dhcx_i2c_init, \ diff --git a/drivers/sensor/st/lis2de12/lis2de12.c b/drivers/sensor/st/lis2de12/lis2de12.c index bd32b66553a16..10714b5872afd 100644 --- a/drivers/sensor/st/lis2de12/lis2de12.c +++ b/drivers/sensor/st/lis2de12/lis2de12.c @@ -437,7 +437,7 @@ static int lis2de12_init(const struct device *dev) { \ STMEMSC_CTX_SPI_INCR(&lis2de12_config_##inst.stmemsc_cfg), \ .stmemsc_cfg = { \ - .spi = SPI_DT_SPEC_INST_GET(inst, LIS2DE12_SPI_OP, 0), \ + .spi = SPI_DT_SPEC_INST_GET(inst, LIS2DE12_SPI_OP), \ }, \ LIS2DE12_CONFIG_COMMON(inst) \ } diff --git a/drivers/sensor/st/lis2dh/lis2dh.c b/drivers/sensor/st/lis2dh/lis2dh.c index 357a595727efc..302e08f47f78c 100644 --- a/drivers/sensor/st/lis2dh/lis2dh.c +++ b/drivers/sensor/st/lis2dh/lis2dh.c @@ -610,8 +610,7 @@ static int lis2dh_init(const struct device *dev) SPI_WORD_SET(8) | \ SPI_OP_MODE_MASTER | \ SPI_MODE_CPOL | \ - SPI_MODE_CPHA, \ - 0) }, \ + SPI_MODE_CPHA)}, \ .hw = { .is_lsm303agr_dev = IS_LSM303AGR_DEV(inst), \ .disc_pull_up = DISC_PULL_UP(inst), \ .anym_on_int1 = ANYM_ON_INT1(inst), \ diff --git a/drivers/sensor/st/lis2ds12/lis2ds12.c b/drivers/sensor/st/lis2ds12/lis2ds12.c index b2c2c65a3b40d..793ab192aafa2 100644 --- a/drivers/sensor/st/lis2ds12/lis2ds12.c +++ b/drivers/sensor/st/lis2ds12/lis2ds12.c @@ -370,8 +370,7 @@ static int lis2ds12_init(const struct device *dev) STMEMSC_CTX_SPI(&lis2ds12_config_##inst.stmemsc_cfg), \ .stmemsc_cfg = { \ .spi = SPI_DT_SPEC_INST_GET(inst, \ - LIS2DS12_SPI_OPERATION, \ - 0), \ + LIS2DS12_SPI_OPERATION) \ }, \ LIS2DS12_CONFIG_COMMON(inst) \ } diff --git a/drivers/sensor/st/lis2du12/lis2du12.c b/drivers/sensor/st/lis2du12/lis2du12.c index ca63f136c04ff..0f7522355fc96 100644 --- a/drivers/sensor/st/lis2du12/lis2du12.c +++ b/drivers/sensor/st/lis2du12/lis2du12.c @@ -440,8 +440,7 @@ static int lis2du12_init(const struct device *dev) STMEMSC_CTX_SPI(&lis2du12_config_##inst.stmemsc_cfg), \ .stmemsc_cfg = { \ .spi = SPI_DT_SPEC_INST_GET(inst, \ - LIS2DU12_SPI_OP, \ - 0), \ + LIS2DU12_SPI_OP) \ }, \ LIS2DU12_CONFIG_COMMON(inst) \ } diff --git a/drivers/sensor/st/lis2dux12/lis2dux12.c b/drivers/sensor/st/lis2dux12/lis2dux12.c index dbd1270310c52..61d9fafe0d591 100644 --- a/drivers/sensor/st/lis2dux12/lis2dux12.c +++ b/drivers/sensor/st/lis2dux12/lis2dux12.c @@ -296,14 +296,14 @@ static DEVICE_API(sensor, lis2dux12_driver_api) = { #define LIS2DUX12_SPI_RTIO_DEFINE(inst, name) \ SPI_DT_IODEV_DEFINE(lis2dux12_iodev_##name##_##inst, \ - DT_DRV_INST(inst), LIS2DUX12_SPI_OPERATION, 0U); \ + DT_DRV_INST(inst), LIS2DUX12_SPI_OPERATION); \ RTIO_DEFINE(lis2dux12_rtio_ctx_##name##_##inst, 4, 4); #define LIS2DUX12_CONFIG_SPI(inst, name) \ { \ STMEMSC_CTX_SPI(&lis2dux12_config_##name##_##inst.stmemsc_cfg), \ .stmemsc_cfg = { \ - .spi = SPI_DT_SPEC_INST_GET(inst, LIS2DUX12_SPI_OPERATION, 0), \ + .spi = SPI_DT_SPEC_INST_GET(inst, LIS2DUX12_SPI_OPERATION), \ }, \ LIS2DUX12_CONFIG_COMMON(inst, name) \ } diff --git a/drivers/sensor/st/lis2dw12/lis2dw12.c b/drivers/sensor/st/lis2dw12/lis2dw12.c index ad98fc0a05030..3bc0af885182c 100644 --- a/drivers/sensor/st/lis2dw12/lis2dw12.c +++ b/drivers/sensor/st/lis2dw12/lis2dw12.c @@ -665,8 +665,7 @@ static int lis2dw12_init(const struct device *dev) STMEMSC_CTX_SPI(&lis2dw12_config_##inst.stmemsc_cfg), \ .stmemsc_cfg = { \ .spi = SPI_DT_SPEC_INST_GET(inst, \ - LIS2DW12_SPI_OPERATION, \ - 0), \ + LIS2DW12_SPI_OPERATION) \ }, \ LIS2DW12_CONFIG_COMMON(inst) \ } diff --git a/drivers/sensor/st/lis2mdl/lis2mdl.c b/drivers/sensor/st/lis2mdl/lis2mdl.c index c0be4e8bb738c..ec4b901994965 100644 --- a/drivers/sensor/st/lis2mdl/lis2mdl.c +++ b/drivers/sensor/st/lis2mdl/lis2mdl.c @@ -527,8 +527,7 @@ static int lis2mdl_pm_action(const struct device *dev, STMEMSC_CTX_SPI(&lis2mdl_config_##inst.stmemsc_cfg), \ .stmemsc_cfg = { \ .spi = SPI_DT_SPEC_INST_GET(inst, \ - LIS2MDL_SPI_OPERATION, \ - 0), \ + LIS2MDL_SPI_OPERATION) \ }, \ .spi_4wires = DT_INST_PROP(inst, duplex) == \ SPI_FULL_DUPLEX, \ diff --git a/drivers/sensor/st/lps22hh/lps22hh.c b/drivers/sensor/st/lps22hh/lps22hh.c index dd2ad7b2eb41a..7aa65b9d9f339 100644 --- a/drivers/sensor/st/lps22hh/lps22hh.c +++ b/drivers/sensor/st/lps22hh/lps22hh.c @@ -321,8 +321,7 @@ static int lps22hh_init(const struct device *dev) STMEMSC_CTX_SPI(&lps22hh_config_##inst.stmemsc_cfg), \ .stmemsc_cfg = { \ .spi = SPI_DT_SPEC_INST_GET(inst, \ - LPS22HH_SPI_OPERATION, \ - 0), \ + LPS22HH_SPI_OPERATION) \ }, \ LPS22HH_CONFIG_COMMON(inst) \ } diff --git a/drivers/sensor/st/lps2xdf/lps2xdf.c b/drivers/sensor/st/lps2xdf/lps2xdf.c index 480f49255db15..6e28bd6c92f83 100644 --- a/drivers/sensor/st/lps2xdf/lps2xdf.c +++ b/drivers/sensor/st/lps2xdf/lps2xdf.c @@ -176,7 +176,7 @@ static DEVICE_API(sensor, lps2xdf_driver_api) = { { \ STMEMSC_CTX_SPI(&lps2xdf_config_##name##_##inst.stmemsc_cfg), \ .stmemsc_cfg = { \ - .spi = SPI_DT_SPEC_INST_GET(inst, LPS2XDF_SPI_OPERATION, 0), \ + .spi = SPI_DT_SPEC_INST_GET(inst, LPS2XDF_SPI_OPERATION), \ }, \ LPS2XDF_CONFIG_COMMON(inst, name) \ } diff --git a/drivers/sensor/st/lsm6dsl/lsm6dsl.c b/drivers/sensor/st/lsm6dsl/lsm6dsl.c index df8b4c9f1dc81..47eb193cd1a9d 100644 --- a/drivers/sensor/st/lsm6dsl/lsm6dsl.c +++ b/drivers/sensor/st/lsm6dsl/lsm6dsl.c @@ -918,7 +918,7 @@ static int lsm6dsl_pm_action(const struct device *dev, .bus_cfg.spi = SPI_DT_SPEC_INST_GET(inst, SPI_WORD_SET(8) | \ SPI_OP_MODE_MASTER | \ SPI_MODE_CPOL | \ - SPI_MODE_CPHA, 0), \ + SPI_MODE_CPHA), \ COND_CODE_1(DT_INST_NODE_HAS_PROP(inst, irq_gpios), \ (LSM6DSL_CFG_IRQ(inst)), ()) \ } diff --git a/drivers/sensor/st/lsm6dso/lsm6dso.c b/drivers/sensor/st/lsm6dso/lsm6dso.c index 08c2fa03cd369..a528d89587d48 100644 --- a/drivers/sensor/st/lsm6dso/lsm6dso.c +++ b/drivers/sensor/st/lsm6dso/lsm6dso.c @@ -913,8 +913,7 @@ static int lsm6dso_init(const struct device *dev) STMEMSC_CTX_SPI(&model##_config_##inst.stmemsc_cfg), \ .stmemsc_cfg = { \ .spi = SPI_DT_SPEC_INST_GET(inst, \ - LSM6DSO_SPI_OP, \ - 0), \ + LSM6DSO_SPI_OP), \ }, \ LSM6DSO_CONFIG_COMMON(inst) \ } diff --git a/drivers/sensor/st/lsm6dso16is/lsm6dso16is.c b/drivers/sensor/st/lsm6dso16is/lsm6dso16is.c index 1171d7fa380e3..894e0580ceaba 100644 --- a/drivers/sensor/st/lsm6dso16is/lsm6dso16is.c +++ b/drivers/sensor/st/lsm6dso16is/lsm6dso16is.c @@ -880,8 +880,7 @@ static int lsm6dso16is_init(const struct device *dev) STMEMSC_CTX_SPI(&lsm6dso16is_config_##inst.stmemsc_cfg), \ .stmemsc_cfg = { \ .spi = SPI_DT_SPEC_INST_GET(inst, \ - LSM6DSO16IS_SPI_OP, \ - 0), \ + LSM6DSO16IS_SPI_OP), \ }, \ LSM6DSO16IS_CONFIG_COMMON(inst) \ } diff --git a/drivers/sensor/st/lsm6dsv16x/lsm6dsv16x.c b/drivers/sensor/st/lsm6dsv16x/lsm6dsv16x.c index c34ece29af84c..95e83c9f0449c 100644 --- a/drivers/sensor/st/lsm6dsv16x/lsm6dsv16x.c +++ b/drivers/sensor/st/lsm6dsv16x/lsm6dsv16x.c @@ -1308,7 +1308,7 @@ static int lsm6dsv16x_pm_action(const struct device *dev, enum pm_device_action #define LSM6DSV16X_SPI_RTIO_DEFINE(inst, prefix) \ SPI_DT_IODEV_DEFINE(prefix##_iodev_##inst, \ - DT_DRV_INST(inst), LSM6DSV16X_SPI_OP, 0U); \ + DT_DRV_INST(inst), LSM6DSV16X_SPI_OP); \ RTIO_DEFINE(prefix##_rtio_ctx_##inst, 4, 4); #define LSM6DSV16X_CONFIG_SPI(inst, prefix) \ @@ -1316,8 +1316,7 @@ static int lsm6dsv16x_pm_action(const struct device *dev, enum pm_device_action STMEMSC_CTX_SPI(&prefix##_config_##inst.stmemsc_cfg), \ .stmemsc_cfg = { \ .spi = SPI_DT_SPEC_INST_GET(inst, \ - LSM6DSV16X_SPI_OP, \ - 0), \ + LSM6DSV16X_SPI_OP), \ }, \ LSM6DSV16X_CONFIG_COMMON(inst, prefix) \ } diff --git a/drivers/sensor/tdk/icm42605/icm42605.c b/drivers/sensor/tdk/icm42605/icm42605.c index 29cab124540eb..e0b3109329066 100644 --- a/drivers/sensor/tdk/icm42605/icm42605.c +++ b/drivers/sensor/tdk/icm42605/icm42605.c @@ -432,8 +432,7 @@ static DEVICE_API(sensor, icm42605_driver_api) = { SPI_MODE_CPOL | \ SPI_MODE_CPHA | \ SPI_WORD_SET(8) | \ - SPI_TRANSFER_MSB, \ - 0U), \ + SPI_TRANSFER_MSB), \ .gpio_int = GPIO_DT_SPEC_INST_GET(index, int_gpios), \ .accel_hz = DT_INST_PROP(index, accel_hz), \ .gyro_hz = DT_INST_PROP(index, gyro_hz), \ diff --git a/drivers/sensor/tdk/icm4268x/icm4268x.c b/drivers/sensor/tdk/icm4268x/icm4268x.c index 4421e612bb94e..8dcbe50d0b1e4 100644 --- a/drivers/sensor/tdk/icm4268x/icm4268x.c +++ b/drivers/sensor/tdk/icm4268x/icm4268x.c @@ -338,7 +338,7 @@ void icm4268x_unlock(const struct device *dev) SPI_OP_MODE_MASTER | SPI_MODE_CPOL | SPI_MODE_CPHA | SPI_WORD_SET(8) | SPI_TRANSFER_MSB #define ICM4268X_RTIO_DEFINE(inst) \ - SPI_DT_IODEV_DEFINE(icm4268x_spi_iodev_##inst, DT_DRV_INST(inst), ICM4268X_SPI_CFG, 0U); \ + SPI_DT_IODEV_DEFINE(icm4268x_spi_iodev_##inst, DT_DRV_INST(inst), ICM4268X_SPI_CFG); \ RTIO_DEFINE(icm4268x_rtio_##inst, 8, 4); #define ICM42688_DT_CONFIG_INIT(inst) \ @@ -401,7 +401,7 @@ void icm4268x_unlock(const struct device *dev) ICM4268X_DEFINE_DATA(inst); \ \ static const struct icm4268x_dev_cfg icm4268x_cfg_##inst = { \ - .spi = SPI_DT_SPEC_INST_GET(inst, ICM4268X_SPI_CFG, 0U), \ + .spi = SPI_DT_SPEC_INST_GET(inst, ICM4268X_SPI_CFG), \ .gpio_int1 = GPIO_DT_SPEC_INST_GET_OR(inst, int_gpios, {0}), \ }; \ \ diff --git a/drivers/sensor/tdk/icm42x70/icm42x70.c b/drivers/sensor/tdk/icm42x70/icm42x70.c index 01b82632faa46..5252b483464b6 100644 --- a/drivers/sensor/tdk/icm42x70/icm42x70.c +++ b/drivers/sensor/tdk/icm42x70/icm42x70.c @@ -983,7 +983,7 @@ static DEVICE_API(sensor, icm42x70_driver_api) = { /* Initializes the bus members for an instance on a SPI bus. */ #define ICM42X70_CONFIG_SPI(inst) \ - {.bus.spi = SPI_DT_SPEC_INST_GET(inst, ICM42X70_SPI_CFG, 0), \ + {.bus.spi = SPI_DT_SPEC_INST_GET(inst, ICM42X70_SPI_CFG), \ .bus_io = &icm42x70_bus_io_spi, \ .serif_type = UI_SPI4, \ ICM42X70_CONFIG_COMMON(inst)} diff --git a/drivers/sensor/tdk/icm45686/icm45686.c b/drivers/sensor/tdk/icm45686/icm45686.c index b919ee112abf7..1a091b0557773 100644 --- a/drivers/sensor/tdk/icm45686/icm45686.c +++ b/drivers/sensor/tdk/icm45686/icm45686.c @@ -420,8 +420,7 @@ static int icm45686_init(const struct device *dev) COND_CODE_1(DT_INST_ON_BUS(inst, spi), \ (SPI_DT_IODEV_DEFINE(icm45686_bus_##inst, \ DT_DRV_INST(inst), \ - SPI_OP_MODE_MASTER | SPI_WORD_SET(8) | SPI_TRANSFER_MSB, \ - 0U)), \ + SPI_OP_MODE_MASTER | SPI_WORD_SET(8) | SPI_TRANSFER_MSB)),\ ()); \ \ \ diff --git a/drivers/sensor/tdk/icp201xx/icp201xx_drv.c b/drivers/sensor/tdk/icp201xx/icp201xx_drv.c index c3d1f95e7a0fa..96bab014dbe59 100644 --- a/drivers/sensor/tdk/icp201xx/icp201xx_drv.c +++ b/drivers/sensor/tdk/icp201xx/icp201xx_drv.c @@ -421,8 +421,7 @@ static DEVICE_API(sensor, icp201xx_api_funcs) = {.sample_fetch = icp201xx_sample .bus.spi = SPI_DT_SPEC_INST_GET(inst, \ (SPI_OP_MODE_MASTER | SPI_WORD_SET(8) | \ SPI_TRANSFER_MSB | SPI_FULL_DUPLEX | \ - SPI_MODE_CPHA | SPI_MODE_CPOL), \ - 0), \ + SPI_MODE_CPHA | SPI_MODE_CPOL)), \ .bus_io = &icp201xx_bus_io_spi, \ ICP201XX_CONFIG(inst) \ } diff --git a/drivers/sensor/ti/tmag5170/tmag5170.c b/drivers/sensor/ti/tmag5170/tmag5170.c index 258e3c5fcfb01..e459ccc00ce41 100644 --- a/drivers/sensor/ti/tmag5170/tmag5170.c +++ b/drivers/sensor/ti/tmag5170/tmag5170.c @@ -555,8 +555,7 @@ static int tmag5170_init(const struct device *dev) .bus = SPI_DT_SPEC_INST_GET(_num, \ SPI_OP_MODE_MASTER | \ SPI_TRANSFER_MSB | \ - SPI_WORD_SET(32), \ - 0), \ + SPI_WORD_SET(32)), \ .magnetic_channels = DT_INST_ENUM_IDX(_num, magnetic_channels), \ .x_range = DT_INST_ENUM_IDX(_num, x_range), \ .y_range = DT_INST_ENUM_IDX(_num, y_range), \ diff --git a/drivers/sensor/wsen/wsen_itds_2533020201601/wsen_itds_2533020201601.c b/drivers/sensor/wsen/wsen_itds_2533020201601/wsen_itds_2533020201601.c index d5e56234a4aae..6de01077acd40 100644 --- a/drivers/sensor/wsen/wsen_itds_2533020201601/wsen_itds_2533020201601.c +++ b/drivers/sensor/wsen/wsen_itds_2533020201601/wsen_itds_2533020201601.c @@ -661,7 +661,7 @@ int itds_2533020201601_init(const struct device *dev) #define ITDS_2533020201601_CONFIG_SPI(inst) \ {.bus_cfg = \ { \ - .spi = SPI_DT_SPEC_INST_GET(inst, ITDS_2533020201601_SPI_OPERATION, 0), \ + .spi = SPI_DT_SPEC_INST_GET(inst, ITDS_2533020201601_SPI_OPERATION), \ }, \ ITDS_2533020201601_CONFIG_COMMON(inst)} diff --git a/drivers/sensor/wsen/wsen_pads_2511020213301/wsen_pads_2511020213301.c b/drivers/sensor/wsen/wsen_pads_2511020213301/wsen_pads_2511020213301.c index 996773c04dd95..cf4a6c999b0fb 100644 --- a/drivers/sensor/wsen/wsen_pads_2511020213301/wsen_pads_2511020213301.c +++ b/drivers/sensor/wsen/wsen_pads_2511020213301/wsen_pads_2511020213301.c @@ -481,7 +481,7 @@ static int pads_2511020213301_init(const struct device *dev) #define PADS_2511020213301_CONFIG_SPI(inst) \ {.bus_cfg = \ { \ - .spi = SPI_DT_SPEC_INST_GET(inst, PADS_2511020213301_SPI_OPERATION, 0), \ + .spi = SPI_DT_SPEC_INST_GET(inst, PADS_2511020213301_SPI_OPERATION), \ }, \ PADS_2511020213301_CONFIG_COMMON(inst)} diff --git a/drivers/spi/spi_nxp_lpspi/spi_nxp_lpspi_common.c b/drivers/spi/spi_nxp_lpspi/spi_nxp_lpspi_common.c index ff7431f0a4c65..e0b31c2dd8bc8 100644 --- a/drivers/spi/spi_nxp_lpspi/spi_nxp_lpspi_common.c +++ b/drivers/spi/spi_nxp_lpspi/spi_nxp_lpspi_common.c @@ -158,16 +158,32 @@ static uint8_t lpspi_calc_delay_scaler(uint32_t desired_delay_ns, } /* returns CCR mask of the bits 8-31 */ -static inline uint32_t lpspi_set_delays(const struct device *dev, uint32_t prescaled_clock) +static inline uint32_t lpspi_set_delays(const struct device *dev, + const struct spi_config *spi_cfg, + uint32_t prescaled_clock) { const struct lpspi_config *config = dev->config; + uint32_t val = 0; + + if (!spi_cs_is_gpio(spi_cfg)) { + uint32_t lead_time_ns = config->pcs_sck_delay > 0 ? + config->pcs_sck_delay : spi_cfg->cs.setup_ns; + uint32_t lag_time_ns = config->sck_pcs_delay > 0 ? + config->sck_pcs_delay : spi_cfg->cs.hold_ns; + + val |= LPSPI_CCR_PCSSCK(lpspi_calc_delay_scaler(lead_time_ns, + prescaled_clock, 1)) | + LPSPI_CCR_SCKPCS(lpspi_calc_delay_scaler(lag_time_ns, + prescaled_clock, 1)); + } + + uint16_t word_delay = config->transfer_delay > 0 ? + (uint16_t)(config->transfer_delay & 0xFFFF) : + spi_get_word_delay(spi_cfg); + + val |= LPSPI_CCR_DBT(lpspi_calc_delay_scaler(word_delay, prescaled_clock, 2)); - return LPSPI_CCR_PCSSCK(lpspi_calc_delay_scaler(config->pcs_sck_delay, - prescaled_clock, 1)) | - LPSPI_CCR_SCKPCS(lpspi_calc_delay_scaler(config->sck_pcs_delay, - prescaled_clock, 1)) | - LPSPI_CCR_DBT(lpspi_calc_delay_scaler(config->transfer_delay, - prescaled_clock, 2)); + return val; } /* This is the equation for the sck frequency given a div and prescaler. */ @@ -324,7 +340,7 @@ int lpspi_configure(const struct device *dev, const struct spi_config *spi_cfg) /* sckdiv algorithm must run *before* delays are set in order to know prescaler */ ccr |= lpspi_set_sckdiv(spi_cfg->frequency, clock_freq, &prescaler); - ccr |= lpspi_set_delays(dev, clock_freq / TWO_EXP(prescaler)); + ccr |= lpspi_set_delays(dev, spi_cfg, clock_freq / TWO_EXP(prescaler)); /* note that not all bits of the register are readable on some platform, * that's why we update it on one write diff --git a/drivers/stepper/adi_tmc/tmc50xx.c b/drivers/stepper/adi_tmc/tmc50xx.c index 87e886251b773..56a2bd3bedc36 100644 --- a/drivers/stepper/adi_tmc/tmc50xx.c +++ b/drivers/stepper/adi_tmc/tmc50xx.c @@ -767,7 +767,7 @@ static DEVICE_API(stepper, tmc50xx_stepper_api) = { DT_INST_FOREACH_CHILD(inst, TMC50XX_SHAFT_CONFIG) \ (DT_INST_PROP(inst, lock_gconf) << TMC50XX_LOCK_GCONF_SHIFT)), \ .spi = SPI_DT_SPEC_INST_GET(inst, (SPI_OP_MODE_MASTER | SPI_TRANSFER_MSB | \ - SPI_MODE_CPOL | SPI_MODE_CPHA | SPI_WORD_SET(8)), 0), \ + SPI_MODE_CPOL | SPI_MODE_CPHA | SPI_WORD_SET(8))), \ .clock_frequency = DT_INST_PROP(inst, clock_frequency),}; \ DT_INST_FOREACH_CHILD(inst, TMC50XX_STEPPER_CONFIG_DEFINE); \ DT_INST_FOREACH_CHILD(inst, TMC50XX_STEPPER_DATA_DEFINE); \ diff --git a/drivers/stepper/adi_tmc/tmc51xx/tmc51xx.c b/drivers/stepper/adi_tmc/tmc51xx/tmc51xx.c index ec334965e3dd5..9586d88f1a7b2 100644 --- a/drivers/stepper/adi_tmc/tmc51xx/tmc51xx.c +++ b/drivers/stepper/adi_tmc/tmc51xx/tmc51xx.c @@ -818,8 +818,7 @@ static DEVICE_API(stepper, tmc51xx_api) = { .comm_type = TMC_COMM_SPI, \ .bus.spi = SPI_DT_SPEC_INST_GET(inst, \ (SPI_OP_MODE_MASTER | SPI_TRANSFER_MSB | SPI_MODE_CPOL | \ - SPI_MODE_CPHA | SPI_WORD_SET(8)), \ - 0), \ + SPI_MODE_CPHA | SPI_WORD_SET(8))), \ .bus_io = &tmc51xx_spi_bus_io, \ .diag0_gpio = GPIO_DT_SPEC_INST_GET_OR(inst, diag0_gpios, {0}) diff --git a/drivers/usb/uhc/uhc_max3421e.c b/drivers/usb/uhc/uhc_max3421e.c index 64a6e167cbf26..0d4f4cc791814 100644 --- a/drivers/usb/uhc/uhc_max3421e.c +++ b/drivers/usb/uhc/uhc_max3421e.c @@ -1132,7 +1132,7 @@ static struct uhc_data max3421e_uhc_data = { }; static const struct max3421e_config max3421e_cfg = { - .dt_spi = SPI_DT_SPEC_INST_GET(0, SPI_WORD_SET(8) | SPI_TRANSFER_MSB, 0), + .dt_spi = SPI_DT_SPEC_INST_GET(0, SPI_WORD_SET(8) | SPI_TRANSFER_MSB), .dt_int = GPIO_DT_SPEC_INST_GET(0, int_gpios), .dt_rst = GPIO_DT_SPEC_INST_GET_OR(0, reset_gpios, {0}), }; diff --git a/drivers/watchdog/wdt_nxp_fs26.c b/drivers/watchdog/wdt_nxp_fs26.c index 753a5a36d1fb4..26ffca172e7ae 100644 --- a/drivers/watchdog/wdt_nxp_fs26.c +++ b/drivers/watchdog/wdt_nxp_fs26.c @@ -825,7 +825,7 @@ static DEVICE_API(wdt, wdt_nxp_fs26_api) = { \ static const struct wdt_nxp_fs26_config wdt_nxp_fs26_config_##n = { \ .spi = SPI_DT_SPEC_INST_GET(n, \ - SPI_OP_MODE_MASTER | SPI_MODE_CPHA | SPI_WORD_SET(32), 0), \ + SPI_OP_MODE_MASTER | SPI_MODE_CPHA | SPI_WORD_SET(32)), \ .wd_type = _CONCAT(FS26_WD_, DT_INST_STRING_UPPER_TOKEN(n, type)), \ .int_gpio = GPIO_DT_SPEC_INST_GET(n, int_gpios), \ }; \ diff --git a/drivers/wifi/esp_hosted/esp_hosted_wifi.c b/drivers/wifi/esp_hosted/esp_hosted_wifi.c index 471dfa69967d9..52edfbfdbcb02 100644 --- a/drivers/wifi/esp_hosted/esp_hosted_wifi.c +++ b/drivers/wifi/esp_hosted/esp_hosted_wifi.c @@ -24,7 +24,7 @@ static esp_hosted_config_t esp_hosted_config = { .reset_gpio = GPIO_DT_SPEC_INST_GET(0, reset_gpios), .dataready_gpio = GPIO_DT_SPEC_INST_GET(0, dataready_gpios), .handshake_gpio = GPIO_DT_SPEC_INST_GET(0, handshake_gpios), - .spi_bus = SPI_DT_SPEC_INST_GET(0, ESP_HOSTED_SPI_CONFIG, 10U)}; + .spi_bus = SPI_DT_SPEC_INST_GET(0, ESP_HOSTED_SPI_CONFIG)}; static esp_hosted_data_t esp_hosted_data = {0}; diff --git a/drivers/wifi/eswifi/eswifi_bus_spi.c b/drivers/wifi/eswifi/eswifi_bus_spi.c index 9fb24dda90768..190abbcbe60a5 100644 --- a/drivers/wifi/eswifi/eswifi_bus_spi.c +++ b/drivers/wifi/eswifi/eswifi_bus_spi.c @@ -36,7 +36,7 @@ static const struct eswifi_spi_config eswifi_config_spi0 = { .dr = GPIO_DT_SPEC_INST_GET(0, data_gpios), .bus = SPI_DT_SPEC_INST_GET(0, SPI_OP_MODE_MASTER | SPI_TRANSFER_MSB | SPI_WORD_SET(16) | SPI_HOLD_ON_CS | - SPI_LOCK_ON, 1000U), + SPI_LOCK_ON), }; static struct eswifi_spi_data eswifi_spi0; diff --git a/drivers/wifi/infineon/airoc_wifi.c b/drivers/wifi/infineon/airoc_wifi.c index 9c6747a5254ce..fb1846e3d5eb1 100644 --- a/drivers/wifi/infineon/airoc_wifi.c +++ b/drivers/wifi/infineon/airoc_wifi.c @@ -83,7 +83,7 @@ static struct airoc_wifi_config airoc_wifi_config = { #if defined(CONFIG_AIROC_WIFI_BUS_SDIO) .bus_dev.bus_sdio = DEVICE_DT_GET(DT_INST_PARENT(0)), #elif defined(CONFIG_AIROC_WIFI_BUS_SPI) - .bus_dev.bus_spi = SPI_DT_SPEC_GET(DT_DRV_INST(0), AIROC_WIFI_SPI_OPERATION, 0), + .bus_dev.bus_spi = SPI_DT_SPEC_GET(DT_DRV_INST(0), AIROC_WIFI_SPI_OPERATION), .bus_select_gpio = GPIO_DT_SPEC_GET_OR(DT_DRV_INST(0), bus_select_gpios, {0}), #if defined(SPI_DATA_IRQ_SHARED) .pcfg = PINCTRL_DT_INST_DEV_CONFIG_GET(0), diff --git a/drivers/wifi/winc1500/wifi_winc1500_nm_bsp.c b/drivers/wifi/winc1500/wifi_winc1500_nm_bsp.c index 94f118e747ab6..626ef236bf4b8 100644 --- a/drivers/wifi/winc1500/wifi_winc1500_nm_bsp.c +++ b/drivers/wifi/winc1500/wifi_winc1500_nm_bsp.c @@ -14,7 +14,7 @@ #include "wifi_winc1500_config.h" const struct winc1500_cfg winc1500_config = { - .spi = SPI_DT_SPEC_INST_GET(0, SPI_WORD_SET(8) | SPI_TRANSFER_MSB, 0), + .spi = SPI_DT_SPEC_INST_GET(0, SPI_WORD_SET(8) | SPI_TRANSFER_MSB), .chip_en_gpio = GPIO_DT_SPEC_INST_GET(0, enable_gpios), .irq_gpio = GPIO_DT_SPEC_INST_GET(0, irq_gpios), .reset_gpio = GPIO_DT_SPEC_INST_GET(0, reset_gpios), diff --git a/dts/bindings/adc/adi,ad4130-adc.yaml b/dts/bindings/adc/adi,ad4130-adc.yaml index 421aca8f7d915..ca203c1dec885 100644 --- a/dts/bindings/adc/adi,ad4130-adc.yaml +++ b/dts/bindings/adc/adi,ad4130-adc.yaml @@ -95,6 +95,10 @@ properties: enabling the clock output. "#io-channel-cells": const: 1 + spi-cs-setup-delay-ns: + default: 1000 + spi-cs-hold-delay-ns: + default: 1000 io-channel-cells: - input diff --git a/dts/bindings/adc/maxim,max1125x-base.yaml b/dts/bindings/adc/maxim,max1125x-base.yaml index 0ca6473b8a742..95c7fcdad3430 100644 --- a/dts/bindings/adc/maxim,max1125x-base.yaml +++ b/dts/bindings/adc/maxim,max1125x-base.yaml @@ -31,6 +31,10 @@ properties: self-calibration: type: boolean description: start self calibration during channel setup + spi-cs-setup-delay-ns: + default: 1000 + spi-cs-hold-delay-ns: + default: 1000 io-channel-cells: - input diff --git a/dts/bindings/adc/microchip,mcp356xr.yaml b/dts/bindings/adc/microchip,mcp356xr.yaml index c56dc7159b766..a28697afce946 100644 --- a/dts/bindings/adc/microchip,mcp356xr.yaml +++ b/dts/bindings/adc/microchip,mcp356xr.yaml @@ -78,6 +78,10 @@ properties: type: boolean description: | Output AMCLK on the MCLK pin only effective when use-internal-clock is set + spi-cs-setup-delay-ns: + default: 1000 + spi-cs-hold-delay-ns: + default: 1000 io-channel-cells: - input diff --git a/dts/bindings/adc/ti,ads7052.yaml b/dts/bindings/adc/ti,ads7052.yaml index ea150a3b604d8..5ca385a492ab2 100644 --- a/dts/bindings/adc/ti,ads7052.yaml +++ b/dts/bindings/adc/ti,ads7052.yaml @@ -10,6 +10,10 @@ include: [adc-controller.yaml, spi-device.yaml] on-bus: spi properties: + spi-cs-setup-delay-ns: + default: 1000 + spi-cs-hold-delay-ns: + default: 1000 "#io-channel-cells": const: 1 diff --git a/dts/bindings/bluetooth/zephyr,bt-hci-spi.yaml b/dts/bindings/bluetooth/zephyr,bt-hci-spi.yaml index 54f24a902f1e4..8d835f8d41908 100644 --- a/dts/bindings/bluetooth/zephyr,bt-hci-spi.yaml +++ b/dts/bindings/bluetooth/zephyr,bt-hci-spi.yaml @@ -24,13 +24,6 @@ properties: Minimum duration to hold the reset-gpios pin low for. If not specified no delay beyond the code path execution time is guaranteed. - controller-cs-delay-us: - type: int - default: 0 - description: - Delay in microseconds to wait after asserting the CS line before starting the - transmission and before releasing the CS line after the transmission. - controller-data-delay-us: type: int default: 20 diff --git a/dts/bindings/hdlc_rcp_if/spi,hdlc-rcp-if.yaml b/dts/bindings/hdlc_rcp_if/spi,hdlc-rcp-if.yaml index d9c0a3b5b431d..8aed4e0a74f1a 100644 --- a/dts/bindings/hdlc_rcp_if/spi,hdlc-rcp-if.yaml +++ b/dts/bindings/hdlc_rcp_if/spi,hdlc-rcp-if.yaml @@ -28,8 +28,3 @@ properties: type: int default: 0 description: The delay (in ms) after reset de-assertion. - - cs-delay: - type: int - default: 0 - description: The delay (in ms) for the RCP radio chip select. diff --git a/dts/bindings/sensor/bosch,bmi08x-accel-spi.yaml b/dts/bindings/sensor/bosch,bmi08x-accel-spi.yaml index 924f9d567e88e..3da972f74f68e 100644 --- a/dts/bindings/sensor/bosch,bmi08x-accel-spi.yaml +++ b/dts/bindings/sensor/bosch,bmi08x-accel-spi.yaml @@ -6,3 +6,9 @@ description: BMI08X Accel inertial measurement unit compatible: "bosch,bmi08x-accel" include: [spi-device.yaml, "bosch,bmi08x-accel.yaml"] + +properties: + spi-cs-setup-delay-ns: + default: 2000 + spi-cs-hold-delay-ns: + default: 2000 diff --git a/dts/bindings/sensor/bosch,bmi08x-gyro-spi.yaml b/dts/bindings/sensor/bosch,bmi08x-gyro-spi.yaml index b7aa1fd02b482..cd571522a3eb7 100644 --- a/dts/bindings/sensor/bosch,bmi08x-gyro-spi.yaml +++ b/dts/bindings/sensor/bosch,bmi08x-gyro-spi.yaml @@ -6,3 +6,9 @@ description: BMI08X Gyro inertial measurement unit compatible: "bosch,bmi08x-gyro" include: [spi-device.yaml, "bosch,bmi08x-gyro.yaml"] + +properties: + spi-cs-setup-delay-ns: + default: 2000 + spi-cs-hold-delay-ns: + default: 2000 diff --git a/dts/bindings/spi/spi-device.yaml b/dts/bindings/spi/spi-device.yaml index 6915b664890e8..d9b28a558eecc 100644 --- a/dts/bindings/spi/spi-device.yaml +++ b/dts/bindings/spi/spi-device.yaml @@ -50,6 +50,9 @@ properties: description: | SPI clock phase that indicates on which edge data is sampled. If it is used, data is sampled on the second edge; otherwise, on the first edge. + spi-lsb-first: + type: boolean + description: The device requires least significant bit first data mode. spi-hold-cs: type: boolean description: | @@ -58,3 +61,22 @@ properties: without releasing it. A typical use case is variable length SPI packets where the first spi transaction reads the length and the second spi transaction reads length bytes. + spi-cs-high: + type: boolean + description: The device requires the chip select to be active high. + spi-interframe-delay-ns: + type: int + default: 0 + description: | + Delay in nanoseconds between SPI words. + Default of 0 is special value which will assume to mean half of the SCK period. + spi-cs-setup-delay-ns: + type: int + description: | + Delay in nanoseconds to be introduced by the controller after CS is asserted. + Also known as enable lead time. + spi-cs-hold-delay-ns: + type: int + description: | + Delay in nanoseconds to be introduced by the controller before the CS is de-asserted. + Also known as enable lag time. diff --git a/dts/bindings/wifi/espressif,esp-hosted.yaml b/dts/bindings/wifi/espressif,esp-hosted.yaml index 395c480e194c5..62021cf5a5f30 100644 --- a/dts/bindings/wifi/espressif,esp-hosted.yaml +++ b/dts/bindings/wifi/espressif,esp-hosted.yaml @@ -19,3 +19,8 @@ properties: handshake-gpios: type: phandle-array required: true + + spi-cs-setup-delay-ns: + default: 10000 + spi-cs-hold-delay-ns: + default: 10000 diff --git a/dts/bindings/wifi/inventek,eswifi.yaml b/dts/bindings/wifi/inventek,eswifi.yaml index 51a18eed410c3..41b2071c28f34 100644 --- a/dts/bindings/wifi/inventek,eswifi.yaml +++ b/dts/bindings/wifi/inventek,eswifi.yaml @@ -21,3 +21,8 @@ properties: boot0-gpios: type: phandle-array + + spi-cs-setup-delay-ns: + default: 1000000 + spi-cs-hold-delay-ns: + default: 1000000 diff --git a/include/zephyr/drivers/mipi_dbi.h b/include/zephyr/drivers/mipi_dbi.h index 27a477cb8cf9f..61a46461eab49 100644 --- a/include/zephyr/drivers/mipi_dbi.h +++ b/include/zephyr/drivers/mipi_dbi.h @@ -67,6 +67,7 @@ extern "C" { DT_REG_ADDR_RAW(node_id), \ {}), \ .delay = (delay_), \ + .cs_is_gpio = true, \ }, \ } diff --git a/include/zephyr/drivers/spi.h b/include/zephyr/drivers/spi.h index aac753c31d7fc..48f7558d77e66 100644 --- a/include/zephyr/drivers/spi.h +++ b/include/zephyr/drivers/spi.h @@ -18,7 +18,7 @@ * controllers. * @defgroup spi_interface SPI * @since 1.0 - * @version 1.0.0 + * @version 1.1.0 * @ingroup io_interfaces * @{ */ @@ -242,19 +242,38 @@ extern "C" { * */ struct spi_cs_control { - /** - * GPIO devicetree specification of CS GPIO. - * The device pointer can be set to NULL to fully inhibit CS control if - * necessary. The GPIO flags GPIO_ACTIVE_LOW/GPIO_ACTIVE_HIGH should be - * equivalent to SPI_CS_ACTIVE_HIGH/SPI_CS_ACTIVE_LOW options in struct - * spi_config. - */ - struct gpio_dt_spec gpio; - /** - * Delay in microseconds to wait before starting the - * transmission and before releasing the CS line. - */ - uint32_t delay; + union { + struct { + /** + * GPIO devicetree specification of CS GPIO. + * The device pointer can be set to NULL to fully inhibit CS control if + * necessary. The GPIO flags GPIO_ACTIVE_LOW/GPIO_ACTIVE_HIGH should be + * equivalent to SPI_CS_ACTIVE_HIGH/SPI_CS_ACTIVE_LOW options in struct + * spi_config. + */ + struct gpio_dt_spec gpio; + /** + * Delay in microseconds to wait before starting the + * transmission and before releasing the CS line. + */ + uint32_t delay; + }; + struct { + /** + * CS enable lead time, i.e. how long should the CS be asserted + * before the first clock. Specified in nanoseconds. + */ + uint32_t setup_ns; + /** + * CS enable lag time, i.e. how long should the CS be asserted + * after the last clock, before the CS de-asserts. + * Specified in nanoseconds. + */ + uint32_t hold_ns; + }; + }; + /* To keep track of which form of this struct is valid */ + bool cs_is_gpio; }; /** @@ -310,6 +329,26 @@ struct spi_cs_control { #define SPI_CS_GPIOS_DT_SPEC_INST_GET(inst) \ SPI_CS_GPIOS_DT_SPEC_GET(DT_DRV_INST(inst)) +/** @cond INTERNAL_HIDDEN */ +#define SPI_CS_CONTROL_MAX_DELAY(node_id) \ + MAX(DT_PROP_OR(node_id, spi_cs_setup_delay_ns, 0), \ + DT_PROP_OR(node_id, spi_cs_hold_delay_ns, 0)) + + +#define SPI_CS_CONTROL_INIT_GPIO(node_id, ...) \ + .gpio = SPI_CS_GPIOS_DT_SPEC_GET(node_id), \ + .delay = COND_CODE_1(IS_EMPTY(__VA_ARGS__), \ + (DIV_ROUND_UP(SPI_CS_CONTROL_MAX_DELAY(node_id), 1000)), \ + (__VA_ARGS__)) + +#define SPI_CS_CONTROL_INIT_NATIVE(node_id) \ + .setup_ns = DT_PROP_OR(node_id, spi_cs_setup_delay_ns, 0), \ + .hold_ns = DT_PROP_OR(node_id, spi_cs_hold_delay_ns, 0), + +#define SPI_DEPRECATE_DELAY_WARN \ + __WARN("Delay parameter in SPI DT macros is deprecated, use DT prop instead") +/** @endcond */ + /** * @brief Initialize and get a pointer to a @p spi_cs_control from a * devicetree node identifier @@ -332,27 +371,34 @@ struct spi_cs_control { * * @code{.c} * struct spi_cs_control ctrl = - * SPI_CS_CONTROL_INIT(DT_NODELABEL(spidev), 2); + * SPI_CS_CONTROL_INIT(DT_NODELABEL(spidev)); * @endcode * - * This example is equivalent to: + * This example is roughly equivalent to: * * @code{.c} * struct spi_cs_control ctrl = { * .gpio = SPI_CS_GPIOS_DT_SPEC_GET(DT_NODELABEL(spidev)), - * .delay = 2, + * .delay = DT_PROP(node_id, cs_delay_ns) / 1000, + * .cs_is_gpio = true, * }; * @endcode * + * For non-gpio CS, the idea is similar but the lead and lag fields of the cs struct + * will be populated instead. + * * @param node_id Devicetree node identifier for a device on a SPI bus - * @param delay_ The @p delay field to set in the @p spi_cs_control + * * @return a pointer to the @p spi_cs_control structure */ -#define SPI_CS_CONTROL_INIT(node_id, delay_) \ - { \ - .gpio = SPI_CS_GPIOS_DT_SPEC_GET(node_id), \ - .delay = (delay_), \ - } +#define SPI_CS_CONTROL_INIT(node_id, ...) \ +{ \ + COND_CODE_0(IS_EMPTY(__VA_ARGS__), (SPI_DEPRECATE_DELAY_WARN), ()) \ + .cs_is_gpio = DT_SPI_DEV_HAS_CS_GPIOS(node_id), \ + COND_CODE_1(DT_SPI_DEV_HAS_CS_GPIOS(node_id), \ + (SPI_CS_CONTROL_INIT_GPIO(node_id, __VA_ARGS__)), \ + (SPI_CS_CONTROL_INIT_NATIVE(node_id))) \ +} /** * @brief Get a pointer to a @p spi_cs_control from a devicetree node @@ -364,11 +410,11 @@ struct spi_cs_control { * this macro. * * @param inst Devicetree node instance number - * @param delay_ The @p delay field to set in the @p spi_cs_control + * * @return a pointer to the @p spi_cs_control structure */ -#define SPI_CS_CONTROL_INIT_INST(inst, delay_) \ - SPI_CS_CONTROL_INIT(DT_DRV_INST(inst), delay_) +#define SPI_CS_CONTROL_INIT_INST(inst) \ + SPI_CS_CONTROL_INIT(DT_DRV_INST(inst)) /** @} */ @@ -420,8 +466,36 @@ struct spi_config { * if not used). */ struct spi_cs_control cs; + /** + * @brief Delay between SPI words on SCK line in nanoseconds, if supported. + * Value of zero will attempt to use half of the SCK period. + */ + uint16_t word_delay; }; +/** @cond INTERNAL_HIDDEN */ +/* converts from the special DT zero value to half of the frequency, for drivers usage mostly */ +static inline uint16_t spi_get_word_delay(const struct spi_config *cfg) +{ + uint32_t freq = cfg->frequency; + + if (cfg->word_delay != 0) { + return cfg->word_delay; + } + + if (freq == 0) { + return 0; + } + + uint64_t period_ns = NSEC_PER_SEC / freq; + + period_ns = MIN(period_ns, UINT16_MAX); + period_ns /= 2; + + return (uint16_t)period_ns; +} +/** @endcond */ + /** * @brief Structure initializer for spi_config from devicetree * @@ -432,10 +506,8 @@ struct spi_config { * @param node_id Devicetree node identifier for the SPI device whose * struct spi_config to create an initializer for * @param operation_ the desired @p operation field in the struct spi_config - * @param delay_ the desired @p delay field in the struct spi_config's - * spi_cs_control, if there is one */ -#define SPI_CONFIG_DT(node_id, operation_, delay_) \ +#define SPI_CONFIG_DT(node_id, operation_, ...) \ { \ .frequency = DT_PROP(node_id, spi_max_frequency), \ .operation = (operation_) | \ @@ -443,24 +515,25 @@ struct spi_config { DT_PROP(node_id, frame_format) | \ COND_CODE_1(DT_PROP(node_id, spi_cpol), SPI_MODE_CPOL, (0)) | \ COND_CODE_1(DT_PROP(node_id, spi_cpha), SPI_MODE_CPHA, (0)) | \ - COND_CODE_1(DT_PROP(node_id, spi_hold_cs), SPI_HOLD_ON_CS, (0)), \ + COND_CODE_1(DT_PROP(node_id, spi_hold_cs), SPI_HOLD_ON_CS, (0)) | \ + COND_CODE_1(DT_PROP(node_id, spi_lsb_first), SPI_TRANSFER_LSB, (0)) | \ + COND_CODE_1(DT_PROP(node_id, spi_cs_high), SPI_CS_ACTIVE_HIGH, (0)), \ .slave = DT_REG_ADDR(node_id), \ - .cs = SPI_CS_CONTROL_INIT(node_id, delay_), \ + .cs = SPI_CS_CONTROL_INIT(node_id, __VA_ARGS__), \ + .word_delay = DT_PROP(node_id, spi_interframe_delay_ns),\ } /** * @brief Structure initializer for spi_config from devicetree instance * * This is equivalent to - * SPI_CONFIG_DT(DT_DRV_INST(inst), operation_, delay_). + * SPI_CONFIG_DT(DT_DRV_INST(inst), operation_). * * @param inst Devicetree instance number * @param operation_ the desired @p operation field in the struct spi_config - * @param delay_ the desired @p delay field in the struct spi_config's - * spi_cs_control, if there is one */ -#define SPI_CONFIG_DT_INST(inst, operation_, delay_) \ - SPI_CONFIG_DT(DT_DRV_INST(inst), operation_, delay_) +#define SPI_CONFIG_DT_INST(inst, operation_, ...) \ + SPI_CONFIG_DT(DT_DRV_INST(inst), operation_, __VA_ARGS__) /** * @brief Complete SPI DT information @@ -486,28 +559,24 @@ struct spi_dt_spec { * @param node_id Devicetree node identifier for the SPI device whose * struct spi_dt_spec to create an initializer for * @param operation_ the desired @p operation field in the struct spi_config - * @param delay_ the desired @p delay field in the struct spi_config's - * spi_cs_control, if there is one */ -#define SPI_DT_SPEC_GET(node_id, operation_, delay_) \ - { \ - .bus = DEVICE_DT_GET(DT_BUS(node_id)), \ - .config = SPI_CONFIG_DT(node_id, operation_, delay_) \ +#define SPI_DT_SPEC_GET(node_id, operation_, ...) \ + { \ + .bus = DEVICE_DT_GET(DT_BUS(node_id)), \ + .config = SPI_CONFIG_DT(node_id, operation_, __VA_ARGS__), \ } /** * @brief Structure initializer for spi_dt_spec from devicetree instance * * This is equivalent to - * SPI_DT_SPEC_GET(DT_DRV_INST(inst), operation_, delay_). + * SPI_DT_SPEC_GET(DT_DRV_INST(inst), operation_). * * @param inst Devicetree instance number * @param operation_ the desired @p operation field in the struct spi_config - * @param delay_ the desired @p delay field in the struct spi_config's - * spi_cs_control, if there is one */ -#define SPI_DT_SPEC_INST_GET(inst, operation_, delay_) \ - SPI_DT_SPEC_GET(DT_DRV_INST(inst), operation_, delay_) +#define SPI_DT_SPEC_INST_GET(inst, operation_, ...) \ + SPI_DT_SPEC_GET(DT_DRV_INST(inst), operation_, __VA_ARGS__) /** * @brief Value that will never compare true with any valid overrun character @@ -863,7 +932,7 @@ __subsystem struct spi_driver_api { */ static inline bool spi_cs_is_gpio(const struct spi_config *config) { - return config->cs.gpio.port != NULL; + return config->cs.cs_is_gpio; } /** @@ -1291,11 +1360,10 @@ extern const struct rtio_iodev_api spi_iodev_api; * @param name Symbolic name to use for defining the iodev * @param node_id Devicetree node identifier * @param operation_ SPI operational mode - * @param delay_ Chip select delay in microseconds */ -#define SPI_DT_IODEV_DEFINE(name, node_id, operation_, delay_) \ +#define SPI_DT_IODEV_DEFINE(name, node_id, operation_) \ const struct spi_dt_spec _spi_dt_spec_##name = \ - SPI_DT_SPEC_GET(node_id, operation_, delay_); \ + SPI_DT_SPEC_GET(node_id, operation_); \ RTIO_IODEV_DEFINE(name, &spi_iodev_api, (void *)&_spi_dt_spec_##name) /** diff --git a/modules/nrf_wifi/bus/spi_if.c b/modules/nrf_wifi/bus/spi_if.c index bde80d55480d8..402cf565af216 100644 --- a/modules/nrf_wifi/bus/spi_if.c +++ b/modules/nrf_wifi/bus/spi_if.c @@ -24,10 +24,10 @@ LOG_MODULE_DECLARE(wifi_nrf_bus, CONFIG_WIFI_NRF70_BUSLIB_LOG_LEVEL); static struct qspi_config *spim_config; static const struct spi_dt_spec spi_spec = -SPI_DT_SPEC_GET(NRF7002_NODE, SPI_WORD_SET(8) | SPI_TRANSFER_MSB, 0); +SPI_DT_SPEC_GET(NRF7002_NODE, SPI_WORD_SET(8) | SPI_TRANSFER_MSB); static struct spi_dt_spec spi_spec_8mhz = -SPI_DT_SPEC_GET(NRF7002_NODE, SPI_WORD_SET(8) | SPI_TRANSFER_MSB, 0); +SPI_DT_SPEC_GET(NRF7002_NODE, SPI_WORD_SET(8) | SPI_TRANSFER_MSB); static int spim_xfer_tx(unsigned int addr, void *data, unsigned int len) { diff --git a/samples/boards/nordic/spis_wakeup/wakeup_trigger/src/main.c b/samples/boards/nordic/spis_wakeup/wakeup_trigger/src/main.c index 6668dc11d9e9e..64bdeeee92040 100644 --- a/samples/boards/nordic/spis_wakeup/wakeup_trigger/src/main.c +++ b/samples/boards/nordic/spis_wakeup/wakeup_trigger/src/main.c @@ -9,7 +9,7 @@ #include #define SPI_MODE (SPI_OP_MODE_MASTER | SPI_WORD_SET(8)) -static const struct spi_dt_spec spim = SPI_DT_SPEC_GET(DT_NODELABEL(spim_dt), SPI_MODE, 0); +static const struct spi_dt_spec spim = SPI_DT_SPEC_GET(DT_NODELABEL(spim_dt), SPI_MODE); static const struct gpio_dt_spec led = GPIO_DT_SPEC_GET(DT_ALIAS(led), gpios); diff --git a/samples/boards/st/power_mgmt/suspend_to_ram/src/main.c b/samples/boards/st/power_mgmt/suspend_to_ram/src/main.c index 0f77e7d85d94b..505fc18b33472 100644 --- a/samples/boards/st/power_mgmt/suspend_to_ram/src/main.c +++ b/samples/boards/st/power_mgmt/suspend_to_ram/src/main.c @@ -53,7 +53,7 @@ static uint8_t entropy_buffer[BUFFER_LENGTH] = {0}; #define SPI_OP(frame_size) SPI_OP_MODE_MASTER | SPI_MODE_CPOL | \ SPI_MODE_CPHA | SPI_WORD_SET(frame_size) | SPI_LINES_SINGLE -static struct spi_dt_spec spi_test_dev = SPI_DT_SPEC_GET(SPI_TEST_DEV, SPI_OP(FRAME_SIZE), 0); +static struct spi_dt_spec spi_test_dev = SPI_DT_SPEC_GET(SPI_TEST_DEV, SPI_OP(FRAME_SIZE)); #define SPI_BUF_SIZE 18 diff --git a/tests/drivers/spi/dt_spec/src/main.c b/tests/drivers/spi/dt_spec/src/main.c index f3affa887a9bc..228af02902132 100644 --- a/tests/drivers/spi/dt_spec/src/main.c +++ b/tests/drivers/spi/dt_spec/src/main.c @@ -15,7 +15,7 @@ LOG_MODULE_REGISTER(test, CONFIG_LOG_DEFAULT_LEVEL); ZTEST(spi_dt_spec, test_dt_spec) { const struct spi_dt_spec spi_cs = - SPI_DT_SPEC_GET(DT_NODELABEL(test_spi_dev_cs), 0, 0); + SPI_DT_SPEC_GET(DT_NODELABEL(test_spi_dev_cs), 0); LOG_DBG("spi_cs.bus = %p", spi_cs.bus); LOG_DBG("spi_cs.config.cs.gpio.port = %p", spi_cs.config.cs.gpio.port); @@ -27,7 +27,7 @@ ZTEST(spi_dt_spec, test_dt_spec) zassert_equal(spi_cs.config.cs.gpio.pin, 0x10, ""); const struct spi_dt_spec spi_no_cs = - SPI_DT_SPEC_GET(DT_NODELABEL(test_spi_dev_no_cs), 0, 0); + SPI_DT_SPEC_GET(DT_NODELABEL(test_spi_dev_no_cs), 0); LOG_DBG("spi_no_cs.bus = %p", spi_no_cs.bus); LOG_DBG("spi_no_cs.config.cs.gpio.port = %p", spi_no_cs.config.cs.gpio.port); diff --git a/tests/drivers/spi/spi_controller_peripheral/src/main.c b/tests/drivers/spi/spi_controller_peripheral/src/main.c index 7e15bb325368f..3b7f3b49a2f9e 100644 --- a/tests/drivers/spi/spi_controller_peripheral/src/main.c +++ b/tests/drivers/spi/spi_controller_peripheral/src/main.c @@ -25,7 +25,7 @@ #define SPIM_OP (SPI_OP_MODE_MASTER | SPI_MODE) #define SPIS_OP (SPI_OP_MODE_SLAVE | SPI_MODE) -static struct spi_dt_spec spim = SPI_DT_SPEC_GET(DT_NODELABEL(dut_spi_dt), SPIM_OP, 0); +static struct spi_dt_spec spim = SPI_DT_SPEC_GET(DT_NODELABEL(dut_spi_dt), SPIM_OP); static const struct device *spis_dev = DEVICE_DT_GET(DT_NODELABEL(dut_spis)); static const struct spi_config spis_config = { .operation = SPIS_OP, diff --git a/tests/drivers/spi/spi_error_cases/src/main.c b/tests/drivers/spi/spi_error_cases/src/main.c index 4ebca6f1c2e12..fbc280b63a31b 100644 --- a/tests/drivers/spi/spi_error_cases/src/main.c +++ b/tests/drivers/spi/spi_error_cases/src/main.c @@ -15,7 +15,7 @@ #define SPIM_OP (SPI_OP_MODE_MASTER | SPI_MODE) #define SPIS_OP (SPI_OP_MODE_SLAVE | SPI_MODE) -static struct spi_dt_spec spim = SPI_DT_SPEC_GET(DT_NODELABEL(dut_spi_dt), SPIM_OP, 0); +static struct spi_dt_spec spim = SPI_DT_SPEC_GET(DT_NODELABEL(dut_spi_dt), SPIM_OP); static const struct device *spis_dev = DEVICE_DT_GET(DT_NODELABEL(dut_spis)); static const struct spi_config spis_config = { .operation = SPIS_OP diff --git a/tests/drivers/spi/spi_loopback/boards/mimxrt1050_evk_mimxrt1052_hyperflash.overlay b/tests/drivers/spi/spi_loopback/boards/mimxrt1050_evk_mimxrt1052_hyperflash.overlay index 0656adf5073de..fe5f3aa44b86e 100644 --- a/tests/drivers/spi/spi_loopback/boards/mimxrt1050_evk_mimxrt1052_hyperflash.overlay +++ b/tests/drivers/spi/spi_loopback/boards/mimxrt1050_evk_mimxrt1052_hyperflash.overlay @@ -9,11 +9,16 @@ compatible = "test-spi-loopback-slow"; reg = <0>; spi-max-frequency = <500000>; + spi-cs-setup-delay-ns = <1000>; + spi-cs-hold-delay-ns = <1000>; + spi-interframe-delay-ns = <1000>; }; fast@0 { compatible = "test-spi-loopback-fast"; reg = <0>; spi-max-frequency = <16000000>; + spi-cs-setup-delay-ns = <100>; + spi-cs-hold-delay-ns = <100>; }; transfer-delay = <100>; diff --git a/tests/drivers/spi/spi_loopback/src/spi.c b/tests/drivers/spi/spi_loopback/src/spi.c index 6ca688484a289..9766708a3e0c1 100644 --- a/tests/drivers/spi/spi_loopback/src/spi.c +++ b/tests/drivers/spi/spi_loopback/src/spi.c @@ -35,10 +35,10 @@ SPI_WORD_SET(frame_size) | SPI_LINES_SINGLE #define SPI_FAST_DEV DT_COMPAT_GET_ANY_STATUS_OKAY(test_spi_loopback_fast) -static struct spi_dt_spec spi_fast = SPI_DT_SPEC_GET(SPI_FAST_DEV, SPI_OP(FRAME_SIZE), 0); +static struct spi_dt_spec spi_fast = SPI_DT_SPEC_GET(SPI_FAST_DEV, SPI_OP(FRAME_SIZE)); #define SPI_SLOW_DEV DT_COMPAT_GET_ANY_STATUS_OKAY(test_spi_loopback_slow) -static struct spi_dt_spec spi_slow = SPI_DT_SPEC_GET(SPI_SLOW_DEV, SPI_OP(FRAME_SIZE), 0); +static struct spi_dt_spec spi_slow = SPI_DT_SPEC_GET(SPI_SLOW_DEV, SPI_OP(FRAME_SIZE)); static struct spi_dt_spec *loopback_specs[2] = {&spi_slow, &spi_fast}; static char *spec_names[2] = {"SLOW", "FAST"}; diff --git a/tests/drivers/spi/spi_loopback/src/spi_rtio.c b/tests/drivers/spi/spi_loopback/src/spi_rtio.c index 7792b0b21a303..c6170eef080d2 100644 --- a/tests/drivers/spi/spi_loopback/src/spi_rtio.c +++ b/tests/drivers/spi/spi_loopback/src/spi_rtio.c @@ -30,8 +30,8 @@ LOG_MODULE_REGISTER(spi_rtio_loopback); #define SPI_OP SPI_OP_MODE_MASTER | SPI_MODE_CPOL | MODE_LOOP | \ SPI_MODE_CPHA | SPI_WORD_SET(8) | SPI_LINES_SINGLE -static SPI_DT_IODEV_DEFINE(spi_fast, SPI_FAST_DEV, SPI_OP, 0); -static SPI_DT_IODEV_DEFINE(spi_slow, SPI_FAST_DEV, SPI_OP, 0); +static SPI_DT_IODEV_DEFINE(spi_fast, SPI_FAST_DEV, SPI_OP); +static SPI_DT_IODEV_DEFINE(spi_slow, SPI_FAST_DEV, SPI_OP); RTIO_DEFINE(r, 8, 8);