[aon_timer] Remove temporary intr_enable for #5260

Signed-off-by: Weicai Yang <weicai@google.com>
diff --git a/hw/ip/aon_timer/data/aon_timer.hjson b/hw/ip/aon_timer/data/aon_timer.hjson
index 8c4a8aa..36910ef 100644
--- a/hw/ip/aon_timer/data/aon_timer.hjson
+++ b/hw/ip/aon_timer/data/aon_timer.hjson
@@ -219,25 +219,6 @@
       tags: [// interrupt could be updated by HW
         "excl:CsrNonInitTests:CsrExclWriteCheck"],
     },
-    { name: "INTR_ENABLE",
-      desc: "Dummy interrupt enable register.  This is only here because of #5260.  DO NOT USE",
-      swaccess: "rw",
-      hwaccess: "hwo",
-      hwqe: "true",
-      hwext: "true",
-      fields: [
-        { bits: "0",
-          name: "wkup_timer_expired",
-          desc: "Raised if the wakeup timer has hit the specified threshold",
-        }
-        { bits: "1",
-          name: "wdog_timer_expired",
-          desc: "Raised if the watchdog timer has hit the bark threshold",
-        }
-      ],
-      tags: [// dummy register due to #5260, don't bother checking
-        "excl:CsrAllTests:CsrExclAll"],
-    },
     { name: "INTR_TEST",
       desc: "Interrupt Test Register",
       swaccess: "wo",
diff --git a/hw/ip/aon_timer/rtl/aon_timer.sv b/hw/ip/aon_timer/rtl/aon_timer.sv
index 804070f..1435bb6 100644
--- a/hw/ip/aon_timer/rtl/aon_timer.sv
+++ b/hw/ip/aon_timer/rtl/aon_timer.sv
@@ -36,7 +36,7 @@
   // Register structs
   aon_timer_reg2hw_t         reg2hw;
   aon_timer_hw2reg_t         hw2reg, aon_hw2reg, hw2reg_sync;
-  logic [5:0]                unused_intr_state_bits;
+  logic [1:0]                unused_intr_state_bits;
   // Register read signals
   logic                      wkup_enable;
   logic [11:0]               wkup_prescaler;
@@ -95,7 +95,6 @@
   assign aon_hw2reg.wdog_count.d               = wdog_count;
   assign aon_hw2reg.wkup_cause.d               = aon_wkup_req_q;
   assign aon_hw2reg.intr_state                 = '0; // Doesn't come from AON domain
-  assign aon_hw2reg.intr_enable                = '0; // dummy assignment due to #5260
 
   // Register read values sampled into clk_i domain. These are sampled with a special slow to fast
   // synchronizer which captures the value on the negative edge of the slow clock.
@@ -117,7 +116,7 @@
   assign hw2reg.wdog_bite_thold.d          = hw2reg_sync.wdog_bite_thold.d;
   assign hw2reg.wdog_count.d               = hw2reg_sync.wdog_count.d;
   assign hw2reg.wkup_cause.d               = hw2reg_sync.wkup_cause.d;
-  assign unused_intr_state_bits            = {hw2reg_sync.intr_state, hw2reg_sync.intr_enable};
+  assign unused_intr_state_bits            = hw2reg_sync.intr_state;
 
   //////////////////////////////
   // Register Write Interface //
@@ -372,9 +371,6 @@
   assign hw2reg.intr_state.wdog_timer_expired.d  = intr_aon_state_d[AON_WDOG];
   assign hw2reg.intr_state.wdog_timer_expired.de = intr_aon_state_de;
 
-  // Dummy interrupt enable to get around #5260
-  assign hw2reg.intr_enable = '0;
-
   prim_intr_hw #(
     .Width (2)
   ) u_intr_hw (
diff --git a/hw/ip/aon_timer/rtl/aon_timer_reg_pkg.sv b/hw/ip/aon_timer/rtl/aon_timer_reg_pkg.sv
index eb32dc3..c9c190f 100644
--- a/hw/ip/aon_timer/rtl/aon_timer_reg_pkg.sv
+++ b/hw/ip/aon_timer/rtl/aon_timer_reg_pkg.sv
@@ -135,15 +135,6 @@
   } aon_timer_hw2reg_intr_state_reg_t;
 
   typedef struct packed {
-    struct packed {
-      logic        d;
-    } wkup_timer_expired;
-    struct packed {
-      logic        d;
-    } wdog_timer_expired;
-  } aon_timer_hw2reg_intr_enable_reg_t;
-
-  typedef struct packed {
     logic        d;
   } aon_timer_hw2reg_wkup_cause_reg_t;
 
@@ -168,15 +159,14 @@
   // Internal design logic to register //
   ///////////////////////////////////////
   typedef struct packed {
-    aon_timer_hw2reg_wkup_ctrl_reg_t wkup_ctrl; // [181:169]
-    aon_timer_hw2reg_wkup_thold_reg_t wkup_thold; // [168:137]
-    aon_timer_hw2reg_wkup_count_reg_t wkup_count; // [136:105]
-    aon_timer_hw2reg_wdog_ctrl_reg_t wdog_ctrl; // [104:103]
-    aon_timer_hw2reg_wdog_bark_thold_reg_t wdog_bark_thold; // [102:71]
-    aon_timer_hw2reg_wdog_bite_thold_reg_t wdog_bite_thold; // [70:39]
-    aon_timer_hw2reg_wdog_count_reg_t wdog_count; // [38:7]
-    aon_timer_hw2reg_intr_state_reg_t intr_state; // [6:3]
-    aon_timer_hw2reg_intr_enable_reg_t intr_enable; // [2:1]
+    aon_timer_hw2reg_wkup_ctrl_reg_t wkup_ctrl; // [179:167]
+    aon_timer_hw2reg_wkup_thold_reg_t wkup_thold; // [166:135]
+    aon_timer_hw2reg_wkup_count_reg_t wkup_count; // [134:103]
+    aon_timer_hw2reg_wdog_ctrl_reg_t wdog_ctrl; // [102:101]
+    aon_timer_hw2reg_wdog_bark_thold_reg_t wdog_bark_thold; // [100:69]
+    aon_timer_hw2reg_wdog_bite_thold_reg_t wdog_bite_thold; // [68:37]
+    aon_timer_hw2reg_wdog_count_reg_t wdog_count; // [36:5]
+    aon_timer_hw2reg_intr_state_reg_t intr_state; // [4:1]
     aon_timer_hw2reg_wkup_cause_reg_t wkup_cause; // [0:0]
   } aon_timer_hw2reg_t;
 
@@ -190,9 +180,8 @@
   parameter logic [BlockAw-1:0] AON_TIMER_WDOG_BITE_THOLD_OFFSET = 6'h 18;
   parameter logic [BlockAw-1:0] AON_TIMER_WDOG_COUNT_OFFSET = 6'h 1c;
   parameter logic [BlockAw-1:0] AON_TIMER_INTR_STATE_OFFSET = 6'h 20;
-  parameter logic [BlockAw-1:0] AON_TIMER_INTR_ENABLE_OFFSET = 6'h 24;
-  parameter logic [BlockAw-1:0] AON_TIMER_INTR_TEST_OFFSET = 6'h 28;
-  parameter logic [BlockAw-1:0] AON_TIMER_WKUP_CAUSE_OFFSET = 6'h 2c;
+  parameter logic [BlockAw-1:0] AON_TIMER_INTR_TEST_OFFSET = 6'h 24;
+  parameter logic [BlockAw-1:0] AON_TIMER_WKUP_CAUSE_OFFSET = 6'h 28;
 
   // Reset values for hwext registers and their fields
   parameter logic [12:0] AON_TIMER_WKUP_CTRL_RESVAL = 13'h 0;
@@ -202,7 +191,6 @@
   parameter logic [31:0] AON_TIMER_WDOG_BARK_THOLD_RESVAL = 32'h 0;
   parameter logic [31:0] AON_TIMER_WDOG_BITE_THOLD_RESVAL = 32'h 0;
   parameter logic [31:0] AON_TIMER_WDOG_COUNT_RESVAL = 32'h 0;
-  parameter logic [1:0] AON_TIMER_INTR_ENABLE_RESVAL = 2'h 0;
   parameter logic [1:0] AON_TIMER_INTR_TEST_RESVAL = 2'h 0;
   parameter logic [0:0] AON_TIMER_WKUP_CAUSE_RESVAL = 1'h 0;
 
@@ -217,13 +205,12 @@
     AON_TIMER_WDOG_BITE_THOLD,
     AON_TIMER_WDOG_COUNT,
     AON_TIMER_INTR_STATE,
-    AON_TIMER_INTR_ENABLE,
     AON_TIMER_INTR_TEST,
     AON_TIMER_WKUP_CAUSE
   } aon_timer_id_e;
 
   // Register width information to check illegal writes
-  parameter logic [3:0] AON_TIMER_PERMIT [12] = '{
+  parameter logic [3:0] AON_TIMER_PERMIT [11] = '{
     4'b 0011, // index[ 0] AON_TIMER_WKUP_CTRL
     4'b 1111, // index[ 1] AON_TIMER_WKUP_THOLD
     4'b 1111, // index[ 2] AON_TIMER_WKUP_COUNT
@@ -233,9 +220,8 @@
     4'b 1111, // index[ 6] AON_TIMER_WDOG_BITE_THOLD
     4'b 1111, // index[ 7] AON_TIMER_WDOG_COUNT
     4'b 0001, // index[ 8] AON_TIMER_INTR_STATE
-    4'b 0001, // index[ 9] AON_TIMER_INTR_ENABLE
-    4'b 0001, // index[10] AON_TIMER_INTR_TEST
-    4'b 0001  // index[11] AON_TIMER_WKUP_CAUSE
+    4'b 0001, // index[ 9] AON_TIMER_INTR_TEST
+    4'b 0001  // index[10] AON_TIMER_WKUP_CAUSE
   };
 endpackage
 
diff --git a/hw/ip/aon_timer/rtl/aon_timer_reg_top.sv b/hw/ip/aon_timer/rtl/aon_timer_reg_top.sv
index 291968b..4253ec6 100644
--- a/hw/ip/aon_timer/rtl/aon_timer_reg_top.sv
+++ b/hw/ip/aon_timer/rtl/aon_timer_reg_top.sv
@@ -144,14 +144,6 @@
   logic intr_state_wdog_timer_expired_qs;
   logic intr_state_wdog_timer_expired_wd;
   logic intr_state_wdog_timer_expired_we;
-  logic intr_enable_wkup_timer_expired_qs;
-  logic intr_enable_wkup_timer_expired_wd;
-  logic intr_enable_wkup_timer_expired_we;
-  logic intr_enable_wkup_timer_expired_re;
-  logic intr_enable_wdog_timer_expired_qs;
-  logic intr_enable_wdog_timer_expired_wd;
-  logic intr_enable_wdog_timer_expired_we;
-  logic intr_enable_wdog_timer_expired_re;
   logic intr_test_wkup_timer_expired_wd;
   logic intr_test_wkup_timer_expired_we;
   logic intr_test_wdog_timer_expired_wd;
@@ -391,38 +383,6 @@
   );
 
 
-  // R[intr_enable]: V(True)
-
-  //   F[wkup_timer_expired]: 0:0
-  prim_subreg_ext #(
-    .DW    (1)
-  ) u_intr_enable_wkup_timer_expired (
-    .re     (intr_enable_wkup_timer_expired_re),
-    .we     (intr_enable_wkup_timer_expired_we),
-    .wd     (intr_enable_wkup_timer_expired_wd),
-    .d      (hw2reg.intr_enable.wkup_timer_expired.d),
-    .qre    (),
-    .qe     (),
-    .q      (),
-    .qs     (intr_enable_wkup_timer_expired_qs)
-  );
-
-
-  //   F[wdog_timer_expired]: 1:1
-  prim_subreg_ext #(
-    .DW    (1)
-  ) u_intr_enable_wdog_timer_expired (
-    .re     (intr_enable_wdog_timer_expired_re),
-    .we     (intr_enable_wdog_timer_expired_we),
-    .wd     (intr_enable_wdog_timer_expired_wd),
-    .d      (hw2reg.intr_enable.wdog_timer_expired.d),
-    .qre    (),
-    .qe     (),
-    .q      (),
-    .qs     (intr_enable_wdog_timer_expired_qs)
-  );
-
-
   // R[intr_test]: V(True)
 
   //   F[wkup_timer_expired]: 0:0
@@ -473,7 +433,7 @@
 
 
 
-  logic [11:0] addr_hit;
+  logic [10:0] addr_hit;
   always_comb begin
     addr_hit = '0;
     addr_hit[ 0] = (reg_addr == AON_TIMER_WKUP_CTRL_OFFSET);
@@ -485,9 +445,8 @@
     addr_hit[ 6] = (reg_addr == AON_TIMER_WDOG_BITE_THOLD_OFFSET);
     addr_hit[ 7] = (reg_addr == AON_TIMER_WDOG_COUNT_OFFSET);
     addr_hit[ 8] = (reg_addr == AON_TIMER_INTR_STATE_OFFSET);
-    addr_hit[ 9] = (reg_addr == AON_TIMER_INTR_ENABLE_OFFSET);
-    addr_hit[10] = (reg_addr == AON_TIMER_INTR_TEST_OFFSET);
-    addr_hit[11] = (reg_addr == AON_TIMER_WKUP_CAUSE_OFFSET);
+    addr_hit[ 9] = (reg_addr == AON_TIMER_INTR_TEST_OFFSET);
+    addr_hit[10] = (reg_addr == AON_TIMER_WKUP_CAUSE_OFFSET);
   end
 
   assign addrmiss = (reg_re || reg_we) ? ~|addr_hit : 1'b0 ;
@@ -506,7 +465,6 @@
     if (addr_hit[ 8] && reg_we && (AON_TIMER_PERMIT[ 8] != (AON_TIMER_PERMIT[ 8] & reg_be))) wr_err = 1'b1 ;
     if (addr_hit[ 9] && reg_we && (AON_TIMER_PERMIT[ 9] != (AON_TIMER_PERMIT[ 9] & reg_be))) wr_err = 1'b1 ;
     if (addr_hit[10] && reg_we && (AON_TIMER_PERMIT[10] != (AON_TIMER_PERMIT[10] & reg_be))) wr_err = 1'b1 ;
-    if (addr_hit[11] && reg_we && (AON_TIMER_PERMIT[11] != (AON_TIMER_PERMIT[11] & reg_be))) wr_err = 1'b1 ;
   end
 
   assign wkup_ctrl_enable_we = addr_hit[0] & reg_we & !reg_error;
@@ -554,23 +512,15 @@
   assign intr_state_wdog_timer_expired_we = addr_hit[8] & reg_we & !reg_error;
   assign intr_state_wdog_timer_expired_wd = reg_wdata[1];
 
-  assign intr_enable_wkup_timer_expired_we = addr_hit[9] & reg_we & !reg_error;
-  assign intr_enable_wkup_timer_expired_wd = reg_wdata[0];
-  assign intr_enable_wkup_timer_expired_re = addr_hit[9] & reg_re & !reg_error;
-
-  assign intr_enable_wdog_timer_expired_we = addr_hit[9] & reg_we & !reg_error;
-  assign intr_enable_wdog_timer_expired_wd = reg_wdata[1];
-  assign intr_enable_wdog_timer_expired_re = addr_hit[9] & reg_re & !reg_error;
-
-  assign intr_test_wkup_timer_expired_we = addr_hit[10] & reg_we & !reg_error;
+  assign intr_test_wkup_timer_expired_we = addr_hit[9] & reg_we & !reg_error;
   assign intr_test_wkup_timer_expired_wd = reg_wdata[0];
 
-  assign intr_test_wdog_timer_expired_we = addr_hit[10] & reg_we & !reg_error;
+  assign intr_test_wdog_timer_expired_we = addr_hit[9] & reg_we & !reg_error;
   assign intr_test_wdog_timer_expired_wd = reg_wdata[1];
 
-  assign wkup_cause_we = addr_hit[11] & reg_we & !reg_error;
+  assign wkup_cause_we = addr_hit[10] & reg_we & !reg_error;
   assign wkup_cause_wd = reg_wdata[0];
-  assign wkup_cause_re = addr_hit[11] & reg_re & !reg_error;
+  assign wkup_cause_re = addr_hit[10] & reg_re & !reg_error;
 
   // Read data return
   always_comb begin
@@ -616,16 +566,11 @@
       end
 
       addr_hit[9]: begin
-        reg_rdata_next[0] = intr_enable_wkup_timer_expired_qs;
-        reg_rdata_next[1] = intr_enable_wdog_timer_expired_qs;
-      end
-
-      addr_hit[10]: begin
         reg_rdata_next[0] = '0;
         reg_rdata_next[1] = '0;
       end
 
-      addr_hit[11]: begin
+      addr_hit[10]: begin
         reg_rdata_next[0] = wkup_cause_qs;
       end