addrmap NRF52840_PDM {

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 @ 0x0;
    reg {
        name="TasksStop";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } TASKS_STOP[0:0];
    } TasksStop @ 0x4;
    reg {
        name="EventsStarted";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
            } EVENTS_STARTED[0:0];
    } EventsStarted @ 0x100;
    reg {
        name="EventsStopped";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
            } EVENTS_STOPPED[0:0];
    } EventsStopped @ 0x104;
    reg {
        name="EventsEnd";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
            } EVENTS_END[0:0];
    } EventsEnd @ 0x108;
    reg {
        name="InterruptEnable";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                sw = rw;
            } STARTED[0:0];
            field {
                sw = rw;
            } STOPPED[1:1];
            field {
                sw = rw;
            } END[2:2];
    } InterruptEnable @ 0x300;
    reg {
        name="InterruptEnableSet";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } STARTED[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } STOPPED[1:1];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } END[2:2];
    } InterruptEnableSet @ 0x304;
    reg {
        name="InterruptEnableClear";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } STARTED[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } STOPPED[1:1];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } END[2:2];
    } InterruptEnableClear @ 0x308;
    reg {
        name="Enable";
        regwidth=0x20;
            field {
                sw = rw;
            } ENABLE[0:0];
    } Enable @ 0x500;
    reg {
        name="PdmClockControl";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
                reset=32'b1000010000000000000000000000;
            } FREQ[31:0];
    } PdmClockControl @ 0x504;
    reg {
        name="Mode";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } OPERATION[0:0];
            field {
                sw = rw;
            } EDGE[1:1];
    } Mode @ 0x508;
    reg {
        name="GainLeft";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
                reset=7'b101000;
            } GAINL[6:0];
    } GainLeft @ 0x518;
    reg {
        name="GainRigth";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
                reset=7'b101000;
            } GAINR[6:0];
    } GainRigth @ 0x51c;
    reg {
        name="Ratio";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } RATIO[0:0];
    } Ratio @ 0x520;
    reg {
        name="PinSelectClk";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } PIN[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } PORT[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } CONNECT[31:31];
    } PinSelectClk @ 0x540;
    reg {
        name="PinSelectDin";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } PIN[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } PORT[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } CONNECT[31:31];
    } PinSelectDin @ 0x544;
    reg {
        name="SamplePointer";
        regwidth=0x20;
            field {
                sw = rw;
            } PTR[31:0];
    } SamplePointer @ 0x560;
    reg {
        name="SampleBufferSize";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } MAXCNT[14:0];
    } SampleBufferSize @ 0x564;
} Registers_addrmap;


};