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);