addrmap RenesasDA_I2C {

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="Control";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                sw = rw;
                reset=1'b1;
            } I2C_MASTER_MODE[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
                reset=2'b11;
            } I2C_SPEED[2:1];
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
                reset=1'b1;
            } I2C_10BITADDR_SLAVE[3:3];
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
                reset=1'b1;
            } I2C_10BITADDR_MASTER[4:4];
            field {
                sw = rw;
                reset=1'b1;
            } I2C_RESTART_EN[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } I2C_SLAVE_DISABLE[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } I2C_STOP_DET_IFADDRESSED[7:7];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } I2C_TX_EMPTY_CTRL[8:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } I2C_RX_FIFO_FULL_HLD_CTRL[9:9];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } I2C_STOP_DET_IF_MASTER_ACTIVE[10:10];
    } Control @ 0x0;
    reg {
        name="TargetAddress";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
                reset=10'b1010101;
            } IC_TAR[9:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } GC_OR_START[10:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SPECIAL[11:11];
    } TargetAddress @ 0x4;
    reg {
        name="SlaveAddress";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
                reset=10'b1010101;
            } IC_SAR[9:0];
    } SlaveAddress @ 0x8;
    reg {
        name="HighSpeedMasterModeCodeAddress";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=3'b1;
            } I2C_IC_HS_MAR[2:0];
    } HighSpeedMasterModeCodeAddress @ 0xc;
    reg {
        name="DataCommand";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = rw;
            } I2C_DAT[7:0];
            field {
                sw = w;
            } I2C_CMD[8:8];
            field {
                sw = w;
            } I2C_STOP[9:9];
            field {
                sw = w;
            } I2C_RESTART[10:10];
    } DataCommand @ 0x10;
    reg {
        name="StandardSpeedSCLHighCount";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
                reset=16'b10010001;
            } IC_SS_SCL_HCNT[15:0];
    } StandardSpeedSCLHighCount @ 0x14;
    reg {
        name="StandardSpeedSCLLowCount";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
                reset=16'b10101011;
            } IC_SS_SCL_LCNT[15:0];
    } StandardSpeedSCLLowCount @ 0x18;
    reg {
        name="FastSpeedSCLHighCount";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
                reset=16'b11010;
            } IC_FS_SCL_HCNT[15:0];
    } FastSpeedSCLHighCount @ 0x1c;
    reg {
        name="FastSpeedSCLLowCount";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
                reset=16'b110010;
            } IC_FS_SCL_LCNT[15:0];
    } FastSpeedSCLLowCount @ 0x20;
    reg {
        name="HighSpeedSCLHighCount";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
                reset=16'b110;
            } IC_HS_SCL_HCNT[15:0];
    } HighSpeedSCLHighCount @ 0x24;
    reg {
        name="HighSpeedSCLLowCount";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
                reset=16'b10000;
            } IC_HS_SCL_LCNT[15:0];
    } HighSpeedSCLLowCount @ 0x28;
    reg {
        name="InterruptStatus";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } R_RX_UNDER[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } R_RX_OVER[1:1];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } R_RX_FULL[2:2];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } R_TX_OVER[3:3];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } R_TX_EMPTY[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } R_RD_REQ[5:5];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } R_TX_ABRT[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } R_RX_DONE[7:7];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } R_ACTIVITY[8:8];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } R_STOP_DET[9:9];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } R_START_DET[10:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } R_GEN_CALL[11:11];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } R_RESTART_DET[12:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } R_MASTER_ON_HOLD[13:13];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } R_SCL_STUCK_AT_LOW[14:14];
    } InterruptStatus @ 0x2c;
    reg {
        name="InterruptMask";
        desc = "This register has the following custom Renode callbacks: Change";
        regwidth=0x20;
            field {
                sw = rw;
                reset=1'b1;
            } M_RX_UNDER[0:0];
            field {
                sw = rw;
                reset=1'b1;
            } M_RX_OVER[1:1];
            field {
                sw = rw;
                reset=1'b1;
            } M_RX_FULL[2:2];
            field {
                sw = rw;
                reset=1'b1;
            } M_TX_OVER[3:3];
            field {
                sw = rw;
                reset=1'b1;
            } M_TX_EMPTY[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } M_RD_REQ[5:5];
            field {
                sw = rw;
                reset=1'b1;
            } M_TX_ABRT[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } M_RX_DONE[7:7];
            field {
                sw = rw;
            } M_ACTIVITY[8:8];
            field {
                sw = rw;
            } M_STOP_DET[9:9];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } M_START_DET[10:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } M_GEN_CALL[11:11];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } M_RESTART_DET[12:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } M_MASTER_ON_HOLD[13:13];
            field {
                sw = rw;
            } M_SCL_STUCK_AT_LOW[14:14];
    } InterruptMask @ 0x30;
    reg {
        name="RawInterruptStatus";
        regwidth=0x20;
            field {
                sw = r;
            } RX_UNDER[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RX_OVER[1:1];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } RX_FULL[2:2];
            field {
                sw = r;
            } TX_OVER[3:3];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } TX_EMPTY[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RD_REQ[5:5];
            field {
                sw = r;
            } TX_ABRT[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RX_DONE[7:7];
            field {
                sw = r;
            } ACTIVITY[8:8];
            field {
                sw = r;
            } STOP_DET[9:9];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } START_DET[10:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } GEN_CALL[11:11];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RESTART_DET[12:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } MASTER_ON_HOLD[13:13];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } SCL_STUCK_AT_LOW[14:14];
    } RawInterruptStatus @ 0x34;
    reg {
        name="ReceiveFIFOThreshold";
        desc = "This register has the following custom Renode callbacks: Write, Change";
        regwidth=0x20;
            field {
                sw = rw;
            } RX_TL[4:0];
    } ReceiveFIFOThreshold @ 0x38;
    reg {
        name="TransmitFIFOThreshold";
        desc = "This register has the following custom Renode callbacks: Write, Change";
        regwidth=0x20;
            field {
                sw = rw;
            } TX_TL[4:0];
    } TransmitFIFOThreshold @ 0x3c;
    reg {
        name="ClearCombinedAndIndividualInterrupt";
        desc = "This register has the following custom Renode callbacks: Read";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CLR_INTR[0:0];
    } ClearCombinedAndIndividualInterrupt @ 0x40;
    reg {
        name="ClearRX_UNDERInterrupt";
        desc = "This register has the following custom Renode callbacks: Read";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CLR_RX_UNDER[0:0];
    } ClearRX_UNDERInterrupt @ 0x44;
    reg {
        name="ClearRX_OVERInterrupt";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CLR_RX_OVER[0:0];
    } ClearRX_OVERInterrupt @ 0x48;
    reg {
        name="ClearTX_OVERInterrupt";
        desc = "This register has the following custom Renode callbacks: Read";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CLR_TX_OVER[0:0];
    } ClearTX_OVERInterrupt @ 0x4c;
    reg {
        name="ClearRD_REQInterrupt";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CLR_RD_REQ[0:0];
    } ClearRD_REQInterrupt @ 0x50;
    reg {
        name="ClearTX_ABRTInterrupt";
        desc = "This register has the following custom Renode callbacks: Read";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CLR_TX_ABRT[0:0];
    } ClearTX_ABRTInterrupt @ 0x54;
    reg {
        name="ClearRX_DONEInterrupt";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CLR_RX_DONE[0:0];
    } ClearRX_DONEInterrupt @ 0x58;
    reg {
        name="ClearACTIVITYInterrupt";
        desc = "This register has the following custom Renode callbacks: Read";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CLR_ACTIVITY[0:0];
    } ClearACTIVITYInterrupt @ 0x5c;
    reg {
        name="ClearSTOP_DETInterrupt";
        desc = "This register has the following custom Renode callbacks: Read";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CLR_STOP_DET[0:0];
    } ClearSTOP_DETInterrupt @ 0x60;
    reg {
        name="ClearSTART_DETInterrupt";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CLR_START_DET[0:0];
    } ClearSTART_DETInterrupt @ 0x64;
    reg {
        name="ClearGEN_CALLInterrupt";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CLR_GEN_CALL[0:0];
    } ClearGEN_CALLInterrupt @ 0x68;
    reg {
        name="Enable";
        regwidth=0x20;
            field {
                sw = rw;
            } I2C_EN[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } I2C_ABORT[1:1];
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
            } I2C_TX_CMD_BLOCK[2:2];
    } Enable @ 0x6c;
    reg {
        name="Status";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } I2C_ACTIVITY[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
                reset=1'b1;
            } TFNF[1:1];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
                reset=1'b1;
            } TFE[2:2];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } RFNE[3:3];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } RFF[4:4];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } MST_ACTIVITY[5:5];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } SLV_ACTIVITY[6:6];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } MST_HOLD_TX_FIFO_EMPTY[7:7];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } MST_HOLD_RX_FIFO_FULL[8:8];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } SLV_HOLD_TX_FIFO_EMPTY[9:9];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } LV_HOLD_RX_FIFO_FULL[10:10];
    } Status @ 0x70;
    reg {
        name="TransmitFIFOLevel";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } TXFLR[5:0];
    } TransmitFIFOLevel @ 0x74;
    reg {
        name="ReceiveFIFOLevel";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } RXFLR[5:0];
    } ReceiveFIFOLevel @ 0x78;
    reg {
        name="SDAHoldTimeLength";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=16'b1;
            } I2C_SDA_TX_HOLD[15:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } I2C_SDA_RX_HOLD[23:16];
    } SDAHoldTimeLength @ 0x7c;
    reg {
        name="TransmitAbortSource";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ABRT_7B_ADDR_NOACK[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ABRT_10ADDR1_NOACK[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ABRT_10ADDR2_NOACK[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ABRT_TXDATA_NOACK[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ABRT_GCALL_NOACK[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ABRT_GCALL_READ[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ABRT_HS_ACKDET[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ABRT_SBYTE_ACKDET[7:7];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ABRT_HS_NORSTRT[8:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ABRT_SBYTE_NORSTRT[9:9];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ABRT_10B_RD_NORSTRT[10:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ABRT_MASTER_DIS[11:11];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ARB_LOST[12:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ABRT_SLVFLUSH_TXFIFO[13:13];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ABRT_SLV_ARBLOST[14:14];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ABRT_SLVRD_INTX[15:15];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ABRT_USER_ABRT[16:16];
    } TransmitAbortSource @ 0x80;
    reg {
        name="DMAControl";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                sw = rw;
            } RDMAE[0:0];
            field {
                sw = rw;
            } TDMAE[1:1];
    } DMAControl @ 0x88;
    reg {
        name="DMATransmitDataLevel";
        regwidth=0x20;
            field {
                sw = rw;
            } DMATDL[4:0];
    } DMATransmitDataLevel @ 0x8c;
    reg {
        name="ReceiveDataLevel";
        regwidth=0x20;
            field {
                sw = rw;
            } DMARDL[4:0];
    } ReceiveDataLevel @ 0x90;
    reg {
        name="SDASetup";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=8'b1100100;
            } SDA_SETUP[7:0];
    } SDASetup @ 0x94;
    reg {
        name="ACKGeneralCall";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ACK_GEN_CALL[0:0];
    } ACKGeneralCall @ 0x98;
    reg {
        name="EnableStatus";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } IC_EN[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SLV_DISABLED_WHILE_BUSY[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SLV_RX_DATA_LOST[2:2];
    } EnableStatus @ 0x9c;
    reg {
        name="StandardSpeedAndFastSpeedSpikeSuppressionLmitSize";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
                reset=8'b1;
            } I2C_FS_SPKLEN[7:0];
    } StandardSpeedAndFastSpeedSpikeSuppressionLmitSize @ 0xa0;
    reg {
        name="HighSpeedSpikeSuppressionLimitSize";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
                reset=8'b1;
            } I2C_HS_SPKLEN[7:0];
    } HighSpeedSpikeSuppressionLimitSize @ 0xa4;
} Registers_addrmap;


};