addrmap SAMD21_GPIO {

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="Direction";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } DIRindex__1__8___1_index__8[7:0];
    } Direction [4]@ 0x0 += 1;
    reg {
        name="DirectionClear";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } DIRCLRindex__1__8___1_index__8[7:0];
    } DirectionClear [4]@ 0x4 += 1;
    reg {
        name="DirectionSet";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } DIRSETindex__1__8___1_index__8[7:0];
    } DirectionSet [4]@ 0x8 += 1;
    reg {
        name="DirectionToggle";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } DIRTGLindex__1__8___1_index__8[7:0];
    } DirectionToggle [4]@ 0xc += 1;
    reg {
        name="Output";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } OUTindex__1__8___1_index__8[7:0];
    } Output [4]@ 0x10 += 1;
    reg {
        name="OutputClear";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } OUTCLRindex__1__8___1_index__8[7:0];
    } OutputClear [4]@ 0x14 += 1;
    reg {
        name="OutputSet";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } OUTSETindex__1__8___1_index__8[7:0];
    } OutputSet [4]@ 0x18 += 1;
    reg {
        name="OutputToggle";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } OUTTGLindex__1__8___1_index__8[7:0];
    } OutputToggle [4]@ 0x1c += 1;
    reg {
        name="Input";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } INindex__1__8___1_index__8[7:0];
    } Input [4]@ 0x20 += 1;
    reg {
        name="Control";
        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];
    } Control @ 0x24;
    reg {
        name="WriteConfiguration";
        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];
    } WriteConfiguration @ 0x28;
    reg {
        name="PeripheralMultiplexing";
        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];
    } PeripheralMultiplexing @ 0x2c;
    reg {
        name="PinConfiguration";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PMUXEN[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } INEN[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PULLEN[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DRVSTR[6:6];
    } PinConfiguration [32]@ 0x40 += 1;
} Registers_addrmap;


};