drivers: update AMBIQ drivers to use proper base address

REG_X_BASEADDR will be removed from all hal files.
This forces the use of the peripheral base address
Define MSPI_PORT macro for chip drivers

Signed-off-by: Richard Wheatley <richard.wheatley@ambiq.com>
This commit is contained in:
Richard Wheatley 2024-08-09 08:51:34 -05:00 committed by David Leach
commit 188fc58c72
7 changed files with 9 additions and 8 deletions

View file

@ -826,9 +826,8 @@ static const struct flash_driver_api flash_mspi_atxp032_api = {
#define FLASH_MSPI_ATXP032(n) \ #define FLASH_MSPI_ATXP032(n) \
static const struct flash_mspi_atxp032_config flash_mspi_atxp032_config_##n = { \ static const struct flash_mspi_atxp032_config flash_mspi_atxp032_config_##n = { \
.port = (DT_REG_ADDR(DT_INST_BUS(n)) - REG_MSPI_BASEADDR) / \
(DT_REG_SIZE(DT_INST_BUS(n)) * 4), \
.mem_size = DT_INST_PROP(n, size) / 8, \ .mem_size = DT_INST_PROP(n, size) / 8, \
.port = MSPI_PORT(n), \
.flash_param = \ .flash_param = \
{ \ { \
.write_block_size = NOR_WRITE_SIZE, \ .write_block_size = NOR_WRITE_SIZE, \

View file

@ -217,7 +217,7 @@ static int i2c_ambiq_init(const struct device *dev)
data->iom_cfg.eInterfaceMode = AM_HAL_IOM_I2C_MODE; data->iom_cfg.eInterfaceMode = AM_HAL_IOM_I2C_MODE;
if (AM_HAL_STATUS_SUCCESS != if (AM_HAL_STATUS_SUCCESS !=
am_hal_iom_initialize((config->base - REG_IOM_BASEADDR) / config->size, am_hal_iom_initialize((config->base - IOM0_BASE) / config->size,
&data->iom_handler)) { &data->iom_handler)) {
LOG_ERR("Fail to initialize I2C\n"); LOG_ERR("Fail to initialize I2C\n");
return -ENXIO; return -ENXIO;

View file

@ -428,8 +428,7 @@ static int memc_mspi_aps6404l_init(const struct device *psram)
#define MEMC_MSPI_APS6404L(n) \ #define MEMC_MSPI_APS6404L(n) \
static const struct memc_mspi_aps6404l_config \ static const struct memc_mspi_aps6404l_config \
memc_mspi_aps6404l_config_##n = { \ memc_mspi_aps6404l_config_##n = { \
.port = (DT_REG_ADDR(DT_INST_BUS(n)) - REG_MSPI_BASEADDR) / \ .port = MSPI_PORT(n), \
(DT_REG_SIZE(DT_INST_BUS(n)) * 4), \
.mem_size = DT_INST_PROP(n, size) / 8, \ .mem_size = DT_INST_PROP(n, size) / 8, \
.bus = DEVICE_DT_GET(DT_INST_BUS(n)), \ .bus = DEVICE_DT_GET(DT_INST_BUS(n)), \
.dev_id = MSPI_DEVICE_ID_DT_INST(n), \ .dev_id = MSPI_DEVICE_ID_DT_INST(n), \

View file

@ -47,6 +47,9 @@ enum mspi_ambiq_timing_param {
MSPI_AMBIQ_SET_RXDQSDLYEXT = BIT(7), MSPI_AMBIQ_SET_RXDQSDLYEXT = BIT(7),
}; };
#define MSPI_PORT(n) ((DT_REG_ADDR(DT_INST_BUS(n)) - MSPI0_BASE) / \
(DT_REG_SIZE(DT_INST_BUS(n)) * 4))
#define TIMING_CFG_GET_RX_DUMMY(cfg) \ #define TIMING_CFG_GET_RX_DUMMY(cfg) \
{ \ { \
mspi_timing_cfg *timing = (mspi_timing_cfg *)cfg; \ mspi_timing_cfg *timing = (mspi_timing_cfg *)cfg; \

View file

@ -1356,7 +1356,7 @@ static struct mspi_driver_api mspi_ambiq_driver_api = {
#define MSPI_CONFIG(n) \ #define MSPI_CONFIG(n) \
{ \ { \
.channel_num = (DT_INST_REG_ADDR(n) - REG_MSPI_BASEADDR) / \ .channel_num = (DT_INST_REG_ADDR(n) - MSPI0_BASE) / \
(DT_INST_REG_SIZE(n) * 4), \ (DT_INST_REG_SIZE(n) * 4), \
.op_mode = MSPI_OP_MODE_CONTROLLER, \ .op_mode = MSPI_OP_MODE_CONTROLLER, \
.duplex = MSPI_HALF_DUPLEX, \ .duplex = MSPI_HALF_DUPLEX, \

View file

@ -393,7 +393,7 @@ static int spi_ambiq_init(const struct device *dev)
int ret = 0; int ret = 0;
if (AM_HAL_STATUS_SUCCESS != if (AM_HAL_STATUS_SUCCESS !=
am_hal_iom_initialize((cfg->base - REG_IOM_BASEADDR) / cfg->size, &data->iom_handler)) { am_hal_iom_initialize((cfg->base - IOM0_BASE) / cfg->size, &data->iom_handler)) {
LOG_ERR("Fail to initialize SPI\n"); LOG_ERR("Fail to initialize SPI\n");
return -ENXIO; return -ENXIO;
} }

View file

@ -176,7 +176,7 @@ static int spi_ambiq_init(const struct device *dev)
} }
#endif /* CONFIG_SPI_AMBIQ_BLEIF_TIMING_TRACE */ #endif /* CONFIG_SPI_AMBIQ_BLEIF_TIMING_TRACE */
ret = am_hal_ble_initialize((cfg->base - REG_BLEIF_BASEADDR) / cfg->size, &data->BLEhandle); ret = am_hal_ble_initialize((cfg->base - BLEIF_BASE) / cfg->size, &data->BLEhandle);
if (ret) { if (ret) {
return ret; return ret;
} }