addrmap SAMD21_Timer {

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="ControlA0";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = woclr;
            } SWRST[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } ENABLE[1:1];
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
            } MODE[3:2];
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
            } WAVEGEN[6:5];
    } ControlA0 @ 0x0;
    reg {
        name="ControlA1";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } PRESCALER[2:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RUNSTDBY[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PRESCSYNC[5:4];
    } ControlA1 @ 0x1;
    reg {
        name="ReadRequest0";
        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];
    } ReadRequest0 @ 0x2;
    reg {
        name="ReadRequest1";
        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];
    } ReadRequest1 @ 0x3;
    reg {
        name="ControlBClear";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } DIR[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } ONESHOT[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CMD[7:6];
    } ControlBClear @ 0x4;
    reg {
        name="ControlBSet";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } DIR[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } ONESHOT[2:2];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } CMD[7:6];
    } ControlBSet @ 0x5;
    reg {
        name="ControlC";
        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];
    } ControlC @ 0x6;
    reg {
        name="Reserved0";
        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];
    } Reserved0 @ 0x7;
    reg {
        name="DebugControl";
        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];
    } DebugControl @ 0x8;
    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 @ 0x9;
    reg {
        name="EventControl";
        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];
    } EventControl @ 0xa;
    reg {
        name="InterruptEnableClear";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } OVF[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ERR[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SYNCRDY[3:3];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } MC0[4:4];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } MC1[5:5];
    } InterruptEnableClear @ 0xc;
    reg {
        name="InterruptEnableSet";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } OVF[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ERR[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SYNCRDY[3:3];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } MC0[4:4];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } MC1[5:5];
    } InterruptEnableSet @ 0xd;
    reg {
        name="InterruptFlags";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x8;
            field {
                sw = rw;
                onwrite = woclr;
            } OVF[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ERR[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SYNCRDY[3:3];
            field {
                sw = rw;
                onwrite = woclr;
            } MC0[4:4];
            field {
                sw = rw;
                onwrite = woclr;
            } MC1[5:5];
    } InterruptFlags @ 0xe;
    reg {
        name="Status";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } STOP[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SYNCBUSY[7:7];
    } Status @ 0xf;
    reg {
        name="Counter0";
        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];
    } Counter0 @ 0x10;
    reg {
        name="Counter1";
        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];
    } Counter1 @ 0x11;
    reg {
        name="Counter2";
        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];
    } Counter2 @ 0x12;
    reg {
        name="Counter3";
        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];
    } Counter3 @ 0x13;
    reg {
        name="ChannelCompareCaptureValue0_0";
        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];
    } ChannelCompareCaptureValue0_0 @ 0x18;
    reg {
        name="ChannelCompareCaptureValue0_1";
        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];
    } ChannelCompareCaptureValue0_1 @ 0x19;
    reg {
        name="ChannelCompareCaptureValue0_2";
        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];
    } ChannelCompareCaptureValue0_2 @ 0x1a;
    reg {
        name="ChannelCompareCaptureValue0_3";
        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];
    } ChannelCompareCaptureValue0_3 @ 0x1b;
    reg {
        name="ChannelCompareCaptureValue1_0";
        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];
    } ChannelCompareCaptureValue1_0 @ 0x1c;
    reg {
        name="ChannelCompareCaptureValue1_1";
        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];
    } ChannelCompareCaptureValue1_1 @ 0x1d;
    reg {
        name="ChannelCompareCaptureValue1_2";
        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];
    } ChannelCompareCaptureValue1_2 @ 0x1e;
    reg {
        name="ChannelCompareCaptureValue1_3";
        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];
    } ChannelCompareCaptureValue1_3 @ 0x1f;
} Registers_addrmap;


};