Skip to content

Commit 27aeabb

Browse files
maass-hamburgdkalowsk
authored andcommitted
drivers: flash: spi_nor: fix config struct
lots of values from the DT where not set corretly, if `CONFIG_SPI_NOR_SFDP_RUNTIME` was enabled. This fixes it. Signed-off-by: Fin Maaß <[email protected]>
1 parent 0cf71d9 commit 27aeabb

File tree

1 file changed

+20
-17
lines changed

1 file changed

+20
-17
lines changed

drivers/flash/spi_nor.c

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1695,30 +1695,33 @@ static const struct flash_driver_api spi_nor_api = {
16951695
DEFINE_PAGE_LAYOUT(idx) \
16961696
.flash_size = DT_INST_PROP(idx, size) / 8, \
16971697
.jedec_id = DT_INST_PROP(idx, jedec_id), \
1698-
.dpd_exist = DT_INST_PROP(idx, has_dpd), \
1699-
.dpd_wakeup_sequence_exist = DT_INST_NODE_HAS_PROP(idx, dpd_wakeup_sequence), \
1700-
.mxicy_mx25r_power_mode_exist = DT_INST_NODE_HAS_PROP(idx, mxicy_mx25r_power_mode), \
1701-
.reset_gpios_exist = DT_INST_NODE_HAS_PROP(idx, reset_gpios), \
1702-
.requires_ulbpr_exist = DT_INST_PROP(idx, requires_ulbpr), \
1703-
.wp_gpios_exist = DT_INST_NODE_HAS_PROP(idx, wp_gpios), \
1704-
.hold_gpios_exist = DT_INST_NODE_HAS_PROP(idx, hold_gpios), \
1705-
IF_ENABLED(INST_HAS_LOCK(idx), (.has_lock = DT_INST_PROP(idx, has_lock),)) \
17061698
IF_ENABLED(CONFIG_SPI_NOR_SFDP_MINIMAL, (CONFIGURE_4BYTE_ADDR(idx))) \
17071699
IF_ENABLED(CONFIG_SPI_NOR_SFDP_DEVICETREE, \
17081700
(.bfp_len = sizeof(bfp_##idx##_data) / 4, \
1709-
.bfp = (const struct jesd216_bfp *)bfp_##idx##_data,)) \
1710-
IF_ENABLED(ANY_INST_HAS_DPD, (INIT_T_ENTER_DPD(idx),)) \
1711-
IF_ENABLED(UTIL_AND(ANY_INST_HAS_DPD, ANY_INST_HAS_T_EXIT_DPD), (INIT_T_EXIT_DPD(idx),))\
1712-
IF_ENABLED(ANY_INST_HAS_DPD_WAKEUP_SEQUENCE, (INIT_WAKEUP_SEQ_PARAMS(idx),)) \
1713-
IF_ENABLED(ANY_INST_HAS_MXICY_MX25R_POWER_MODE, (INIT_MXICY_MX25R_POWER_MODE(idx),)) \
1714-
IF_ENABLED(ANY_INST_HAS_RESET_GPIOS, (INIT_RESET_GPIOS(idx),)) \
1715-
IF_ENABLED(ANY_INST_HAS_WP_GPIOS, (INIT_WP_GPIOS(idx),)) \
1716-
IF_ENABLED(ANY_INST_HAS_HOLD_GPIOS, (INIT_HOLD_GPIOS(idx),))
1701+
.bfp = (const struct jesd216_bfp *)bfp_##idx##_data,))
17171702

17181703
#define GENERATE_CONFIG_STRUCT(idx) \
17191704
static const struct spi_nor_config spi_nor_##idx##_config = { \
17201705
.spi = SPI_DT_SPEC_INST_GET(idx, SPI_WORD_SET(8), CONFIG_SPI_NOR_CS_WAIT_DELAY),\
1721-
COND_CODE_1(CONFIG_SPI_NOR_SFDP_RUNTIME, EMPTY(), (INST_CONFIG_STRUCT_GEN(idx)))};
1706+
.dpd_exist = DT_INST_PROP(idx, has_dpd), \
1707+
.dpd_wakeup_sequence_exist = DT_INST_NODE_HAS_PROP(idx, dpd_wakeup_sequence), \
1708+
.mxicy_mx25r_power_mode_exist = \
1709+
DT_INST_NODE_HAS_PROP(idx, mxicy_mx25r_power_mode), \
1710+
.reset_gpios_exist = DT_INST_NODE_HAS_PROP(idx, reset_gpios), \
1711+
.requires_ulbpr_exist = DT_INST_PROP(idx, requires_ulbpr), \
1712+
.wp_gpios_exist = DT_INST_NODE_HAS_PROP(idx, wp_gpios), \
1713+
.hold_gpios_exist = DT_INST_NODE_HAS_PROP(idx, hold_gpios), \
1714+
IF_ENABLED(INST_HAS_LOCK(idx), (.has_lock = DT_INST_PROP(idx, has_lock),)) \
1715+
IF_ENABLED(ANY_INST_HAS_DPD, (INIT_T_ENTER_DPD(idx),)) \
1716+
IF_ENABLED(UTIL_AND(ANY_INST_HAS_DPD, ANY_INST_HAS_T_EXIT_DPD), \
1717+
(INIT_T_EXIT_DPD(idx),)) \
1718+
IF_ENABLED(ANY_INST_HAS_DPD_WAKEUP_SEQUENCE, (INIT_WAKEUP_SEQ_PARAMS(idx),)) \
1719+
IF_ENABLED(ANY_INST_HAS_MXICY_MX25R_POWER_MODE, \
1720+
(INIT_MXICY_MX25R_POWER_MODE(idx),)) \
1721+
IF_ENABLED(ANY_INST_HAS_RESET_GPIOS, (INIT_RESET_GPIOS(idx),)) \
1722+
IF_ENABLED(ANY_INST_HAS_WP_GPIOS, (INIT_WP_GPIOS(idx),)) \
1723+
IF_ENABLED(ANY_INST_HAS_HOLD_GPIOS, (INIT_HOLD_GPIOS(idx),)) \
1724+
IF_DISABLED(CONFIG_SPI_NOR_SFDP_RUNTIME, (INST_CONFIG_STRUCT_GEN(idx)))};
17221725

17231726
#define ASSIGN_PM(idx) \
17241727
PM_DEVICE_DT_INST_DEFINE(idx, spi_nor_pm_control);

0 commit comments

Comments
 (0)