addrmap MAX32650_GPIO {

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="Enable";
        regwidth=0x20;
            field {
                sw = rw;
                reset=32'b11111111111111111111111111111111;
            } EN_gpio_en[31:0];
    } Enable @ 0x0;
    reg {
        name="EnableSet";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
                reset=32'b11111111111111111111111111111111;
            } EN_SET_all[31:0];
    } EnableSet @ 0x4;
    reg {
        name="EnableClear";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
                reset=32'b11111111111111111111111111111111;
            } EN_CLR_all[31:0];
    } EnableClear @ 0x8;
    reg {
        name="OutputEnable";
        regwidth=0x20;
            field {
                sw = rw;
                reset=32'b1000000000000000000000000000;
            } OUT_EN_gpio_out_en[31:0];
    } OutputEnable @ 0xc;
    reg {
        name="OutputEnableSet";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } OUT_EN_SET_all[31:0];
    } OutputEnableSet @ 0x10;
    reg {
        name="OutputEnableClear";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } OUT_EN_CLR_all[31:0];
    } OutputEnableClear @ 0x14;
    reg {
        name="Output";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } OUT_gpio_out[31:0];
    } Output @ 0x18;
    reg {
        name="OutputSet";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } OUT_SET_gpio_out_set[31:0];
    } OutputSet @ 0x1c;
    reg {
        name="OutputClear";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } OUT_CLR_gpio_out_clr[31:0];
    } OutputClear @ 0x20;
    reg {
        name="Input";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = rw;
            } IN_gpio_in[31:0];
    } Input @ 0x24;
    reg {
        name="InterruptMode";
        desc = "This register has the following custom Renode callbacks: Change";
        regwidth=0x20;
            field {
                sw = rw;
            } INT_MOD_gpio_int_mod[31:0];
    } InterruptMode @ 0x28;
    reg {
        name="InterruptPolarity";
        desc = "This register has the following custom Renode callbacks: Change";
        regwidth=0x20;
            field {
                sw = rw;
            } INT_POL_gpio_int_pol[31:0];
    } InterruptPolarity @ 0x2c;
    reg {
        name="InputEnabled";
        regwidth=0x20;
            field {
                sw = rw;
                reset=32'b11111111111111111111111111111111;
            } IN_EN_gpio_in_en[31:0];
    } InputEnabled @ 0x30;
    reg {
        name="InterruptEnable";
        desc = "This register has the following custom Renode callbacks: Change";
        regwidth=0x20;
            field {
                sw = rw;
            } INT_EN_gpio_int_en[31:0];
    } InterruptEnable @ 0x34;
    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;
            } INT_EN_SET_gpio_int_en_set[31:0];
    } InterruptEnableSet @ 0x38;
    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;
            } INT_EN_CLR_gpio_int_en_clr[31:0];
    } InterruptEnableClear @ 0x3c;
    reg {
        name="InterruptStatus";
        regwidth=0x20;
            field {
                sw = r;
            } INT_STAT_gpio_int_stat[31:0];
    } InterruptStatus @ 0x40;
    reg {
        name="InterruptStatusClear";
        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;
            } INT_CLR_all[31:0];
    } InterruptStatusClear @ 0x48;
    reg {
        name="WakeEnable";
        desc = "This register has the following custom Renode callbacks: Change";
        regwidth=0x20;
            field {
                sw = rw;
            } WAKE_EN_gpio_wake_en[31:0];
    } WakeEnable @ 0x4c;
    reg {
        name="WakeEnableSet";
        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;
            } WAKE_EN_SET_all[31:0];
    } WakeEnableSet @ 0x50;
    reg {
        name="WakeEnableClear";
        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;
            } WAKE_EN_CLR_all[31:0];
    } WakeEnableClear @ 0x54;
    reg {
        name="InterruptDualEdge";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } INT_DUAL_EDGE_gpio_int_dual_edge[31:0];
    } InterruptDualEdge @ 0x5c;
    reg {
        name="InputMode1";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PAD_CFG1_gpio_pad_cfg1[31:0];
    } InputMode1 @ 0x60;
    reg {
        name="InputMode2";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PAD_CFG2_gpio_pad_cfg2[31:0];
    } InputMode2 @ 0x64;
    reg {
        name="AlternateFunction1";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } EN1_gpio_en1[31:0];
    } AlternateFunction1 @ 0x68;
    reg {
        name="AlternateFunction1Set";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } EN1_SET_all[31:0];
    } AlternateFunction1Set @ 0x6c;
    reg {
        name="AlternateFunction1Clear";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } EN1_CLR_all[31:0];
    } AlternateFunction1Clear @ 0x70;
    reg {
        name="AlternateFunction2";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } EN2_gpio_en2[31:0];
    } AlternateFunction2 @ 0x74;
    reg {
        name="AlternateFunction2Set";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } EN2_SET_all[31:0];
    } AlternateFunction2Set @ 0x78;
    reg {
        name="AlternateFunction2Clear";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } EN2_CLR_all[31:0];
    } AlternateFunction2Clear @ 0x7c;
    reg {
        name="DriveStrength1";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DS_ds[31:0];
    } DriveStrength1 @ 0xb0;
    reg {
        name="DriveStrength2";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DS1_all[31:0];
    } DriveStrength2 @ 0xb4;
    reg {
        name="PullUpPullDown";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PS_all[31:0];
    } PullUpPullDown @ 0xb8;
    reg {
        name="Voltage";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } VSSEL_all[31:0];
    } Voltage @ 0xc0;
} Registers_addrmap;


};