Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 11 additions & 13 deletions drivers/flash/flash_mspi_nor.c
Original file line number Diff line number Diff line change
Expand Up @@ -1139,32 +1139,30 @@ static int flash_chip_init(const struct device *dev)
#if defined(CONFIG_MSPI_XIP)
/* Enable XIP access for this chip if specified so in DT. */
if (dev_config->xip_cfg.enable) {
struct mspi_dev_cfg mspi_cfg = {
.addr_length = dev_data->cmd_info.uses_4byte_addr
? 4 : 3,
.rx_dummy = get_rx_dummy(dev),
};
struct mspi_dev_cfg *mspi_cfg = &dev_data->mspi_dev_xip_cfg;

mspi_cfg->addr_length = dev_data->cmd_info.uses_4byte_addr ? 4 : 3;
mspi_cfg->rx_dummy = get_rx_dummy(dev);
if (dev_data->cmd_info.cmd_extension != CMD_EXTENSION_NONE) {
mspi_cfg.cmd_length = 2;
mspi_cfg.read_cmd = get_extended_command(dev,
mspi_cfg->cmd_length = 2;
mspi_cfg->read_cmd = get_extended_command(dev,
dev_data->cmd_info.read_cmd);
mspi_cfg.write_cmd = get_extended_command(dev,
mspi_cfg->write_cmd = get_extended_command(dev,
dev_data->cmd_info.pp_cmd);
} else {
mspi_cfg.cmd_length = 1;
mspi_cfg.read_cmd = dev_data->cmd_info.read_cmd;
mspi_cfg.write_cmd = dev_data->cmd_info.pp_cmd;
mspi_cfg->cmd_length = 1;
mspi_cfg->read_cmd = dev_data->cmd_info.read_cmd;
mspi_cfg->write_cmd = dev_data->cmd_info.pp_cmd;
}

rc = mspi_dev_config(dev_config->bus, &dev_config->mspi_id,
XIP_DEV_CFG_MASK, &mspi_cfg);
XIP_DEV_CFG_MASK, mspi_cfg);
if (rc < 0) {
LOG_ERR("Failed to configure controller for XIP: %d",
rc);
return rc;
}
dev_data->last_applied_cfg = NULL;
dev_data->last_applied_cfg = mspi_cfg;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this is needed. Neither IO mode nor frequency is reconfigured for XIP (see XIP_DEV_CFG_MASK), so all changes related to XIP can be dropped IMO.


rc = mspi_xip_config(dev_config->bus, &dev_config->mspi_id,
&dev_config->xip_cfg);
Expand Down
3 changes: 3 additions & 0 deletions drivers/flash/flash_mspi_nor.h
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,9 @@ struct flash_mspi_nor_data {
struct flash_mspi_nor_cmd_info cmd_info;
struct flash_mspi_nor_switch_info switch_info;
bool in_target_io_mode;
#if defined(CONFIG_MSPI_XIP)
struct mspi_dev_cfg mspi_dev_xip_cfg;
#endif
const struct mspi_dev_cfg *last_applied_cfg;
};

Expand Down