addrmap PULP_APB_GPIO {

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="PadDirection_00_31";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } PADDIR___GPIO_pad_direction_configuration_register[31:0];
    } PadDirection_00_31 @ 0x0;
    reg {
        name="GpioEnable_00_31";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } GPIOEN___GPIO_enable_register[31:0];
    } GpioEnable_00_31 @ 0x4;
    reg {
        name="PadInput_00_31";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } PADIN___Pad_input_value_register[31:0];
    } PadInput_00_31 @ 0x8;
    reg {
        name="PadOutput_00_31";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } PADOUT___Pad_Output_value_register[31:0];
    } PadOutput_00_31 @ 0xc;
    reg {
        name="PadOutputSet_00_31";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } PADOUTSET___Pad_Output_set_register[31:0];
    } PadOutputSet_00_31 @ 0x10;
    reg {
        name="PadOutputClear_00_31";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } PADOUTCLR___Pad_Output_clear_register[31:0];
    } PadOutputClear_00_31 @ 0x14;
    reg {
        name="InterruptEnable_00_31";
        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];
    } InterruptEnable_00_31 @ 0x18;
    reg {
        name="InterruptType_00_15";
        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];
    } InterruptType_00_15 @ 0x1c;
    reg {
        name="InterruptType_16_31";
        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];
    } InterruptType_16_31 @ 0x20;
    reg {
        name="InterruptStatus_00_31";
        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];
    } InterruptStatus_00_31 @ 0x24;
    reg {
        name="PadConfiguration_00_07";
        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];
    } PadConfiguration_00_07 @ 0x28;
    reg {
        name="PadConfiguration_08_15";
        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];
    } PadConfiguration_08_15 @ 0x2c;
    reg {
        name="PadConfiguration_16_23";
        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];
    } PadConfiguration_16_23 @ 0x30;
    reg {
        name="PadConfiguration_24_31";
        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];
    } PadConfiguration_24_31 @ 0x34;
    reg {
        name="PadDirection_32_63";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } PADDIR___GPIO_pad_direction_configuration_register[31:0];
    } PadDirection_32_63 @ 0x38;
    reg {
        name="GpioEnable_32_63";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } GPIOEN___GPIO_enable_register[31:0];
    } GpioEnable_32_63 @ 0x3c;
    reg {
        name="PadInput_32_63";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } PADIN___Pad_input_value_register[31:0];
    } PadInput_32_63 @ 0x40;
    reg {
        name="PadOutput_32_63";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } PADOUT___Pad_Output_value_register[31:0];
    } PadOutput_32_63 @ 0x44;
    reg {
        name="PadOutputSet_32_63";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } PADOUTSET___Pad_Output_set_register[31:0];
    } PadOutputSet_32_63 @ 0x48;
    reg {
        name="PadOutputClear_32_63";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } PADOUTCLR___Pad_Output_clear_register[31:0];
    } PadOutputClear_32_63 @ 0x4c;
    reg {
        name="InterruptEnable_32_63";
        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];
    } InterruptEnable_32_63 @ 0x50;
    reg {
        name="InterruptType_32_47";
        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];
    } InterruptType_32_47 @ 0x54;
    reg {
        name="InterruptType_48_63";
        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];
    } InterruptType_48_63 @ 0x58;
    reg {
        name="InterruptStatus_32_63";
        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];
    } InterruptStatus_32_63 @ 0x5c;
    reg {
        name="PadConfiguration_32_39";
        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];
    } PadConfiguration_32_39 @ 0x60;
    reg {
        name="PadConfiguration_40_47";
        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];
    } PadConfiguration_40_47 @ 0x64;
    reg {
        name="PadConfiguration_48_55";
        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];
    } PadConfiguration_48_55 @ 0x68;
    reg {
        name="PadConfiguration_56_63";
        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];
    } PadConfiguration_56_63 @ 0x6c;
} Registers_addrmap;


};