12#include "hw/top/dt/dt_i2c.h"
48 [kDtI2cRegBlockCore] = 0x40080000,
63 [kDtI2cPeriphIoSda] = {
71 [kDtI2cPeriphIoScl] = {
84 [kDtI2cRegBlockCore] = 0x40090000,
99 [kDtI2cPeriphIoSda] = {
107 [kDtI2cPeriphIoScl] = {
120 [kDtI2cRegBlockCore] = 0x400A0000,
135 [kDtI2cPeriphIoSda] = {
143 [kDtI2cPeriphIoScl] = {
160#define TRY_GET_DT(dt, default) ({ if ((dt) < (dt_i2c_t)0 || (dt) >= kDtI2cCount) return (default); &i2c_desc[dt]; })
178 return TRY_GET_DT(dt, 0xdeadbeef)->reg_addr[reg_block];
185 return TRY_GET_DT(dt, 0xdeadbeef)->mem_addr[mem];
199 if (first_irq == kDtPlicIrqIdNone) {
200 return kDtPlicIrqIdNone;
210 if (first_irq == kDtPlicIrqIdNone) {
223 return (
dt_alert_id_t)((uint32_t)i2c_desc[dt].first_alert + (uint32_t)alert);
230 if (alert < i2c_desc[dt].first_alert || alert >= i2c_desc[dt].first_alert + (
dt_alert_id_t)count) {
241 return TRY_GET_DT(dt, kDtPeriphIoConstantHighZ)->periph_io[sig];