Skip to content

Commit 3c242d5

Browse files
maass-hamburgnashif
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]> (cherry picked from commit 27aeabb)
1 parent debf3e0 commit 3c242d5

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
@@ -1666,30 +1666,33 @@ static const struct flash_driver_api spi_nor_api = {
16661666
DEFINE_PAGE_LAYOUT(idx) \
16671667
.flash_size = DT_INST_PROP(idx, size) / 8, \
16681668
.jedec_id = DT_INST_PROP(idx, jedec_id), \
1669-
.dpd_exist = DT_INST_PROP(idx, has_dpd), \
1670-
.dpd_wakeup_sequence_exist = DT_INST_NODE_HAS_PROP(idx, dpd_wakeup_sequence), \
1671-
.mxicy_mx25r_power_mode_exist = DT_INST_NODE_HAS_PROP(idx, mxicy_mx25r_power_mode), \
1672-
.reset_gpios_exist = DT_INST_NODE_HAS_PROP(idx, reset_gpios), \
1673-
.requires_ulbpr_exist = DT_INST_PROP(idx, requires_ulbpr), \
1674-
.wp_gpios_exist = DT_INST_NODE_HAS_PROP(idx, wp_gpios), \
1675-
.hold_gpios_exist = DT_INST_NODE_HAS_PROP(idx, hold_gpios), \
1676-
IF_ENABLED(INST_HAS_LOCK(idx), (.has_lock = DT_INST_PROP(idx, has_lock),)) \
16771669
IF_ENABLED(CONFIG_SPI_NOR_SFDP_MINIMAL, (CONFIGURE_4BYTE_ADDR(idx))) \
16781670
IF_ENABLED(CONFIG_SPI_NOR_SFDP_DEVICETREE, \
16791671
(.bfp_len = sizeof(bfp_##idx##_data) / 4, \
1680-
.bfp = (const struct jesd216_bfp *)bfp_##idx##_data,)) \
1681-
IF_ENABLED(ANY_INST_HAS_DPD, (INIT_T_ENTER_DPD(idx),)) \
1682-
IF_ENABLED(UTIL_AND(ANY_INST_HAS_DPD, ANY_INST_HAS_T_EXIT_DPD), (INIT_T_EXIT_DPD(idx),))\
1683-
IF_ENABLED(ANY_INST_HAS_DPD_WAKEUP_SEQUENCE, (INIT_WAKEUP_SEQ_PARAMS(idx),)) \
1684-
IF_ENABLED(ANY_INST_HAS_MXICY_MX25R_POWER_MODE, (INIT_MXICY_MX25R_POWER_MODE(idx),)) \
1685-
IF_ENABLED(ANY_INST_HAS_RESET_GPIOS, (INIT_RESET_GPIOS(idx),)) \
1686-
IF_ENABLED(ANY_INST_HAS_WP_GPIOS, (INIT_WP_GPIOS(idx),)) \
1687-
IF_ENABLED(ANY_INST_HAS_HOLD_GPIOS, (INIT_HOLD_GPIOS(idx),))
1672+
.bfp = (const struct jesd216_bfp *)bfp_##idx##_data,))
16881673

16891674
#define GENERATE_CONFIG_STRUCT(idx) \
16901675
static const struct spi_nor_config spi_nor_##idx##_config = { \
16911676
.spi = SPI_DT_SPEC_INST_GET(idx, SPI_WORD_SET(8), CONFIG_SPI_NOR_CS_WAIT_DELAY),\
1692-
COND_CODE_1(CONFIG_SPI_NOR_SFDP_RUNTIME, EMPTY(), (INST_CONFIG_STRUCT_GEN(idx)))};
1677+
.dpd_exist = DT_INST_PROP(idx, has_dpd), \
1678+
.dpd_wakeup_sequence_exist = DT_INST_NODE_HAS_PROP(idx, dpd_wakeup_sequence), \
1679+
.mxicy_mx25r_power_mode_exist = \
1680+
DT_INST_NODE_HAS_PROP(idx, mxicy_mx25r_power_mode), \
1681+
.reset_gpios_exist = DT_INST_NODE_HAS_PROP(idx, reset_gpios), \
1682+
.requires_ulbpr_exist = DT_INST_PROP(idx, requires_ulbpr), \
1683+
.wp_gpios_exist = DT_INST_NODE_HAS_PROP(idx, wp_gpios), \
1684+
.hold_gpios_exist = DT_INST_NODE_HAS_PROP(idx, hold_gpios), \
1685+
IF_ENABLED(INST_HAS_LOCK(idx), (.has_lock = DT_INST_PROP(idx, has_lock),)) \
1686+
IF_ENABLED(ANY_INST_HAS_DPD, (INIT_T_ENTER_DPD(idx),)) \
1687+
IF_ENABLED(UTIL_AND(ANY_INST_HAS_DPD, ANY_INST_HAS_T_EXIT_DPD), \
1688+
(INIT_T_EXIT_DPD(idx),)) \
1689+
IF_ENABLED(ANY_INST_HAS_DPD_WAKEUP_SEQUENCE, (INIT_WAKEUP_SEQ_PARAMS(idx),)) \
1690+
IF_ENABLED(ANY_INST_HAS_MXICY_MX25R_POWER_MODE, \
1691+
(INIT_MXICY_MX25R_POWER_MODE(idx),)) \
1692+
IF_ENABLED(ANY_INST_HAS_RESET_GPIOS, (INIT_RESET_GPIOS(idx),)) \
1693+
IF_ENABLED(ANY_INST_HAS_WP_GPIOS, (INIT_WP_GPIOS(idx),)) \
1694+
IF_ENABLED(ANY_INST_HAS_HOLD_GPIOS, (INIT_HOLD_GPIOS(idx),)) \
1695+
IF_DISABLED(CONFIG_SPI_NOR_SFDP_RUNTIME, (INST_CONFIG_STRUCT_GEN(idx)))};
16931696

16941697
#define ASSIGN_PM(idx) \
16951698
PM_DEVICE_DT_INST_DEFINE(idx, spi_nor_pm_control);

0 commit comments

Comments
 (0)