From 188fc58c72d2d257bc3890d0b368efaf4c3393b9 Mon Sep 17 00:00:00 2001 From: Richard Wheatley Date: Fri, 9 Aug 2024 08:51:34 -0500 Subject: [PATCH] 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 --- drivers/flash/flash_mspi_atxp032.c | 3 +-- drivers/i2c/i2c_ambiq.c | 2 +- drivers/memc/memc_mspi_aps6404l.c | 3 +-- drivers/mspi/mspi_ambiq.h | 3 +++ drivers/mspi/mspi_ambiq_ap3.c | 2 +- drivers/spi/spi_ambiq.c | 2 +- drivers/spi/spi_ambiq_bleif.c | 2 +- 7 files changed, 9 insertions(+), 8 deletions(-) diff --git a/drivers/flash/flash_mspi_atxp032.c b/drivers/flash/flash_mspi_atxp032.c index cca611a9c9b..d722a4cb67b 100644 --- a/drivers/flash/flash_mspi_atxp032.c +++ b/drivers/flash/flash_mspi_atxp032.c @@ -826,9 +826,8 @@ static const struct flash_driver_api flash_mspi_atxp032_api = { #define FLASH_MSPI_ATXP032(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, \ + .port = MSPI_PORT(n), \ .flash_param = \ { \ .write_block_size = NOR_WRITE_SIZE, \ diff --git a/drivers/i2c/i2c_ambiq.c b/drivers/i2c/i2c_ambiq.c index 3091f887536..ff83809f0c3 100644 --- a/drivers/i2c/i2c_ambiq.c +++ b/drivers/i2c/i2c_ambiq.c @@ -217,7 +217,7 @@ static int i2c_ambiq_init(const struct device *dev) data->iom_cfg.eInterfaceMode = AM_HAL_IOM_I2C_MODE; 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)) { LOG_ERR("Fail to initialize I2C\n"); return -ENXIO; diff --git a/drivers/memc/memc_mspi_aps6404l.c b/drivers/memc/memc_mspi_aps6404l.c index 8eedff1c521..86503bc0c6e 100644 --- a/drivers/memc/memc_mspi_aps6404l.c +++ b/drivers/memc/memc_mspi_aps6404l.c @@ -428,8 +428,7 @@ static int memc_mspi_aps6404l_init(const struct device *psram) #define MEMC_MSPI_APS6404L(n) \ static const struct memc_mspi_aps6404l_config \ memc_mspi_aps6404l_config_##n = { \ - .port = (DT_REG_ADDR(DT_INST_BUS(n)) - REG_MSPI_BASEADDR) / \ - (DT_REG_SIZE(DT_INST_BUS(n)) * 4), \ + .port = MSPI_PORT(n), \ .mem_size = DT_INST_PROP(n, size) / 8, \ .bus = DEVICE_DT_GET(DT_INST_BUS(n)), \ .dev_id = MSPI_DEVICE_ID_DT_INST(n), \ diff --git a/drivers/mspi/mspi_ambiq.h b/drivers/mspi/mspi_ambiq.h index 7cfe07b6abf..b289f190f7d 100644 --- a/drivers/mspi/mspi_ambiq.h +++ b/drivers/mspi/mspi_ambiq.h @@ -47,6 +47,9 @@ enum mspi_ambiq_timing_param { 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) \ { \ mspi_timing_cfg *timing = (mspi_timing_cfg *)cfg; \ diff --git a/drivers/mspi/mspi_ambiq_ap3.c b/drivers/mspi/mspi_ambiq_ap3.c index 13ee01f1399..04fbea5c679 100644 --- a/drivers/mspi/mspi_ambiq_ap3.c +++ b/drivers/mspi/mspi_ambiq_ap3.c @@ -1356,7 +1356,7 @@ static struct mspi_driver_api mspi_ambiq_driver_api = { #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), \ .op_mode = MSPI_OP_MODE_CONTROLLER, \ .duplex = MSPI_HALF_DUPLEX, \ diff --git a/drivers/spi/spi_ambiq.c b/drivers/spi/spi_ambiq.c index 47181c283c3..b998b496810 100644 --- a/drivers/spi/spi_ambiq.c +++ b/drivers/spi/spi_ambiq.c @@ -393,7 +393,7 @@ static int spi_ambiq_init(const struct device *dev) int ret = 0; 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"); return -ENXIO; } diff --git a/drivers/spi/spi_ambiq_bleif.c b/drivers/spi/spi_ambiq_bleif.c index ceaf598455d..44c96ea58a0 100644 --- a/drivers/spi/spi_ambiq_bleif.c +++ b/drivers/spi/spi_ambiq_bleif.c @@ -176,7 +176,7 @@ static int spi_ambiq_init(const struct device *dev) } #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) { return ret; }