addrmap OpenTitan_SystemResetControl {

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="InterruptState";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                sw = rw;
                onwrite = woclr;
            } sysrst_ctrl[0:0];
    } InterruptState @ 0x0;
    reg {
        name="InterruptEnable";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                sw = rw;
            } sysrst_ctrl[0:0];
    } InterruptEnable @ 0x4;
    reg {
        name="InterruptTest";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } sysrst_ctrl[0:0];
    } InterruptTest @ 0x8;
    reg {
        name="AlertTest";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } fatal_fault[0:0];
    } AlertTest @ 0xc;
    reg {
        name="ConfigurationWriteEnable";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } write_en[0:0];
    } ConfigurationWriteEnable @ 0x10;
    reg {
        name="ECResetControl";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=16'b11111010000;
            } ec_rst_pulse[15:0];
    } ECResetControl @ 0x14;
    reg {
        name="UltralowpowerACDebounceControl";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=16'b1111101000000;
            } ulp_ac_debounce_timer[15:0];
    } UltralowpowerACDebounceControl @ 0x18;
    reg {
        name="UltralowpowerLidDebounceControl";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=16'b1111101000000;
            } ulp_lid_debounce_timer[15:0];
    } UltralowpowerLidDebounceControl @ 0x1c;
    reg {
        name="UltralowpowerPwrDebounceControl";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=16'b1111101000000;
            } ulp_pwrb_debounce_timer[15:0];
    } UltralowpowerPwrDebounceControl @ 0x20;
    reg {
        name="UltralowpowerControl";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ulp_enable[0:0];
    } UltralowpowerControl @ 0x24;
    reg {
        name="UltralowpowerStatus";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ulp_wakeup[0:0];
    } UltralowpowerStatus @ 0x28;
    reg {
        name="WakeupStatus";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } wakeup_sts[0:0];
    } WakeupStatus @ 0x2c;
    reg {
        name="KeyInputOutputInvert";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                sw = rw;
            } key0_in[0:0];
            field {
                sw = rw;
            } key0_out[1:1];
            field {
                sw = rw;
            } key1_in[2:2];
            field {
                sw = rw;
            } key1_out[3:3];
            field {
                sw = rw;
            } key2_in[4:4];
            field {
                sw = rw;
            } key2_out[5:5];
            field {
                sw = rw;
            } pwrb_in[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } pwrb_out[7:7];
            field {
                sw = rw;
            } ac_present[8:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } bat_disable[9:9];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } lid_open[10:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } z3_wakeup[11:11];
    } KeyInputOutputInvert @ 0x30;
    reg {
        name="PinAllowedControl";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } bat_disable_0[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } ec_rst_l_0[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } pwrb_out_0[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } key0_out_0[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } key1_out_0[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } key2_out_0[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } z3_wakeup_0[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } flash_wp_l_0[7:7];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } bat_disable_1[8:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ec_rst_l_1[9:9];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } pwrb_out_1[10:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } key0_out_1[11:11];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } key1_out_1[12:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } key2_out_1[13:13];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } z3_wakeup_1[14:14];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } flash_wp_l_1[15:15];
    } PinAllowedControl @ 0x34;
    reg {
        name="PinOutControl";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } bat_disable[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } ec_rst_l[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } pwrb_out[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } key0_out[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } key1_out[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } key2_out[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } z3_wakeup[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } flash_wp_l[7:7];
    } PinOutControl @ 0x38;
    reg {
        name="PinOverrideValue";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } bat_disable[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ec_rst_l[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } pwrb_out[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } key0_out[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } key1_out[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } key2_out[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } z3_wakeup[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } flash_wp_l[7:7];
    } PinOverrideValue @ 0x3c;
    reg {
        name="PinInValue";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } pwrb_in[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } key0_in[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } key1_in[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } key2_in[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } lid_open[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ac_present[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ec_rst_l[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } flash_wp_l[7:7];
    } PinInValue @ 0x40;
    reg {
        name="KeyInterruptControl";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } pwrb_in_H2L[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } key0_in_H2L[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } key1_in_H2L[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } key2_in_H2L[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ac_present_H2L[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ec_rst_l_H2L[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } flash_wp_l_H2L[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } pwrb_in_L2H[8:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } key0_in_L2H[9:9];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } key1_in_L2H[10:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } key2_in_L2H[11:11];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ac_present_L2H[12:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ec_rst_l_L2H[13:13];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } flash_wp_l_L2H[14:14];
    } KeyInterruptControl @ 0x44;
    reg {
        name="KeyInterruptDebounceControl";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=16'b11111010000;
            } debounce_timer[15:0];
    } KeyInterruptDebounceControl @ 0x48;
    reg {
        name="AutoBlockDebounceControl";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=16'b11111010000;
            } debounce_timer[15:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } auto_block_enable[16:16];
    } AutoBlockDebounceControl @ 0x4c;
    reg {
        name="AutoBlockOut";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } key0_out_sel[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } key1_out_sel[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } key2_out_sel[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } key0_out_value[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } key1_out_value[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } key2_out_value[6:6];
    } AutoBlockOut @ 0x50;
    reg {
        name="ComboSelectControl0";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } sel_idx[4:0];
    } ComboSelectControl0 [4]@ 0x54 += 4;
    reg {
        name="ComboDurationControl0";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } detection_timer_idx[31:0];
    } ComboDurationControl0 [4]@ 0x64 += 4;
    reg {
        name="ComboOutControl0";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } combo_out_idx[3:0];
    } ComboOutControl0 [4]@ 0x74 += 4;
    reg {
        name="ComboInterruptStatus";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } combo0_H2L[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } combo1_H2L[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } combo2_H2L[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } combo3_H2L[3:3];
    } ComboInterruptStatus @ 0x84;
    reg {
        name="KeyInterruptStatus";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } pwrb_H2L[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } key0_in_H2L[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } key1_in_H2L[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } key2_in_H2L[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ac_present_H2L[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ec_rst_l_H2L[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } flash_wp_l_H2L[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } pwrb_L2H[7:7];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } key0_in_L2H[8:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } key1_in_L2H[9:9];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } key2_in_L2H[10:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ac_present_L2H[11:11];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ec_rst_l_L2H[12:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } flash_wp_l_L2H[13:13];
    } KeyInterruptStatus @ 0x88;
} Registers_addrmap;


};