addrmap STM32F7_I2C {

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="Control1";
        desc = "This register has the following custom Renode callbacks: Change";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } PE[0:0];
            field {
                sw = rw;
            } TXIE[1:1];
            field {
                sw = rw;
            } RXIE[2:2];
            field {
                sw = rw;
            } ADDRIE[3:3];
            field {
                sw = rw;
            } NACKIE[4:4];
            field {
                sw = rw;
            } STOPIE[5:5];
            field {
                sw = rw;
            } TCIE[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DNF[11:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ANFOFF[12:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TXDMAEN[14:14];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RXDMAEN[15:15];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SBC[16:16];
            field {
                sw = rw;
            } NOSTRETCH[17:17];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WUPEN[18:18];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } GCEN[19:19];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SMBHEN[20:20];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SMBDEN[21:21];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ALERTEN[22:22];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PECEN[23:23];
    } Control1 @ 0x0;
    reg {
        name="Control2";
        desc = "This register has the following custom Renode callbacks: Write, Change";
        regwidth=0x20;
            field {
                sw = rw;
            } SADD[9:0];
            field {
                sw = rw;
            } RD_WRN[10:10];
            field {
                sw = rw;
            } ADD10[11:11];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } HEAD10R[12:12];
            field {
                sw = rw;
            } START[13:13];
            field {
                sw = rw;
            } STOP[14:14];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } NACK[15:15];
            field {
                sw = rw;
            } NBYTES[23:16];
            field {
                sw = rw;
            } RELOAD[24:24];
            field {
                sw = rw;
            } AUTOEND[25:25];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PECBYTE[26:26];
    } Control2 @ 0x4;
    reg {
        name="OwnAddress1";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                sw = rw;
            } OA1[9:0];
            field {
                sw = rw;
            } OA1MODE[10:10];
            field {
                sw = rw;
            } OA1EN[15:15];
    } OwnAddress1 @ 0x8;
    reg {
        name="OwnAddress2";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                sw = rw;
            } OA2[7:1];
            field {
                sw = rw;
            } OA2MSK[10:8];
            field {
                sw = rw;
            } OA2EN[15:15];
    } OwnAddress2 @ 0xc;
    reg {
        name="Timing";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SCLL[7:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SCLH[15:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SDADEL[19:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SCLDEL[23:20];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PRESC[31:28];
    } Timing @ 0x10;
    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 @ 0x14;
    reg {
        name="InterruptAndStatus";
        desc = "This register has the following custom Renode callbacks: Change";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
                reset=1'b1;
            } TXE[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } TXIS[1:1];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } RXNE[2:2];
            field {
                sw = r;
            } ADDR[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } NACKF[4:4];
            field {
                sw = r;
            } STOPF[5:5];
            field {
                sw = r;
            } TC[6:6];
            field {
                sw = r;
            } TCR[7:7];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } BERR[8:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ARLO[9:9];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OVR[10:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PECERR[11:11];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TIMEOUT[12:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ALERT[13:13];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } BUSY[15:15];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } DIR[16:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ADDCODE[23:17];
    } InterruptAndStatus @ 0x18;
    reg {
        name="InterruptClear";
        desc = "This register has the following custom Renode callbacks: Change";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = woclr;
            } ADDRCF[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } NACKCF[4:4];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = woclr;
            } STOPCF[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } BERRCF[8:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ARLOCF[9:9];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OVRCF[10:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PECCF[11:11];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TIMOUTCF[12:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ALERTCF[13:13];
    } InterruptClear @ 0x1c;
    reg {
        name="PacketErrorChecking";
        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];
    } PacketErrorChecking @ 0x20;
    reg {
        name="ReceiveData";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } RXDATA[7:0];
    } ReceiveData @ 0x24;
    reg {
        name="TransmitData";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } TXDATA[7:0];
    } TransmitData @ 0x28;
} Registers_addrmap;


};