addrmap SAM_SPI {

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="Control";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } SPIEN[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } SPIDIS[1:1];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } SWRST[7:7];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } LASTXFER[24:24];
    } Control @ 0x0;
    reg {
        name="Mode";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                sw = rw;
            } MSTR[0:0];
            field {
                sw = rw;
            } PS[1:1];
            field {
                sw = rw;
            } PCSDEC[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } MODFDIS[4:4];
            field {
                sw = rw;
            } WDRBT[5:5];
            field {
                sw = rw;
            } LLB[7:7];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } PCS[19:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DLYBCS[31:24];
    } Mode @ 0x4;
    reg {
        name="ReceiveData";
        desc = "This register has the following custom Renode callbacks: Read";
        regwidth=0x20;
            field {
                sw = r;
            } RD[15:0];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } PCS[19:16];
    } ReceiveData @ 0x8;
    reg {
        name="TransmitData";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                sw = w;
            } TD[15:0];
            field {
                sw = w;
            } PCS[19:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } LASTXFER[24:24];
    } TransmitData @ 0xc;
    reg {
        name="Status";
        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];
    } Status @ 0x10;
    reg {
        name="InterruptEnable";
        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];
    } InterruptEnable @ 0x14;
    reg {
        name="InterruptDisable";
        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];
    } InterruptDisable @ 0x18;
    reg {
        name="InterruptMask";
        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];
    } InterruptMask @ 0x1c;
    reg {
        name="ChipSelect0";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CPOL[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } NCPHA[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CSNAAT[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CSAAT[3:3];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } BITS[7:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SCBR[15:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DLYBS[23:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DLYBCT[31:24];
    } ChipSelect0 [4]@ 0x30 += 4;
    reg {
        name="WriteProtectionMode";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                sw = rw;
            } WPEN[0:0];
            field {
                sw = rw;
            } WPKEY[31:8];
    } WriteProtectionMode @ 0xe4;
    reg {
        name="WriteProtectionStatus";
        regwidth=0x20;
            field {
                sw = r;
                onread = rclr;
            } WPVS[0:0];
            field {
                sw = r;
            } WPVSRC[15:8];
    } WriteProtectionStatus @ 0xe8;
    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;


};