addrmap SAM4S_TWI {

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="Control";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                sw = w;
            } START[0:0];
            field {
                sw = w;
            } STOP[1:1];
            field {
                sw = w;
                onwrite = woset;
            } MSEN___Master_Mode_Enabled[2:2];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = woclr;
            } MSDIS___Master_Mode_Disabled[3:3];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = woset;
            } SVEN___Slave_Mode_Enabled[4:4];
            field {
                sw = w;
                onwrite = woclr;
            } SVDIS___Slave_Mode_Disabled[5:5];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = woset;
            } SWRST[7:7];
    } Control @ 0x0;
    reg {
        name="MasterMode";
        desc = "This register has the following custom Renode callbacks: Change";
        regwidth=0x20;
            field {
                sw = rw;
            } IADRSZ___Internal_Device_Address_Size[9:8];
            field {
                sw = rw;
            } MREAD___Master_Read_Direction[12:12];
            field {
                sw = rw;
            } DADR___Device_Address[22:16];
    } MasterMode @ 0x4;
    reg {
        name="SlaveMode";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SADR___Slave_Address[22:16];
    } SlaveMode @ 0x8;
    reg {
        name="InternalAddress";
        regwidth=0x20;
            field {
                sw = rw;
            } IADR___Internal_Address[23:0];
    } InternalAddress @ 0xc;
    reg {
        name="ClockWaveformGenerator";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CLDIV___Clock_Low_Divider[7:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CHDIV___Clock_High_Divider[15:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CKDIV___Clock_Divide[18:16];
    } ClockWaveformGenerator @ 0x10;
    reg {
        name="Reserved1";
        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];
    } Reserved1 @ 0x14;
    reg {
        name="Reserved2";
        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];
    } Reserved2 @ 0x1c;
    reg {
        name="Status";
        regwidth=0x20;
            field {
                sw = r;
            } TXCOMP[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } RXDRY[1:1];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } TXRDY[2:2];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } SVREAD[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SVACC[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } GACC[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OVRE[6:6];
            field {
                sw = r;
            } NACK[8:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ARBLST[9:9];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SCLWS[10:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } EOSACC[11:11];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } ENDRX[12:12];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } ENDTX[13:13];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } RXBUFF[14:14];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } TXBUFE[15:15];
    } Status @ 0x20;
    reg {
        name="InterruptEnable";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = woset;
            } TXCOMP[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = woset;
            } RXRDY[1:1];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = woset;
            } TXRDY[2:2];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = woset;
            } SVACC[4:4];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = woset;
            } GACC[5:5];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = woset;
            } OVRE[6:6];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = woset;
            } NACK[8:8];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = woset;
            } ARBLST[9:9];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = woset;
            } SCL_WS[10:10];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = woset;
            } EOSACC[11:11];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = woset;
            } ENDRX[12:12];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = woset;
            } ENDTX[13:13];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = woset;
            } RXBUFF[14:14];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = woset;
            } TXBUFE[15:15];
    } InterruptEnable @ 0x24;
    reg {
        name="InterruptDisable";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = woclr;
            } TXCOMP[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = woclr;
            } RXRDY[1:1];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = woclr;
            } TXRDY[2:2];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = woclr;
            } SVACC[4:4];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = woclr;
            } GACC[5:5];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = woclr;
            } OVRE[6:6];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = woclr;
            } NACK[8:8];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = woclr;
            } ARBLST[9:9];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = woclr;
            } SCL_WS[10:10];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = woclr;
            } EOSACC[11:11];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = woclr;
            } ENDRX[12:12];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = woclr;
            } ENDTX[13:13];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = woclr;
            } RXBUFF[14:14];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = woclr;
            } TXBUFE[15:15];
    } InterruptDisable @ 0x28;
    reg {
        name="InterruptMask";
        regwidth=0x20;
            field {
                sw = r;
            } TXCOMP[0:0];
            field {
                sw = r;
            } RXRDY[1:1];
            field {
                sw = r;
            } TXRDY[2:2];
            field {
                sw = r;
            } SVACC[4:4];
            field {
                sw = r;
            } GACC[5:5];
            field {
                sw = r;
            } OVRE[6:6];
            field {
                sw = r;
            } NACK[8:8];
            field {
                sw = r;
            } ARBLST[9:9];
            field {
                sw = r;
            } SCL_WS[10:10];
            field {
                sw = r;
            } EOSACC[11:11];
            field {
                sw = r;
            } ENDRX[12:12];
            field {
                sw = r;
            } ENDTX[13:13];
            field {
                sw = r;
            } RXBUFF[14:14];
            field {
                sw = r;
            } TXBUFE[15:15];
    } InterruptMask @ 0x2c;
    reg {
        name="ReceiveHolding";
        desc = "This register has the following custom Renode callbacks: Read";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } RXDATA[7:0];
    } ReceiveHolding @ 0x30;
    reg {
        name="TransmitHolding";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } TXDATA[7:0];
    } TransmitHolding @ 0x34;
    reg {
        name="PdcReceivePointer";
        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];
    } PdcReceivePointer @ 0x100;
    reg {
        name="PdcReceiveCounter";
        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];
    } PdcReceiveCounter @ 0x104;
    reg {
        name="PdcTransmitPointer";
        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];
    } PdcTransmitPointer @ 0x108;
    reg {
        name="PdcTransmitCounter";
        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];
    } PdcTransmitCounter @ 0x10c;
    reg {
        name="PdcReceiveNextPointer";
        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];
    } PdcReceiveNextPointer @ 0x110;
    reg {
        name="PdcReceiveNextCounter";
        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];
    } PdcReceiveNextCounter @ 0x114;
    reg {
        name="PdcTransmitNextPointer";
        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];
    } PdcTransmitNextPointer @ 0x118;
    reg {
        name="PdcTransmitNextCounter";
        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];
    } PdcTransmitNextCounter @ 0x11c;
    reg {
        name="PdcTransferControl";
        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];
    } PdcTransferControl @ 0x120;
    reg {
        name="PdcTransferStatus";
        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];
    } PdcTransferStatus @ 0x124;
} Registers_addrmap;


};