addrmap NRF52840_SPI {

/* Some conversion errors detected, this might mean that the peripheral's registers structure in this file is incomplete.
 * Please refer to logs and comments in the file for more information.
 * 
 * Field "END_" overlaps another field at the same offset (0x6) and will be skipped, as it is illegal in SystemRDL.
 * Field "STOPPED_" overlaps another field at the same offset (0x1) and will be skipped, as it is illegal in SystemRDL.
 * Field "ENDRX_" overlaps another field at the same offset (0x4) and will be skipped, as it is illegal in SystemRDL.
 * Field "END_" overlaps another field at the same offset (0x6) and will be skipped, as it is illegal in SystemRDL.
 * Field "ENDTX_" overlaps another field at the same offset (0x8) and will be skipped, as it is illegal in SystemRDL.
 * Field "STARTED_" overlaps another field at the same offset (0x13) and will be skipped, as it is illegal in SystemRDL.
 * Field "READY_" overlaps another field at the same offset (0x2) and will be skipped, as it is illegal in SystemRDL.
 * Field "END_" overlaps another field at the same offset (0x6) and will be skipped, as it is illegal in SystemRDL.
 * Field "END_" overlaps another field at the same offset (0x6) and will be skipped, as it is illegal in SystemRDL.
 * Field "STOPPED_" overlaps another field at the same offset (0x1) and will be skipped, as it is illegal in SystemRDL.
 * Field "ENDRX_" overlaps another field at the same offset (0x4) and will be skipped, as it is illegal in SystemRDL.
 * Field "END_" overlaps another field at the same offset (0x6) and will be skipped, as it is illegal in SystemRDL.
 * Field "ENDTX_" overlaps another field at the same offset (0x8) and will be skipped, as it is illegal in SystemRDL.
 * Field "STARTED_" overlaps another field at the same offset (0x13) and will be skipped, as it is illegal in SystemRDL.
 * Field "READY_" overlaps another field at the same offset (0x2) and will be skipped, as it is illegal in SystemRDL.
 * Field "END_" overlaps another field at the same offset (0x6) and will be skipped, as it is illegal in SystemRDL.
 */

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="TasksStart";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } TASKS_START[0:0];
    } TasksStart @ 0x10;
    reg {
        name="EventsReady";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                sw = rw;
            } EVENTS_READY[0:0];
    } EventsReady @ 0x108;
    reg {
        name="EventsEndRx";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                sw = rw;
            } EVENTS_ENDRX[0:0];
    } EventsEndRx @ 0x110;
    reg {
        name="EventsEnd";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                sw = rw;
            } EVENTS_END[0:0];
    } EventsEnd @ 0x118;
    reg {
        name="EventsEndTx";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                sw = rw;
            } EVENTS_ENDTX[0:0];
    } EventsEndTx @ 0x120;
    reg {
        name="EventsStarted";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                sw = rw;
            } EVENTS_STARTED[0:0];
    } EventsStarted @ 0x14c;
    reg {
        name="EnableInterrupt";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
        `ifdef VARIANT0
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } STOPPED[1:1];
            field {
                sw = rw;
                onwrite = woset;
            } ENDRX[4:4];
            field {
                sw = rw;
                onwrite = woset;
            } END[6:6];
            field {
                sw = rw;
                onwrite = woset;
            } ENDTX[8:8];
            field {
                sw = rw;
                onwrite = woset;
            } STARTED[19:19];
            /* Conversion error: Field "STOPPED_" overlaps another field at the same offset (0x1) and will be skipped, as it is illegal in SystemRDL.
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } STOPPED_[1:1];
            */
            /* Conversion error: Field "ENDRX_" overlaps another field at the same offset (0x4) and will be skipped, as it is illegal in SystemRDL.
            field {
                sw = rw;
                onwrite = woset;
            } ENDRX_[4:4];
            */
            /* Conversion error: Field "END_" overlaps another field at the same offset (0x6) and will be skipped, as it is illegal in SystemRDL.
            field {
                sw = rw;
                onwrite = woset;
            } END_[6:6];
            */
            /* Conversion error: Field "ENDTX_" overlaps another field at the same offset (0x8) and will be skipped, as it is illegal in SystemRDL.
            field {
                sw = rw;
                onwrite = woset;
            } ENDTX_[8:8];
            */
            /* Conversion error: Field "STARTED_" overlaps another field at the same offset (0x13) and will be skipped, as it is illegal in SystemRDL.
            field {
                sw = rw;
                onwrite = woset;
            } STARTED_[19:19];
            */
        `elsif VARIANT11
            field {
                sw = rw;
                onwrite = woset;
            } READY[2:2];
            /* Conversion error: Field "END_" overlaps another field at the same offset (0x6) and will be skipped, as it is illegal in SystemRDL.
            field {
                sw = rw;
                onwrite = woset;
            } END_[6:6];
            */
            /* Conversion error: Field "READY_" overlaps another field at the same offset (0x2) and will be skipped, as it is illegal in SystemRDL.
            field {
                sw = rw;
                onwrite = woset;
            } READY_[2:2];
            */
            /* Conversion error: Field "END_" overlaps another field at the same offset (0x6) and will be skipped, as it is illegal in SystemRDL.
            field {
                sw = rw;
                onwrite = woset;
            } END_[6:6];
            */
        `endif

    } EnableInterrupt @ 0x304;
    reg {
        name="DisableInterrupt";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
        `ifdef VARIANT0
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } STOPPED[1:1];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } ENDRX[4:4];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } END[6:6];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } ENDTX[8:8];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } STARTED[19:19];
            /* Conversion error: Field "STOPPED_" overlaps another field at the same offset (0x1) and will be skipped, as it is illegal in SystemRDL.
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } STOPPED_[1:1];
            */
            /* Conversion error: Field "ENDRX_" overlaps another field at the same offset (0x4) and will be skipped, as it is illegal in SystemRDL.
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } ENDRX_[4:4];
            */
            /* Conversion error: Field "END_" overlaps another field at the same offset (0x6) and will be skipped, as it is illegal in SystemRDL.
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } END_[6:6];
            */
            /* Conversion error: Field "ENDTX_" overlaps another field at the same offset (0x8) and will be skipped, as it is illegal in SystemRDL.
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } ENDTX_[8:8];
            */
            /* Conversion error: Field "STARTED_" overlaps another field at the same offset (0x13) and will be skipped, as it is illegal in SystemRDL.
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } STARTED_[19:19];
            */
        `elsif VARIANT11
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } READY[2:2];
            /* Conversion error: Field "END_" overlaps another field at the same offset (0x6) and will be skipped, as it is illegal in SystemRDL.
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } END_[6:6];
            */
            /* Conversion error: Field "READY_" overlaps another field at the same offset (0x2) and will be skipped, as it is illegal in SystemRDL.
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } READY_[2:2];
            */
            /* Conversion error: Field "END_" overlaps another field at the same offset (0x6) and will be skipped, as it is illegal in SystemRDL.
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } END_[6:6];
            */
        `endif

    } DisableInterrupt @ 0x308;
    reg {
        name="Enable";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } No_name_1[3:0];
    } Enable @ 0x500;
    reg {
        name="PinSelectSCK";
        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];
    } PinSelectSCK @ 0x508;
    reg {
        name="PinSelectMOSI";
        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];
    } PinSelectMOSI @ 0x50c;
    reg {
        name="PinSelectMISO";
        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];
    } PinSelectMISO @ 0x510;
    reg {
        name="ReceiveBuffer";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } RXD[7:0];
    } ReceiveBuffer @ 0x518;
    reg {
        name="TransmitBuffer";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } TXD[7:0];
    } TransmitBuffer @ 0x51c;
    reg {
        name="Frequency";
        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];
    } Frequency @ 0x524;
    reg {
        name="RxDataPointer";
        regwidth=0x20;
            field {
                sw = rw;
            } PTR[31:0];
    } RxDataPointer @ 0x534;
    reg {
        name="RxMaxDataCount";
        regwidth=0x20;
            field {
                sw = rw;
            } MAXCNT[15:0];
    } RxMaxDataCount @ 0x538;
    reg {
        name="RxTransferredDataAmount";
        regwidth=0x20;
            field {
                sw = r;
            } AMOUNT[15:0];
    } RxTransferredDataAmount @ 0x53c;
    reg {
        name="RxListType";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } LIST___List_type[0:0];
    } RxListType @ 0x540;
    reg {
        name="TxDataPointer";
        regwidth=0x20;
            field {
                sw = rw;
            } PTR[31:0];
    } TxDataPointer @ 0x544;
    reg {
        name="TxMaxDataCount";
        regwidth=0x20;
            field {
                sw = rw;
            } MAXCNT[15:0];
    } TxMaxDataCount @ 0x548;
    reg {
        name="TxTransferredDataAmount";
        regwidth=0x20;
            field {
                sw = r;
            } AMOUNT[15:0];
    } TxTransferredDataAmount @ 0x54c;
    reg {
        name="TxListType";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } LIST___List_type[0:0];
    } TxListType @ 0x550;
    reg {
        name="Configuration";
        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];
    } Configuration @ 0x554;
    reg {
        name="ORC";
        regwidth=0x20;
            field {
                sw = rw;
            } ORC[7:0];
    } ORC @ 0x5c0;
} Registers_addrmap;


};