@@ -247,7 +247,6 @@ static int i2c_ambiq_write(const struct device *dev, struct i2c_msg *msg, uint16
247
247
static int i2c_ambiq_configure (const struct device * dev , uint32_t dev_config )
248
248
{
249
249
struct i2c_ambiq_data * data = dev -> data ;
250
- const struct i2c_ambiq_config * cfg = dev -> config ;
251
250
252
251
if (!(I2C_MODE_CONTROLLER & dev_config )) {
253
252
return - EINVAL ;
@@ -268,6 +267,8 @@ static int i2c_ambiq_configure(const struct device *dev, uint32_t dev_config)
268
267
}
269
268
270
269
#ifdef CONFIG_I2C_AMBIQ_DMA
270
+ const struct i2c_ambiq_config * cfg = dev -> config ;
271
+
271
272
data -> iom_cfg .pNBTxnBuf = i2c_dma_tcb_buf [cfg -> inst_idx ].buf ;
272
273
data -> iom_cfg .ui32NBTxnBufLength = CONFIG_I2C_DMA_TCB_BUFFER_SIZE ;
273
274
#endif
@@ -287,7 +288,7 @@ static int i2c_ambiq_transfer(const struct device *dev, struct i2c_msg *msgs, ui
287
288
return 0 ;
288
289
}
289
290
290
- #ifdef CONFIG_DCACHE
291
+ #if defined( CONFIG_I2C_AMBIQ_DMA ) && defined( CONFIG_DCACHE )
291
292
if (!i2c_buf_set_in_nocache (msgs , num_msgs )) {
292
293
return - EFAULT ;
293
294
}
@@ -490,17 +491,18 @@ static int i2c_ambiq_pm_action(const struct device *dev, enum pm_device_action a
490
491
PINCTRL_DT_INST_DEFINE(n); \
491
492
static void i2c_irq_config_func_##n(void) \
492
493
{ \
493
- IRQ_CONNECT(DT_INST_IRQN(n), DT_INST_IRQ(n , priority), i2c_ambiq_isr, \
494
- DEVICE_DT_INST_GET(n), 0); \
495
- irq_enable(DT_INST_IRQN( n)); \
494
+ IRQ_CONNECT(DT_IRQN(DT_INST_PARENT(n)), DT_IRQ(DT_INST_PARENT(n) , priority), \
495
+ i2c_ambiq_isr, DEVICE_DT_INST_GET(n), 0); \
496
+ irq_enable(DT_IRQN(DT_INST_PARENT( n))); \
496
497
}; \
497
498
static struct i2c_ambiq_data i2c_ambiq_data##n = { \
498
499
.bus_sem = Z_SEM_INITIALIZER(i2c_ambiq_data##n.bus_sem, 1, 1), \
499
500
.transfer_sem = Z_SEM_INITIALIZER(i2c_ambiq_data##n.transfer_sem, 0, 1)}; \
500
501
static const struct i2c_ambiq_config i2c_ambiq_config##n = { \
501
- .base = DT_INST_REG_ADDR(n), \
502
- .size = DT_INST_REG_SIZE(n), \
503
- .inst_idx = (DT_INST_REG_ADDR(n) - IOM0_BASE) / (IOM1_BASE - IOM0_BASE), \
502
+ .base = DT_REG_ADDR(DT_INST_PARENT(n)), \
503
+ .size = DT_REG_SIZE(DT_INST_PARENT(n)), \
504
+ .inst_idx = \
505
+ (DT_REG_ADDR(DT_INST_PARENT(n)) - IOM0_BASE) / (IOM1_BASE - IOM0_BASE), \
504
506
.bitrate = DT_INST_PROP(n, clock_frequency), \
505
507
.pcfg = PINCTRL_DT_INST_DEV_CONFIG_GET(n), \
506
508
.irq_config_func = i2c_irq_config_func_##n, \
0 commit comments