addrmap SiFive_GPIO {

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="PinValue";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = rw;
            } No_name_1[31:0];
    } PinValue @ 0x0;
    reg {
        name="PinInputEnable";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } No_name_2[31:0];
    } PinInputEnable @ 0x4;
    reg {
        name="PinOutputEnable";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } No_name_3[31:0];
    } PinOutputEnable @ 0x8;
    reg {
        name="OutputPortValue";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } No_name_4[31:0];
    } OutputPortValue @ 0xc;
    reg {
        name="InternalPullUpEnable";
        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];
    } InternalPullUpEnable @ 0x10;
    reg {
        name="PinDriveStrength";
        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];
    } PinDriveStrength @ 0x14;
    reg {
        name="RiseInterruptEnable";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                sw = rw;
            } No_name_5[31:0];
    } RiseInterruptEnable @ 0x18;
    reg {
        name="RiseInterruptPending";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                sw = rw;
                onwrite = woclr;
            } No_name_6[31:0];
    } RiseInterruptPending @ 0x1c;
    reg {
        name="FallInterruptEnable";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                sw = rw;
            } No_name_7[31:0];
    } FallInterruptEnable @ 0x20;
    reg {
        name="FallInterruptPending";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                sw = rw;
                onwrite = woclr;
            } No_name_8[31:0];
    } FallInterruptPending @ 0x24;
    reg {
        name="HighInterruptEnable";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                sw = rw;
            } No_name_9[31:0];
    } HighInterruptEnable @ 0x28;
    reg {
        name="HighInterruptPending";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                sw = rw;
                onwrite = woclr;
            } No_name_10[31:0];
    } HighInterruptPending @ 0x2c;
    reg {
        name="LowInterruptEnable";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                sw = rw;
            } No_name_11[31:0];
    } LowInterruptEnable @ 0x30;
    reg {
        name="LowInterruptPending";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                sw = rw;
                onwrite = woclr;
            } No_name_12[31:0];
    } LowInterruptPending @ 0x34;
    reg {
        name="HwIOFunctionEnable";
        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];
    } HwIOFunctionEnable @ 0x38;
    reg {
        name="HwIOFunctionSelect";
        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];
    } HwIOFunctionSelect @ 0x3c;
    reg {
        name="OutputXor";
        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];
    } OutputXor @ 0x40;
} Registers_addrmap;


};