addrmap ARM_AHB_GPIO {

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="Data";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } DATA[15:0];
    } Data @ 0x0;
    reg {
        name="DataOutput";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } DATAOUT[15:0];
    } DataOutput @ 0x4;
    reg {
        name="OutputEnableSet";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } OUTENSET[15:0];
    } OutputEnableSet @ 0x10;
    reg {
        name="OutputEnableClear";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } OUTENCLR[15:0];
    } OutputEnableClear @ 0x14;
    reg {
        name="AlternateFunctionSet";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } ALTFUNCSET[15:0];
    } AlternateFunctionSet @ 0x18;
    reg {
        name="AlternateFunctionClear";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } ALTFUNCCLR[15:0];
    } AlternateFunctionClear @ 0x1c;
    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;
            } INTENSET[15:0];
    } InterruptEnableSet @ 0x20;
    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;
            } INTENCLR[15:0];
    } InterruptEnableClear @ 0x24;
    reg {
        name="InterruptTypeSet";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } INTTYPESET[15:0];
    } InterruptTypeSet @ 0x28;
    reg {
        name="InterruptTypeClear";
        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;
            } INTTYPECLR[15:0];
    } InterruptTypeClear @ 0x2c;
    reg {
        name="InterruptPolaritySet";
        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;
            } INTPOLSET[15:0];
    } InterruptPolaritySet @ 0x30;
    reg {
        name="InterruptPolarityClear";
        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;
            } INTPOLCLR[15:0];
    } InterruptPolarityClear @ 0x34;
    reg {
        name="InterruptStatus_InterruptClear";
        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;
            } INTSTATUS_INTCLEAR[15:0];
    } InterruptStatus_InterruptClear @ 0x38;
    reg {
        name="SoftReset";
        regwidth=0x20;
            field {
                sw = rw;
            } SOFTRESET[0:0];
    } SoftReset @ 0x3c;
    reg {
        name="PullEnable";
        regwidth=0x20;
            field {
                sw = rw;
            } PULL_ENABLE[15:0];
    } PullEnable @ 0x40;
    reg {
        name="PullUpDown";
        regwidth=0x20;
            field {
                sw = rw;
            } PULL_UP_DOWN[15:0];
    } PullUpDown @ 0x44;
    reg {
        name="MaskLowByte0";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } MASKLOWBYTE[7:0];
    } MaskLowByte0 [256]@ 0x400 += 4;
    reg {
        name="MaskHighByte0";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } MASKHIGHBYTE[7:0];
    } MaskHighByte0 [256]@ 0x800 += 4;
} Registers_addrmap;


};