addrmap MAX32650_I2C {

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="Control0";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
            } CTRL0_i2cen[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
            } CTRL0_mst[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CTRL0_gcen[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CTRL0_irxm[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CTRL0_ack[4:4];
            field {
                sw = rw;
            } CTRL0_sclo[6:6];
            field {
                sw = rw;
            } CTRL0_sdao[7:7];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } CTRL0_scl[8:8];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } CTRL0_sda[9:9];
            field {
                sw = rw;
            } CTRL0_swoe[10:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CTRL0_read[11:11];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CTRL0_scl_strd[12:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CTRL0_scl_ppm[13:13];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CTRL0_hsmode[15:15];
    } Control0 @ 0x0;
    reg {
        name="Status";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } STAT_busy[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } STAT_rxe[1:1];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } STAT_rxf[2:2];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } STAT_txe[3:3];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } STAT_txf[4:4];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } STAT_chmd[5:5];
    } Status @ 0x4;
    reg {
        name="InterruptFlags0";
        desc = "This register has the following custom Renode callbacks: Change";
        regwidth=0x20;
            field {
                sw = rw;
                onwrite = woclr;
            } INT_FL0_donei[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } INT_FL0_irxmi[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } INT_FL0_gci[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } INT_FL0_ami[3:3];
            field {
                sw = rw;
                onwrite = woclr;
            } INT_FL0_rxthi[4:4];
            field {
                sw = rw;
                onwrite = woclr;
            } INT_FL0_txthi[5:5];
            field {
                sw = rw;
                onwrite = woclr;
            } INT_FL0_stopi[6:6];
            field {
                sw = rw;
                onwrite = woclr;
            } INT_FL0_adracki[7:7];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } INT_FL0_arberi[8:8];
            field {
                sw = rw;
                onwrite = woclr;
            } INT_FL0_toeri[9:9];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } INT_FL0_adreri[10:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } INT_FL0_dateri[11:11];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } INT_FL0_dnreri[12:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } INT_FL0_strteri[13:13];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } INT_FL0_stoperi[14:14];
            field {
                sw = w;
                onwrite = woclr;
            } INT_FL0_txloi[15:15];
    } InterruptFlags0 @ 0x8;
    reg {
        name="InterruptEnable0";
        desc = "This register has the following custom Renode callbacks: Change";
        regwidth=0x20;
            field {
                sw = rw;
            } INT_EN0_donei[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } INT_EN0_irxmi[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } INT_EN0_gci[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } INT_EN0_ami[3:3];
            field {
                sw = rw;
            } INT_EN0_rxthi[4:4];
            field {
                sw = rw;
            } INT_EN0_txthi[5:5];
            field {
                sw = rw;
            } INT_EN0_stopi[6:6];
            field {
                sw = rw;
            } INT_EN0_adracki[7:7];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } INT_EN0_arberi[8:8];
            field {
                sw = rw;
            } INT_EN0_toeri[9:9];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } INT_EN0_adreri[10:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } INT_EN0_dateri[11:11];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } INT_EN0_dnreri[12:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } INT_EN0_strteri[13:13];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } INT_EN0_stoperi[14:14];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } INT_EN0_txloi[15:15];
    } InterruptEnable0 @ 0xc;
    reg {
        name="InterruptFlags1";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } InterruptFlags1 @ 0x10;
    reg {
        name="InterruptEnable1";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } InterruptEnable1 @ 0x14;
    reg {
        name="FIFOLength";
        regwidth=0x20;
            field {
                sw = r;
                reset=8'b10000000;
            } rx_depth[7:0];
            field {
                sw = r;
                reset=8'b10000000;
            } tx_depth[15:8];
    } FIFOLength @ 0x18;
    reg {
        name="ReceiveControl0";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RX_CTRL0_dnr[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
                onwrite = woclr;
            } RX_CTRL0_rxfsh[7:7];
            field {
                sw = rw;
            } RX_CTRL0_rxth[11:8];
    } ReceiveControl0 @ 0x1c;
    reg {
        name="ReceiveControl1";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } RX_CTRL1_rxcnt[7:0];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } RX_CTRL1_rxfifo[11:8];
    } ReceiveControl1 @ 0x20;
    reg {
        name="TransmitControl0";
        regwidth=0x20;
            field {
                sw = rw;
            } TX_CTRL0_txpreld[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
                onwrite = woclr;
            } TX_CTRL0_txfsh[7:7];
            field {
                sw = rw;
            } TX_CTRL0_txth[11:8];
    } TransmitControl0 @ 0x24;
    reg {
        name="TransmitControl1";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } TransmitControl1 @ 0x28;
    reg {
        name="FIFO";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } FIFO_data[7:0];
    } FIFO @ 0x2c;
    reg {
        name="MasterMode";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
                onwrite = woset;
            } MSTR_MODE_start[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
                onwrite = woclr;
            } MSTR_MODE_restart[1:1];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
                onwrite = woclr;
            } MSTR_MODE_stop[2:2];
            field {
                sw = rw;
            } MSTR_MODE_sea[7:7];
    } MasterMode @ 0x30;
    reg {
        name="ClockLowTime";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } ClockLowTime @ 0x34;
    reg {
        name="ClockHighTime";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } ClockHighTime @ 0x38;
    reg {
        name="Timeout";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Timeout @ 0x40;
    reg {
        name="SlaveAddress";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } SlaveAddress @ 0x44;
    reg {
        name="DMAEnable";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } DMAEnable @ 0x48;
} Registers_addrmap;


};