[usbdev] Use inter-sig for internal / FPGA-only pins

Instead of DIOs at the pinmux, use inter-sig for the various signals
that only connect to a transceiver (instead of a USB). Only the
signals representing D+/D- remain as DIOs. The rest of the signals are
unidirectional and do not become pads on the ASIC.

Signed-off-by: Alexander Williams <awill@google.com>
diff --git a/hw/dv/dpi/usbdpi/monitor_usb.c b/hw/dv/dpi/usbdpi/monitor_usb.c
index a573cde..6aa5a6e 100644
--- a/hw/dv/dpi/usbdpi/monitor_usb.c
+++ b/hw/dv/dpi/usbdpi/monitor_usb.c
@@ -101,10 +101,7 @@
     if (hdrive) {
       fprintf(mon_file, "mon: %8d: Bus clash\n", tick);
     }
-    if (d2p & D2P_TXMODE_SE) {
-      dp = ((d2p & D2P_DP_EN) && (d2p & D2P_DP)) ? 1 : 0;
-      dn = ((d2p & D2P_DN_EN) && (d2p & D2P_DN)) ? 1 : 0;
-    } else {
+    if (d2p & D2P_TX_USE_D_SE0) {
       if ((d2p & D2P_SE0) || !(d2p & D2P_D_EN)) {
         dp = 0;
         dn = 0;
@@ -112,13 +109,13 @@
         dp = (d2p & D2P_D) ? 1 : 0;
         dn = (d2p & D2P_D) ? 0 : 1;
       }
+    } else {
+      dp = ((d2p & D2P_DP_EN) && (d2p & D2P_DP)) ? 1 : 0;
+      dn = ((d2p & D2P_DN_EN) && (d2p & D2P_DN)) ? 1 : 0;
     }
     mon->driver = M_DEVICE;
   } else if (hdrive) {
-    if (d2p & D2P_TXMODE_SE) {
-      dp = (p2d & P2D_DP) ? 1 : 0;
-      dn = (p2d & P2D_DN) ? 1 : 0;
-    } else {
+    if (d2p & D2P_RX_ENABLE) {
       if (p2d & (P2D_DP | P2D_DN)) {
         dp = (p2d & P2D_D) ? 1 : 0;
         dn = (p2d & P2D_D) ? 0 : 1;
@@ -126,6 +123,9 @@
         dp = 0;
         dn = 0;
       }
+    } else {
+      dp = (p2d & P2D_DP) ? 1 : 0;
+      dn = (p2d & P2D_DN) ? 1 : 0;
     }
     mon->driver = M_HOST;
   } else {
diff --git a/hw/dv/dpi/usbdpi/usbdpi.c b/hw/dv/dpi/usbdpi/usbdpi.c
index b7d0959..817ab20 100644
--- a/hw/dv/dpi/usbdpi/usbdpi.c
+++ b/hw/dv/dpi/usbdpi/usbdpi.c
@@ -123,26 +123,13 @@
     n = snprintf(obuf, MAX_OBUF, "%4x %8d Pullup change to %s%s%s\n",
                  ctx->frame, ctx->tick, (d2p & D2P_DPPU) ? "DP Pulled up " : "",
                  (d2p & D2P_DNPU) ? "DN Pulled up " : "",
-                 (d2p & D2P_TXMODE_SE) ? "SingleEnded" : "Differential");
+                 (d2p & D2P_TX_USE_D_SE0) ? "SingleEnded" : "Differential");
     ssize_t written = fwrite(obuf, sizeof(char), (size_t)n, ctx->mon_file);
     assert(written == n);
     ctx->last_pu = d2p & D2P_PU;
   }
-  if (d2p & D2P_TXMODE_SE) {
-    // Normal D+/D- mode
-    if (d2p & D2P_DNPU) {
-      // DN pullup would say DP and DN are swapped
-      dp = ((d2p & D2P_DN_EN) && (d2p & D2P_DN)) ||
-           (!(d2p & D2P_DN_EN) && (d2p & D2P_DNPU));
-      dn = (d2p & D2P_DP_EN) && (d2p & D2P_DP);
-    } else {
-      // No DN pullup so normal orientation
-      dp = ((d2p & D2P_DP_EN) && (d2p & D2P_DP)) ||
-           (!(d2p & D2P_DP_EN) && (d2p & D2P_DPPU));
-      dn = (d2p & D2P_DN_EN) && (d2p & D2P_DN);
-    }
-  } else {
-    // "differential" mode uses D and SE0
+  if (d2p & D2P_TX_USE_D_SE0) {
+    // Single-ended mode uses D and SE0
     if (d2p & D2P_D_EN) {
       if (d2p & D2P_DNPU) {
         // Pullup says swap i.e. D is inverted
@@ -156,6 +143,19 @@
       dp = (d2p & D2P_PU) ? 1 : 0;
       dn = 0;
     }
+  } else {
+    // Normal D+/D- mode
+    if (d2p & D2P_DNPU) {
+      // DN pullup would say DP and DN are swapped
+      dp = ((d2p & D2P_DN_EN) && (d2p & D2P_DN)) ||
+           (!(d2p & D2P_DN_EN) && (d2p & D2P_DNPU));
+      dn = (d2p & D2P_DP_EN) && (d2p & D2P_DP);
+    } else {
+      // No DN pullup so normal orientation
+      dp = ((d2p & D2P_DP_EN) && (d2p & D2P_DP)) ||
+           (!(d2p & D2P_DP_EN) && (d2p & D2P_DPPU));
+      dn = (d2p & D2P_DN_EN) && (d2p & D2P_DN);
+    }
   }
 
   if (ctx->loglevel & LOG_BIT) {
@@ -721,35 +721,30 @@
   }
 }
 
+// Change DP and DN outputs from host
 int set_driving(struct usbdpi_ctx *ctx, int d2p, int newval) {
+  // Always maintain the current state of VBUS
+  int driving = ctx->driving & P2D_SENSE;
   if (d2p & D2P_DNPU) {
-    if (d2p & D2P_TXMODE_SE) {
-      return (ctx->driving & P2D_SENSE) | ((newval & P2D_DP) ? P2D_DN : 0) |
-             ((newval & P2D_DN) ? P2D_DP : 0);
+    // Have dn pull-up, so must be flipping pins
+    if (newval & P2D_DP) {
+      driving |= P2D_DN | P2D_D;
+    } else if (newval & P2D_DN) {
+      driving |= P2D_DP;
     }
-    if (newval & (P2D_DP | P2D_DN)) {
-      // sets single ended lines to K after swapping
-      return (ctx->driving & P2D_SENSE) | P2D_DP |
-             ((newval & P2D_DN) ? P2D_D : 0);
+  } else {
+    if (newval & P2D_DP) {
+      driving |= P2D_DP | P2D_D;
+    } else if (newval & P2D_DN) {
+      driving |= P2D_DN;
     }
-    // SE0 so D could be anything (make it 1 after swapping)
-    return ctx->driving & P2D_SENSE;
   }
-  if (d2p & D2P_TXMODE_SE) {
-    return (ctx->driving & P2D_SENSE) | newval;
-  }
-  if (newval & (P2D_DP | P2D_DN)) {
-    // sets single ended lines to K
-    return (ctx->driving & P2D_SENSE) | P2D_DN |
-           ((newval & P2D_DP) ? P2D_D : 0);
-  }
-  // SE0 so D could be anything (make it 1)
-  return (ctx->driving & P2D_SENSE) | P2D_D;
+  return driving;
 }
 
 int inv_driving(struct usbdpi_ctx *ctx, int d2p) {
   // works for either orientation
-  return ctx->driving ^ ((d2p & D2P_TXMODE_SE) ? (P2D_DP | P2D_DN) : P2D_D);
+  return ctx->driving ^ (P2D_DP | P2D_DN | P2D_D);
 }
 
 char usbdpi_host_to_device(void *ctx_void, const svBitVecVal *usb_d2p) {
diff --git a/hw/dv/dpi/usbdpi/usbdpi.h b/hw/dv/dpi/usbdpi/usbdpi.h
index a57875a..3028a13 100644
--- a/hw/dv/dpi/usbdpi/usbdpi.h
+++ b/hw/dv/dpi/usbdpi/usbdpi.h
@@ -41,10 +41,10 @@
 #define D2P_D 64
 #define D2P_D_EN 32
 #define D2P_SE0 16
-#define D2P_SE0_EN 8
+#define D2P_TX_USE_D_SE0 8
 #define D2P_DPPU 4
 #define D2P_DNPU 2
-#define D2P_TXMODE_SE 1
+#define D2P_RX_ENABLE 1
 // Either pullup (dp/dn swapped if the pullup is on DN)
 #define D2P_PU (D2P_DPPU | D2P_DNPU)
 
diff --git a/hw/dv/dpi/usbdpi/usbdpi.sv b/hw/dv/dpi/usbdpi/usbdpi.sv
index 5cebf81..8940cec 100644
--- a/hw/dv/dpi/usbdpi/usbdpi.sv
+++ b/hw/dv/dpi/usbdpi/usbdpi.sv
@@ -26,15 +26,12 @@
   input  logic d_d2p,
   input  logic d_en_d2p,
   input  logic se0_d2p,
-  input  logic se0_en_d2p,
-  input  logic txmode_d2p,
-  input  logic txmode_en_d2p,
+  input  logic rx_enable_d2p,
+  input  logic tx_use_d_se0_d2p,
 
   output logic sense_p2d,
   input  logic pullupdp_d2p,
-  input  logic pullupdp_en_d2p,
-  input  logic pullupdn_d2p,
-  input  logic pullupdn_en_d2p
+  input  logic pullupdn_d2p
 );
   import "DPI-C" function
     chandle usbdpi_create(input string name, input int loglevel);
@@ -64,18 +61,20 @@
   logic       unused_dummy;
   logic       unused_clk = clk_i;
   logic       unused_rst = rst_ni;
-  logic       dp_int, dn_int, d_int;
-  logic       flip_detect, pullup_detect;
+  logic       dp_int, dn_int, d_last;
+  logic       flip_detect, pullup_detect, rx_enable;
 
   // Detect a request to flip pins by the DN resistor being applied
-  assign flip_detect = pullupdn_d2p && pullupdn_en_d2p;
-  assign pullup_detect = (pullupdp_d2p && pullupdp_en_d2p) || (pullupdn_d2p && pullupdn_en_d2p);
+  assign flip_detect = pullupdn_d2p;
+  assign pullup_detect = pullupdp_d2p || pullupdn_d2p;
+  assign rx_enable = rx_enable_d2p;
 
-  assign d2p = {dp_d2p, dp_en_d2p, dn_d2p, dn_en_d2p, d_d2p, d_en_d2p, se0_d2p, se0_en_d2p, pullupdp_d2p & pullupdp_en_d2p, pullupdn_d2p & pullupdn_en_d2p, txmode_d2p & txmode_en_d2p};
+  assign d2p = {dp_d2p, dp_en_d2p, dn_d2p, dn_en_d2p, d_d2p, d_en_d2p, se0_d2p, tx_use_d_se0_d2p,
+                pullupdp_d2p, pullupdn_d2p, rx_enable};
   always_ff @(posedge clk_48MHz_i) begin
     if (!sense_p2d || pullup_detect) begin
       automatic byte p2d = usbdpi_host_to_device(ctx, d2p);
-      d_int <= p2d[3];
+      d_last <= d_p2d;
       dp_int <= p2d[2];
       dn_int <= p2d[1];
       sense_p2d <= p2d[0];
@@ -84,33 +83,41 @@
       if (d2p_r != d2p) begin
         usbdpi_device_to_host(ctx, d2p);
       end
-    end else begin // if (pullupdp_d2p && pullupdp_en_d2p)
-      d_int <= 0;
+    end else begin // if (pullup_detect)
+      d_last <= 0;
       dp_int <= 0;
       dn_int <= 0;
     end
   end
 
   always_comb begin : proc_data
-    if (d_en_d2p) begin
-      d_p2d = d_d2p;
-    end else begin
-      d_p2d = d_int;
+    d_p2d = d_last;
+    if (rx_enable) begin
+      // Differential receiver is enabled.
+      // If host is driving, update d_p2d only if there is a valid differential
+      // value.
+      if (d_en_d2p) begin
+        d_p2d = d_d2p;
+      end else if (dp_int && !dn_int) begin
+        d_p2d = 1'b1;
+      end else if (!dp_int && dn_int) begin
+        d_p2d = 1'b0;
+      end
     end
     if (dp_en_d2p) begin
-      if (txmode_d2p) begin
-        dp_p2d = dp_d2p;
-      end else begin // decode differential and flip
+      if (tx_use_d_se0_d2p) begin
         dp_p2d = se0_d2p ? 1'b0 : flip_detect ^ d_d2p;
+      end else begin
+        dp_p2d = dp_d2p;
       end
     end else begin
       dp_p2d = dp_int;
     end
     if (dn_en_d2p) begin
-      if (txmode_d2p) begin
-        dn_p2d = dn_d2p;
-      end else begin // decode differential and flip
+      if (tx_use_d_se0_d2p) begin
         dn_p2d = se0_d2p ? 1'b0 : flip_detect ^ ~d_d2p;
+      end else begin
+        dn_p2d = dn_d2p;
       end
     end else begin
       dn_p2d = dn_int;
diff --git a/hw/ip/pinmux/data/pinmux.hjson.tpl b/hw/ip/pinmux/data/pinmux.hjson.tpl
index a40beb1..07a6b4f 100644
--- a/hw/ip/pinmux/data/pinmux.hjson.tpl
+++ b/hw/ip/pinmux/data/pinmux.hjson.tpl
@@ -116,6 +116,36 @@
       package: "",
       default: "1'b0"
     },
+    { name:    "usb_dppullup_en_upwr",
+      type:    "uni",
+      act:     "rcv",
+      package: "",
+      struct:  "logic",
+      width:   "1"
+    },
+    { name:    "usb_dnpullup_en_upwr",
+      type:    "uni",
+      act:     "rcv",
+      package: "",
+      struct:  "logic",
+      width:   "1"
+    },
+    { name:    "usb_dppullup_en",
+      type:    "uni",
+      act:     "req",
+      package: "",
+      struct:  "logic",
+      width:   "1"
+      default: "1'b0"
+    },
+    { name:    "usb_dnpullup_en",
+      type:    "uni",
+      act:     "req",
+      package: "",
+      struct:  "logic",
+      width:   "1"
+      default: "1'b0"
+    },
     { struct:  "logic",
       type:    "uni",
       name:    "usb_wkup_req",
diff --git a/hw/ip/pinmux/fpv/tb/pinmux_bind_fpv.sv b/hw/ip/pinmux/fpv/tb/pinmux_bind_fpv.sv
index 0b2eeeb..f48b05f 100644
--- a/hw/ip/pinmux/fpv/tb/pinmux_bind_fpv.sv
+++ b/hw/ip/pinmux/fpv/tb/pinmux_bind_fpv.sv
@@ -29,6 +29,10 @@
     .rv_jtag_i,
     .dft_jtag_o,
     .dft_jtag_i,
+    .usb_dppullup_en_upwr_i,
+    .usb_dnpullup_en_upwr_i,
+    .usb_dppullup_en_o,
+    .usb_dnpullup_en_o,
     .usb_out_of_rst_i,
     .usb_aon_wake_en_i,
     .usb_aon_wake_ack_i,
diff --git a/hw/ip/pinmux/fpv/tb/pinmux_tb.sv b/hw/ip/pinmux/fpv/tb/pinmux_tb.sv
index b817094..6acdc0d 100644
--- a/hw/ip/pinmux/fpv/tb/pinmux_tb.sv
+++ b/hw/ip/pinmux/fpv/tb/pinmux_tb.sv
@@ -21,9 +21,7 @@
   parameter int TdoPadIdx = 8,
   parameter int DioUsbdevDp = 9,
   parameter int DioUsbdevDn = 10,
-  parameter int DioUsbdevDpPullup = 11,
-  parameter int DioUsbdevDnPullup = 12,
-  parameter int MioInUsbdevSense = 13,
+  parameter int MioInUsbdevSense = 11,
   parameter logic [NumAlerts-1:0] AlertAsyncOn = {NumAlerts{1'b1}}
 ) (
   input  clk_i,
@@ -45,6 +43,10 @@
   input jtag_pkg::jtag_rsp_t rv_jtag_i,
   output jtag_pkg::jtag_req_t dft_jtag_o,
   input jtag_pkg::jtag_rsp_t dft_jtag_i,
+  input  usb_dppullup_en_upwr_i,
+  input  usb_dnpullup_en_upwr_i,
+  output usb_dppullup_en_o,
+  output usb_dnpullup_en_o,
   input  usb_out_of_rst_i,
   input  usb_aon_wake_en_i,
   input  usb_aon_wake_ack_i,
@@ -85,8 +87,6 @@
     // TODO: check whether there is a better way to pass these USB-specific params
     usb_dp_idx:        DioUsbdevDp,
     usb_dn_idx:        DioUsbdevDn,
-    usb_dp_pullup_idx: DioUsbdevDpPullup,
-    usb_dn_pullup_idx: DioUsbdevDnPullup,
     usb_sense_idx:     MioInUsbdevSense,
     // Pad types for attribute WARL behavior
     dio_pad_type:      {NDioPads{BidirStd}},
@@ -116,6 +116,10 @@
     .rv_jtag_i,
     .dft_jtag_o,
     .dft_jtag_i,
+    .usb_dppullup_en_upwr_i,
+    .usb_dnpullup_en_upwr_i,
+    .usb_dppullup_en_o,
+    .usb_dnpullup_en_o,
     .usb_out_of_rst_i,
     .usb_aon_wake_en_i,
     .usb_aon_wake_ack_i,
@@ -163,6 +167,10 @@
     .rv_jtag_i,
     .dft_jtag_o,
     .dft_jtag_i,
+    .usb_dppullup_en_upwr_i,
+    .usb_dnpullup_en_upwr_i,
+    .usb_dppullup_en_o,
+    .usb_dnpullup_en_o,
     .usb_out_of_rst_i,
     .usb_aon_wake_en_i,
     .usb_aon_wake_ack_i,
diff --git a/hw/ip/pinmux/rtl/pinmux.sv b/hw/ip/pinmux/rtl/pinmux.sv
index 6d1de54..5eefd73 100644
--- a/hw/ip/pinmux/rtl/pinmux.sv
+++ b/hw/ip/pinmux/rtl/pinmux.sv
@@ -46,6 +46,10 @@
   output jtag_pkg::jtag_req_t      dft_jtag_o,
   input  jtag_pkg::jtag_rsp_t      dft_jtag_i,
   // Direct USB connection
+  input                            usb_dppullup_en_upwr_i,
+  input                            usb_dnpullup_en_upwr_i,
+  output                           usb_dppullup_en_o,
+  output                           usb_dnpullup_en_o,
   input                            usb_out_of_rst_i,
   input                            usb_aon_wake_en_i,
   input                            usb_aon_wake_ack_i,
@@ -248,8 +252,12 @@
     .usb_dp_async_alw_i(dio_to_periph_o[TargetCfg.usb_dp_idx]),
     .usb_dn_async_alw_i(dio_to_periph_o[TargetCfg.usb_dn_idx]),
     .usb_sense_async_alw_i(mio_to_periph_o[TargetCfg.usb_sense_idx]),
-    .usb_dppullup_en_alw_i(dio_out_o[TargetCfg.usb_dp_pullup_idx]),
-    .usb_dnpullup_en_alw_i(dio_out_o[TargetCfg.usb_dn_pullup_idx]),
+    .usb_dppullup_en_upwr_i(usb_dppullup_en_upwr_i),
+    .usb_dnpullup_en_upwr_i(usb_dnpullup_en_upwr_i),
+
+    // output signals for pullup connectivity
+    .usb_dppullup_en_o(usb_dppullup_en_o),
+    .usb_dnpullup_en_o(usb_dnpullup_en_o),
 
     // tie this to something from usbdev to indicate its out of reset
     .usb_out_of_rst_upwr_i(usb_out_of_rst_i),
diff --git a/hw/ip/pinmux/rtl/pinmux_pkg.sv b/hw/ip/pinmux/rtl/pinmux_pkg.sv
index c812f68..9177783 100644
--- a/hw/ip/pinmux/rtl/pinmux_pkg.sv
+++ b/hw/ip/pinmux/rtl/pinmux_pkg.sv
@@ -27,8 +27,6 @@
     integer                   dft_strap1_idx;
     integer                   usb_dp_idx;
     integer                   usb_dn_idx;
-    integer                   usb_dp_pullup_idx;
-    integer                   usb_dn_pullup_idx;
     integer                   usb_sense_idx;
     pad_type_e [NDioPads-1:0] dio_pad_type;
     pad_type_e [NMioPads-1:0] mio_pad_type;
@@ -46,8 +44,6 @@
     dft_strap1_idx:    0,
     usb_dp_idx:        0,
     usb_dn_idx:        0,
-    usb_dp_pullup_idx: 0,
-    usb_dn_pullup_idx: 0,
     usb_sense_idx:     0,
     dio_pad_type:      {NDioPads{BidirStd}},
     mio_pad_type:      {NMioPads{BidirStd}}
diff --git a/hw/ip/usbdev/data/usbdev.hjson b/hw/ip/usbdev/data/usbdev.hjson
index 77b2272..0139c43 100644
--- a/hw/ip/usbdev/data/usbdev.hjson
+++ b/hw/ip/usbdev/data/usbdev.hjson
@@ -11,22 +11,70 @@
     { protocol: "tlul", direction: "device" }
   ],
   available_inout_list: [
-    { name: "d", desc: "USB data differential" }
-    { name: "dp", desc: "USB data D+" }
-    { name: "dn", desc: "USB data D-" }
+    { name: "usb_dp", desc: "USB data D+" }
+    { name: "usb_dn", desc: "USB data D-" }
   ],
   available_input_list: [
     {  name: "sense", desc: "USB host VBUS sense" }
   ],
-  available_output_list: [
-    { name: "se0", desc: "USB single-ended zero link state" }
-    { name: "dp_pullup", desc: "USB D+ pullup control" }
-    { name: "dn_pullup", desc: "USB D- pullup control" }
-    { name: "tx_mode_se", desc: "USB single-ended transmit mode control" }
-    { name: "suspend", desc: "USB link suspend state" }
-    { name: "rx_enable", desc: "USB phy differential receive enable" }
-  ],
+  available_output_list: [],
   inter_signal_list: [
+    { name:    "usb_rx_d",
+      desc:    "USB RX data from an external differential receiver, if available"
+      type:    "uni",
+      act:     "rcv",
+      package: "",
+      struct:  "logic",
+      width:   "1"
+    }
+    { name:    "usb_tx_d",
+      desc:    "USB transmit data value (not used if usb_tx_se0 is set)"
+      type:    "uni",
+      act:     "req",
+      package: "",
+      struct:  "logic",
+      width:   "1"
+    }
+    { name:    "usb_tx_se0",
+      desc:    "Force transmission of a USB single-ended zero (i.e. both D+ and D- are low) regardless of usb_tx_d"
+      type:    "uni",
+      act:     "req",
+      package: "",
+      struct:  "logic",
+      width:   "1"
+    }
+    { name:    "usb_tx_use_d_se0",
+      desc:    "Use the usb_tx_d and usb_tx_se0 TX interface, instead of usb_dp_o and usb_dn_o"
+      type:    "uni",
+      act:     "req",
+      package: "",
+      struct:  "logic",
+      width:   "1"
+    }
+    { name:    "usb_dp_pullup",
+      desc:    "USB D+ pullup control"
+      type:    "uni",
+      act:     "req",
+      package: "",
+      struct:  "logic",
+      width:   "1"
+    }
+    { name:    "usb_dn_pullup",
+      desc:    "USB D- pullup control"
+      type:    "uni",
+      act:     "req",
+      package: "",
+      struct:  "logic",
+      width:   "1"
+    }
+    { name:    "usb_rx_enable",
+      desc:    "USB differential receiver enable"
+      type:    "uni",
+      act:     "req",
+      package: "",
+      struct:  "logic",
+      width:   "1"
+    }
     { name:    "usb_ref_val",
       type:    "uni",
       act:     "req",
@@ -344,10 +392,10 @@
               name: "active_nosof",
               desc: "Link active but no SOF has been received since the last reset."
             },
-	    { value: "6",
-	      name: "resuming",
-	      desc: "Link resuming to an active state, pending the end of resume signaling"
-	    },
+            { value: "6",
+              name: "resuming",
+              desc: "Link resuming to an active state, pending the end of resume signaling"
+            },
           ]
         }
         {
@@ -705,27 +753,27 @@
         {
           bits: "2",
           name: "rx_d_i",
-          desc: "USB differential input."
+          desc: "USB data input from an external differential receiver, if available."
         }
         {
           bits: "8",
           name: "tx_dp_o",
-          desc: "USB D+ output (readback)."
+          desc: "USB differential D+ output (readback)."
         }
         {
           bits: "9",
           name: "tx_dn_o",
-          desc: "USB D- output (readback)."
+          desc: "USB differential D- output (readback)."
         }
         {
           bits: "10",
           name: "tx_d_o",
-          desc: "USB differential output (readback)."
+          desc: "USB single-ended output (readback)."
         }
         {
           bits: "11",
           name: "tx_se0_o",
-          desc: "USB SE0 output (readback)."
+          desc: "USB single-ended SE0 output (readback)."
         }
         {
           bits: "12",
@@ -759,22 +807,22 @@
         {
           bits: "0",
           name: "dp_o",
-          desc: "USB D+ output."
+          desc: "USB differential D+ output."
         }
         {
           bits: "1",
           name: "dn_o",
-          desc: "USB D- output."
+          desc: "USB differential D- output."
         }
         {
           bits: "2",
           name: "d_o",
-          desc: "USB differential output."
+          desc: "USB single-ended output."
         }
         {
           bits: "3",
           name: "se0_o",
-          desc: "USB SE0 output."
+          desc: "USB single-ended SE0 output."
         }
         {
           bits: "4",
@@ -783,8 +831,8 @@
         }
         {
           bits: "5",
-          name: "tx_mode_se_o",
-          desc: "USB TX mode. 0: Differential, 1: Single-ended."
+          name: "tx_use_d_se0_o",
+          desc: "USB TX mode, intended to enable a variety of transceivers. 0: use dp/dn interface, 1: use d/se0 interface"
         }
         {
           bits: "6",
@@ -830,10 +878,12 @@
         {
           bits: "1",
           resval: "0",
-          name: "tx_differential_mode",
+          name: "tx_use_d_se0",
           desc: '''
-                Use the differential TX signal instead of the single-ended signals.
-                Currently only 0 (single-ended operation) is supported.
+                If 1, select the d and se0 TX interface.
+                If 0, select the dp and dn TX interface.
+                This directly controls the output pin of the same name.
+                It is intended to be used to enable the use of a variety of external transceivers.
                 '''
         }
         {
diff --git a/hw/ip/usbdev/dv/tb/tb.sv b/hw/ip/usbdev/dv/tb/tb.sv
index a603540..1555183 100644
--- a/hw/ip/usbdev/dv/tb/tb.sv
+++ b/hw/ip/usbdev/dv/tb/tb.sv
@@ -63,29 +63,21 @@
 
     // USB Interface
     // TOOD: need to hook up an interface
-    .cio_d_i              (1'b0),
-    .cio_dp_i             (1'b1),
-    .cio_dn_i             (1'b0),
-    .cio_d_o              (),
-    .cio_d_en_o           (),
-    .cio_dp_o             (),
-    .cio_dp_en_o          (),
-    .cio_dn_o             (),
-    .cio_dn_en_o          (),
+    .cio_usb_dp_i         (1'b1),
+    .cio_usb_dn_i         (1'b0),
+    .usb_rx_d_i           (1'b0),
+    .cio_usb_dp_o         (),
+    .cio_usb_dp_en_o      (),
+    .cio_usb_dn_o         (),
+    .cio_usb_dn_en_o      (),
+    .usb_tx_d_o           (),
+    .usb_tx_se0_o         (),
 
     .cio_sense_i          (1'b0),
-    .cio_se0_o            (),
-    .cio_se0_en_o         (),
-    .cio_dp_pullup_o      (),
-    .cio_dp_pullup_en_o   (),
-    .cio_dn_pullup_o      (),
-    .cio_dn_pullup_en_o   (),
-    .cio_tx_mode_se_o     (),
-    .cio_tx_mode_se_en_o  (),
-    .cio_suspend_o        (),
-    .cio_suspend_en_o     (),
-    .cio_rx_enable_o      (),
-    .cio_rx_enable_en_o   (),
+    .usb_dp_pullup_o      (),
+    .usb_dn_pullup_o      (),
+    .usb_rx_enable_o      (),
+    .usb_tx_use_d_se0_o   (),
 
     // Direct pinmux aon detect connections
     .usb_out_of_rst_o     (),
diff --git a/hw/ip/usbdev/rtl/usbdev.sv b/hw/ip/usbdev/rtl/usbdev.sv
index b4f3e9c..d037374 100644
--- a/hw/ip/usbdev/rtl/usbdev.sv
+++ b/hw/ip/usbdev/rtl/usbdev.sv
@@ -30,32 +30,24 @@
   output prim_alert_pkg::alert_tx_t [NumAlerts-1:0] alert_tx_o,
 
   // Data inputs
-  input  logic       cio_d_i, // differential
-  input  logic       cio_dp_i, // single-ended, can be used in differential mode to detect SE0
-  input  logic       cio_dn_i, // single-ended, can be used in differential mode to detect SE0
+  input  logic       cio_usb_dp_i, // differential P, can be used in single-ended mode to detect SE0
+  input  logic       cio_usb_dn_i, // differential N, can be used in single-ended mode to detect SE0
+  input  logic       usb_rx_d_i, // single-ended input from the differential receiver
 
   // Data outputs
-  output logic       cio_d_o,
-  output logic       cio_d_en_o,
-  output logic       cio_dp_o,
-  output logic       cio_dp_en_o,
-  output logic       cio_dn_o,
-  output logic       cio_dn_en_o,
+  output logic       cio_usb_dp_o,
+  output logic       cio_usb_dp_en_o,
+  output logic       cio_usb_dn_o,
+  output logic       cio_usb_dn_en_o,
+  output logic       usb_tx_se0_o, // single-ended zero output
+  output logic       usb_tx_d_o,
 
   // Non-data I/O
   input  logic       cio_sense_i,
-  output logic       cio_se0_o,
-  output logic       cio_se0_en_o,
-  output logic       cio_dp_pullup_o,
-  output logic       cio_dp_pullup_en_o,
-  output logic       cio_dn_pullup_o,
-  output logic       cio_dn_pullup_en_o,
-  output logic       cio_suspend_o,
-  output logic       cio_suspend_en_o,
-  output logic       cio_tx_mode_se_o,
-  output logic       cio_tx_mode_se_en_o,
-  output logic       cio_rx_enable_o,
-  output logic       cio_rx_enable_en_o,
+  output logic       usb_dp_pullup_o,
+  output logic       usb_dn_pullup_o,
+  output logic       usb_rx_enable_o,
+  output logic       usb_tx_use_d_se0_o,
 
   // Direct pinmux aon detect connections
   output logic       usb_out_of_rst_o,
@@ -1023,7 +1015,7 @@
   /////////////////////////////////
   // USB IO Muxing               //
   /////////////////////////////////
-  logic cio_oe;
+  assign cio_usb_dn_en_o = cio_usb_dp_en_o;
 
   usbdev_iomux i_usbdev_iomux (
     .clk_i                  (clk_i),
@@ -1038,19 +1030,19 @@
     .sys_usb_sense_o        (hw2reg.usbstat.sense.d),
 
     // Chip IO
-    .cio_usb_d_i            (cio_d_i),
-    .cio_usb_dp_i           (cio_dp_i),
-    .cio_usb_dn_i           (cio_dn_i),
-    .cio_usb_d_o            (cio_d_o),
-    .cio_usb_se0_o          (cio_se0_o),
-    .cio_usb_dp_o           (cio_dp_o),
-    .cio_usb_dn_o           (cio_dn_o),
-    .cio_usb_oe_o           (cio_oe),
-    .cio_usb_tx_mode_se_o   (cio_tx_mode_se_o),
+    .usb_rx_d_i             (usb_rx_d_i),
+    .usb_rx_dp_i            (cio_usb_dp_i),
+    .usb_rx_dn_i            (cio_usb_dn_i),
+    .usb_tx_d_o             (usb_tx_d_o),
+    .usb_tx_se0_o           (usb_tx_se0_o),
+    .usb_tx_dp_o            (cio_usb_dp_o),
+    .usb_tx_dn_o            (cio_usb_dn_o),
+    .usb_tx_oe_o            (cio_usb_dp_en_o),
+    .usb_tx_use_d_se0_o     (usb_tx_use_d_se0_o),
     .cio_usb_sense_i        (cio_sense_i),
-    .cio_usb_dp_pullup_en_o (cio_dp_pullup_en_o),
-    .cio_usb_dn_pullup_en_o (cio_dn_pullup_en_o),
-    .cio_usb_suspend_o      (cio_suspend_o),
+    .usb_dp_pullup_en_o     (usb_dp_pullup_o),
+    .usb_dn_pullup_en_o     (usb_dn_pullup_o),
+    .usb_suspend_o          (usb_suspend_o),
 
     // Internal interface
     .usb_rx_d_o             (usb_rx_d),
@@ -1064,27 +1056,11 @@
     .usb_suspend_i          (usb_event_link_suspend)
   );
 
-  // enable rx only when in differential mode and not suspended.
-  assign cio_rx_enable_o = reg2hw.phy_config.rx_differential_mode.q & ~usb_suspend_o;
-
-  ////////////////////////
-  // USB Output Enables //
-  ////////////////////////
-
-  // Data outputs
-  assign cio_d_en_o  = cio_oe;
-  assign cio_dp_en_o = cio_oe;
-  assign cio_dn_en_o = cio_oe;
-
-  // Non-data outputs - always enabled.
-  assign cio_se0_en_o        = 1'b1;
-  assign cio_suspend_en_o    = 1'b1;
-  assign cio_tx_mode_se_en_o = 1'b1;
-  assign cio_rx_enable_en_o  = 1'b1;
-
-  // Pullup
-  assign cio_dp_pullup_o     = cio_dp_pullup_en_o;
-  assign cio_dn_pullup_o     = cio_dn_pullup_en_o;
+  // enable rx only when the single-ended input is enabled and the device is
+  // not suspended.
+  // TODO(#10901): This can cause undefined behavior if this module stays
+  // powered to detect resume (instead of the AON module).
+  assign usb_rx_enable_o = reg2hw.phy_config.rx_differential_mode.q & ~usb_suspend_o;
 
   /////////////////////////////////////////
   // SOF Reference for Clock Calibration //
@@ -1139,8 +1115,6 @@
   assign usb_aon_wake_en_o = reg2hw.wake_config.wake_en.q;
   assign usb_aon_wake_ack_o = reg2hw.wake_config.wake_ack.qe &
                               reg2hw.wake_config.wake_ack.q;
-  // re-use I/O version to allow software override if needed
-  assign usb_suspend_o = cio_suspend_o;
 
   /////////////////////////////////////////
   // capture async event and debug info  //
@@ -1161,26 +1135,18 @@
   `ASSERT_KNOWN(TlOAReadyKnown_A, tl_o.a_ready)
   // These pins are not necessarily associated with any clock but it probably makes most sense to
   // check them on the fastest clock.
-  `ASSERT_KNOWN(CIODKnown_A, cio_d_o)
-  `ASSERT_KNOWN(CIODEnKnown_A, cio_d_en_o)
-  `ASSERT_KNOWN(CIODpKnown_A, cio_dp_o)
-  `ASSERT_KNOWN(CIODpEnKnown_A, cio_dp_en_o)
-  `ASSERT_KNOWN(CIODnKnown_A, cio_dn_o)
-  `ASSERT_KNOWN(CIODnEnKnown_A, cio_dn_en_o)
-  `ASSERT_KNOWN(CIOSe0Known_A, cio_se0_o)
-  `ASSERT_KNOWN(CIOSe0EnKnown_A, cio_se0_en_o)
-  `ASSERT_KNOWN(CIODpPUKnown_A, cio_dp_pullup_o)
-  `ASSERT_KNOWN(CIODpPUEnKnown_A, cio_dp_pullup_en_o)
-  `ASSERT_KNOWN(CIODnPUKnown_A, cio_dn_pullup_o)
-  `ASSERT_KNOWN(CIODnPUEnKnown_A, cio_dn_pullup_en_o)
-  `ASSERT_KNOWN(CIOSuspendKnown_A, cio_suspend_o)
-  `ASSERT_KNOWN(CIOSuspendEnKnown_A, cio_suspend_en_o)
-  `ASSERT_KNOWN(CIOTxModeKnown_A, cio_tx_mode_se_o)
-  `ASSERT_KNOWN(CIOTxModeEnKnown_A, cio_tx_mode_se_en_o)
+  `ASSERT_KNOWN(USBTxDKnown_A, usb_tx_d_o)
+  `ASSERT_KNOWN(CIODpKnown_A, cio_usb_dp_o)
+  `ASSERT_KNOWN(CIODpEnKnown_A, cio_usb_dp_en_o)
+  `ASSERT_KNOWN(CIODnKnown_A, cio_usb_dn_o)
+  `ASSERT_KNOWN(CIODnEnKnown_A, cio_usb_dn_en_o)
+  `ASSERT_KNOWN(USBTxSe0Known_A, usb_tx_se0_o)
+  `ASSERT_KNOWN(USBDpPUKnown_A, usb_dp_pullup_o)
+  `ASSERT_KNOWN(USBDnPUKnown_A, usb_dn_pullup_o)
+  `ASSERT_KNOWN(USBSuspendKnown_A, usb_suspend_o)
   `ASSERT_KNOWN(USBOoRKnown_A, usb_out_of_rst_o)
   `ASSERT_KNOWN(USBAonWakeEnKnown_A, usb_aon_wake_en_o)
   `ASSERT_KNOWN(USBAonWakeAckKnown_A, usb_aon_wake_ack_o)
-  `ASSERT_KNOWN(USBSuspendKnown_A, usb_suspend_o)
   `ASSERT_KNOWN(USBRefValKnown_A, usb_ref_val_o, clk_usb_48mhz_i, !rst_usb_48mhz_ni)
   `ASSERT_KNOWN(USBRefPulseKnown_A, usb_ref_pulse_o, clk_usb_48mhz_i, !rst_usb_48mhz_ni)
   // Assert Known for alerts
diff --git a/hw/ip/usbdev/rtl/usbdev_aon_wake.sv b/hw/ip/usbdev/rtl/usbdev_aon_wake.sv
index 8f3e16f..8246a30 100644
--- a/hw/ip/usbdev/rtl/usbdev_aon_wake.sv
+++ b/hw/ip/usbdev/rtl/usbdev_aon_wake.sv
@@ -19,9 +19,9 @@
   input  logic usb_dn_async_alw_i,
   input  logic usb_sense_async_alw_i,
 
-  // These come from post pinmux sleep handling logic
-  input  logic usb_dppullup_en_alw_i,
-  input  logic usb_dnpullup_en_alw_i,
+  // These come from the IP
+  input  logic usb_dppullup_en_upwr_i,
+  input  logic usb_dnpullup_en_upwr_i,
 
   // Register signals from IP
   input  logic usb_out_of_rst_upwr_i,
@@ -31,6 +31,10 @@
   // Status from IP, must be valid for long enough for aon clock to catch (>15us)
   input  logic usb_suspended_upwr_i,
 
+  // The I/Os that need to be maintained in low-power mode
+  output logic usb_dppullup_en_o,
+  output logic usb_dnpullup_en_o,
+
   // wake/powerup request
   output logic wake_req_alw_o,
 
@@ -80,8 +84,8 @@
   // so if the input value differs then the host is doing something
   // This covers both host generated wake (J->K) and host generated reset (J->SE0)
   // Use of the pullups takes care of pinflipping
-  assign notidle_async = (usb_dp_async_alw_i != usb_dppullup_en_alw_i) |
-                         (usb_dn_async_alw_i != usb_dnpullup_en_alw_i);
+  assign notidle_async = (usb_dp_async_alw_i != usb_dppullup_en_o) |
+                         (usb_dn_async_alw_i != usb_dnpullup_en_o);
 
   // aon clock is ~200kHz so 4 cycle filter is about 20us
   // as well as noise debounce this gives the main IP time to detect resume if it didn't turn off
@@ -230,6 +234,40 @@
 
   assign state_debug_o = astate_q;
 
+  // Control the pullup enable outputs from the AON module when it's active
+  logic usb_dppullup_en_alw, usb_dnpullup_en_alw;
+  logic aon_dppullup_en_d, aon_dppullup_en_q;
+  logic aon_dnpullup_en_d, aon_dnpullup_en_q;
+
+  prim_flop_2sync #(
+    .Width(2)
+  ) u_pullup_en_cdc (
+    .clk_i(clk_aon_i),
+    .rst_ni(rst_aon_ni),
+    .d_i({usb_dppullup_en_upwr_i, usb_dnpullup_en_upwr_i}),
+    .q_o({usb_dppullup_en_alw, usb_dnpullup_en_alw})
+  );
+
+  assign aon_dppullup_en_d = aon_usb_events_active ? aon_dppullup_en_q
+                                                   : usb_dppullup_en_alw;
+  assign aon_dnpullup_en_d = aon_usb_events_active ? aon_dnpullup_en_q
+                                                   : usb_dnpullup_en_alw;
+
+  always_ff @(posedge clk_aon_i or negedge rst_aon_ni) begin : proc_reg_pullup_en
+    if (!rst_aon_ni) begin
+      aon_dppullup_en_q <= 1'b0;
+      aon_dnpullup_en_q <= 1'b0;
+    end else begin
+      aon_dppullup_en_q <= aon_dppullup_en_d;
+      aon_dnpullup_en_q <= aon_dnpullup_en_d;
+    end
+  end
+
+  assign usb_dppullup_en_o = aon_usb_events_active ? aon_dppullup_en_q
+                                                   : usb_dppullup_en_upwr_i;
+  assign usb_dnpullup_en_o = aon_usb_events_active ? aon_dnpullup_en_q
+                                                   : usb_dnpullup_en_upwr_i;
+
   // The wakeup signal is not latched in the pwrmgr so must be held until acked by software
   `ASSERT(UsbWkupStable_A, wake_req_alw_o |=> wake_req_alw_o ||
       $past(wake_ack) && !low_power_alw_i, clk_aon_i, !rst_aon_ni)
diff --git a/hw/ip/usbdev/rtl/usbdev_iomux.sv b/hw/ip/usbdev/rtl/usbdev_iomux.sv
index 9a6b2aa..45c76e4 100644
--- a/hw/ip/usbdev/rtl/usbdev_iomux.sv
+++ b/hw/ip/usbdev/rtl/usbdev_iomux.sv
@@ -24,21 +24,21 @@
   output logic                              sys_usb_sense_o,
 
   // External USB Interface(s) (async)
-  input  logic                          cio_usb_d_i,
-  input  logic                          cio_usb_dp_i,
-  input  logic                          cio_usb_dn_i,
+  input  logic                          usb_rx_d_i,
+  input  logic                          usb_rx_dp_i,
+  input  logic                          usb_rx_dn_i,
 
-  output logic                          cio_usb_d_o,
-  output logic                          cio_usb_se0_o,
-  output logic                          cio_usb_dp_o,
-  output logic                          cio_usb_dn_o,
-  output logic                          cio_usb_oe_o,
+  output logic                          usb_tx_d_o,
+  output logic                          usb_tx_se0_o,
+  output logic                          usb_tx_dp_o,
+  output logic                          usb_tx_dn_o,
+  output logic                          usb_tx_oe_o,
+  output logic                          usb_tx_use_d_se0_o,
 
-  output logic                          cio_usb_tx_mode_se_o,
   input  logic                          cio_usb_sense_i,
-  output logic                          cio_usb_dp_pullup_en_o,
-  output logic                          cio_usb_dn_pullup_en_o,
-  output logic                          cio_usb_suspend_o,
+  output logic                          usb_dp_pullup_en_o,
+  output logic                          usb_dn_pullup_en_o,
+  output logic                          usb_suspend_o,
 
   // Internal USB Interface (usb clk)
   output logic                          usb_rx_d_o,
@@ -52,11 +52,11 @@
   input  logic                          usb_suspend_i
 );
 
-  logic cio_usb_d_flipped;
-  logic cio_usb_dp_pullup_en, cio_usb_dn_pullup_en;
+  logic usb_tx_d_flipped;
+  logic usb_dp_pullup_en, usb_dn_pullup_en;
 
   logic sys_usb_sense;
-  logic cio_usb_dp, cio_usb_dn, cio_usb_d;
+  logic usb_rx_dp, usb_rx_dn, usb_rx_d;
   logic pinflip;
   logic unused_eop_single_bit;
   logic unused_rx_differential_mode;
@@ -78,11 +78,11 @@
   ) cdc_io_to_sys (
     .clk_i  (clk_i),
     .rst_ni (rst_ni),
-    .d_i    ({cio_usb_dp_i,
-              cio_usb_dn_i,
-              cio_usb_d_i,
-              cio_usb_dp_o,
-              cio_usb_dn_o,
+    .d_i    ({usb_rx_dp_i,
+              usb_rx_dn_i,
+              usb_rx_d_i,
+              usb_tx_dp_o,
+              usb_tx_dn_o,
               usb_tx_d_i,
               usb_tx_se0_i,
               usb_tx_oe_i,
@@ -109,13 +109,13 @@
   ) cdc_io_to_usb (
     .clk_i  (clk_usb_48mhz_i),
     .rst_ni (rst_usb_48mhz_ni),
-    .d_i    ({cio_usb_dp_i,
-              cio_usb_dn_i,
-              cio_usb_d_i,
+    .d_i    ({usb_rx_dp_i,
+              usb_rx_dn_i,
+              usb_rx_d_i,
               cio_usb_sense_i}),
-    .q_o    ({cio_usb_dp,
-              cio_usb_dn,
-              cio_usb_d,
+    .q_o    ({usb_rx_dp,
+              usb_rx_dn,
+              usb_rx_d,
               usb_pwr_sense_o})
   );
 
@@ -132,7 +132,7 @@
     .clk0_i (usb_tx_d_i),
     .clk1_i (~usb_tx_d_i),
     .sel_i  (pinflip),
-    .clk_o  (cio_usb_d_flipped)
+    .clk_o  (usb_tx_d_flipped)
   );
   prim_clock_mux2 #(
     .NoFpgaBufG(1)
@@ -140,7 +140,7 @@
     .clk0_i (usb_pullup_en_i),
     .clk1_i (1'b0),
     .sel_i  (pinflip),
-    .clk_o  (cio_usb_dp_pullup_en)
+    .clk_o  (usb_dp_pullup_en)
   );
   prim_clock_mux2 #(
     .NoFpgaBufG(1)
@@ -148,43 +148,42 @@
     .clk0_i (1'b0),
     .clk1_i (usb_pullup_en_i),
     .sel_i  (pinflip),
-    .clk_o  (cio_usb_dn_pullup_en)
+    .clk_o  (usb_dn_pullup_en)
   );
 
   always_comb begin : proc_drive_out
     // Defaults
-    cio_usb_dn_o           = 1'b0;
-    cio_usb_dp_o           = 1'b0;
+    usb_tx_dn_o           = 1'b0;
+    usb_tx_dp_o           = 1'b0;
 
     if (sys_reg2hw_drive_i.en.q) begin
       // Override from registers
-      cio_usb_dp_o           = sys_reg2hw_drive_i.dp_o.q;
-      cio_usb_dn_o           = sys_reg2hw_drive_i.dn_o.q;
-      cio_usb_dp_pullup_en_o = sys_reg2hw_drive_i.dp_pullup_en_o.q;
-      cio_usb_dn_pullup_en_o = sys_reg2hw_drive_i.dn_pullup_en_o.q;
-      cio_usb_tx_mode_se_o   = sys_reg2hw_drive_i.tx_mode_se_o.q;
-      cio_usb_suspend_o      = sys_reg2hw_drive_i.suspend_o.q;
+      usb_tx_dp_o       = sys_reg2hw_drive_i.dp_o.q;
+      usb_tx_dn_o       = sys_reg2hw_drive_i.dn_o.q;
+      usb_dp_pullup_en_o = sys_reg2hw_drive_i.dp_pullup_en_o.q;
+      usb_dn_pullup_en_o = sys_reg2hw_drive_i.dn_pullup_en_o.q;
+      usb_tx_use_d_se0_o = sys_reg2hw_drive_i.tx_use_d_se0_o.q;
+      usb_suspend_o      = sys_reg2hw_drive_i.suspend_o.q;
 
     end else begin
       // Signals from the peripheral core
-      cio_usb_dp_pullup_en_o = cio_usb_dp_pullup_en;
-      cio_usb_dn_pullup_en_o = cio_usb_dn_pullup_en;
-      cio_usb_suspend_o      = usb_suspend_i;
+      usb_dp_pullup_en_o = usb_dp_pullup_en;
+      usb_dn_pullup_en_o = usb_dn_pullup_en;
+      usb_suspend_o      = usb_suspend_i;
 
-      if(sys_reg2hw_config_i.tx_differential_mode.q) begin
-        // Differential TX mode (physical IO takes d and se0)
-        // i.e. expect the "else" logic to be in the physical interface
-        cio_usb_tx_mode_se_o   = 1'b0;
-
+      if(sys_reg2hw_config_i.tx_use_d_se0.q) begin
+        // Single-ended TX interface (physical IO takes d and se0)
+        usb_tx_use_d_se0_o = 1'b1;
       end else begin
-        // Single-ended mode (physical IO takes dp and dn)
-        cio_usb_tx_mode_se_o   = 1'b1;
+        // Differential TX interface (physical IO takes dp and dn)
+        // i.e. expect the "else" logic to be in the physical interface
+        usb_tx_use_d_se0_o = 1'b0;
         if (usb_tx_se0_i) begin
-          cio_usb_dp_o = 1'b0;
-          cio_usb_dn_o = 1'b0;
+          usb_tx_dp_o = 1'b0;
+          usb_tx_dn_o = 1'b0;
         end else begin
-          cio_usb_dp_o = cio_usb_d_flipped;
-          cio_usb_dn_o = ~cio_usb_d_flipped;
+          usb_tx_dp_o = usb_tx_d_flipped;
+          usb_tx_dn_o = ~usb_tx_d_flipped;
         end
       end
     end
@@ -198,10 +197,10 @@
   prim_clock_mux2 #(
     .NoFpgaBufG(1)
   ) i_mux_tx_d (
-    .clk0_i (cio_usb_d_flipped),
+    .clk0_i (usb_tx_d_flipped),
     .clk1_i (sys_reg2hw_drive_i.d_o.q),
     .sel_i  (sys_reg2hw_drive_i.en.q),
-    .clk_o  (cio_usb_d_o)
+    .clk_o  (usb_tx_d_o)
   );
   prim_clock_mux2 #(
     .NoFpgaBufG(1)
@@ -209,7 +208,7 @@
     .clk0_i (usb_tx_se0_i),
     .clk1_i (sys_reg2hw_drive_i.se0_o.q),
     .sel_i  (sys_reg2hw_drive_i.en.q),
-    .clk_o  (cio_usb_se0_o)
+    .clk_o  (usb_tx_se0_o)
   );
   prim_clock_mux2 #(
     .NoFpgaBufG(1)
@@ -217,7 +216,7 @@
     .clk0_i (usb_tx_oe_i),
     .clk1_i (sys_reg2hw_drive_i.oe_o.q),
     .sel_i  (sys_reg2hw_drive_i.en.q),
-    .clk_o  (cio_usb_oe_o)
+    .clk_o  (usb_tx_oe_o)
   );
 
   ///////////////////////
@@ -225,8 +224,8 @@
   ///////////////////////
 
   // D+/D- can be swapped based on a config register.
-  assign usb_rx_dp_o = pinflip ?  cio_usb_dn : cio_usb_dp;
-  assign usb_rx_dn_o = pinflip ?  cio_usb_dp : cio_usb_dn;
-  assign usb_rx_d_o  = pinflip ? ~cio_usb_d  : cio_usb_d;
+  assign usb_rx_dp_o = pinflip ?  usb_rx_dn : usb_rx_dp;
+  assign usb_rx_dn_o = pinflip ?  usb_rx_dp : usb_rx_dn;
+  assign usb_rx_d_o  = pinflip ? ~usb_rx_d  : usb_rx_d;
 
 endmodule
diff --git a/hw/ip/usbdev/rtl/usbdev_reg_pkg.sv b/hw/ip/usbdev/rtl/usbdev_reg_pkg.sv
index 3e9f828..aed1517 100644
--- a/hw/ip/usbdev/rtl/usbdev_reg_pkg.sv
+++ b/hw/ip/usbdev/rtl/usbdev_reg_pkg.sv
@@ -308,7 +308,7 @@
     } oe_o;
     struct packed {
       logic        q;
-    } tx_mode_se_o;
+    } tx_use_d_se0_o;
     struct packed {
       logic        q;
     } dp_pullup_en_o;
@@ -329,7 +329,7 @@
     } rx_differential_mode;
     struct packed {
       logic        q;
-    } tx_differential_mode;
+    } tx_use_d_se0;
     struct packed {
       logic        q;
     } eop_single_bit;
diff --git a/hw/ip/usbdev/rtl/usbdev_reg_top.sv b/hw/ip/usbdev/rtl/usbdev_reg_top.sv
index 47c2d90..08ff85f 100644
--- a/hw/ip/usbdev/rtl/usbdev_reg_top.sv
+++ b/hw/ip/usbdev/rtl/usbdev_reg_top.sv
@@ -667,8 +667,8 @@
   logic phy_pins_drive_se0_o_wd;
   logic phy_pins_drive_oe_o_qs;
   logic phy_pins_drive_oe_o_wd;
-  logic phy_pins_drive_tx_mode_se_o_qs;
-  logic phy_pins_drive_tx_mode_se_o_wd;
+  logic phy_pins_drive_tx_use_d_se0_o_qs;
+  logic phy_pins_drive_tx_use_d_se0_o_wd;
   logic phy_pins_drive_dp_pullup_en_o_qs;
   logic phy_pins_drive_dp_pullup_en_o_wd;
   logic phy_pins_drive_dn_pullup_en_o_qs;
@@ -680,8 +680,8 @@
   logic phy_config_we;
   logic phy_config_rx_differential_mode_qs;
   logic phy_config_rx_differential_mode_wd;
-  logic phy_config_tx_differential_mode_qs;
-  logic phy_config_tx_differential_mode_wd;
+  logic phy_config_tx_use_d_se0_qs;
+  logic phy_config_tx_use_d_se0_wd;
   logic phy_config_eop_single_bit_qs;
   logic phy_config_eop_single_bit_wd;
   logic phy_config_pinflip_qs;
@@ -6726,18 +6726,18 @@
     .qs     (phy_pins_drive_oe_o_qs)
   );
 
-  //   F[tx_mode_se_o]: 5:5
+  //   F[tx_use_d_se0_o]: 5:5
   prim_subreg #(
     .DW      (1),
     .SwAccess(prim_subreg_pkg::SwAccessRW),
     .RESVAL  (1'h0)
-  ) u_phy_pins_drive_tx_mode_se_o (
+  ) u_phy_pins_drive_tx_use_d_se0_o (
     .clk_i   (clk_i),
     .rst_ni  (rst_ni),
 
     // from register interface
     .we     (phy_pins_drive_we),
-    .wd     (phy_pins_drive_tx_mode_se_o_wd),
+    .wd     (phy_pins_drive_tx_use_d_se0_o_wd),
 
     // from internal hardware
     .de     (1'b0),
@@ -6745,10 +6745,10 @@
 
     // to internal hardware
     .qe     (),
-    .q      (reg2hw.phy_pins_drive.tx_mode_se_o.q),
+    .q      (reg2hw.phy_pins_drive.tx_use_d_se0_o.q),
 
     // to register interface (read)
-    .qs     (phy_pins_drive_tx_mode_se_o_qs)
+    .qs     (phy_pins_drive_tx_use_d_se0_o_qs)
   );
 
   //   F[dp_pullup_en_o]: 6:6
@@ -6878,18 +6878,18 @@
     .qs     (phy_config_rx_differential_mode_qs)
   );
 
-  //   F[tx_differential_mode]: 1:1
+  //   F[tx_use_d_se0]: 1:1
   prim_subreg #(
     .DW      (1),
     .SwAccess(prim_subreg_pkg::SwAccessRW),
     .RESVAL  (1'h0)
-  ) u_phy_config_tx_differential_mode (
+  ) u_phy_config_tx_use_d_se0 (
     .clk_i   (clk_i),
     .rst_ni  (rst_ni),
 
     // from register interface
     .we     (phy_config_we),
-    .wd     (phy_config_tx_differential_mode_wd),
+    .wd     (phy_config_tx_use_d_se0_wd),
 
     // from internal hardware
     .de     (1'b0),
@@ -6897,10 +6897,10 @@
 
     // to internal hardware
     .qe     (),
-    .q      (reg2hw.phy_config.tx_differential_mode.q),
+    .q      (reg2hw.phy_config.tx_use_d_se0.q),
 
     // to register interface (read)
-    .qs     (phy_config_tx_differential_mode_qs)
+    .qs     (phy_config_tx_use_d_se0_qs)
   );
 
   //   F[eop_single_bit]: 2:2
@@ -7703,7 +7703,7 @@
 
   assign phy_pins_drive_oe_o_wd = reg_wdata[4];
 
-  assign phy_pins_drive_tx_mode_se_o_wd = reg_wdata[5];
+  assign phy_pins_drive_tx_use_d_se0_o_wd = reg_wdata[5];
 
   assign phy_pins_drive_dp_pullup_en_o_wd = reg_wdata[6];
 
@@ -7716,7 +7716,7 @@
 
   assign phy_config_rx_differential_mode_wd = reg_wdata[0];
 
-  assign phy_config_tx_differential_mode_wd = reg_wdata[1];
+  assign phy_config_tx_use_d_se0_wd = reg_wdata[1];
 
   assign phy_config_eop_single_bit_wd = reg_wdata[2];
 
@@ -8075,7 +8075,7 @@
         reg_rdata_next[2] = phy_pins_drive_d_o_qs;
         reg_rdata_next[3] = phy_pins_drive_se0_o_qs;
         reg_rdata_next[4] = phy_pins_drive_oe_o_qs;
-        reg_rdata_next[5] = phy_pins_drive_tx_mode_se_o_qs;
+        reg_rdata_next[5] = phy_pins_drive_tx_use_d_se0_o_qs;
         reg_rdata_next[6] = phy_pins_drive_dp_pullup_en_o_qs;
         reg_rdata_next[7] = phy_pins_drive_dn_pullup_en_o_qs;
         reg_rdata_next[8] = phy_pins_drive_suspend_o_qs;
@@ -8084,7 +8084,7 @@
 
       addr_hit[32]: begin
         reg_rdata_next[0] = phy_config_rx_differential_mode_qs;
-        reg_rdata_next[1] = phy_config_tx_differential_mode_qs;
+        reg_rdata_next[1] = phy_config_tx_use_d_se0_qs;
         reg_rdata_next[2] = phy_config_eop_single_bit_qs;
         reg_rdata_next[5] = phy_config_pinflip_qs;
         reg_rdata_next[6] = phy_config_usb_ref_disable_qs;
diff --git a/hw/top_earlgrey/data/autogen/top_earlgrey.gen.hjson b/hw/top_earlgrey/data/autogen/top_earlgrey.gen.hjson
index 25242f4..bde0caa 100644
--- a/hw/top_earlgrey/data/autogen/top_earlgrey.gen.hjson
+++ b/hw/top_earlgrey/data/autogen/top_earlgrey.gen.hjson
@@ -817,6 +817,7 @@
           package: ""
           external: true
           top_signame: sck_monitor
+          conn_type: false
           index: -1
         }
         {
@@ -1116,6 +1117,111 @@
       inter_signal_list:
       [
         {
+          name: usb_rx_d
+          desc: USB RX data from an external differential receiver, if available
+          struct: logic
+          type: uni
+          act: rcv
+          width: 1
+          inst_name: usbdev
+          default: ""
+          package: ""
+          external: true
+          top_signame: usbdev_usb_rx_d
+          conn_type: false
+          index: -1
+        }
+        {
+          name: usb_tx_d
+          desc: USB transmit data value (not used if usb_tx_se0 is set)
+          struct: logic
+          type: uni
+          act: req
+          width: 1
+          inst_name: usbdev
+          default: ""
+          package: ""
+          external: true
+          top_signame: usbdev_usb_tx_d
+          conn_type: false
+          index: -1
+        }
+        {
+          name: usb_tx_se0
+          desc: Force transmission of a USB single-ended zero (i.e. both D+ and D- are low) regardless of usb_tx_d
+          struct: logic
+          type: uni
+          act: req
+          width: 1
+          inst_name: usbdev
+          default: ""
+          package: ""
+          external: true
+          top_signame: usbdev_usb_tx_se0
+          conn_type: false
+          index: -1
+        }
+        {
+          name: usb_tx_use_d_se0
+          desc: Use the usb_tx_d and usb_tx_se0 TX interface, instead of usb_dp_o and usb_dn_o
+          struct: logic
+          type: uni
+          act: req
+          width: 1
+          inst_name: usbdev
+          default: ""
+          package: ""
+          external: true
+          top_signame: usbdev_usb_tx_use_d_se0
+          conn_type: false
+          index: -1
+        }
+        {
+          name: usb_dp_pullup
+          desc: USB D+ pullup control
+          struct: logic
+          type: uni
+          act: req
+          width: 1
+          inst_name: usbdev
+          default: ""
+          package: ""
+          end_idx: -1
+          top_type: broadcast
+          top_signame: usbdev_usb_dp_pullup
+          index: -1
+        }
+        {
+          name: usb_dn_pullup
+          desc: USB D- pullup control
+          struct: logic
+          type: uni
+          act: req
+          width: 1
+          inst_name: usbdev
+          default: ""
+          package: ""
+          end_idx: -1
+          top_type: broadcast
+          top_signame: usbdev_usb_dn_pullup
+          index: -1
+        }
+        {
+          name: usb_rx_enable
+          desc: USB differential receiver enable
+          struct: logic
+          type: uni
+          act: req
+          width: 1
+          inst_name: usbdev
+          default: ""
+          package: ""
+          external: true
+          top_signame: usbdev_usb_rx_enable
+          conn_type: false
+          index: -1
+        }
+        {
           name: usb_ref_val
           struct: logic
           type: uni
@@ -1126,6 +1232,7 @@
           package: ""
           external: true
           top_signame: usbdev_usb_ref_val
+          conn_type: false
           index: -1
         }
         {
@@ -1139,6 +1246,7 @@
           package: ""
           external: true
           top_signame: usbdev_usb_ref_pulse
+          conn_type: false
           index: -1
         }
         {
@@ -1196,6 +1304,8 @@
           top_type: broadcast
           top_signame: usbdev_usb_suspend
           index: -1
+          external: true
+          conn_type: true
         }
         {
           name: usb_aon_bus_reset
@@ -1350,6 +1460,7 @@
           package: ""
           external: true
           top_signame: otp_ext_voltage_h
+          conn_type: false
           index: -1
         }
         {
@@ -1363,6 +1474,7 @@
           inst_name: otp_ctrl
           external: true
           top_signame: otp_ctrl_otp_ast_pwr_seq
+          conn_type: false
           index: -1
         }
         {
@@ -1376,6 +1488,7 @@
           inst_name: otp_ctrl
           external: true
           top_signame: otp_ctrl_otp_ast_pwr_seq_h
+          conn_type: false
           index: -1
         }
         {
@@ -1389,6 +1502,7 @@
           default: ""
           external: true
           top_signame: otp_alert
+          conn_type: false
           index: -1
         }
         {
@@ -1601,6 +1715,7 @@
           package: ""
           external: true
           top_signame: otp_obs
+          conn_type: false
           index: -1
         }
         {
@@ -2432,6 +2547,7 @@
           default: ""
           external: true
           top_signame: pwrmgr_ast
+          conn_type: false
           index: -1
         }
         {
@@ -2740,6 +2856,7 @@
           package: ""
           external: true
           top_signame: por_n
+          conn_type: false
           index: -1
         }
         {
@@ -2989,6 +3106,7 @@
           default: ""
           external: true
           top_signame: io_clk_byp_req
+          conn_type: false
           index: -1
         }
         {
@@ -3002,6 +3120,7 @@
           default: ""
           external: true
           top_signame: io_clk_byp_ack
+          conn_type: false
           index: -1
         }
         {
@@ -3015,6 +3134,7 @@
           default: ""
           external: true
           top_signame: all_clk_byp_req
+          conn_type: false
           index: -1
         }
         {
@@ -3028,6 +3148,7 @@
           default: ""
           external: true
           top_signame: all_clk_byp_ack
+          conn_type: false
           index: -1
         }
         {
@@ -3041,6 +3162,7 @@
           package: ""
           external: true
           top_signame: hi_speed_sel
+          conn_type: false
           index: -1
         }
         {
@@ -3078,6 +3200,7 @@
           package: ""
           external: true
           top_signame: clk_main_jitter_en
+          conn_type: false
           index: -1
         }
         {
@@ -3249,6 +3372,7 @@
           default: ""
           external: true
           top_signame: adc
+          conn_type: false
           index: -1
         }
         {
@@ -3456,6 +3580,7 @@
           inst_name: pinmux_aon
           external: true
           top_signame: dft_strap_test
+          conn_type: false
           index: -1
         }
         {
@@ -3469,6 +3594,7 @@
           package: ""
           external: true
           top_signame: dft_hold_tap_sel
+          conn_type: false
           index: -1
         }
         {
@@ -3508,6 +3634,58 @@
           index: 2
         }
         {
+          name: usb_dppullup_en_upwr
+          struct: logic
+          type: uni
+          act: rcv
+          width: 1
+          inst_name: pinmux_aon
+          default: ""
+          package: ""
+          top_signame: usbdev_usb_dp_pullup
+          index: -1
+        }
+        {
+          name: usb_dnpullup_en_upwr
+          struct: logic
+          type: uni
+          act: rcv
+          width: 1
+          inst_name: pinmux_aon
+          default: ""
+          package: ""
+          top_signame: usbdev_usb_dn_pullup
+          index: -1
+        }
+        {
+          name: usb_dppullup_en
+          struct: logic
+          type: uni
+          act: req
+          width: 1
+          default: 1'b0
+          inst_name: pinmux_aon
+          package: ""
+          external: true
+          top_signame: usb_dp_pullup_en
+          conn_type: false
+          index: -1
+        }
+        {
+          name: usb_dnpullup_en
+          struct: logic
+          type: uni
+          act: req
+          width: 1
+          default: 1'b0
+          inst_name: pinmux_aon
+          package: ""
+          external: true
+          top_signame: usb_dn_pullup_en
+          conn_type: false
+          index: -1
+        }
+        {
           name: usb_wkup_req
           struct: logic
           type: uni
@@ -3868,6 +4046,7 @@
           default: ""
           external: true
           top_signame: sensor_ctrl_ast_alert
+          conn_type: false
           index: -1
         }
         {
@@ -3881,6 +4060,7 @@
           default: ""
           external: true
           top_signame: sensor_ctrl_ast_status
+          conn_type: false
           index: -1
         }
         {
@@ -3894,6 +4074,7 @@
           package: ""
           external: true
           top_signame: ast_init_done
+          conn_type: false
           index: -1
         }
         {
@@ -3907,6 +4088,7 @@
           package: ""
           external: true
           top_signame: ast2pinmux
+          conn_type: false
           index: -1
         }
         {
@@ -4280,6 +4462,7 @@
           default: ""
           external: true
           top_signame: flash_bist_enable
+          conn_type: false
           index: -1
         }
         {
@@ -4293,6 +4476,7 @@
           package: ""
           external: true
           top_signame: flash_power_down_h
+          conn_type: false
           index: -1
         }
         {
@@ -4306,6 +4490,7 @@
           package: ""
           external: true
           top_signame: flash_power_ready_h
+          conn_type: false
           index: -1
         }
         {
@@ -4319,6 +4504,7 @@
           package: ""
           external: true
           top_signame: flash_test_mode_a
+          conn_type: false
           index: -1
         }
         {
@@ -4332,6 +4518,7 @@
           package: ""
           external: true
           top_signame: flash_test_voltage_h
+          conn_type: false
           index: -1
         }
         {
@@ -4345,6 +4532,7 @@
           default: ""
           external: true
           top_signame: flash_alert
+          conn_type: false
           index: -1
         }
         {
@@ -4510,6 +4698,7 @@
           package: ""
           external: true
           top_signame: flash_obs
+          conn_type: false
           index: -1
         }
         {
@@ -6077,6 +6266,7 @@
           default: ""
           external: true
           top_signame: es_rng
+          conn_type: false
           index: -1
         }
         {
@@ -6124,6 +6314,7 @@
           package: ""
           external: true
           top_signame: es_rng_fips
+          conn_type: false
           index: -1
         }
         {
@@ -7217,6 +7408,7 @@
           top_signame: edn0_edn
           index: 2
           external: true
+          conn_type: true
         }
         {
           struct: lc_tx
@@ -7230,6 +7422,7 @@
           top_signame: lc_ctrl_lc_dft_en
           index: -1
           external: true
+          conn_type: true
         }
         {
           struct: ram_1p_cfg
@@ -7245,6 +7438,7 @@
           top_signame: ast_ram_1p_cfg
           index: -1
           external: true
+          conn_type: true
         }
         {
           struct: ram_2p_cfg
@@ -7260,6 +7454,7 @@
           top_signame: ast_ram_2p_cfg
           index: -1
           external: true
+          conn_type: true
         }
         {
           struct: rom_cfg
@@ -7275,6 +7470,7 @@
           top_signame: ast_rom_cfg
           index: -1
           external: true
+          conn_type: true
         }
         {
           struct: ast_obs_ctrl
@@ -7290,6 +7486,7 @@
           top_signame: ast_obs_ctrl
           index: -1
           external: true
+          conn_type: true
         }
       ]
     }
@@ -7421,6 +7618,14 @@
       [
         keymgr.rom_digest
       ]
+      usbdev.usb_dp_pullup:
+      [
+        pinmux_aon.usb_dppullup_en_upwr
+      ]
+      usbdev.usb_dn_pullup:
+      [
+        pinmux_aon.usb_dnpullup_en_upwr
+      ]
       usbdev.usb_out_of_rst:
       [
         pinmux_aon.usb_out_of_rst
@@ -7909,6 +8114,8 @@
       peri.tl_ast: ast_tl
       pinmux_aon.dft_strap_test: dft_strap_test
       pinmux_aon.dft_hold_tap_sel: dft_hold_tap_sel
+      pinmux_aon.usb_dppullup_en: usb_dp_pullup_en
+      pinmux_aon.usb_dnpullup_en: usb_dn_pullup_en
       pwrmgr_aon.pwr_ast: pwrmgr_ast
       otp_ctrl.otp_ast_pwr_seq: ""
       otp_ctrl.otp_ast_pwr_seq_h: ""
@@ -7921,6 +8128,12 @@
       sensor_ctrl.ast2pinmux: ast2pinmux
       sensor_ctrl.ast_init_done: ast_init_done
       spi_device.sck_monitor: sck_monitor
+      usbdev.usb_rx_d: ""
+      usbdev.usb_tx_d: ""
+      usbdev.usb_tx_se0: ""
+      usbdev.usb_tx_use_d_se0: ""
+      usbdev.usb_suspend: ""
+      usbdev.usb_rx_enable: ""
       usbdev.usb_ref_val: ""
       usbdev.usb_ref_pulse: ""
     }
@@ -9735,6 +9948,7 @@
           default: ""
           external: true
           top_signame: ast_tl
+          conn_type: false
           index: -1
         }
       ]
@@ -10318,6 +10532,22 @@
     signals:
     [
       {
+        instance: usbdev
+        port: usb_dp
+        connection: manual
+        pad: ""
+        desc: ""
+        attr: BidirStd
+      }
+      {
+        instance: usbdev
+        port: usb_dn
+        connection: manual
+        pad: ""
+        desc: ""
+        attr: BidirStd
+      }
+      {
         instance: spi_host0
         port: sck
         connection: direct
@@ -10414,78 +10644,6 @@
         attr: BidirStd
       }
       {
-        instance: usbdev
-        port: d
-        connection: manual
-        pad: ""
-        desc: ""
-        attr: BidirTol
-      }
-      {
-        instance: usbdev
-        port: dp
-        connection: manual
-        pad: ""
-        desc: ""
-        attr: BidirTol
-      }
-      {
-        instance: usbdev
-        port: dn
-        connection: manual
-        pad: ""
-        desc: ""
-        attr: BidirTol
-      }
-      {
-        instance: usbdev
-        port: se0
-        connection: manual
-        pad: ""
-        desc: ""
-        attr: BidirTol
-      }
-      {
-        instance: usbdev
-        port: dp_pullup
-        connection: manual
-        pad: ""
-        desc: ""
-        attr: BidirTol
-      }
-      {
-        instance: usbdev
-        port: dn_pullup
-        connection: manual
-        pad: ""
-        desc: ""
-        attr: BidirTol
-      }
-      {
-        instance: usbdev
-        port: tx_mode_se
-        connection: manual
-        pad: ""
-        desc: ""
-        attr: BidirTol
-      }
-      {
-        instance: usbdev
-        port: suspend
-        connection: manual
-        pad: ""
-        desc: ""
-        attr: BidirTol
-      }
-      {
-        instance: usbdev
-        port: rx_enable
-        connection: manual
-        pad: ""
-        desc: ""
-        attr: BidirTol
-      }
-      {
         instance: gpio
         port: ""
         connection: muxed
@@ -10731,6 +10889,28 @@
     ios:
     [
       {
+        name: usbdev_usb_dp
+        width: 1
+        type: inout
+        idx: -1
+        pad: ""
+        attr: BidirStd
+        connection: manual
+        desc: ""
+        glob_idx: 0
+      }
+      {
+        name: usbdev_usb_dn
+        width: 1
+        type: inout
+        idx: -1
+        pad: ""
+        attr: BidirStd
+        connection: manual
+        desc: ""
+        glob_idx: 1
+      }
+      {
         name: spi_host0_sd
         width: 4
         type: inout
@@ -10739,7 +10919,7 @@
         attr: BidirStd
         connection: direct
         desc: ""
-        glob_idx: 0
+        glob_idx: 2
       }
       {
         name: spi_host0_sd
@@ -10750,7 +10930,7 @@
         attr: BidirStd
         connection: direct
         desc: ""
-        glob_idx: 1
+        glob_idx: 3
       }
       {
         name: spi_host0_sd
@@ -10761,7 +10941,7 @@
         attr: BidirStd
         connection: direct
         desc: ""
-        glob_idx: 2
+        glob_idx: 4
       }
       {
         name: spi_host0_sd
@@ -10772,7 +10952,7 @@
         attr: BidirStd
         connection: direct
         desc: ""
-        glob_idx: 3
+        glob_idx: 5
       }
       {
         name: spi_device_sd
@@ -10783,7 +10963,7 @@
         attr: BidirStd
         connection: direct
         desc: ""
-        glob_idx: 4
+        glob_idx: 6
       }
       {
         name: spi_device_sd
@@ -10794,7 +10974,7 @@
         attr: BidirStd
         connection: direct
         desc: ""
-        glob_idx: 5
+        glob_idx: 7
       }
       {
         name: spi_device_sd
@@ -10805,7 +10985,7 @@
         attr: BidirStd
         connection: direct
         desc: ""
-        glob_idx: 6
+        glob_idx: 8
       }
       {
         name: spi_device_sd
@@ -10816,42 +10996,9 @@
         attr: BidirStd
         connection: direct
         desc: ""
-        glob_idx: 7
-      }
-      {
-        name: usbdev_d
-        width: 1
-        type: inout
-        idx: -1
-        pad: ""
-        attr: BidirTol
-        connection: manual
-        desc: ""
-        glob_idx: 8
-      }
-      {
-        name: usbdev_dp
-        width: 1
-        type: inout
-        idx: -1
-        pad: ""
-        attr: BidirTol
-        connection: manual
-        desc: ""
         glob_idx: 9
       }
       {
-        name: usbdev_dn
-        width: 1
-        type: inout
-        idx: -1
-        pad: ""
-        attr: BidirTol
-        connection: manual
-        desc: ""
-        glob_idx: 10
-      }
-      {
         name: gpio_gpio
         width: 32
         type: inout
@@ -11322,7 +11469,7 @@
         attr: BidirOd
         connection: direct
         desc: ""
-        glob_idx: 11
+        glob_idx: 10
       }
       {
         name: sysrst_ctrl_aon_flash_wp_l
@@ -11333,7 +11480,7 @@
         attr: BidirOd
         connection: direct
         desc: ""
-        glob_idx: 12
+        glob_idx: 11
       }
       {
         name: spi_device_sck
@@ -11344,7 +11491,7 @@
         attr: InputStd
         connection: direct
         desc: ""
-        glob_idx: 13
+        glob_idx: 12
       }
       {
         name: spi_device_csb
@@ -11355,7 +11502,7 @@
         attr: InputStd
         connection: direct
         desc: ""
-        glob_idx: 14
+        glob_idx: 13
       }
       {
         name: uart0_rx
@@ -11531,7 +11678,7 @@
         attr: BidirStd
         connection: direct
         desc: ""
-        glob_idx: 15
+        glob_idx: 14
       }
       {
         name: spi_host0_csb
@@ -11542,73 +11689,7 @@
         attr: BidirStd
         connection: direct
         desc: ""
-        glob_idx: 16
-      }
-      {
-        name: usbdev_se0
-        width: 1
-        type: output
-        idx: -1
-        pad: ""
-        attr: BidirTol
-        connection: manual
-        desc: ""
-        glob_idx: 17
-      }
-      {
-        name: usbdev_dp_pullup
-        width: 1
-        type: output
-        idx: -1
-        pad: ""
-        attr: BidirTol
-        connection: manual
-        desc: ""
-        glob_idx: 18
-      }
-      {
-        name: usbdev_dn_pullup
-        width: 1
-        type: output
-        idx: -1
-        pad: ""
-        attr: BidirTol
-        connection: manual
-        desc: ""
-        glob_idx: 19
-      }
-      {
-        name: usbdev_tx_mode_se
-        width: 1
-        type: output
-        idx: -1
-        pad: ""
-        attr: BidirTol
-        connection: manual
-        desc: ""
-        glob_idx: 20
-      }
-      {
-        name: usbdev_suspend
-        width: 1
-        type: output
-        idx: -1
-        pad: ""
-        attr: BidirTol
-        connection: manual
-        desc: ""
-        glob_idx: 21
-      }
-      {
-        name: usbdev_rx_enable
-        width: 1
-        type: output
-        idx: -1
-        pad: ""
-        attr: BidirTol
-        connection: manual
-        desc: ""
-        glob_idx: 22
+        glob_idx: 15
       }
       {
         name: uart0_tx
@@ -11978,9 +12059,9 @@
     {
       dedicated:
       {
-        inouts: 13
+        inouts: 12
         inputs: 2
-        outputs: 8
+        outputs: 2
         pads: 23
       }
       muxed:
@@ -12236,13 +12317,13 @@
             name: tck
             pad: SPI_DEV_CLK
             desc: JTAG tck signal, overlaid on SPI_DEV.
-            idx: 60
+            idx: 59
           }
           {
             name: tms
             pad: SPI_DEV_CS_L
             desc: JTAG tms signal, overlaid on SPI_DEV.
-            idx: 61
+            idx: 60
           }
           {
             name: trst_n
@@ -12254,13 +12335,13 @@
             name: tdi
             pad: SPI_DEV_D0
             desc: JTAG tdi signal, overlaid on SPI_DEV.
-            idx: 51
+            idx: 53
           }
           {
             name: tdo
             pad: SPI_DEV_D1
             desc: JTAG tdo signal, overlaid on SPI_DEV.
-            idx: 52
+            idx: 54
           }
         ]
       }
@@ -12418,13 +12499,13 @@
             name: tck
             pad: SPI_DEV_CLK
             desc: JTAG tck signal, overlaid on SPI_DEV.
-            idx: 60
+            idx: 59
           }
           {
             name: tms
             pad: SPI_DEV_CS_L
             desc: JTAG tms signal, overlaid on SPI_DEV.
-            idx: 61
+            idx: 60
           }
           {
             name: trst_n
@@ -12436,13 +12517,13 @@
             name: tdi
             pad: SPI_DEV_D0
             desc: JTAG tdi signal, overlaid on SPI_DEV.
-            idx: 51
+            idx: 53
           }
           {
             name: tdo
             pad: SPI_DEV_D1
             desc: JTAG tdo signal, overlaid on SPI_DEV.
-            idx: 52
+            idx: 54
           }
         ]
       }
@@ -14344,6 +14425,7 @@
         package: ""
         external: true
         top_signame: sck_monitor
+        conn_type: false
         index: -1
       }
       {
@@ -14425,6 +14507,111 @@
         index: -1
       }
       {
+        name: usb_rx_d
+        desc: USB RX data from an external differential receiver, if available
+        struct: logic
+        type: uni
+        act: rcv
+        width: 1
+        inst_name: usbdev
+        default: ""
+        package: ""
+        external: true
+        top_signame: usbdev_usb_rx_d
+        conn_type: false
+        index: -1
+      }
+      {
+        name: usb_tx_d
+        desc: USB transmit data value (not used if usb_tx_se0 is set)
+        struct: logic
+        type: uni
+        act: req
+        width: 1
+        inst_name: usbdev
+        default: ""
+        package: ""
+        external: true
+        top_signame: usbdev_usb_tx_d
+        conn_type: false
+        index: -1
+      }
+      {
+        name: usb_tx_se0
+        desc: Force transmission of a USB single-ended zero (i.e. both D+ and D- are low) regardless of usb_tx_d
+        struct: logic
+        type: uni
+        act: req
+        width: 1
+        inst_name: usbdev
+        default: ""
+        package: ""
+        external: true
+        top_signame: usbdev_usb_tx_se0
+        conn_type: false
+        index: -1
+      }
+      {
+        name: usb_tx_use_d_se0
+        desc: Use the usb_tx_d and usb_tx_se0 TX interface, instead of usb_dp_o and usb_dn_o
+        struct: logic
+        type: uni
+        act: req
+        width: 1
+        inst_name: usbdev
+        default: ""
+        package: ""
+        external: true
+        top_signame: usbdev_usb_tx_use_d_se0
+        conn_type: false
+        index: -1
+      }
+      {
+        name: usb_dp_pullup
+        desc: USB D+ pullup control
+        struct: logic
+        type: uni
+        act: req
+        width: 1
+        inst_name: usbdev
+        default: ""
+        package: ""
+        end_idx: -1
+        top_type: broadcast
+        top_signame: usbdev_usb_dp_pullup
+        index: -1
+      }
+      {
+        name: usb_dn_pullup
+        desc: USB D- pullup control
+        struct: logic
+        type: uni
+        act: req
+        width: 1
+        inst_name: usbdev
+        default: ""
+        package: ""
+        end_idx: -1
+        top_type: broadcast
+        top_signame: usbdev_usb_dn_pullup
+        index: -1
+      }
+      {
+        name: usb_rx_enable
+        desc: USB differential receiver enable
+        struct: logic
+        type: uni
+        act: req
+        width: 1
+        inst_name: usbdev
+        default: ""
+        package: ""
+        external: true
+        top_signame: usbdev_usb_rx_enable
+        conn_type: false
+        index: -1
+      }
+      {
         name: usb_ref_val
         struct: logic
         type: uni
@@ -14435,6 +14622,7 @@
         package: ""
         external: true
         top_signame: usbdev_usb_ref_val
+        conn_type: false
         index: -1
       }
       {
@@ -14448,6 +14636,7 @@
         package: ""
         external: true
         top_signame: usbdev_usb_ref_pulse
+        conn_type: false
         index: -1
       }
       {
@@ -14505,6 +14694,8 @@
         top_type: broadcast
         top_signame: usbdev_usb_suspend
         index: -1
+        external: true
+        conn_type: true
       }
       {
         name: usb_aon_bus_reset
@@ -14582,6 +14773,7 @@
         package: ""
         external: true
         top_signame: otp_ext_voltage_h
+        conn_type: false
         index: -1
       }
       {
@@ -14595,6 +14787,7 @@
         inst_name: otp_ctrl
         external: true
         top_signame: otp_ctrl_otp_ast_pwr_seq
+        conn_type: false
         index: -1
       }
       {
@@ -14608,6 +14801,7 @@
         inst_name: otp_ctrl
         external: true
         top_signame: otp_ctrl_otp_ast_pwr_seq_h
+        conn_type: false
         index: -1
       }
       {
@@ -14621,6 +14815,7 @@
         default: ""
         external: true
         top_signame: otp_alert
+        conn_type: false
         index: -1
       }
       {
@@ -14833,6 +15028,7 @@
         package: ""
         external: true
         top_signame: otp_obs
+        conn_type: false
         index: -1
       }
       {
@@ -15392,6 +15588,7 @@
         default: ""
         external: true
         top_signame: pwrmgr_ast
+        conn_type: false
         index: -1
       }
       {
@@ -15638,6 +15835,7 @@
         package: ""
         external: true
         top_signame: por_n
+        conn_type: false
         index: -1
       }
       {
@@ -15798,6 +15996,7 @@
         default: ""
         external: true
         top_signame: io_clk_byp_req
+        conn_type: false
         index: -1
       }
       {
@@ -15811,6 +16010,7 @@
         default: ""
         external: true
         top_signame: io_clk_byp_ack
+        conn_type: false
         index: -1
       }
       {
@@ -15824,6 +16024,7 @@
         default: ""
         external: true
         top_signame: all_clk_byp_req
+        conn_type: false
         index: -1
       }
       {
@@ -15837,6 +16038,7 @@
         default: ""
         external: true
         top_signame: all_clk_byp_ack
+        conn_type: false
         index: -1
       }
       {
@@ -15850,6 +16052,7 @@
         package: ""
         external: true
         top_signame: hi_speed_sel
+        conn_type: false
         index: -1
       }
       {
@@ -15887,6 +16090,7 @@
         package: ""
         external: true
         top_signame: clk_main_jitter_en
+        conn_type: false
         index: -1
       }
       {
@@ -15976,6 +16180,7 @@
         default: ""
         external: true
         top_signame: adc
+        conn_type: false
         index: -1
       }
       {
@@ -16089,6 +16294,7 @@
         inst_name: pinmux_aon
         external: true
         top_signame: dft_strap_test
+        conn_type: false
         index: -1
       }
       {
@@ -16102,6 +16308,7 @@
         package: ""
         external: true
         top_signame: dft_hold_tap_sel
+        conn_type: false
         index: -1
       }
       {
@@ -16141,6 +16348,58 @@
         index: 2
       }
       {
+        name: usb_dppullup_en_upwr
+        struct: logic
+        type: uni
+        act: rcv
+        width: 1
+        inst_name: pinmux_aon
+        default: ""
+        package: ""
+        top_signame: usbdev_usb_dp_pullup
+        index: -1
+      }
+      {
+        name: usb_dnpullup_en_upwr
+        struct: logic
+        type: uni
+        act: rcv
+        width: 1
+        inst_name: pinmux_aon
+        default: ""
+        package: ""
+        top_signame: usbdev_usb_dn_pullup
+        index: -1
+      }
+      {
+        name: usb_dppullup_en
+        struct: logic
+        type: uni
+        act: req
+        width: 1
+        default: 1'b0
+        inst_name: pinmux_aon
+        package: ""
+        external: true
+        top_signame: usb_dp_pullup_en
+        conn_type: false
+        index: -1
+      }
+      {
+        name: usb_dnpullup_en
+        struct: logic
+        type: uni
+        act: req
+        width: 1
+        default: 1'b0
+        inst_name: pinmux_aon
+        package: ""
+        external: true
+        top_signame: usb_dn_pullup_en
+        conn_type: false
+        index: -1
+      }
+      {
         name: usb_wkup_req
         struct: logic
         type: uni
@@ -16347,6 +16606,7 @@
         default: ""
         external: true
         top_signame: sensor_ctrl_ast_alert
+        conn_type: false
         index: -1
       }
       {
@@ -16360,6 +16620,7 @@
         default: ""
         external: true
         top_signame: sensor_ctrl_ast_status
+        conn_type: false
         index: -1
       }
       {
@@ -16373,6 +16634,7 @@
         package: ""
         external: true
         top_signame: ast_init_done
+        conn_type: false
         index: -1
       }
       {
@@ -16386,6 +16648,7 @@
         package: ""
         external: true
         top_signame: ast2pinmux
+        conn_type: false
         index: -1
       }
       {
@@ -16534,6 +16797,7 @@
         default: ""
         external: true
         top_signame: flash_bist_enable
+        conn_type: false
         index: -1
       }
       {
@@ -16547,6 +16811,7 @@
         package: ""
         external: true
         top_signame: flash_power_down_h
+        conn_type: false
         index: -1
       }
       {
@@ -16560,6 +16825,7 @@
         package: ""
         external: true
         top_signame: flash_power_ready_h
+        conn_type: false
         index: -1
       }
       {
@@ -16573,6 +16839,7 @@
         package: ""
         external: true
         top_signame: flash_test_mode_a
+        conn_type: false
         index: -1
       }
       {
@@ -16586,6 +16853,7 @@
         package: ""
         external: true
         top_signame: flash_test_voltage_h
+        conn_type: false
         index: -1
       }
       {
@@ -16599,6 +16867,7 @@
         default: ""
         external: true
         top_signame: flash_alert
+        conn_type: false
         index: -1
       }
       {
@@ -16764,6 +17033,7 @@
         package: ""
         external: true
         top_signame: flash_obs
+        conn_type: false
         index: -1
       }
       {
@@ -17523,6 +17793,7 @@
         default: ""
         external: true
         top_signame: es_rng
+        conn_type: false
         index: -1
       }
       {
@@ -17570,6 +17841,7 @@
         package: ""
         external: true
         top_signame: es_rng_fips
+        conn_type: false
         index: -1
       }
       {
@@ -18755,6 +19027,7 @@
         default: ""
         external: true
         top_signame: ast_tl
+        conn_type: false
         index: -1
       }
       {
@@ -18769,6 +19042,7 @@
         top_signame: edn0_edn
         index: 2
         external: true
+        conn_type: true
       }
       {
         struct: lc_tx
@@ -18782,6 +19056,7 @@
         top_signame: lc_ctrl_lc_dft_en
         index: -1
         external: true
+        conn_type: true
       }
       {
         struct: ram_1p_cfg
@@ -18797,6 +19072,7 @@
         top_signame: ast_ram_1p_cfg
         index: -1
         external: true
+        conn_type: true
       }
       {
         struct: ram_2p_cfg
@@ -18812,6 +19088,7 @@
         top_signame: ast_ram_2p_cfg
         index: -1
         external: true
+        conn_type: true
       }
       {
         struct: rom_cfg
@@ -18827,6 +19104,7 @@
         top_signame: ast_rom_cfg
         index: -1
         external: true
+        conn_type: true
       }
       {
         struct: ast_obs_ctrl
@@ -18842,6 +19120,7 @@
         top_signame: ast_obs_ctrl
         index: -1
         external: true
+        conn_type: true
       }
     ]
     external:
@@ -19195,6 +19474,30 @@
         netname: dft_hold_tap_sel
       }
       {
+        package: ""
+        struct: logic
+        signame: usb_dp_pullup_en_o
+        width: 1
+        type: uni
+        default: 1'b0
+        direction: out
+        conn_type: false
+        index: -1
+        netname: usb_dp_pullup_en
+      }
+      {
+        package: ""
+        struct: logic
+        signame: usb_dn_pullup_en_o
+        width: 1
+        type: uni
+        default: 1'b0
+        direction: out
+        conn_type: false
+        index: -1
+        netname: usb_dn_pullup_en
+      }
+      {
         package: pwrmgr_pkg
         struct: pwr_ast_req
         signame: pwrmgr_ast_req_o
@@ -19365,6 +19668,78 @@
       {
         package: ""
         struct: logic
+        signame: usbdev_usb_rx_d_i
+        width: 1
+        type: uni
+        default: ""
+        direction: in
+        conn_type: false
+        index: -1
+        netname: usbdev_usb_rx_d
+      }
+      {
+        package: ""
+        struct: logic
+        signame: usbdev_usb_tx_d_o
+        width: 1
+        type: uni
+        default: ""
+        direction: out
+        conn_type: false
+        index: -1
+        netname: usbdev_usb_tx_d
+      }
+      {
+        package: ""
+        struct: logic
+        signame: usbdev_usb_tx_se0_o
+        width: 1
+        type: uni
+        default: ""
+        direction: out
+        conn_type: false
+        index: -1
+        netname: usbdev_usb_tx_se0
+      }
+      {
+        package: ""
+        struct: logic
+        signame: usbdev_usb_tx_use_d_se0_o
+        width: 1
+        type: uni
+        default: ""
+        direction: out
+        conn_type: false
+        index: -1
+        netname: usbdev_usb_tx_use_d_se0
+      }
+      {
+        package: ""
+        struct: logic
+        signame: usbdev_usb_suspend_o
+        width: 1
+        type: uni
+        default: ""
+        direction: out
+        conn_type: true
+        index: -1
+        netname: usbdev_usb_suspend
+      }
+      {
+        package: ""
+        struct: logic
+        signame: usbdev_usb_rx_enable_o
+        width: 1
+        type: uni
+        default: ""
+        direction: out
+        conn_type: false
+        index: -1
+        netname: usbdev_usb_rx_enable
+      }
+      {
+        package: ""
+        struct: logic
         signame: usbdev_usb_ref_val_o
         width: 1
         type: uni
@@ -19788,6 +20163,28 @@
       {
         package: ""
         struct: logic
+        signame: usbdev_usb_dp_pullup
+        width: 1
+        type: uni
+        end_idx: -1
+        act: req
+        suffix: ""
+        default: "'0"
+      }
+      {
+        package: ""
+        struct: logic
+        signame: usbdev_usb_dn_pullup
+        width: 1
+        type: uni
+        end_idx: -1
+        act: req
+        suffix: ""
+        default: "'0"
+      }
+      {
+        package: ""
+        struct: logic
         signame: usbdev_usb_out_of_rst
         width: 1
         type: uni
diff --git a/hw/top_earlgrey/data/top_earlgrey.hjson b/hw/top_earlgrey/data/top_earlgrey.hjson
index 80d3f0c..22089fe 100644
--- a/hw/top_earlgrey/data/top_earlgrey.hjson
+++ b/hw/top_earlgrey/data/top_earlgrey.hjson
@@ -840,6 +840,8 @@
       'csrng.entropy_src_hw_if' : ['entropy_src.entropy_src_hw_if'],
 
       // usbdev connection to pinmux
+      'usbdev.usb_dp_pullup'      : ['pinmux_aon.usb_dppullup_en_upwr'],
+      'usbdev.usb_dn_pullup'      : ['pinmux_aon.usb_dnpullup_en_upwr'],
       'usbdev.usb_out_of_rst'     : ['pinmux_aon.usb_out_of_rst'],
       'usbdev.usb_aon_wake_en'    : ['pinmux_aon.usb_aon_wake_en'],
       'usbdev.usb_aon_wake_ack'   : ['pinmux_aon.usb_aon_wake_ack'],
@@ -1016,6 +1018,8 @@
         'peri.tl_ast'                     : 'ast_tl',
         'pinmux_aon.dft_strap_test'       : 'dft_strap_test'
         'pinmux_aon.dft_hold_tap_sel'     : 'dft_hold_tap_sel',
+        'pinmux_aon.usb_dppullup_en'      : 'usb_dp_pullup_en',
+        'pinmux_aon.usb_dnpullup_en'      : 'usb_dn_pullup_en',
         'pwrmgr_aon.pwr_ast'              : 'pwrmgr_ast',
         'otp_ctrl.otp_ast_pwr_seq'        : '',
         'otp_ctrl.otp_ast_pwr_seq_h'      : '',
@@ -1028,6 +1032,12 @@
         'sensor_ctrl.ast2pinmux'          : 'ast2pinmux',
         'sensor_ctrl.ast_init_done'       : 'ast_init_done',
         'spi_device.sck_monitor'          : 'sck_monitor',
+        'usbdev.usb_rx_d'                 : '',
+        'usbdev.usb_tx_d'                 : '',
+        'usbdev.usb_tx_se0'               : '',
+        'usbdev.usb_tx_use_d_se0'         : '',
+        'usbdev.usb_suspend'              : '',
+        'usbdev.usb_rx_enable'            : '',
         'usbdev.usb_ref_val'              : '',
         'usbdev.usb_ref_pulse'            : '',
     },
@@ -1201,6 +1211,9 @@
     //         DIO is manual, there is no way to automatically infer the corresponding pad type).
     //
     signals: [
+      // USB
+      { instance: 'usbdev',          port: 'usb_dp',         connection: 'manual', pad: ''             , desc: ''},
+      { instance: 'usbdev',          port: 'usb_dn',         connection: 'manual', pad: ''             , desc: ''},
       // SPI Host0
       { instance: 'spi_host0',       port: 'sck',            connection: 'direct', pad: 'SPI_HOST_CLK' , desc: ''},
       { instance: 'spi_host0',       port: 'csb',            connection: 'direct', pad: 'SPI_HOST_CS_L', desc: ''},
@@ -1215,17 +1228,6 @@
       { instance: 'spi_device',      port: 'sd[1]',          connection: 'direct', pad: 'SPI_DEV_D1'   , desc: ''},
       { instance: 'spi_device',      port: 'sd[2]',          connection: 'direct', pad: 'SPI_DEV_D2'   , desc: ''},
       { instance: 'spi_device',      port: 'sd[3]',          connection: 'direct', pad: 'SPI_DEV_D3'   , desc: ''},
-      // USBDEV
-      // TODO: #6043
-      { instance: 'usbdev',          port: 'd',              connection: 'manual', pad: ''             , desc: '', attr: 'BidirTol'},
-      { instance: 'usbdev',          port: 'dp',             connection: 'manual', pad: ''             , desc: '', attr: 'BidirTol'},
-      { instance: 'usbdev',          port: 'dn',             connection: 'manual', pad: ''             , desc: '', attr: 'BidirTol'},
-      { instance: 'usbdev',          port: 'se0',            connection: 'manual', pad: ''             , desc: '', attr: 'BidirTol'},
-      { instance: 'usbdev',          port: 'dp_pullup',      connection: 'manual', pad: ''             , desc: '', attr: 'BidirTol'},
-      { instance: 'usbdev',          port: 'dn_pullup',      connection: 'manual', pad: ''             , desc: '', attr: 'BidirTol'},
-      { instance: 'usbdev',          port: 'tx_mode_se',     connection: 'manual', pad: ''             , desc: '', attr: 'BidirTol'},
-      { instance: 'usbdev',          port: 'suspend',        connection: 'manual', pad: ''             , desc: '', attr: 'BidirTol'},
-      { instance: 'usbdev',          port: 'rx_enable',      connection: 'manual', pad: ''             , desc: '', attr: 'BidirTol'},
       // MIOs
       { instance: "gpio",            port: '',               connection: 'muxed' , pad: ''             , desc: ''},
       { instance: "uart0",           port: '',               connection: 'muxed' , pad: ''             , desc: ''},
diff --git a/hw/top_earlgrey/dv/verilator/chip_sim_tb.sv b/hw/top_earlgrey/dv/verilator/chip_sim_tb.sv
index d92927a..171b0ac 100644
--- a/hw/top_earlgrey/dv/verilator/chip_sim_tb.sv
+++ b/hw/top_earlgrey/dv/verilator/chip_sim_tb.sv
@@ -16,11 +16,12 @@
   logic cio_spi_device_sdo_d2p, cio_spi_device_sdo_en_d2p;
 
   logic cio_usbdev_sense_p2d;
-  logic cio_usbdev_se0_d2p, cio_usbdev_se0_en_d2p;
-  logic cio_usbdev_dp_pullup_d2p, cio_usbdev_dp_pullup_en_d2p;
-  logic cio_usbdev_dn_pullup_d2p, cio_usbdev_dn_pullup_en_d2p;
-  logic cio_usbdev_tx_mode_se_d2p, cio_usbdev_tx_mode_se_en_d2p;
-  logic cio_usbdev_suspend_d2p, cio_usbdev_suspend_en_d2p;
+  logic cio_usbdev_se0_d2p;
+  logic cio_usbdev_dp_pullup_d2p;
+  logic cio_usbdev_dn_pullup_d2p;
+  logic cio_usbdev_suspend_d2p;
+  logic cio_usbdev_rx_enable_d2p;
+  logic cio_usbdev_tx_use_d_se0_d2p;
   logic cio_usbdev_d_p2d, cio_usbdev_d_d2p, cio_usbdev_d_en_d2p;
   logic cio_usbdev_dp_p2d, cio_usbdev_dp_d2p, cio_usbdev_dp_en_d2p;
   logic cio_usbdev_dn_p2d, cio_usbdev_dn_d2p, cio_usbdev_dn_en_d2p;
@@ -48,9 +49,7 @@
     // communication with USB
     .cio_usbdev_sense_p2d_i(cio_usbdev_sense_p2d),
     .cio_usbdev_dp_pullup_d2p_o(cio_usbdev_dp_pullup_d2p),
-    .cio_usbdev_dp_pullup_en_d2p_o(cio_usbdev_dp_pullup_en_d2p),
     .cio_usbdev_dn_pullup_d2p_o(cio_usbdev_dn_pullup_d2p),
-    .cio_usbdev_dn_pullup_en_d2p_o(cio_usbdev_dn_pullup_en_d2p),
     .cio_usbdev_dp_p2d_i(cio_usbdev_dp_p2d),
     .cio_usbdev_dp_d2p_o(cio_usbdev_dp_d2p),
     .cio_usbdev_dp_en_d2p_o(cio_usbdev_dp_en_d2p),
@@ -61,9 +60,9 @@
     .cio_usbdev_d_d2p_o(cio_usbdev_d_d2p),
     .cio_usbdev_d_en_d2p_o(cio_usbdev_d_en_d2p),
     .cio_usbdev_se0_d2p_o(cio_usbdev_se0_d2p),
-    .cio_usbdev_se0_en_d2p_o(cio_usbdev_se0_en_d2p),
-    .cio_usbdev_tx_mode_se_d2p_o(cio_usbdev_tx_mode_se_d2p),
-    .cio_usbdev_tx_mode_se_en_d2p_o(cio_usbdev_tx_mode_se_en_d2p)
+    .cio_usbdev_rx_enable_d2p_o(cio_usbdev_rx_enable_d2p),
+    .cio_usbdev_tx_use_d_se0_d2p_o(cio_usbdev_tx_use_d_se0_d2p),
+    .cio_usbdev_suspend_d2p_o(cio_usbdev_suspend_d2p)
   );
 
   // GPIO DPI
@@ -142,9 +141,7 @@
     .clk_48MHz_i     (clk_i),
     .sense_p2d       (cio_usbdev_sense_p2d),
     .pullupdp_d2p    (cio_usbdev_dp_pullup_d2p),
-    .pullupdp_en_d2p (cio_usbdev_dp_pullup_en_d2p),
     .pullupdn_d2p    (cio_usbdev_dn_pullup_d2p),
-    .pullupdn_en_d2p (cio_usbdev_dn_pullup_en_d2p),
     .dp_p2d          (cio_usbdev_dp_p2d),
     .dp_d2p          (cio_usbdev_dp_d2p),
     .dp_en_d2p       (cio_usbdev_dp_en_d2p),
@@ -155,9 +152,8 @@
     .d_d2p           (cio_usbdev_d_d2p),
     .d_en_d2p        (cio_usbdev_d_en_d2p),
     .se0_d2p         (cio_usbdev_se0_d2p),
-    .se0_en_d2p      (cio_usbdev_se0_en_d2p),
-    .txmode_d2p      (cio_usbdev_tx_mode_se_d2p),
-    .txmode_en_d2p   (cio_usbdev_tx_mode_se_en_d2p)
+    .rx_enable_d2p   (cio_usbdev_rx_enable_d2p),
+    .tx_use_d_se0_d2p(cio_usbdev_tx_use_d_se0_d2p)
   );
 
   `define RV_CORE_IBEX      u_dut.top_earlgrey.u_rv_core_ibex
diff --git a/hw/top_earlgrey/ip/pinmux/data/autogen/pinmux.hjson b/hw/top_earlgrey/ip/pinmux/data/autogen/pinmux.hjson
index 485829e..ed8667f 100644
--- a/hw/top_earlgrey/ip/pinmux/data/autogen/pinmux.hjson
+++ b/hw/top_earlgrey/ip/pinmux/data/autogen/pinmux.hjson
@@ -112,6 +112,36 @@
       package: "",
       default: "1'b0"
     },
+    { name:    "usb_dppullup_en_upwr",
+      type:    "uni",
+      act:     "rcv",
+      package: "",
+      struct:  "logic",
+      width:   "1"
+    },
+    { name:    "usb_dnpullup_en_upwr",
+      type:    "uni",
+      act:     "rcv",
+      package: "",
+      struct:  "logic",
+      width:   "1"
+    },
+    { name:    "usb_dppullup_en",
+      type:    "uni",
+      act:     "req",
+      package: "",
+      struct:  "logic",
+      width:   "1"
+      default: "1'b0"
+    },
+    { name:    "usb_dnpullup_en",
+      type:    "uni",
+      act:     "req",
+      package: "",
+      struct:  "logic",
+      width:   "1"
+      default: "1'b0"
+    },
     { struct:  "logic",
       type:    "uni",
       name:    "usb_wkup_req",
@@ -199,7 +229,7 @@
     { name: "NDioPads",
       desc: "Number of dedicated IO pads",
       type: "int",
-      default: "23",
+      default: "16",
       local: "true"
     },
     { name: "NWkupDetect",
diff --git a/hw/top_earlgrey/ip/pinmux/doc/autogen/pinout_asic.md b/hw/top_earlgrey/ip/pinmux/doc/autogen/pinout_asic.md
index 03fe2e6..a28a368 100644
--- a/hw/top_earlgrey/ip/pinmux/doc/autogen/pinout_asic.md
+++ b/hw/top_earlgrey/ip/pinmux/doc/autogen/pinout_asic.md
@@ -87,6 +87,8 @@
 
 |       <p style="font-size:smaller">Module / Signal</p>        |  <p style="font-size:smaller">Connection</p>  |      <p style="font-size:smaller">Pad</p>      |                 <p style="font-size:smaller">Pinmux Outsel Constant / Peripheral Input Index</p>                 |  <p style="font-size:smaller">Description</p>  |
 |:-------------------------------------------------------------:|:---------------------------------------------:|:----------------------------------------------:|:----------------------------------------------------------------------------------------------------------------:|:----------------------------------------------:|
+|        <p style="font-size:smaller">usbdev_usb_dp</p>         |    <p style="font-size:smaller">manual</p>    |       <p style="font-size:smaller">-</p>       |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
+|        <p style="font-size:smaller">usbdev_usb_dn</p>         |    <p style="font-size:smaller">manual</p>    |       <p style="font-size:smaller">-</p>       |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
 |       <p style="font-size:smaller">spi_host0_sd[0]</p>        |    <p style="font-size:smaller">direct</p>    |  <p style="font-size:smaller">SPI_HOST_D0</p>  |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
 |       <p style="font-size:smaller">spi_host0_sd[1]</p>        |    <p style="font-size:smaller">direct</p>    |  <p style="font-size:smaller">SPI_HOST_D1</p>  |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
 |       <p style="font-size:smaller">spi_host0_sd[2]</p>        |    <p style="font-size:smaller">direct</p>    |  <p style="font-size:smaller">SPI_HOST_D2</p>  |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
@@ -95,9 +97,6 @@
 |       <p style="font-size:smaller">spi_device_sd[1]</p>       |    <p style="font-size:smaller">direct</p>    |  <p style="font-size:smaller">SPI_DEV_D1</p>   |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
 |       <p style="font-size:smaller">spi_device_sd[2]</p>       |    <p style="font-size:smaller">direct</p>    |  <p style="font-size:smaller">SPI_DEV_D2</p>   |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
 |       <p style="font-size:smaller">spi_device_sd[3]</p>       |    <p style="font-size:smaller">direct</p>    |  <p style="font-size:smaller">SPI_DEV_D3</p>   |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
-|           <p style="font-size:smaller">usbdev_d</p>           |    <p style="font-size:smaller">manual</p>    |       <p style="font-size:smaller">-</p>       |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
-|          <p style="font-size:smaller">usbdev_dp</p>           |    <p style="font-size:smaller">manual</p>    |       <p style="font-size:smaller">-</p>       |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
-|          <p style="font-size:smaller">usbdev_dn</p>           |    <p style="font-size:smaller">manual</p>    |       <p style="font-size:smaller">-</p>       |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
 |         <p style="font-size:smaller">gpio_gpio[0]</p>         |    <p style="font-size:smaller">muxed</p>     |       <p style="font-size:smaller">-</p>       |   <p style="font-size:smaller">kTopEarlgreyPinmuxOutselGpioGpio0 / kTopEarlgreyPinmuxPeripheralInGpioGpio0</p>   |       <p style="font-size:smaller"></p>        |
 |         <p style="font-size:smaller">gpio_gpio[1]</p>         |    <p style="font-size:smaller">muxed</p>     |       <p style="font-size:smaller">-</p>       |   <p style="font-size:smaller">kTopEarlgreyPinmuxOutselGpioGpio1 / kTopEarlgreyPinmuxPeripheralInGpioGpio1</p>   |       <p style="font-size:smaller"></p>        |
 |         <p style="font-size:smaller">gpio_gpio[2]</p>         |    <p style="font-size:smaller">muxed</p>     |       <p style="font-size:smaller">-</p>       |   <p style="font-size:smaller">kTopEarlgreyPinmuxOutselGpioGpio2 / kTopEarlgreyPinmuxPeripheralInGpioGpio2</p>   |       <p style="font-size:smaller"></p>        |
@@ -161,12 +160,6 @@
 |         <p style="font-size:smaller">usbdev_sense</p>         |    <p style="font-size:smaller">muxed</p>     |       <p style="font-size:smaller">-</p>       |                  <p style="font-size:smaller">- / kTopEarlgreyPinmuxPeripheralInUsbdevSense</p>                  |       <p style="font-size:smaller"></p>        |
 |        <p style="font-size:smaller">spi_host0_sck</p>         |    <p style="font-size:smaller">direct</p>    | <p style="font-size:smaller">SPI_HOST_CLK</p>  |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
 |        <p style="font-size:smaller">spi_host0_csb</p>         |    <p style="font-size:smaller">direct</p>    | <p style="font-size:smaller">SPI_HOST_CS_L</p> |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
-|          <p style="font-size:smaller">usbdev_se0</p>          |    <p style="font-size:smaller">manual</p>    |       <p style="font-size:smaller">-</p>       |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
-|       <p style="font-size:smaller">usbdev_dp_pullup</p>       |    <p style="font-size:smaller">manual</p>    |       <p style="font-size:smaller">-</p>       |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
-|       <p style="font-size:smaller">usbdev_dn_pullup</p>       |    <p style="font-size:smaller">manual</p>    |       <p style="font-size:smaller">-</p>       |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
-|      <p style="font-size:smaller">usbdev_tx_mode_se</p>       |    <p style="font-size:smaller">manual</p>    |       <p style="font-size:smaller">-</p>       |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
-|        <p style="font-size:smaller">usbdev_suspend</p>        |    <p style="font-size:smaller">manual</p>    |       <p style="font-size:smaller">-</p>       |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
-|       <p style="font-size:smaller">usbdev_rx_enable</p>       |    <p style="font-size:smaller">manual</p>    |       <p style="font-size:smaller">-</p>       |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
 |           <p style="font-size:smaller">uart0_tx</p>           |    <p style="font-size:smaller">muxed</p>     |       <p style="font-size:smaller">-</p>       |                       <p style="font-size:smaller">kTopEarlgreyPinmuxOutselUart0Tx / -</p>                       |       <p style="font-size:smaller"></p>        |
 |           <p style="font-size:smaller">uart1_tx</p>           |    <p style="font-size:smaller">muxed</p>     |       <p style="font-size:smaller">-</p>       |                       <p style="font-size:smaller">kTopEarlgreyPinmuxOutselUart1Tx / -</p>                       |       <p style="font-size:smaller"></p>        |
 |           <p style="font-size:smaller">uart2_tx</p>           |    <p style="font-size:smaller">muxed</p>     |       <p style="font-size:smaller">-</p>       |                       <p style="font-size:smaller">kTopEarlgreyPinmuxOutselUart2Tx / -</p>                       |       <p style="font-size:smaller"></p>        |
diff --git a/hw/top_earlgrey/ip/pinmux/doc/autogen/pinout_cw310.md b/hw/top_earlgrey/ip/pinmux/doc/autogen/pinout_cw310.md
index 8a90142..67fd6b4 100644
--- a/hw/top_earlgrey/ip/pinmux/doc/autogen/pinout_cw310.md
+++ b/hw/top_earlgrey/ip/pinmux/doc/autogen/pinout_cw310.md
@@ -70,6 +70,8 @@
 
 |       <p style="font-size:smaller">Module / Signal</p>        |  <p style="font-size:smaller">Connection</p>  |      <p style="font-size:smaller">Pad</p>      |                 <p style="font-size:smaller">Pinmux Outsel Constant / Peripheral Input Index</p>                 |  <p style="font-size:smaller">Description</p>  |
 |:-------------------------------------------------------------:|:---------------------------------------------:|:----------------------------------------------:|:----------------------------------------------------------------------------------------------------------------:|:----------------------------------------------:|
+|        <p style="font-size:smaller">usbdev_usb_dp</p>         |    <p style="font-size:smaller">manual</p>    |       <p style="font-size:smaller">-</p>       |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
+|        <p style="font-size:smaller">usbdev_usb_dn</p>         |    <p style="font-size:smaller">manual</p>    |       <p style="font-size:smaller">-</p>       |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
 |       <p style="font-size:smaller">spi_host0_sd[0]</p>        |    <p style="font-size:smaller">direct</p>    |  <p style="font-size:smaller">SPI_HOST_D0</p>  |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
 |       <p style="font-size:smaller">spi_host0_sd[1]</p>        |    <p style="font-size:smaller">direct</p>    |  <p style="font-size:smaller">SPI_HOST_D1</p>  |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
 |       <p style="font-size:smaller">spi_host0_sd[2]</p>        |    <p style="font-size:smaller">direct</p>    |  <p style="font-size:smaller">SPI_HOST_D2</p>  |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
@@ -78,9 +80,6 @@
 |       <p style="font-size:smaller">spi_device_sd[1]</p>       |    <p style="font-size:smaller">direct</p>    |  <p style="font-size:smaller">SPI_DEV_D1</p>   |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
 |       <p style="font-size:smaller">spi_device_sd[2]</p>       |    <p style="font-size:smaller">direct</p>    |  <p style="font-size:smaller">SPI_DEV_D2</p>   |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
 |       <p style="font-size:smaller">spi_device_sd[3]</p>       |    <p style="font-size:smaller">direct</p>    |  <p style="font-size:smaller">SPI_DEV_D3</p>   |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
-|           <p style="font-size:smaller">usbdev_d</p>           |    <p style="font-size:smaller">manual</p>    |       <p style="font-size:smaller">-</p>       |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
-|          <p style="font-size:smaller">usbdev_dp</p>           |    <p style="font-size:smaller">manual</p>    |       <p style="font-size:smaller">-</p>       |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
-|          <p style="font-size:smaller">usbdev_dn</p>           |    <p style="font-size:smaller">manual</p>    |       <p style="font-size:smaller">-</p>       |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
 |         <p style="font-size:smaller">gpio_gpio[0]</p>         |    <p style="font-size:smaller">muxed</p>     |       <p style="font-size:smaller">-</p>       |   <p style="font-size:smaller">kTopEarlgreyPinmuxOutselGpioGpio0 / kTopEarlgreyPinmuxPeripheralInGpioGpio0</p>   |       <p style="font-size:smaller"></p>        |
 |         <p style="font-size:smaller">gpio_gpio[1]</p>         |    <p style="font-size:smaller">muxed</p>     |       <p style="font-size:smaller">-</p>       |   <p style="font-size:smaller">kTopEarlgreyPinmuxOutselGpioGpio1 / kTopEarlgreyPinmuxPeripheralInGpioGpio1</p>   |       <p style="font-size:smaller"></p>        |
 |         <p style="font-size:smaller">gpio_gpio[2]</p>         |    <p style="font-size:smaller">muxed</p>     |       <p style="font-size:smaller">-</p>       |   <p style="font-size:smaller">kTopEarlgreyPinmuxOutselGpioGpio2 / kTopEarlgreyPinmuxPeripheralInGpioGpio2</p>   |       <p style="font-size:smaller"></p>        |
@@ -144,12 +143,6 @@
 |         <p style="font-size:smaller">usbdev_sense</p>         |    <p style="font-size:smaller">muxed</p>     |       <p style="font-size:smaller">-</p>       |                  <p style="font-size:smaller">- / kTopEarlgreyPinmuxPeripheralInUsbdevSense</p>                  |       <p style="font-size:smaller"></p>        |
 |        <p style="font-size:smaller">spi_host0_sck</p>         |    <p style="font-size:smaller">direct</p>    | <p style="font-size:smaller">SPI_HOST_CLK</p>  |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
 |        <p style="font-size:smaller">spi_host0_csb</p>         |    <p style="font-size:smaller">direct</p>    | <p style="font-size:smaller">SPI_HOST_CS_L</p> |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
-|          <p style="font-size:smaller">usbdev_se0</p>          |    <p style="font-size:smaller">manual</p>    |       <p style="font-size:smaller">-</p>       |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
-|       <p style="font-size:smaller">usbdev_dp_pullup</p>       |    <p style="font-size:smaller">manual</p>    |       <p style="font-size:smaller">-</p>       |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
-|       <p style="font-size:smaller">usbdev_dn_pullup</p>       |    <p style="font-size:smaller">manual</p>    |       <p style="font-size:smaller">-</p>       |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
-|      <p style="font-size:smaller">usbdev_tx_mode_se</p>       |    <p style="font-size:smaller">manual</p>    |       <p style="font-size:smaller">-</p>       |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
-|        <p style="font-size:smaller">usbdev_suspend</p>        |    <p style="font-size:smaller">manual</p>    |       <p style="font-size:smaller">-</p>       |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
-|       <p style="font-size:smaller">usbdev_rx_enable</p>       |    <p style="font-size:smaller">manual</p>    |       <p style="font-size:smaller">-</p>       |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
 |           <p style="font-size:smaller">uart0_tx</p>           |    <p style="font-size:smaller">muxed</p>     |       <p style="font-size:smaller">-</p>       |                       <p style="font-size:smaller">kTopEarlgreyPinmuxOutselUart0Tx / -</p>                       |       <p style="font-size:smaller"></p>        |
 |           <p style="font-size:smaller">uart1_tx</p>           |    <p style="font-size:smaller">muxed</p>     |       <p style="font-size:smaller">-</p>       |                       <p style="font-size:smaller">kTopEarlgreyPinmuxOutselUart1Tx / -</p>                       |       <p style="font-size:smaller"></p>        |
 |           <p style="font-size:smaller">uart2_tx</p>           |    <p style="font-size:smaller">muxed</p>     |       <p style="font-size:smaller">-</p>       |                       <p style="font-size:smaller">kTopEarlgreyPinmuxOutselUart2Tx / -</p>                       |       <p style="font-size:smaller"></p>        |
diff --git a/hw/top_earlgrey/ip/pinmux/doc/autogen/pinout_nexysvideo.md b/hw/top_earlgrey/ip/pinmux/doc/autogen/pinout_nexysvideo.md
index d649fc6..fb774d2 100644
--- a/hw/top_earlgrey/ip/pinmux/doc/autogen/pinout_nexysvideo.md
+++ b/hw/top_earlgrey/ip/pinmux/doc/autogen/pinout_nexysvideo.md
@@ -65,6 +65,8 @@
 
 |       <p style="font-size:smaller">Module / Signal</p>        |  <p style="font-size:smaller">Connection</p>  |      <p style="font-size:smaller">Pad</p>      |                 <p style="font-size:smaller">Pinmux Outsel Constant / Peripheral Input Index</p>                 |  <p style="font-size:smaller">Description</p>  |
 |:-------------------------------------------------------------:|:---------------------------------------------:|:----------------------------------------------:|:----------------------------------------------------------------------------------------------------------------:|:----------------------------------------------:|
+|        <p style="font-size:smaller">usbdev_usb_dp</p>         |    <p style="font-size:smaller">manual</p>    |       <p style="font-size:smaller">-</p>       |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
+|        <p style="font-size:smaller">usbdev_usb_dn</p>         |    <p style="font-size:smaller">manual</p>    |       <p style="font-size:smaller">-</p>       |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
 |       <p style="font-size:smaller">spi_host0_sd[0]</p>        |    <p style="font-size:smaller">direct</p>    |  <p style="font-size:smaller">SPI_HOST_D0</p>  |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
 |       <p style="font-size:smaller">spi_host0_sd[1]</p>        |    <p style="font-size:smaller">direct</p>    |  <p style="font-size:smaller">SPI_HOST_D1</p>  |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
 |       <p style="font-size:smaller">spi_host0_sd[2]</p>        |    <p style="font-size:smaller">direct</p>    |  <p style="font-size:smaller">SPI_HOST_D2</p>  |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
@@ -73,9 +75,6 @@
 |       <p style="font-size:smaller">spi_device_sd[1]</p>       |    <p style="font-size:smaller">direct</p>    |  <p style="font-size:smaller">SPI_DEV_D1</p>   |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
 |       <p style="font-size:smaller">spi_device_sd[2]</p>       |    <p style="font-size:smaller">direct</p>    |  <p style="font-size:smaller">SPI_DEV_D2</p>   |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
 |       <p style="font-size:smaller">spi_device_sd[3]</p>       |    <p style="font-size:smaller">direct</p>    |  <p style="font-size:smaller">SPI_DEV_D3</p>   |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
-|           <p style="font-size:smaller">usbdev_d</p>           |    <p style="font-size:smaller">manual</p>    |       <p style="font-size:smaller">-</p>       |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
-|          <p style="font-size:smaller">usbdev_dp</p>           |    <p style="font-size:smaller">manual</p>    |       <p style="font-size:smaller">-</p>       |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
-|          <p style="font-size:smaller">usbdev_dn</p>           |    <p style="font-size:smaller">manual</p>    |       <p style="font-size:smaller">-</p>       |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
 |         <p style="font-size:smaller">gpio_gpio[0]</p>         |    <p style="font-size:smaller">muxed</p>     |       <p style="font-size:smaller">-</p>       |   <p style="font-size:smaller">kTopEarlgreyPinmuxOutselGpioGpio0 / kTopEarlgreyPinmuxPeripheralInGpioGpio0</p>   |       <p style="font-size:smaller"></p>        |
 |         <p style="font-size:smaller">gpio_gpio[1]</p>         |    <p style="font-size:smaller">muxed</p>     |       <p style="font-size:smaller">-</p>       |   <p style="font-size:smaller">kTopEarlgreyPinmuxOutselGpioGpio1 / kTopEarlgreyPinmuxPeripheralInGpioGpio1</p>   |       <p style="font-size:smaller"></p>        |
 |         <p style="font-size:smaller">gpio_gpio[2]</p>         |    <p style="font-size:smaller">muxed</p>     |       <p style="font-size:smaller">-</p>       |   <p style="font-size:smaller">kTopEarlgreyPinmuxOutselGpioGpio2 / kTopEarlgreyPinmuxPeripheralInGpioGpio2</p>   |       <p style="font-size:smaller"></p>        |
@@ -139,12 +138,6 @@
 |         <p style="font-size:smaller">usbdev_sense</p>         |    <p style="font-size:smaller">muxed</p>     |       <p style="font-size:smaller">-</p>       |                  <p style="font-size:smaller">- / kTopEarlgreyPinmuxPeripheralInUsbdevSense</p>                  |       <p style="font-size:smaller"></p>        |
 |        <p style="font-size:smaller">spi_host0_sck</p>         |    <p style="font-size:smaller">direct</p>    | <p style="font-size:smaller">SPI_HOST_CLK</p>  |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
 |        <p style="font-size:smaller">spi_host0_csb</p>         |    <p style="font-size:smaller">direct</p>    | <p style="font-size:smaller">SPI_HOST_CS_L</p> |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
-|          <p style="font-size:smaller">usbdev_se0</p>          |    <p style="font-size:smaller">manual</p>    |       <p style="font-size:smaller">-</p>       |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
-|       <p style="font-size:smaller">usbdev_dp_pullup</p>       |    <p style="font-size:smaller">manual</p>    |       <p style="font-size:smaller">-</p>       |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
-|       <p style="font-size:smaller">usbdev_dn_pullup</p>       |    <p style="font-size:smaller">manual</p>    |       <p style="font-size:smaller">-</p>       |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
-|      <p style="font-size:smaller">usbdev_tx_mode_se</p>       |    <p style="font-size:smaller">manual</p>    |       <p style="font-size:smaller">-</p>       |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
-|        <p style="font-size:smaller">usbdev_suspend</p>        |    <p style="font-size:smaller">manual</p>    |       <p style="font-size:smaller">-</p>       |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
-|       <p style="font-size:smaller">usbdev_rx_enable</p>       |    <p style="font-size:smaller">manual</p>    |       <p style="font-size:smaller">-</p>       |                                      <p style="font-size:smaller">- / -</p>                                      |       <p style="font-size:smaller"></p>        |
 |           <p style="font-size:smaller">uart0_tx</p>           |    <p style="font-size:smaller">muxed</p>     |       <p style="font-size:smaller">-</p>       |                       <p style="font-size:smaller">kTopEarlgreyPinmuxOutselUart0Tx / -</p>                       |       <p style="font-size:smaller"></p>        |
 |           <p style="font-size:smaller">uart1_tx</p>           |    <p style="font-size:smaller">muxed</p>     |       <p style="font-size:smaller">-</p>       |                       <p style="font-size:smaller">kTopEarlgreyPinmuxOutselUart1Tx / -</p>                       |       <p style="font-size:smaller"></p>        |
 |           <p style="font-size:smaller">uart2_tx</p>           |    <p style="font-size:smaller">muxed</p>     |       <p style="font-size:smaller">-</p>       |                       <p style="font-size:smaller">kTopEarlgreyPinmuxOutselUart2Tx / -</p>                       |       <p style="font-size:smaller"></p>        |
diff --git a/hw/top_earlgrey/ip/pinmux/rtl/autogen/pinmux_reg_pkg.sv b/hw/top_earlgrey/ip/pinmux/rtl/autogen/pinmux_reg_pkg.sv
index 1ffe79d..daf9345 100644
--- a/hw/top_earlgrey/ip/pinmux/rtl/autogen/pinmux_reg_pkg.sv
+++ b/hw/top_earlgrey/ip/pinmux/rtl/autogen/pinmux_reg_pkg.sv
@@ -11,7 +11,7 @@
   parameter int NMioPeriphIn = 57;
   parameter int NMioPeriphOut = 75;
   parameter int NMioPads = 47;
-  parameter int NDioPads = 23;
+  parameter int NDioPads = 16;
   parameter int NWkupDetect = 8;
   parameter int WkupCntWidth = 8;
   parameter int NumAlerts = 1;
@@ -123,17 +123,17 @@
 
   // Register -> HW type
   typedef struct packed {
-    pinmux_reg2hw_alert_test_reg_t alert_test; // [2100:2099]
-    pinmux_reg2hw_mio_periph_insel_mreg_t [56:0] mio_periph_insel; // [2098:1757]
-    pinmux_reg2hw_mio_outsel_mreg_t [46:0] mio_outsel; // [1756:1428]
-    pinmux_reg2hw_mio_pad_attr_mreg_t [46:0] mio_pad_attr; // [1427:770]
-    pinmux_reg2hw_dio_pad_attr_mreg_t [22:0] dio_pad_attr; // [769:448]
-    pinmux_reg2hw_mio_pad_sleep_status_mreg_t [46:0] mio_pad_sleep_status; // [447:401]
-    pinmux_reg2hw_mio_pad_sleep_en_mreg_t [46:0] mio_pad_sleep_en; // [400:354]
-    pinmux_reg2hw_mio_pad_sleep_mode_mreg_t [46:0] mio_pad_sleep_mode; // [353:260]
-    pinmux_reg2hw_dio_pad_sleep_status_mreg_t [22:0] dio_pad_sleep_status; // [259:237]
-    pinmux_reg2hw_dio_pad_sleep_en_mreg_t [22:0] dio_pad_sleep_en; // [236:214]
-    pinmux_reg2hw_dio_pad_sleep_mode_mreg_t [22:0] dio_pad_sleep_mode; // [213:168]
+    pinmux_reg2hw_alert_test_reg_t alert_test; // [1974:1973]
+    pinmux_reg2hw_mio_periph_insel_mreg_t [56:0] mio_periph_insel; // [1972:1631]
+    pinmux_reg2hw_mio_outsel_mreg_t [46:0] mio_outsel; // [1630:1302]
+    pinmux_reg2hw_mio_pad_attr_mreg_t [46:0] mio_pad_attr; // [1301:644]
+    pinmux_reg2hw_dio_pad_attr_mreg_t [15:0] dio_pad_attr; // [643:420]
+    pinmux_reg2hw_mio_pad_sleep_status_mreg_t [46:0] mio_pad_sleep_status; // [419:373]
+    pinmux_reg2hw_mio_pad_sleep_en_mreg_t [46:0] mio_pad_sleep_en; // [372:326]
+    pinmux_reg2hw_mio_pad_sleep_mode_mreg_t [46:0] mio_pad_sleep_mode; // [325:232]
+    pinmux_reg2hw_dio_pad_sleep_status_mreg_t [15:0] dio_pad_sleep_status; // [231:216]
+    pinmux_reg2hw_dio_pad_sleep_en_mreg_t [15:0] dio_pad_sleep_en; // [215:200]
+    pinmux_reg2hw_dio_pad_sleep_mode_mreg_t [15:0] dio_pad_sleep_mode; // [199:168]
     pinmux_reg2hw_wkup_detector_en_mreg_t [7:0] wkup_detector_en; // [167:160]
     pinmux_reg2hw_wkup_detector_mreg_t [7:0] wkup_detector; // [159:120]
     pinmux_reg2hw_wkup_detector_cnt_th_mreg_t [7:0] wkup_detector_cnt_th; // [119:56]
@@ -143,10 +143,10 @@
 
   // HW -> register type
   typedef struct packed {
-    pinmux_hw2reg_mio_pad_attr_mreg_t [46:0] mio_pad_attr; // [1065:455]
-    pinmux_hw2reg_dio_pad_attr_mreg_t [22:0] dio_pad_attr; // [454:156]
-    pinmux_hw2reg_mio_pad_sleep_status_mreg_t [46:0] mio_pad_sleep_status; // [155:62]
-    pinmux_hw2reg_dio_pad_sleep_status_mreg_t [22:0] dio_pad_sleep_status; // [61:16]
+    pinmux_hw2reg_mio_pad_attr_mreg_t [46:0] mio_pad_attr; // [960:350]
+    pinmux_hw2reg_dio_pad_attr_mreg_t [15:0] dio_pad_attr; // [349:142]
+    pinmux_hw2reg_mio_pad_sleep_status_mreg_t [46:0] mio_pad_sleep_status; // [141:48]
+    pinmux_hw2reg_dio_pad_sleep_status_mreg_t [15:0] dio_pad_sleep_status; // [47:16]
     pinmux_hw2reg_wkup_cause_mreg_t [7:0] wkup_cause; // [15:0]
   } pinmux_hw2reg_t;
 
@@ -470,290 +470,255 @@
   parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_REGWEN_13_OFFSET = 12'h 4f0;
   parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_REGWEN_14_OFFSET = 12'h 4f4;
   parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_REGWEN_15_OFFSET = 12'h 4f8;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_REGWEN_16_OFFSET = 12'h 4fc;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_REGWEN_17_OFFSET = 12'h 500;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_REGWEN_18_OFFSET = 12'h 504;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_REGWEN_19_OFFSET = 12'h 508;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_REGWEN_20_OFFSET = 12'h 50c;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_REGWEN_21_OFFSET = 12'h 510;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_REGWEN_22_OFFSET = 12'h 514;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_0_OFFSET = 12'h 518;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_1_OFFSET = 12'h 51c;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_2_OFFSET = 12'h 520;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_3_OFFSET = 12'h 524;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_4_OFFSET = 12'h 528;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_5_OFFSET = 12'h 52c;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_6_OFFSET = 12'h 530;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_7_OFFSET = 12'h 534;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_8_OFFSET = 12'h 538;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_9_OFFSET = 12'h 53c;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_10_OFFSET = 12'h 540;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_11_OFFSET = 12'h 544;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_12_OFFSET = 12'h 548;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_13_OFFSET = 12'h 54c;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_14_OFFSET = 12'h 550;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_15_OFFSET = 12'h 554;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_16_OFFSET = 12'h 558;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_17_OFFSET = 12'h 55c;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_18_OFFSET = 12'h 560;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_19_OFFSET = 12'h 564;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_20_OFFSET = 12'h 568;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_21_OFFSET = 12'h 56c;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_22_OFFSET = 12'h 570;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_STATUS_0_OFFSET = 12'h 574;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_STATUS_1_OFFSET = 12'h 578;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_0_OFFSET = 12'h 57c;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_1_OFFSET = 12'h 580;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_2_OFFSET = 12'h 584;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_3_OFFSET = 12'h 588;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_4_OFFSET = 12'h 58c;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_5_OFFSET = 12'h 590;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_6_OFFSET = 12'h 594;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_7_OFFSET = 12'h 598;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_8_OFFSET = 12'h 59c;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_9_OFFSET = 12'h 5a0;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_10_OFFSET = 12'h 5a4;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_11_OFFSET = 12'h 5a8;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_12_OFFSET = 12'h 5ac;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_13_OFFSET = 12'h 5b0;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_14_OFFSET = 12'h 5b4;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_15_OFFSET = 12'h 5b8;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_16_OFFSET = 12'h 5bc;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_17_OFFSET = 12'h 5c0;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_18_OFFSET = 12'h 5c4;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_19_OFFSET = 12'h 5c8;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_20_OFFSET = 12'h 5cc;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_21_OFFSET = 12'h 5d0;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_22_OFFSET = 12'h 5d4;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_23_OFFSET = 12'h 5d8;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_24_OFFSET = 12'h 5dc;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_25_OFFSET = 12'h 5e0;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_26_OFFSET = 12'h 5e4;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_27_OFFSET = 12'h 5e8;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_28_OFFSET = 12'h 5ec;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_29_OFFSET = 12'h 5f0;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_30_OFFSET = 12'h 5f4;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_31_OFFSET = 12'h 5f8;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_32_OFFSET = 12'h 5fc;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_33_OFFSET = 12'h 600;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_34_OFFSET = 12'h 604;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_35_OFFSET = 12'h 608;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_36_OFFSET = 12'h 60c;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_37_OFFSET = 12'h 610;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_38_OFFSET = 12'h 614;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_39_OFFSET = 12'h 618;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_40_OFFSET = 12'h 61c;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_41_OFFSET = 12'h 620;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_42_OFFSET = 12'h 624;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_43_OFFSET = 12'h 628;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_44_OFFSET = 12'h 62c;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_45_OFFSET = 12'h 630;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_46_OFFSET = 12'h 634;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_0_OFFSET = 12'h 638;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_1_OFFSET = 12'h 63c;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_2_OFFSET = 12'h 640;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_3_OFFSET = 12'h 644;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_4_OFFSET = 12'h 648;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_5_OFFSET = 12'h 64c;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_6_OFFSET = 12'h 650;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_7_OFFSET = 12'h 654;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_8_OFFSET = 12'h 658;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_9_OFFSET = 12'h 65c;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_10_OFFSET = 12'h 660;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_11_OFFSET = 12'h 664;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_12_OFFSET = 12'h 668;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_13_OFFSET = 12'h 66c;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_14_OFFSET = 12'h 670;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_15_OFFSET = 12'h 674;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_16_OFFSET = 12'h 678;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_17_OFFSET = 12'h 67c;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_18_OFFSET = 12'h 680;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_19_OFFSET = 12'h 684;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_20_OFFSET = 12'h 688;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_21_OFFSET = 12'h 68c;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_22_OFFSET = 12'h 690;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_23_OFFSET = 12'h 694;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_24_OFFSET = 12'h 698;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_25_OFFSET = 12'h 69c;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_26_OFFSET = 12'h 6a0;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_27_OFFSET = 12'h 6a4;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_28_OFFSET = 12'h 6a8;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_29_OFFSET = 12'h 6ac;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_30_OFFSET = 12'h 6b0;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_31_OFFSET = 12'h 6b4;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_32_OFFSET = 12'h 6b8;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_33_OFFSET = 12'h 6bc;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_34_OFFSET = 12'h 6c0;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_35_OFFSET = 12'h 6c4;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_36_OFFSET = 12'h 6c8;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_37_OFFSET = 12'h 6cc;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_38_OFFSET = 12'h 6d0;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_39_OFFSET = 12'h 6d4;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_40_OFFSET = 12'h 6d8;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_41_OFFSET = 12'h 6dc;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_42_OFFSET = 12'h 6e0;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_43_OFFSET = 12'h 6e4;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_44_OFFSET = 12'h 6e8;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_45_OFFSET = 12'h 6ec;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_46_OFFSET = 12'h 6f0;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_0_OFFSET = 12'h 6f4;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_1_OFFSET = 12'h 6f8;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_2_OFFSET = 12'h 6fc;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_3_OFFSET = 12'h 700;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_4_OFFSET = 12'h 704;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_5_OFFSET = 12'h 708;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_6_OFFSET = 12'h 70c;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_7_OFFSET = 12'h 710;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_8_OFFSET = 12'h 714;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_9_OFFSET = 12'h 718;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_10_OFFSET = 12'h 71c;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_11_OFFSET = 12'h 720;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_12_OFFSET = 12'h 724;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_13_OFFSET = 12'h 728;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_14_OFFSET = 12'h 72c;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_15_OFFSET = 12'h 730;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_16_OFFSET = 12'h 734;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_17_OFFSET = 12'h 738;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_18_OFFSET = 12'h 73c;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_19_OFFSET = 12'h 740;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_20_OFFSET = 12'h 744;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_21_OFFSET = 12'h 748;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_22_OFFSET = 12'h 74c;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_23_OFFSET = 12'h 750;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_24_OFFSET = 12'h 754;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_25_OFFSET = 12'h 758;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_26_OFFSET = 12'h 75c;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_27_OFFSET = 12'h 760;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_28_OFFSET = 12'h 764;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_29_OFFSET = 12'h 768;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_30_OFFSET = 12'h 76c;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_31_OFFSET = 12'h 770;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_32_OFFSET = 12'h 774;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_33_OFFSET = 12'h 778;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_34_OFFSET = 12'h 77c;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_35_OFFSET = 12'h 780;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_36_OFFSET = 12'h 784;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_37_OFFSET = 12'h 788;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_38_OFFSET = 12'h 78c;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_39_OFFSET = 12'h 790;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_40_OFFSET = 12'h 794;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_41_OFFSET = 12'h 798;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_42_OFFSET = 12'h 79c;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_43_OFFSET = 12'h 7a0;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_44_OFFSET = 12'h 7a4;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_45_OFFSET = 12'h 7a8;
-  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_46_OFFSET = 12'h 7ac;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_STATUS_OFFSET = 12'h 7b0;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_REGWEN_0_OFFSET = 12'h 7b4;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_REGWEN_1_OFFSET = 12'h 7b8;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_REGWEN_2_OFFSET = 12'h 7bc;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_REGWEN_3_OFFSET = 12'h 7c0;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_REGWEN_4_OFFSET = 12'h 7c4;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_REGWEN_5_OFFSET = 12'h 7c8;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_REGWEN_6_OFFSET = 12'h 7cc;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_REGWEN_7_OFFSET = 12'h 7d0;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_REGWEN_8_OFFSET = 12'h 7d4;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_REGWEN_9_OFFSET = 12'h 7d8;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_REGWEN_10_OFFSET = 12'h 7dc;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_REGWEN_11_OFFSET = 12'h 7e0;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_REGWEN_12_OFFSET = 12'h 7e4;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_REGWEN_13_OFFSET = 12'h 7e8;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_REGWEN_14_OFFSET = 12'h 7ec;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_REGWEN_15_OFFSET = 12'h 7f0;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_REGWEN_16_OFFSET = 12'h 7f4;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_REGWEN_17_OFFSET = 12'h 7f8;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_REGWEN_18_OFFSET = 12'h 7fc;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_REGWEN_19_OFFSET = 12'h 800;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_REGWEN_20_OFFSET = 12'h 804;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_REGWEN_21_OFFSET = 12'h 808;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_REGWEN_22_OFFSET = 12'h 80c;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_EN_0_OFFSET = 12'h 810;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_EN_1_OFFSET = 12'h 814;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_EN_2_OFFSET = 12'h 818;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_EN_3_OFFSET = 12'h 81c;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_EN_4_OFFSET = 12'h 820;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_EN_5_OFFSET = 12'h 824;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_EN_6_OFFSET = 12'h 828;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_EN_7_OFFSET = 12'h 82c;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_EN_8_OFFSET = 12'h 830;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_EN_9_OFFSET = 12'h 834;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_EN_10_OFFSET = 12'h 838;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_EN_11_OFFSET = 12'h 83c;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_EN_12_OFFSET = 12'h 840;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_EN_13_OFFSET = 12'h 844;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_EN_14_OFFSET = 12'h 848;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_EN_15_OFFSET = 12'h 84c;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_EN_16_OFFSET = 12'h 850;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_EN_17_OFFSET = 12'h 854;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_EN_18_OFFSET = 12'h 858;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_EN_19_OFFSET = 12'h 85c;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_EN_20_OFFSET = 12'h 860;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_EN_21_OFFSET = 12'h 864;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_EN_22_OFFSET = 12'h 868;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_MODE_0_OFFSET = 12'h 86c;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_MODE_1_OFFSET = 12'h 870;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_MODE_2_OFFSET = 12'h 874;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_MODE_3_OFFSET = 12'h 878;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_MODE_4_OFFSET = 12'h 87c;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_MODE_5_OFFSET = 12'h 880;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_MODE_6_OFFSET = 12'h 884;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_MODE_7_OFFSET = 12'h 888;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_MODE_8_OFFSET = 12'h 88c;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_MODE_9_OFFSET = 12'h 890;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_MODE_10_OFFSET = 12'h 894;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_MODE_11_OFFSET = 12'h 898;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_MODE_12_OFFSET = 12'h 89c;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_MODE_13_OFFSET = 12'h 8a0;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_MODE_14_OFFSET = 12'h 8a4;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_MODE_15_OFFSET = 12'h 8a8;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_MODE_16_OFFSET = 12'h 8ac;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_MODE_17_OFFSET = 12'h 8b0;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_MODE_18_OFFSET = 12'h 8b4;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_MODE_19_OFFSET = 12'h 8b8;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_MODE_20_OFFSET = 12'h 8bc;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_MODE_21_OFFSET = 12'h 8c0;
-  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_MODE_22_OFFSET = 12'h 8c4;
-  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_REGWEN_0_OFFSET = 12'h 8c8;
-  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_REGWEN_1_OFFSET = 12'h 8cc;
-  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_REGWEN_2_OFFSET = 12'h 8d0;
-  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_REGWEN_3_OFFSET = 12'h 8d4;
-  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_REGWEN_4_OFFSET = 12'h 8d8;
-  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_REGWEN_5_OFFSET = 12'h 8dc;
-  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_REGWEN_6_OFFSET = 12'h 8e0;
-  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_REGWEN_7_OFFSET = 12'h 8e4;
-  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_EN_0_OFFSET = 12'h 8e8;
-  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_EN_1_OFFSET = 12'h 8ec;
-  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_EN_2_OFFSET = 12'h 8f0;
-  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_EN_3_OFFSET = 12'h 8f4;
-  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_EN_4_OFFSET = 12'h 8f8;
-  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_EN_5_OFFSET = 12'h 8fc;
-  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_EN_6_OFFSET = 12'h 900;
-  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_EN_7_OFFSET = 12'h 904;
-  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_0_OFFSET = 12'h 908;
-  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_1_OFFSET = 12'h 90c;
-  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_2_OFFSET = 12'h 910;
-  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_3_OFFSET = 12'h 914;
-  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_4_OFFSET = 12'h 918;
-  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_5_OFFSET = 12'h 91c;
-  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_6_OFFSET = 12'h 920;
-  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_7_OFFSET = 12'h 924;
-  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_CNT_TH_0_OFFSET = 12'h 928;
-  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_CNT_TH_1_OFFSET = 12'h 92c;
-  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_CNT_TH_2_OFFSET = 12'h 930;
-  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_CNT_TH_3_OFFSET = 12'h 934;
-  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_CNT_TH_4_OFFSET = 12'h 938;
-  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_CNT_TH_5_OFFSET = 12'h 93c;
-  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_CNT_TH_6_OFFSET = 12'h 940;
-  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_CNT_TH_7_OFFSET = 12'h 944;
-  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_PADSEL_0_OFFSET = 12'h 948;
-  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_PADSEL_1_OFFSET = 12'h 94c;
-  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_PADSEL_2_OFFSET = 12'h 950;
-  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_PADSEL_3_OFFSET = 12'h 954;
-  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_PADSEL_4_OFFSET = 12'h 958;
-  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_PADSEL_5_OFFSET = 12'h 95c;
-  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_PADSEL_6_OFFSET = 12'h 960;
-  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_PADSEL_7_OFFSET = 12'h 964;
-  parameter logic [BlockAw-1:0] PINMUX_WKUP_CAUSE_OFFSET = 12'h 968;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_0_OFFSET = 12'h 4fc;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_1_OFFSET = 12'h 500;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_2_OFFSET = 12'h 504;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_3_OFFSET = 12'h 508;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_4_OFFSET = 12'h 50c;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_5_OFFSET = 12'h 510;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_6_OFFSET = 12'h 514;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_7_OFFSET = 12'h 518;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_8_OFFSET = 12'h 51c;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_9_OFFSET = 12'h 520;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_10_OFFSET = 12'h 524;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_11_OFFSET = 12'h 528;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_12_OFFSET = 12'h 52c;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_13_OFFSET = 12'h 530;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_14_OFFSET = 12'h 534;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_ATTR_15_OFFSET = 12'h 538;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_STATUS_0_OFFSET = 12'h 53c;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_STATUS_1_OFFSET = 12'h 540;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_0_OFFSET = 12'h 544;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_1_OFFSET = 12'h 548;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_2_OFFSET = 12'h 54c;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_3_OFFSET = 12'h 550;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_4_OFFSET = 12'h 554;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_5_OFFSET = 12'h 558;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_6_OFFSET = 12'h 55c;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_7_OFFSET = 12'h 560;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_8_OFFSET = 12'h 564;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_9_OFFSET = 12'h 568;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_10_OFFSET = 12'h 56c;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_11_OFFSET = 12'h 570;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_12_OFFSET = 12'h 574;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_13_OFFSET = 12'h 578;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_14_OFFSET = 12'h 57c;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_15_OFFSET = 12'h 580;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_16_OFFSET = 12'h 584;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_17_OFFSET = 12'h 588;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_18_OFFSET = 12'h 58c;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_19_OFFSET = 12'h 590;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_20_OFFSET = 12'h 594;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_21_OFFSET = 12'h 598;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_22_OFFSET = 12'h 59c;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_23_OFFSET = 12'h 5a0;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_24_OFFSET = 12'h 5a4;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_25_OFFSET = 12'h 5a8;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_26_OFFSET = 12'h 5ac;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_27_OFFSET = 12'h 5b0;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_28_OFFSET = 12'h 5b4;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_29_OFFSET = 12'h 5b8;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_30_OFFSET = 12'h 5bc;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_31_OFFSET = 12'h 5c0;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_32_OFFSET = 12'h 5c4;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_33_OFFSET = 12'h 5c8;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_34_OFFSET = 12'h 5cc;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_35_OFFSET = 12'h 5d0;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_36_OFFSET = 12'h 5d4;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_37_OFFSET = 12'h 5d8;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_38_OFFSET = 12'h 5dc;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_39_OFFSET = 12'h 5e0;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_40_OFFSET = 12'h 5e4;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_41_OFFSET = 12'h 5e8;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_42_OFFSET = 12'h 5ec;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_43_OFFSET = 12'h 5f0;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_44_OFFSET = 12'h 5f4;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_45_OFFSET = 12'h 5f8;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_REGWEN_46_OFFSET = 12'h 5fc;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_0_OFFSET = 12'h 600;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_1_OFFSET = 12'h 604;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_2_OFFSET = 12'h 608;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_3_OFFSET = 12'h 60c;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_4_OFFSET = 12'h 610;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_5_OFFSET = 12'h 614;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_6_OFFSET = 12'h 618;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_7_OFFSET = 12'h 61c;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_8_OFFSET = 12'h 620;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_9_OFFSET = 12'h 624;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_10_OFFSET = 12'h 628;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_11_OFFSET = 12'h 62c;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_12_OFFSET = 12'h 630;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_13_OFFSET = 12'h 634;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_14_OFFSET = 12'h 638;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_15_OFFSET = 12'h 63c;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_16_OFFSET = 12'h 640;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_17_OFFSET = 12'h 644;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_18_OFFSET = 12'h 648;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_19_OFFSET = 12'h 64c;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_20_OFFSET = 12'h 650;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_21_OFFSET = 12'h 654;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_22_OFFSET = 12'h 658;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_23_OFFSET = 12'h 65c;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_24_OFFSET = 12'h 660;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_25_OFFSET = 12'h 664;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_26_OFFSET = 12'h 668;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_27_OFFSET = 12'h 66c;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_28_OFFSET = 12'h 670;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_29_OFFSET = 12'h 674;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_30_OFFSET = 12'h 678;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_31_OFFSET = 12'h 67c;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_32_OFFSET = 12'h 680;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_33_OFFSET = 12'h 684;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_34_OFFSET = 12'h 688;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_35_OFFSET = 12'h 68c;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_36_OFFSET = 12'h 690;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_37_OFFSET = 12'h 694;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_38_OFFSET = 12'h 698;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_39_OFFSET = 12'h 69c;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_40_OFFSET = 12'h 6a0;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_41_OFFSET = 12'h 6a4;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_42_OFFSET = 12'h 6a8;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_43_OFFSET = 12'h 6ac;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_44_OFFSET = 12'h 6b0;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_45_OFFSET = 12'h 6b4;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_EN_46_OFFSET = 12'h 6b8;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_0_OFFSET = 12'h 6bc;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_1_OFFSET = 12'h 6c0;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_2_OFFSET = 12'h 6c4;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_3_OFFSET = 12'h 6c8;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_4_OFFSET = 12'h 6cc;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_5_OFFSET = 12'h 6d0;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_6_OFFSET = 12'h 6d4;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_7_OFFSET = 12'h 6d8;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_8_OFFSET = 12'h 6dc;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_9_OFFSET = 12'h 6e0;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_10_OFFSET = 12'h 6e4;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_11_OFFSET = 12'h 6e8;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_12_OFFSET = 12'h 6ec;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_13_OFFSET = 12'h 6f0;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_14_OFFSET = 12'h 6f4;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_15_OFFSET = 12'h 6f8;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_16_OFFSET = 12'h 6fc;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_17_OFFSET = 12'h 700;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_18_OFFSET = 12'h 704;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_19_OFFSET = 12'h 708;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_20_OFFSET = 12'h 70c;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_21_OFFSET = 12'h 710;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_22_OFFSET = 12'h 714;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_23_OFFSET = 12'h 718;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_24_OFFSET = 12'h 71c;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_25_OFFSET = 12'h 720;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_26_OFFSET = 12'h 724;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_27_OFFSET = 12'h 728;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_28_OFFSET = 12'h 72c;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_29_OFFSET = 12'h 730;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_30_OFFSET = 12'h 734;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_31_OFFSET = 12'h 738;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_32_OFFSET = 12'h 73c;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_33_OFFSET = 12'h 740;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_34_OFFSET = 12'h 744;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_35_OFFSET = 12'h 748;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_36_OFFSET = 12'h 74c;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_37_OFFSET = 12'h 750;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_38_OFFSET = 12'h 754;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_39_OFFSET = 12'h 758;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_40_OFFSET = 12'h 75c;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_41_OFFSET = 12'h 760;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_42_OFFSET = 12'h 764;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_43_OFFSET = 12'h 768;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_44_OFFSET = 12'h 76c;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_45_OFFSET = 12'h 770;
+  parameter logic [BlockAw-1:0] PINMUX_MIO_PAD_SLEEP_MODE_46_OFFSET = 12'h 774;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_STATUS_OFFSET = 12'h 778;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_REGWEN_0_OFFSET = 12'h 77c;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_REGWEN_1_OFFSET = 12'h 780;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_REGWEN_2_OFFSET = 12'h 784;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_REGWEN_3_OFFSET = 12'h 788;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_REGWEN_4_OFFSET = 12'h 78c;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_REGWEN_5_OFFSET = 12'h 790;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_REGWEN_6_OFFSET = 12'h 794;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_REGWEN_7_OFFSET = 12'h 798;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_REGWEN_8_OFFSET = 12'h 79c;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_REGWEN_9_OFFSET = 12'h 7a0;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_REGWEN_10_OFFSET = 12'h 7a4;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_REGWEN_11_OFFSET = 12'h 7a8;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_REGWEN_12_OFFSET = 12'h 7ac;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_REGWEN_13_OFFSET = 12'h 7b0;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_REGWEN_14_OFFSET = 12'h 7b4;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_REGWEN_15_OFFSET = 12'h 7b8;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_EN_0_OFFSET = 12'h 7bc;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_EN_1_OFFSET = 12'h 7c0;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_EN_2_OFFSET = 12'h 7c4;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_EN_3_OFFSET = 12'h 7c8;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_EN_4_OFFSET = 12'h 7cc;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_EN_5_OFFSET = 12'h 7d0;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_EN_6_OFFSET = 12'h 7d4;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_EN_7_OFFSET = 12'h 7d8;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_EN_8_OFFSET = 12'h 7dc;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_EN_9_OFFSET = 12'h 7e0;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_EN_10_OFFSET = 12'h 7e4;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_EN_11_OFFSET = 12'h 7e8;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_EN_12_OFFSET = 12'h 7ec;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_EN_13_OFFSET = 12'h 7f0;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_EN_14_OFFSET = 12'h 7f4;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_EN_15_OFFSET = 12'h 7f8;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_MODE_0_OFFSET = 12'h 7fc;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_MODE_1_OFFSET = 12'h 800;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_MODE_2_OFFSET = 12'h 804;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_MODE_3_OFFSET = 12'h 808;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_MODE_4_OFFSET = 12'h 80c;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_MODE_5_OFFSET = 12'h 810;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_MODE_6_OFFSET = 12'h 814;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_MODE_7_OFFSET = 12'h 818;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_MODE_8_OFFSET = 12'h 81c;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_MODE_9_OFFSET = 12'h 820;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_MODE_10_OFFSET = 12'h 824;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_MODE_11_OFFSET = 12'h 828;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_MODE_12_OFFSET = 12'h 82c;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_MODE_13_OFFSET = 12'h 830;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_MODE_14_OFFSET = 12'h 834;
+  parameter logic [BlockAw-1:0] PINMUX_DIO_PAD_SLEEP_MODE_15_OFFSET = 12'h 838;
+  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_REGWEN_0_OFFSET = 12'h 83c;
+  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_REGWEN_1_OFFSET = 12'h 840;
+  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_REGWEN_2_OFFSET = 12'h 844;
+  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_REGWEN_3_OFFSET = 12'h 848;
+  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_REGWEN_4_OFFSET = 12'h 84c;
+  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_REGWEN_5_OFFSET = 12'h 850;
+  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_REGWEN_6_OFFSET = 12'h 854;
+  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_REGWEN_7_OFFSET = 12'h 858;
+  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_EN_0_OFFSET = 12'h 85c;
+  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_EN_1_OFFSET = 12'h 860;
+  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_EN_2_OFFSET = 12'h 864;
+  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_EN_3_OFFSET = 12'h 868;
+  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_EN_4_OFFSET = 12'h 86c;
+  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_EN_5_OFFSET = 12'h 870;
+  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_EN_6_OFFSET = 12'h 874;
+  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_EN_7_OFFSET = 12'h 878;
+  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_0_OFFSET = 12'h 87c;
+  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_1_OFFSET = 12'h 880;
+  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_2_OFFSET = 12'h 884;
+  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_3_OFFSET = 12'h 888;
+  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_4_OFFSET = 12'h 88c;
+  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_5_OFFSET = 12'h 890;
+  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_6_OFFSET = 12'h 894;
+  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_7_OFFSET = 12'h 898;
+  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_CNT_TH_0_OFFSET = 12'h 89c;
+  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_CNT_TH_1_OFFSET = 12'h 8a0;
+  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_CNT_TH_2_OFFSET = 12'h 8a4;
+  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_CNT_TH_3_OFFSET = 12'h 8a8;
+  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_CNT_TH_4_OFFSET = 12'h 8ac;
+  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_CNT_TH_5_OFFSET = 12'h 8b0;
+  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_CNT_TH_6_OFFSET = 12'h 8b4;
+  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_CNT_TH_7_OFFSET = 12'h 8b8;
+  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_PADSEL_0_OFFSET = 12'h 8bc;
+  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_PADSEL_1_OFFSET = 12'h 8c0;
+  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_PADSEL_2_OFFSET = 12'h 8c4;
+  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_PADSEL_3_OFFSET = 12'h 8c8;
+  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_PADSEL_4_OFFSET = 12'h 8cc;
+  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_PADSEL_5_OFFSET = 12'h 8d0;
+  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_PADSEL_6_OFFSET = 12'h 8d4;
+  parameter logic [BlockAw-1:0] PINMUX_WKUP_DETECTOR_PADSEL_7_OFFSET = 12'h 8d8;
+  parameter logic [BlockAw-1:0] PINMUX_WKUP_CAUSE_OFFSET = 12'h 8dc;
 
   // Reset values for hwext registers and their fields
   parameter logic [0:0] PINMUX_ALERT_TEST_RESVAL = 1'h 0;
@@ -884,20 +849,6 @@
   parameter logic [12:0] PINMUX_DIO_PAD_ATTR_14_ATTR_14_RESVAL = 13'h 0;
   parameter logic [12:0] PINMUX_DIO_PAD_ATTR_15_RESVAL = 13'h 0;
   parameter logic [12:0] PINMUX_DIO_PAD_ATTR_15_ATTR_15_RESVAL = 13'h 0;
-  parameter logic [12:0] PINMUX_DIO_PAD_ATTR_16_RESVAL = 13'h 0;
-  parameter logic [12:0] PINMUX_DIO_PAD_ATTR_16_ATTR_16_RESVAL = 13'h 0;
-  parameter logic [12:0] PINMUX_DIO_PAD_ATTR_17_RESVAL = 13'h 0;
-  parameter logic [12:0] PINMUX_DIO_PAD_ATTR_17_ATTR_17_RESVAL = 13'h 0;
-  parameter logic [12:0] PINMUX_DIO_PAD_ATTR_18_RESVAL = 13'h 0;
-  parameter logic [12:0] PINMUX_DIO_PAD_ATTR_18_ATTR_18_RESVAL = 13'h 0;
-  parameter logic [12:0] PINMUX_DIO_PAD_ATTR_19_RESVAL = 13'h 0;
-  parameter logic [12:0] PINMUX_DIO_PAD_ATTR_19_ATTR_19_RESVAL = 13'h 0;
-  parameter logic [12:0] PINMUX_DIO_PAD_ATTR_20_RESVAL = 13'h 0;
-  parameter logic [12:0] PINMUX_DIO_PAD_ATTR_20_ATTR_20_RESVAL = 13'h 0;
-  parameter logic [12:0] PINMUX_DIO_PAD_ATTR_21_RESVAL = 13'h 0;
-  parameter logic [12:0] PINMUX_DIO_PAD_ATTR_21_ATTR_21_RESVAL = 13'h 0;
-  parameter logic [12:0] PINMUX_DIO_PAD_ATTR_22_RESVAL = 13'h 0;
-  parameter logic [12:0] PINMUX_DIO_PAD_ATTR_22_ATTR_22_RESVAL = 13'h 0;
 
   // Register index
   typedef enum int {
@@ -1220,13 +1171,6 @@
     PINMUX_DIO_PAD_ATTR_REGWEN_13,
     PINMUX_DIO_PAD_ATTR_REGWEN_14,
     PINMUX_DIO_PAD_ATTR_REGWEN_15,
-    PINMUX_DIO_PAD_ATTR_REGWEN_16,
-    PINMUX_DIO_PAD_ATTR_REGWEN_17,
-    PINMUX_DIO_PAD_ATTR_REGWEN_18,
-    PINMUX_DIO_PAD_ATTR_REGWEN_19,
-    PINMUX_DIO_PAD_ATTR_REGWEN_20,
-    PINMUX_DIO_PAD_ATTR_REGWEN_21,
-    PINMUX_DIO_PAD_ATTR_REGWEN_22,
     PINMUX_DIO_PAD_ATTR_0,
     PINMUX_DIO_PAD_ATTR_1,
     PINMUX_DIO_PAD_ATTR_2,
@@ -1243,13 +1187,6 @@
     PINMUX_DIO_PAD_ATTR_13,
     PINMUX_DIO_PAD_ATTR_14,
     PINMUX_DIO_PAD_ATTR_15,
-    PINMUX_DIO_PAD_ATTR_16,
-    PINMUX_DIO_PAD_ATTR_17,
-    PINMUX_DIO_PAD_ATTR_18,
-    PINMUX_DIO_PAD_ATTR_19,
-    PINMUX_DIO_PAD_ATTR_20,
-    PINMUX_DIO_PAD_ATTR_21,
-    PINMUX_DIO_PAD_ATTR_22,
     PINMUX_MIO_PAD_SLEEP_STATUS_0,
     PINMUX_MIO_PAD_SLEEP_STATUS_1,
     PINMUX_MIO_PAD_SLEEP_REGWEN_0,
@@ -1410,13 +1347,6 @@
     PINMUX_DIO_PAD_SLEEP_REGWEN_13,
     PINMUX_DIO_PAD_SLEEP_REGWEN_14,
     PINMUX_DIO_PAD_SLEEP_REGWEN_15,
-    PINMUX_DIO_PAD_SLEEP_REGWEN_16,
-    PINMUX_DIO_PAD_SLEEP_REGWEN_17,
-    PINMUX_DIO_PAD_SLEEP_REGWEN_18,
-    PINMUX_DIO_PAD_SLEEP_REGWEN_19,
-    PINMUX_DIO_PAD_SLEEP_REGWEN_20,
-    PINMUX_DIO_PAD_SLEEP_REGWEN_21,
-    PINMUX_DIO_PAD_SLEEP_REGWEN_22,
     PINMUX_DIO_PAD_SLEEP_EN_0,
     PINMUX_DIO_PAD_SLEEP_EN_1,
     PINMUX_DIO_PAD_SLEEP_EN_2,
@@ -1433,13 +1363,6 @@
     PINMUX_DIO_PAD_SLEEP_EN_13,
     PINMUX_DIO_PAD_SLEEP_EN_14,
     PINMUX_DIO_PAD_SLEEP_EN_15,
-    PINMUX_DIO_PAD_SLEEP_EN_16,
-    PINMUX_DIO_PAD_SLEEP_EN_17,
-    PINMUX_DIO_PAD_SLEEP_EN_18,
-    PINMUX_DIO_PAD_SLEEP_EN_19,
-    PINMUX_DIO_PAD_SLEEP_EN_20,
-    PINMUX_DIO_PAD_SLEEP_EN_21,
-    PINMUX_DIO_PAD_SLEEP_EN_22,
     PINMUX_DIO_PAD_SLEEP_MODE_0,
     PINMUX_DIO_PAD_SLEEP_MODE_1,
     PINMUX_DIO_PAD_SLEEP_MODE_2,
@@ -1456,13 +1379,6 @@
     PINMUX_DIO_PAD_SLEEP_MODE_13,
     PINMUX_DIO_PAD_SLEEP_MODE_14,
     PINMUX_DIO_PAD_SLEEP_MODE_15,
-    PINMUX_DIO_PAD_SLEEP_MODE_16,
-    PINMUX_DIO_PAD_SLEEP_MODE_17,
-    PINMUX_DIO_PAD_SLEEP_MODE_18,
-    PINMUX_DIO_PAD_SLEEP_MODE_19,
-    PINMUX_DIO_PAD_SLEEP_MODE_20,
-    PINMUX_DIO_PAD_SLEEP_MODE_21,
-    PINMUX_DIO_PAD_SLEEP_MODE_22,
     PINMUX_WKUP_DETECTOR_REGWEN_0,
     PINMUX_WKUP_DETECTOR_REGWEN_1,
     PINMUX_WKUP_DETECTOR_REGWEN_2,
@@ -1507,7 +1423,7 @@
   } pinmux_id_e;
 
   // Register width information to check illegal writes
-  parameter logic [3:0] PINMUX_PERMIT [603] = '{
+  parameter logic [3:0] PINMUX_PERMIT [568] = '{
     4'b 0001, // index[  0] PINMUX_ALERT_TEST
     4'b 0001, // index[  1] PINMUX_MIO_PERIPH_INSEL_REGWEN_0
     4'b 0001, // index[  2] PINMUX_MIO_PERIPH_INSEL_REGWEN_1
@@ -1827,290 +1743,255 @@
     4'b 0001, // index[316] PINMUX_DIO_PAD_ATTR_REGWEN_13
     4'b 0001, // index[317] PINMUX_DIO_PAD_ATTR_REGWEN_14
     4'b 0001, // index[318] PINMUX_DIO_PAD_ATTR_REGWEN_15
-    4'b 0001, // index[319] PINMUX_DIO_PAD_ATTR_REGWEN_16
-    4'b 0001, // index[320] PINMUX_DIO_PAD_ATTR_REGWEN_17
-    4'b 0001, // index[321] PINMUX_DIO_PAD_ATTR_REGWEN_18
-    4'b 0001, // index[322] PINMUX_DIO_PAD_ATTR_REGWEN_19
-    4'b 0001, // index[323] PINMUX_DIO_PAD_ATTR_REGWEN_20
-    4'b 0001, // index[324] PINMUX_DIO_PAD_ATTR_REGWEN_21
-    4'b 0001, // index[325] PINMUX_DIO_PAD_ATTR_REGWEN_22
-    4'b 0011, // index[326] PINMUX_DIO_PAD_ATTR_0
-    4'b 0011, // index[327] PINMUX_DIO_PAD_ATTR_1
-    4'b 0011, // index[328] PINMUX_DIO_PAD_ATTR_2
-    4'b 0011, // index[329] PINMUX_DIO_PAD_ATTR_3
-    4'b 0011, // index[330] PINMUX_DIO_PAD_ATTR_4
-    4'b 0011, // index[331] PINMUX_DIO_PAD_ATTR_5
-    4'b 0011, // index[332] PINMUX_DIO_PAD_ATTR_6
-    4'b 0011, // index[333] PINMUX_DIO_PAD_ATTR_7
-    4'b 0011, // index[334] PINMUX_DIO_PAD_ATTR_8
-    4'b 0011, // index[335] PINMUX_DIO_PAD_ATTR_9
-    4'b 0011, // index[336] PINMUX_DIO_PAD_ATTR_10
-    4'b 0011, // index[337] PINMUX_DIO_PAD_ATTR_11
-    4'b 0011, // index[338] PINMUX_DIO_PAD_ATTR_12
-    4'b 0011, // index[339] PINMUX_DIO_PAD_ATTR_13
-    4'b 0011, // index[340] PINMUX_DIO_PAD_ATTR_14
-    4'b 0011, // index[341] PINMUX_DIO_PAD_ATTR_15
-    4'b 0011, // index[342] PINMUX_DIO_PAD_ATTR_16
-    4'b 0011, // index[343] PINMUX_DIO_PAD_ATTR_17
-    4'b 0011, // index[344] PINMUX_DIO_PAD_ATTR_18
-    4'b 0011, // index[345] PINMUX_DIO_PAD_ATTR_19
-    4'b 0011, // index[346] PINMUX_DIO_PAD_ATTR_20
-    4'b 0011, // index[347] PINMUX_DIO_PAD_ATTR_21
-    4'b 0011, // index[348] PINMUX_DIO_PAD_ATTR_22
-    4'b 1111, // index[349] PINMUX_MIO_PAD_SLEEP_STATUS_0
-    4'b 0011, // index[350] PINMUX_MIO_PAD_SLEEP_STATUS_1
-    4'b 0001, // index[351] PINMUX_MIO_PAD_SLEEP_REGWEN_0
-    4'b 0001, // index[352] PINMUX_MIO_PAD_SLEEP_REGWEN_1
-    4'b 0001, // index[353] PINMUX_MIO_PAD_SLEEP_REGWEN_2
-    4'b 0001, // index[354] PINMUX_MIO_PAD_SLEEP_REGWEN_3
-    4'b 0001, // index[355] PINMUX_MIO_PAD_SLEEP_REGWEN_4
-    4'b 0001, // index[356] PINMUX_MIO_PAD_SLEEP_REGWEN_5
-    4'b 0001, // index[357] PINMUX_MIO_PAD_SLEEP_REGWEN_6
-    4'b 0001, // index[358] PINMUX_MIO_PAD_SLEEP_REGWEN_7
-    4'b 0001, // index[359] PINMUX_MIO_PAD_SLEEP_REGWEN_8
-    4'b 0001, // index[360] PINMUX_MIO_PAD_SLEEP_REGWEN_9
-    4'b 0001, // index[361] PINMUX_MIO_PAD_SLEEP_REGWEN_10
-    4'b 0001, // index[362] PINMUX_MIO_PAD_SLEEP_REGWEN_11
-    4'b 0001, // index[363] PINMUX_MIO_PAD_SLEEP_REGWEN_12
-    4'b 0001, // index[364] PINMUX_MIO_PAD_SLEEP_REGWEN_13
-    4'b 0001, // index[365] PINMUX_MIO_PAD_SLEEP_REGWEN_14
-    4'b 0001, // index[366] PINMUX_MIO_PAD_SLEEP_REGWEN_15
-    4'b 0001, // index[367] PINMUX_MIO_PAD_SLEEP_REGWEN_16
-    4'b 0001, // index[368] PINMUX_MIO_PAD_SLEEP_REGWEN_17
-    4'b 0001, // index[369] PINMUX_MIO_PAD_SLEEP_REGWEN_18
-    4'b 0001, // index[370] PINMUX_MIO_PAD_SLEEP_REGWEN_19
-    4'b 0001, // index[371] PINMUX_MIO_PAD_SLEEP_REGWEN_20
-    4'b 0001, // index[372] PINMUX_MIO_PAD_SLEEP_REGWEN_21
-    4'b 0001, // index[373] PINMUX_MIO_PAD_SLEEP_REGWEN_22
-    4'b 0001, // index[374] PINMUX_MIO_PAD_SLEEP_REGWEN_23
-    4'b 0001, // index[375] PINMUX_MIO_PAD_SLEEP_REGWEN_24
-    4'b 0001, // index[376] PINMUX_MIO_PAD_SLEEP_REGWEN_25
-    4'b 0001, // index[377] PINMUX_MIO_PAD_SLEEP_REGWEN_26
-    4'b 0001, // index[378] PINMUX_MIO_PAD_SLEEP_REGWEN_27
-    4'b 0001, // index[379] PINMUX_MIO_PAD_SLEEP_REGWEN_28
-    4'b 0001, // index[380] PINMUX_MIO_PAD_SLEEP_REGWEN_29
-    4'b 0001, // index[381] PINMUX_MIO_PAD_SLEEP_REGWEN_30
-    4'b 0001, // index[382] PINMUX_MIO_PAD_SLEEP_REGWEN_31
-    4'b 0001, // index[383] PINMUX_MIO_PAD_SLEEP_REGWEN_32
-    4'b 0001, // index[384] PINMUX_MIO_PAD_SLEEP_REGWEN_33
-    4'b 0001, // index[385] PINMUX_MIO_PAD_SLEEP_REGWEN_34
-    4'b 0001, // index[386] PINMUX_MIO_PAD_SLEEP_REGWEN_35
-    4'b 0001, // index[387] PINMUX_MIO_PAD_SLEEP_REGWEN_36
-    4'b 0001, // index[388] PINMUX_MIO_PAD_SLEEP_REGWEN_37
-    4'b 0001, // index[389] PINMUX_MIO_PAD_SLEEP_REGWEN_38
-    4'b 0001, // index[390] PINMUX_MIO_PAD_SLEEP_REGWEN_39
-    4'b 0001, // index[391] PINMUX_MIO_PAD_SLEEP_REGWEN_40
-    4'b 0001, // index[392] PINMUX_MIO_PAD_SLEEP_REGWEN_41
-    4'b 0001, // index[393] PINMUX_MIO_PAD_SLEEP_REGWEN_42
-    4'b 0001, // index[394] PINMUX_MIO_PAD_SLEEP_REGWEN_43
-    4'b 0001, // index[395] PINMUX_MIO_PAD_SLEEP_REGWEN_44
-    4'b 0001, // index[396] PINMUX_MIO_PAD_SLEEP_REGWEN_45
-    4'b 0001, // index[397] PINMUX_MIO_PAD_SLEEP_REGWEN_46
-    4'b 0001, // index[398] PINMUX_MIO_PAD_SLEEP_EN_0
-    4'b 0001, // index[399] PINMUX_MIO_PAD_SLEEP_EN_1
-    4'b 0001, // index[400] PINMUX_MIO_PAD_SLEEP_EN_2
-    4'b 0001, // index[401] PINMUX_MIO_PAD_SLEEP_EN_3
-    4'b 0001, // index[402] PINMUX_MIO_PAD_SLEEP_EN_4
-    4'b 0001, // index[403] PINMUX_MIO_PAD_SLEEP_EN_5
-    4'b 0001, // index[404] PINMUX_MIO_PAD_SLEEP_EN_6
-    4'b 0001, // index[405] PINMUX_MIO_PAD_SLEEP_EN_7
-    4'b 0001, // index[406] PINMUX_MIO_PAD_SLEEP_EN_8
-    4'b 0001, // index[407] PINMUX_MIO_PAD_SLEEP_EN_9
-    4'b 0001, // index[408] PINMUX_MIO_PAD_SLEEP_EN_10
-    4'b 0001, // index[409] PINMUX_MIO_PAD_SLEEP_EN_11
-    4'b 0001, // index[410] PINMUX_MIO_PAD_SLEEP_EN_12
-    4'b 0001, // index[411] PINMUX_MIO_PAD_SLEEP_EN_13
-    4'b 0001, // index[412] PINMUX_MIO_PAD_SLEEP_EN_14
-    4'b 0001, // index[413] PINMUX_MIO_PAD_SLEEP_EN_15
-    4'b 0001, // index[414] PINMUX_MIO_PAD_SLEEP_EN_16
-    4'b 0001, // index[415] PINMUX_MIO_PAD_SLEEP_EN_17
-    4'b 0001, // index[416] PINMUX_MIO_PAD_SLEEP_EN_18
-    4'b 0001, // index[417] PINMUX_MIO_PAD_SLEEP_EN_19
-    4'b 0001, // index[418] PINMUX_MIO_PAD_SLEEP_EN_20
-    4'b 0001, // index[419] PINMUX_MIO_PAD_SLEEP_EN_21
-    4'b 0001, // index[420] PINMUX_MIO_PAD_SLEEP_EN_22
-    4'b 0001, // index[421] PINMUX_MIO_PAD_SLEEP_EN_23
-    4'b 0001, // index[422] PINMUX_MIO_PAD_SLEEP_EN_24
-    4'b 0001, // index[423] PINMUX_MIO_PAD_SLEEP_EN_25
-    4'b 0001, // index[424] PINMUX_MIO_PAD_SLEEP_EN_26
-    4'b 0001, // index[425] PINMUX_MIO_PAD_SLEEP_EN_27
-    4'b 0001, // index[426] PINMUX_MIO_PAD_SLEEP_EN_28
-    4'b 0001, // index[427] PINMUX_MIO_PAD_SLEEP_EN_29
-    4'b 0001, // index[428] PINMUX_MIO_PAD_SLEEP_EN_30
-    4'b 0001, // index[429] PINMUX_MIO_PAD_SLEEP_EN_31
-    4'b 0001, // index[430] PINMUX_MIO_PAD_SLEEP_EN_32
-    4'b 0001, // index[431] PINMUX_MIO_PAD_SLEEP_EN_33
-    4'b 0001, // index[432] PINMUX_MIO_PAD_SLEEP_EN_34
-    4'b 0001, // index[433] PINMUX_MIO_PAD_SLEEP_EN_35
-    4'b 0001, // index[434] PINMUX_MIO_PAD_SLEEP_EN_36
-    4'b 0001, // index[435] PINMUX_MIO_PAD_SLEEP_EN_37
-    4'b 0001, // index[436] PINMUX_MIO_PAD_SLEEP_EN_38
-    4'b 0001, // index[437] PINMUX_MIO_PAD_SLEEP_EN_39
-    4'b 0001, // index[438] PINMUX_MIO_PAD_SLEEP_EN_40
-    4'b 0001, // index[439] PINMUX_MIO_PAD_SLEEP_EN_41
-    4'b 0001, // index[440] PINMUX_MIO_PAD_SLEEP_EN_42
-    4'b 0001, // index[441] PINMUX_MIO_PAD_SLEEP_EN_43
-    4'b 0001, // index[442] PINMUX_MIO_PAD_SLEEP_EN_44
-    4'b 0001, // index[443] PINMUX_MIO_PAD_SLEEP_EN_45
-    4'b 0001, // index[444] PINMUX_MIO_PAD_SLEEP_EN_46
-    4'b 0001, // index[445] PINMUX_MIO_PAD_SLEEP_MODE_0
-    4'b 0001, // index[446] PINMUX_MIO_PAD_SLEEP_MODE_1
-    4'b 0001, // index[447] PINMUX_MIO_PAD_SLEEP_MODE_2
-    4'b 0001, // index[448] PINMUX_MIO_PAD_SLEEP_MODE_3
-    4'b 0001, // index[449] PINMUX_MIO_PAD_SLEEP_MODE_4
-    4'b 0001, // index[450] PINMUX_MIO_PAD_SLEEP_MODE_5
-    4'b 0001, // index[451] PINMUX_MIO_PAD_SLEEP_MODE_6
-    4'b 0001, // index[452] PINMUX_MIO_PAD_SLEEP_MODE_7
-    4'b 0001, // index[453] PINMUX_MIO_PAD_SLEEP_MODE_8
-    4'b 0001, // index[454] PINMUX_MIO_PAD_SLEEP_MODE_9
-    4'b 0001, // index[455] PINMUX_MIO_PAD_SLEEP_MODE_10
-    4'b 0001, // index[456] PINMUX_MIO_PAD_SLEEP_MODE_11
-    4'b 0001, // index[457] PINMUX_MIO_PAD_SLEEP_MODE_12
-    4'b 0001, // index[458] PINMUX_MIO_PAD_SLEEP_MODE_13
-    4'b 0001, // index[459] PINMUX_MIO_PAD_SLEEP_MODE_14
-    4'b 0001, // index[460] PINMUX_MIO_PAD_SLEEP_MODE_15
-    4'b 0001, // index[461] PINMUX_MIO_PAD_SLEEP_MODE_16
-    4'b 0001, // index[462] PINMUX_MIO_PAD_SLEEP_MODE_17
-    4'b 0001, // index[463] PINMUX_MIO_PAD_SLEEP_MODE_18
-    4'b 0001, // index[464] PINMUX_MIO_PAD_SLEEP_MODE_19
-    4'b 0001, // index[465] PINMUX_MIO_PAD_SLEEP_MODE_20
-    4'b 0001, // index[466] PINMUX_MIO_PAD_SLEEP_MODE_21
-    4'b 0001, // index[467] PINMUX_MIO_PAD_SLEEP_MODE_22
-    4'b 0001, // index[468] PINMUX_MIO_PAD_SLEEP_MODE_23
-    4'b 0001, // index[469] PINMUX_MIO_PAD_SLEEP_MODE_24
-    4'b 0001, // index[470] PINMUX_MIO_PAD_SLEEP_MODE_25
-    4'b 0001, // index[471] PINMUX_MIO_PAD_SLEEP_MODE_26
-    4'b 0001, // index[472] PINMUX_MIO_PAD_SLEEP_MODE_27
-    4'b 0001, // index[473] PINMUX_MIO_PAD_SLEEP_MODE_28
-    4'b 0001, // index[474] PINMUX_MIO_PAD_SLEEP_MODE_29
-    4'b 0001, // index[475] PINMUX_MIO_PAD_SLEEP_MODE_30
-    4'b 0001, // index[476] PINMUX_MIO_PAD_SLEEP_MODE_31
-    4'b 0001, // index[477] PINMUX_MIO_PAD_SLEEP_MODE_32
-    4'b 0001, // index[478] PINMUX_MIO_PAD_SLEEP_MODE_33
-    4'b 0001, // index[479] PINMUX_MIO_PAD_SLEEP_MODE_34
-    4'b 0001, // index[480] PINMUX_MIO_PAD_SLEEP_MODE_35
-    4'b 0001, // index[481] PINMUX_MIO_PAD_SLEEP_MODE_36
-    4'b 0001, // index[482] PINMUX_MIO_PAD_SLEEP_MODE_37
-    4'b 0001, // index[483] PINMUX_MIO_PAD_SLEEP_MODE_38
-    4'b 0001, // index[484] PINMUX_MIO_PAD_SLEEP_MODE_39
-    4'b 0001, // index[485] PINMUX_MIO_PAD_SLEEP_MODE_40
-    4'b 0001, // index[486] PINMUX_MIO_PAD_SLEEP_MODE_41
-    4'b 0001, // index[487] PINMUX_MIO_PAD_SLEEP_MODE_42
-    4'b 0001, // index[488] PINMUX_MIO_PAD_SLEEP_MODE_43
-    4'b 0001, // index[489] PINMUX_MIO_PAD_SLEEP_MODE_44
-    4'b 0001, // index[490] PINMUX_MIO_PAD_SLEEP_MODE_45
-    4'b 0001, // index[491] PINMUX_MIO_PAD_SLEEP_MODE_46
-    4'b 0111, // index[492] PINMUX_DIO_PAD_SLEEP_STATUS
-    4'b 0001, // index[493] PINMUX_DIO_PAD_SLEEP_REGWEN_0
-    4'b 0001, // index[494] PINMUX_DIO_PAD_SLEEP_REGWEN_1
-    4'b 0001, // index[495] PINMUX_DIO_PAD_SLEEP_REGWEN_2
-    4'b 0001, // index[496] PINMUX_DIO_PAD_SLEEP_REGWEN_3
-    4'b 0001, // index[497] PINMUX_DIO_PAD_SLEEP_REGWEN_4
-    4'b 0001, // index[498] PINMUX_DIO_PAD_SLEEP_REGWEN_5
-    4'b 0001, // index[499] PINMUX_DIO_PAD_SLEEP_REGWEN_6
-    4'b 0001, // index[500] PINMUX_DIO_PAD_SLEEP_REGWEN_7
-    4'b 0001, // index[501] PINMUX_DIO_PAD_SLEEP_REGWEN_8
-    4'b 0001, // index[502] PINMUX_DIO_PAD_SLEEP_REGWEN_9
-    4'b 0001, // index[503] PINMUX_DIO_PAD_SLEEP_REGWEN_10
-    4'b 0001, // index[504] PINMUX_DIO_PAD_SLEEP_REGWEN_11
-    4'b 0001, // index[505] PINMUX_DIO_PAD_SLEEP_REGWEN_12
-    4'b 0001, // index[506] PINMUX_DIO_PAD_SLEEP_REGWEN_13
-    4'b 0001, // index[507] PINMUX_DIO_PAD_SLEEP_REGWEN_14
-    4'b 0001, // index[508] PINMUX_DIO_PAD_SLEEP_REGWEN_15
-    4'b 0001, // index[509] PINMUX_DIO_PAD_SLEEP_REGWEN_16
-    4'b 0001, // index[510] PINMUX_DIO_PAD_SLEEP_REGWEN_17
-    4'b 0001, // index[511] PINMUX_DIO_PAD_SLEEP_REGWEN_18
-    4'b 0001, // index[512] PINMUX_DIO_PAD_SLEEP_REGWEN_19
-    4'b 0001, // index[513] PINMUX_DIO_PAD_SLEEP_REGWEN_20
-    4'b 0001, // index[514] PINMUX_DIO_PAD_SLEEP_REGWEN_21
-    4'b 0001, // index[515] PINMUX_DIO_PAD_SLEEP_REGWEN_22
-    4'b 0001, // index[516] PINMUX_DIO_PAD_SLEEP_EN_0
-    4'b 0001, // index[517] PINMUX_DIO_PAD_SLEEP_EN_1
-    4'b 0001, // index[518] PINMUX_DIO_PAD_SLEEP_EN_2
-    4'b 0001, // index[519] PINMUX_DIO_PAD_SLEEP_EN_3
-    4'b 0001, // index[520] PINMUX_DIO_PAD_SLEEP_EN_4
-    4'b 0001, // index[521] PINMUX_DIO_PAD_SLEEP_EN_5
-    4'b 0001, // index[522] PINMUX_DIO_PAD_SLEEP_EN_6
-    4'b 0001, // index[523] PINMUX_DIO_PAD_SLEEP_EN_7
-    4'b 0001, // index[524] PINMUX_DIO_PAD_SLEEP_EN_8
-    4'b 0001, // index[525] PINMUX_DIO_PAD_SLEEP_EN_9
-    4'b 0001, // index[526] PINMUX_DIO_PAD_SLEEP_EN_10
-    4'b 0001, // index[527] PINMUX_DIO_PAD_SLEEP_EN_11
-    4'b 0001, // index[528] PINMUX_DIO_PAD_SLEEP_EN_12
-    4'b 0001, // index[529] PINMUX_DIO_PAD_SLEEP_EN_13
-    4'b 0001, // index[530] PINMUX_DIO_PAD_SLEEP_EN_14
-    4'b 0001, // index[531] PINMUX_DIO_PAD_SLEEP_EN_15
-    4'b 0001, // index[532] PINMUX_DIO_PAD_SLEEP_EN_16
-    4'b 0001, // index[533] PINMUX_DIO_PAD_SLEEP_EN_17
-    4'b 0001, // index[534] PINMUX_DIO_PAD_SLEEP_EN_18
-    4'b 0001, // index[535] PINMUX_DIO_PAD_SLEEP_EN_19
-    4'b 0001, // index[536] PINMUX_DIO_PAD_SLEEP_EN_20
-    4'b 0001, // index[537] PINMUX_DIO_PAD_SLEEP_EN_21
-    4'b 0001, // index[538] PINMUX_DIO_PAD_SLEEP_EN_22
-    4'b 0001, // index[539] PINMUX_DIO_PAD_SLEEP_MODE_0
-    4'b 0001, // index[540] PINMUX_DIO_PAD_SLEEP_MODE_1
-    4'b 0001, // index[541] PINMUX_DIO_PAD_SLEEP_MODE_2
-    4'b 0001, // index[542] PINMUX_DIO_PAD_SLEEP_MODE_3
-    4'b 0001, // index[543] PINMUX_DIO_PAD_SLEEP_MODE_4
-    4'b 0001, // index[544] PINMUX_DIO_PAD_SLEEP_MODE_5
-    4'b 0001, // index[545] PINMUX_DIO_PAD_SLEEP_MODE_6
-    4'b 0001, // index[546] PINMUX_DIO_PAD_SLEEP_MODE_7
-    4'b 0001, // index[547] PINMUX_DIO_PAD_SLEEP_MODE_8
-    4'b 0001, // index[548] PINMUX_DIO_PAD_SLEEP_MODE_9
-    4'b 0001, // index[549] PINMUX_DIO_PAD_SLEEP_MODE_10
-    4'b 0001, // index[550] PINMUX_DIO_PAD_SLEEP_MODE_11
-    4'b 0001, // index[551] PINMUX_DIO_PAD_SLEEP_MODE_12
-    4'b 0001, // index[552] PINMUX_DIO_PAD_SLEEP_MODE_13
-    4'b 0001, // index[553] PINMUX_DIO_PAD_SLEEP_MODE_14
-    4'b 0001, // index[554] PINMUX_DIO_PAD_SLEEP_MODE_15
-    4'b 0001, // index[555] PINMUX_DIO_PAD_SLEEP_MODE_16
-    4'b 0001, // index[556] PINMUX_DIO_PAD_SLEEP_MODE_17
-    4'b 0001, // index[557] PINMUX_DIO_PAD_SLEEP_MODE_18
-    4'b 0001, // index[558] PINMUX_DIO_PAD_SLEEP_MODE_19
-    4'b 0001, // index[559] PINMUX_DIO_PAD_SLEEP_MODE_20
-    4'b 0001, // index[560] PINMUX_DIO_PAD_SLEEP_MODE_21
-    4'b 0001, // index[561] PINMUX_DIO_PAD_SLEEP_MODE_22
-    4'b 0001, // index[562] PINMUX_WKUP_DETECTOR_REGWEN_0
-    4'b 0001, // index[563] PINMUX_WKUP_DETECTOR_REGWEN_1
-    4'b 0001, // index[564] PINMUX_WKUP_DETECTOR_REGWEN_2
-    4'b 0001, // index[565] PINMUX_WKUP_DETECTOR_REGWEN_3
-    4'b 0001, // index[566] PINMUX_WKUP_DETECTOR_REGWEN_4
-    4'b 0001, // index[567] PINMUX_WKUP_DETECTOR_REGWEN_5
-    4'b 0001, // index[568] PINMUX_WKUP_DETECTOR_REGWEN_6
-    4'b 0001, // index[569] PINMUX_WKUP_DETECTOR_REGWEN_7
-    4'b 0001, // index[570] PINMUX_WKUP_DETECTOR_EN_0
-    4'b 0001, // index[571] PINMUX_WKUP_DETECTOR_EN_1
-    4'b 0001, // index[572] PINMUX_WKUP_DETECTOR_EN_2
-    4'b 0001, // index[573] PINMUX_WKUP_DETECTOR_EN_3
-    4'b 0001, // index[574] PINMUX_WKUP_DETECTOR_EN_4
-    4'b 0001, // index[575] PINMUX_WKUP_DETECTOR_EN_5
-    4'b 0001, // index[576] PINMUX_WKUP_DETECTOR_EN_6
-    4'b 0001, // index[577] PINMUX_WKUP_DETECTOR_EN_7
-    4'b 0001, // index[578] PINMUX_WKUP_DETECTOR_0
-    4'b 0001, // index[579] PINMUX_WKUP_DETECTOR_1
-    4'b 0001, // index[580] PINMUX_WKUP_DETECTOR_2
-    4'b 0001, // index[581] PINMUX_WKUP_DETECTOR_3
-    4'b 0001, // index[582] PINMUX_WKUP_DETECTOR_4
-    4'b 0001, // index[583] PINMUX_WKUP_DETECTOR_5
-    4'b 0001, // index[584] PINMUX_WKUP_DETECTOR_6
-    4'b 0001, // index[585] PINMUX_WKUP_DETECTOR_7
-    4'b 0001, // index[586] PINMUX_WKUP_DETECTOR_CNT_TH_0
-    4'b 0001, // index[587] PINMUX_WKUP_DETECTOR_CNT_TH_1
-    4'b 0001, // index[588] PINMUX_WKUP_DETECTOR_CNT_TH_2
-    4'b 0001, // index[589] PINMUX_WKUP_DETECTOR_CNT_TH_3
-    4'b 0001, // index[590] PINMUX_WKUP_DETECTOR_CNT_TH_4
-    4'b 0001, // index[591] PINMUX_WKUP_DETECTOR_CNT_TH_5
-    4'b 0001, // index[592] PINMUX_WKUP_DETECTOR_CNT_TH_6
-    4'b 0001, // index[593] PINMUX_WKUP_DETECTOR_CNT_TH_7
-    4'b 0001, // index[594] PINMUX_WKUP_DETECTOR_PADSEL_0
-    4'b 0001, // index[595] PINMUX_WKUP_DETECTOR_PADSEL_1
-    4'b 0001, // index[596] PINMUX_WKUP_DETECTOR_PADSEL_2
-    4'b 0001, // index[597] PINMUX_WKUP_DETECTOR_PADSEL_3
-    4'b 0001, // index[598] PINMUX_WKUP_DETECTOR_PADSEL_4
-    4'b 0001, // index[599] PINMUX_WKUP_DETECTOR_PADSEL_5
-    4'b 0001, // index[600] PINMUX_WKUP_DETECTOR_PADSEL_6
-    4'b 0001, // index[601] PINMUX_WKUP_DETECTOR_PADSEL_7
-    4'b 0001  // index[602] PINMUX_WKUP_CAUSE
+    4'b 0011, // index[319] PINMUX_DIO_PAD_ATTR_0
+    4'b 0011, // index[320] PINMUX_DIO_PAD_ATTR_1
+    4'b 0011, // index[321] PINMUX_DIO_PAD_ATTR_2
+    4'b 0011, // index[322] PINMUX_DIO_PAD_ATTR_3
+    4'b 0011, // index[323] PINMUX_DIO_PAD_ATTR_4
+    4'b 0011, // index[324] PINMUX_DIO_PAD_ATTR_5
+    4'b 0011, // index[325] PINMUX_DIO_PAD_ATTR_6
+    4'b 0011, // index[326] PINMUX_DIO_PAD_ATTR_7
+    4'b 0011, // index[327] PINMUX_DIO_PAD_ATTR_8
+    4'b 0011, // index[328] PINMUX_DIO_PAD_ATTR_9
+    4'b 0011, // index[329] PINMUX_DIO_PAD_ATTR_10
+    4'b 0011, // index[330] PINMUX_DIO_PAD_ATTR_11
+    4'b 0011, // index[331] PINMUX_DIO_PAD_ATTR_12
+    4'b 0011, // index[332] PINMUX_DIO_PAD_ATTR_13
+    4'b 0011, // index[333] PINMUX_DIO_PAD_ATTR_14
+    4'b 0011, // index[334] PINMUX_DIO_PAD_ATTR_15
+    4'b 1111, // index[335] PINMUX_MIO_PAD_SLEEP_STATUS_0
+    4'b 0011, // index[336] PINMUX_MIO_PAD_SLEEP_STATUS_1
+    4'b 0001, // index[337] PINMUX_MIO_PAD_SLEEP_REGWEN_0
+    4'b 0001, // index[338] PINMUX_MIO_PAD_SLEEP_REGWEN_1
+    4'b 0001, // index[339] PINMUX_MIO_PAD_SLEEP_REGWEN_2
+    4'b 0001, // index[340] PINMUX_MIO_PAD_SLEEP_REGWEN_3
+    4'b 0001, // index[341] PINMUX_MIO_PAD_SLEEP_REGWEN_4
+    4'b 0001, // index[342] PINMUX_MIO_PAD_SLEEP_REGWEN_5
+    4'b 0001, // index[343] PINMUX_MIO_PAD_SLEEP_REGWEN_6
+    4'b 0001, // index[344] PINMUX_MIO_PAD_SLEEP_REGWEN_7
+    4'b 0001, // index[345] PINMUX_MIO_PAD_SLEEP_REGWEN_8
+    4'b 0001, // index[346] PINMUX_MIO_PAD_SLEEP_REGWEN_9
+    4'b 0001, // index[347] PINMUX_MIO_PAD_SLEEP_REGWEN_10
+    4'b 0001, // index[348] PINMUX_MIO_PAD_SLEEP_REGWEN_11
+    4'b 0001, // index[349] PINMUX_MIO_PAD_SLEEP_REGWEN_12
+    4'b 0001, // index[350] PINMUX_MIO_PAD_SLEEP_REGWEN_13
+    4'b 0001, // index[351] PINMUX_MIO_PAD_SLEEP_REGWEN_14
+    4'b 0001, // index[352] PINMUX_MIO_PAD_SLEEP_REGWEN_15
+    4'b 0001, // index[353] PINMUX_MIO_PAD_SLEEP_REGWEN_16
+    4'b 0001, // index[354] PINMUX_MIO_PAD_SLEEP_REGWEN_17
+    4'b 0001, // index[355] PINMUX_MIO_PAD_SLEEP_REGWEN_18
+    4'b 0001, // index[356] PINMUX_MIO_PAD_SLEEP_REGWEN_19
+    4'b 0001, // index[357] PINMUX_MIO_PAD_SLEEP_REGWEN_20
+    4'b 0001, // index[358] PINMUX_MIO_PAD_SLEEP_REGWEN_21
+    4'b 0001, // index[359] PINMUX_MIO_PAD_SLEEP_REGWEN_22
+    4'b 0001, // index[360] PINMUX_MIO_PAD_SLEEP_REGWEN_23
+    4'b 0001, // index[361] PINMUX_MIO_PAD_SLEEP_REGWEN_24
+    4'b 0001, // index[362] PINMUX_MIO_PAD_SLEEP_REGWEN_25
+    4'b 0001, // index[363] PINMUX_MIO_PAD_SLEEP_REGWEN_26
+    4'b 0001, // index[364] PINMUX_MIO_PAD_SLEEP_REGWEN_27
+    4'b 0001, // index[365] PINMUX_MIO_PAD_SLEEP_REGWEN_28
+    4'b 0001, // index[366] PINMUX_MIO_PAD_SLEEP_REGWEN_29
+    4'b 0001, // index[367] PINMUX_MIO_PAD_SLEEP_REGWEN_30
+    4'b 0001, // index[368] PINMUX_MIO_PAD_SLEEP_REGWEN_31
+    4'b 0001, // index[369] PINMUX_MIO_PAD_SLEEP_REGWEN_32
+    4'b 0001, // index[370] PINMUX_MIO_PAD_SLEEP_REGWEN_33
+    4'b 0001, // index[371] PINMUX_MIO_PAD_SLEEP_REGWEN_34
+    4'b 0001, // index[372] PINMUX_MIO_PAD_SLEEP_REGWEN_35
+    4'b 0001, // index[373] PINMUX_MIO_PAD_SLEEP_REGWEN_36
+    4'b 0001, // index[374] PINMUX_MIO_PAD_SLEEP_REGWEN_37
+    4'b 0001, // index[375] PINMUX_MIO_PAD_SLEEP_REGWEN_38
+    4'b 0001, // index[376] PINMUX_MIO_PAD_SLEEP_REGWEN_39
+    4'b 0001, // index[377] PINMUX_MIO_PAD_SLEEP_REGWEN_40
+    4'b 0001, // index[378] PINMUX_MIO_PAD_SLEEP_REGWEN_41
+    4'b 0001, // index[379] PINMUX_MIO_PAD_SLEEP_REGWEN_42
+    4'b 0001, // index[380] PINMUX_MIO_PAD_SLEEP_REGWEN_43
+    4'b 0001, // index[381] PINMUX_MIO_PAD_SLEEP_REGWEN_44
+    4'b 0001, // index[382] PINMUX_MIO_PAD_SLEEP_REGWEN_45
+    4'b 0001, // index[383] PINMUX_MIO_PAD_SLEEP_REGWEN_46
+    4'b 0001, // index[384] PINMUX_MIO_PAD_SLEEP_EN_0
+    4'b 0001, // index[385] PINMUX_MIO_PAD_SLEEP_EN_1
+    4'b 0001, // index[386] PINMUX_MIO_PAD_SLEEP_EN_2
+    4'b 0001, // index[387] PINMUX_MIO_PAD_SLEEP_EN_3
+    4'b 0001, // index[388] PINMUX_MIO_PAD_SLEEP_EN_4
+    4'b 0001, // index[389] PINMUX_MIO_PAD_SLEEP_EN_5
+    4'b 0001, // index[390] PINMUX_MIO_PAD_SLEEP_EN_6
+    4'b 0001, // index[391] PINMUX_MIO_PAD_SLEEP_EN_7
+    4'b 0001, // index[392] PINMUX_MIO_PAD_SLEEP_EN_8
+    4'b 0001, // index[393] PINMUX_MIO_PAD_SLEEP_EN_9
+    4'b 0001, // index[394] PINMUX_MIO_PAD_SLEEP_EN_10
+    4'b 0001, // index[395] PINMUX_MIO_PAD_SLEEP_EN_11
+    4'b 0001, // index[396] PINMUX_MIO_PAD_SLEEP_EN_12
+    4'b 0001, // index[397] PINMUX_MIO_PAD_SLEEP_EN_13
+    4'b 0001, // index[398] PINMUX_MIO_PAD_SLEEP_EN_14
+    4'b 0001, // index[399] PINMUX_MIO_PAD_SLEEP_EN_15
+    4'b 0001, // index[400] PINMUX_MIO_PAD_SLEEP_EN_16
+    4'b 0001, // index[401] PINMUX_MIO_PAD_SLEEP_EN_17
+    4'b 0001, // index[402] PINMUX_MIO_PAD_SLEEP_EN_18
+    4'b 0001, // index[403] PINMUX_MIO_PAD_SLEEP_EN_19
+    4'b 0001, // index[404] PINMUX_MIO_PAD_SLEEP_EN_20
+    4'b 0001, // index[405] PINMUX_MIO_PAD_SLEEP_EN_21
+    4'b 0001, // index[406] PINMUX_MIO_PAD_SLEEP_EN_22
+    4'b 0001, // index[407] PINMUX_MIO_PAD_SLEEP_EN_23
+    4'b 0001, // index[408] PINMUX_MIO_PAD_SLEEP_EN_24
+    4'b 0001, // index[409] PINMUX_MIO_PAD_SLEEP_EN_25
+    4'b 0001, // index[410] PINMUX_MIO_PAD_SLEEP_EN_26
+    4'b 0001, // index[411] PINMUX_MIO_PAD_SLEEP_EN_27
+    4'b 0001, // index[412] PINMUX_MIO_PAD_SLEEP_EN_28
+    4'b 0001, // index[413] PINMUX_MIO_PAD_SLEEP_EN_29
+    4'b 0001, // index[414] PINMUX_MIO_PAD_SLEEP_EN_30
+    4'b 0001, // index[415] PINMUX_MIO_PAD_SLEEP_EN_31
+    4'b 0001, // index[416] PINMUX_MIO_PAD_SLEEP_EN_32
+    4'b 0001, // index[417] PINMUX_MIO_PAD_SLEEP_EN_33
+    4'b 0001, // index[418] PINMUX_MIO_PAD_SLEEP_EN_34
+    4'b 0001, // index[419] PINMUX_MIO_PAD_SLEEP_EN_35
+    4'b 0001, // index[420] PINMUX_MIO_PAD_SLEEP_EN_36
+    4'b 0001, // index[421] PINMUX_MIO_PAD_SLEEP_EN_37
+    4'b 0001, // index[422] PINMUX_MIO_PAD_SLEEP_EN_38
+    4'b 0001, // index[423] PINMUX_MIO_PAD_SLEEP_EN_39
+    4'b 0001, // index[424] PINMUX_MIO_PAD_SLEEP_EN_40
+    4'b 0001, // index[425] PINMUX_MIO_PAD_SLEEP_EN_41
+    4'b 0001, // index[426] PINMUX_MIO_PAD_SLEEP_EN_42
+    4'b 0001, // index[427] PINMUX_MIO_PAD_SLEEP_EN_43
+    4'b 0001, // index[428] PINMUX_MIO_PAD_SLEEP_EN_44
+    4'b 0001, // index[429] PINMUX_MIO_PAD_SLEEP_EN_45
+    4'b 0001, // index[430] PINMUX_MIO_PAD_SLEEP_EN_46
+    4'b 0001, // index[431] PINMUX_MIO_PAD_SLEEP_MODE_0
+    4'b 0001, // index[432] PINMUX_MIO_PAD_SLEEP_MODE_1
+    4'b 0001, // index[433] PINMUX_MIO_PAD_SLEEP_MODE_2
+    4'b 0001, // index[434] PINMUX_MIO_PAD_SLEEP_MODE_3
+    4'b 0001, // index[435] PINMUX_MIO_PAD_SLEEP_MODE_4
+    4'b 0001, // index[436] PINMUX_MIO_PAD_SLEEP_MODE_5
+    4'b 0001, // index[437] PINMUX_MIO_PAD_SLEEP_MODE_6
+    4'b 0001, // index[438] PINMUX_MIO_PAD_SLEEP_MODE_7
+    4'b 0001, // index[439] PINMUX_MIO_PAD_SLEEP_MODE_8
+    4'b 0001, // index[440] PINMUX_MIO_PAD_SLEEP_MODE_9
+    4'b 0001, // index[441] PINMUX_MIO_PAD_SLEEP_MODE_10
+    4'b 0001, // index[442] PINMUX_MIO_PAD_SLEEP_MODE_11
+    4'b 0001, // index[443] PINMUX_MIO_PAD_SLEEP_MODE_12
+    4'b 0001, // index[444] PINMUX_MIO_PAD_SLEEP_MODE_13
+    4'b 0001, // index[445] PINMUX_MIO_PAD_SLEEP_MODE_14
+    4'b 0001, // index[446] PINMUX_MIO_PAD_SLEEP_MODE_15
+    4'b 0001, // index[447] PINMUX_MIO_PAD_SLEEP_MODE_16
+    4'b 0001, // index[448] PINMUX_MIO_PAD_SLEEP_MODE_17
+    4'b 0001, // index[449] PINMUX_MIO_PAD_SLEEP_MODE_18
+    4'b 0001, // index[450] PINMUX_MIO_PAD_SLEEP_MODE_19
+    4'b 0001, // index[451] PINMUX_MIO_PAD_SLEEP_MODE_20
+    4'b 0001, // index[452] PINMUX_MIO_PAD_SLEEP_MODE_21
+    4'b 0001, // index[453] PINMUX_MIO_PAD_SLEEP_MODE_22
+    4'b 0001, // index[454] PINMUX_MIO_PAD_SLEEP_MODE_23
+    4'b 0001, // index[455] PINMUX_MIO_PAD_SLEEP_MODE_24
+    4'b 0001, // index[456] PINMUX_MIO_PAD_SLEEP_MODE_25
+    4'b 0001, // index[457] PINMUX_MIO_PAD_SLEEP_MODE_26
+    4'b 0001, // index[458] PINMUX_MIO_PAD_SLEEP_MODE_27
+    4'b 0001, // index[459] PINMUX_MIO_PAD_SLEEP_MODE_28
+    4'b 0001, // index[460] PINMUX_MIO_PAD_SLEEP_MODE_29
+    4'b 0001, // index[461] PINMUX_MIO_PAD_SLEEP_MODE_30
+    4'b 0001, // index[462] PINMUX_MIO_PAD_SLEEP_MODE_31
+    4'b 0001, // index[463] PINMUX_MIO_PAD_SLEEP_MODE_32
+    4'b 0001, // index[464] PINMUX_MIO_PAD_SLEEP_MODE_33
+    4'b 0001, // index[465] PINMUX_MIO_PAD_SLEEP_MODE_34
+    4'b 0001, // index[466] PINMUX_MIO_PAD_SLEEP_MODE_35
+    4'b 0001, // index[467] PINMUX_MIO_PAD_SLEEP_MODE_36
+    4'b 0001, // index[468] PINMUX_MIO_PAD_SLEEP_MODE_37
+    4'b 0001, // index[469] PINMUX_MIO_PAD_SLEEP_MODE_38
+    4'b 0001, // index[470] PINMUX_MIO_PAD_SLEEP_MODE_39
+    4'b 0001, // index[471] PINMUX_MIO_PAD_SLEEP_MODE_40
+    4'b 0001, // index[472] PINMUX_MIO_PAD_SLEEP_MODE_41
+    4'b 0001, // index[473] PINMUX_MIO_PAD_SLEEP_MODE_42
+    4'b 0001, // index[474] PINMUX_MIO_PAD_SLEEP_MODE_43
+    4'b 0001, // index[475] PINMUX_MIO_PAD_SLEEP_MODE_44
+    4'b 0001, // index[476] PINMUX_MIO_PAD_SLEEP_MODE_45
+    4'b 0001, // index[477] PINMUX_MIO_PAD_SLEEP_MODE_46
+    4'b 0011, // index[478] PINMUX_DIO_PAD_SLEEP_STATUS
+    4'b 0001, // index[479] PINMUX_DIO_PAD_SLEEP_REGWEN_0
+    4'b 0001, // index[480] PINMUX_DIO_PAD_SLEEP_REGWEN_1
+    4'b 0001, // index[481] PINMUX_DIO_PAD_SLEEP_REGWEN_2
+    4'b 0001, // index[482] PINMUX_DIO_PAD_SLEEP_REGWEN_3
+    4'b 0001, // index[483] PINMUX_DIO_PAD_SLEEP_REGWEN_4
+    4'b 0001, // index[484] PINMUX_DIO_PAD_SLEEP_REGWEN_5
+    4'b 0001, // index[485] PINMUX_DIO_PAD_SLEEP_REGWEN_6
+    4'b 0001, // index[486] PINMUX_DIO_PAD_SLEEP_REGWEN_7
+    4'b 0001, // index[487] PINMUX_DIO_PAD_SLEEP_REGWEN_8
+    4'b 0001, // index[488] PINMUX_DIO_PAD_SLEEP_REGWEN_9
+    4'b 0001, // index[489] PINMUX_DIO_PAD_SLEEP_REGWEN_10
+    4'b 0001, // index[490] PINMUX_DIO_PAD_SLEEP_REGWEN_11
+    4'b 0001, // index[491] PINMUX_DIO_PAD_SLEEP_REGWEN_12
+    4'b 0001, // index[492] PINMUX_DIO_PAD_SLEEP_REGWEN_13
+    4'b 0001, // index[493] PINMUX_DIO_PAD_SLEEP_REGWEN_14
+    4'b 0001, // index[494] PINMUX_DIO_PAD_SLEEP_REGWEN_15
+    4'b 0001, // index[495] PINMUX_DIO_PAD_SLEEP_EN_0
+    4'b 0001, // index[496] PINMUX_DIO_PAD_SLEEP_EN_1
+    4'b 0001, // index[497] PINMUX_DIO_PAD_SLEEP_EN_2
+    4'b 0001, // index[498] PINMUX_DIO_PAD_SLEEP_EN_3
+    4'b 0001, // index[499] PINMUX_DIO_PAD_SLEEP_EN_4
+    4'b 0001, // index[500] PINMUX_DIO_PAD_SLEEP_EN_5
+    4'b 0001, // index[501] PINMUX_DIO_PAD_SLEEP_EN_6
+    4'b 0001, // index[502] PINMUX_DIO_PAD_SLEEP_EN_7
+    4'b 0001, // index[503] PINMUX_DIO_PAD_SLEEP_EN_8
+    4'b 0001, // index[504] PINMUX_DIO_PAD_SLEEP_EN_9
+    4'b 0001, // index[505] PINMUX_DIO_PAD_SLEEP_EN_10
+    4'b 0001, // index[506] PINMUX_DIO_PAD_SLEEP_EN_11
+    4'b 0001, // index[507] PINMUX_DIO_PAD_SLEEP_EN_12
+    4'b 0001, // index[508] PINMUX_DIO_PAD_SLEEP_EN_13
+    4'b 0001, // index[509] PINMUX_DIO_PAD_SLEEP_EN_14
+    4'b 0001, // index[510] PINMUX_DIO_PAD_SLEEP_EN_15
+    4'b 0001, // index[511] PINMUX_DIO_PAD_SLEEP_MODE_0
+    4'b 0001, // index[512] PINMUX_DIO_PAD_SLEEP_MODE_1
+    4'b 0001, // index[513] PINMUX_DIO_PAD_SLEEP_MODE_2
+    4'b 0001, // index[514] PINMUX_DIO_PAD_SLEEP_MODE_3
+    4'b 0001, // index[515] PINMUX_DIO_PAD_SLEEP_MODE_4
+    4'b 0001, // index[516] PINMUX_DIO_PAD_SLEEP_MODE_5
+    4'b 0001, // index[517] PINMUX_DIO_PAD_SLEEP_MODE_6
+    4'b 0001, // index[518] PINMUX_DIO_PAD_SLEEP_MODE_7
+    4'b 0001, // index[519] PINMUX_DIO_PAD_SLEEP_MODE_8
+    4'b 0001, // index[520] PINMUX_DIO_PAD_SLEEP_MODE_9
+    4'b 0001, // index[521] PINMUX_DIO_PAD_SLEEP_MODE_10
+    4'b 0001, // index[522] PINMUX_DIO_PAD_SLEEP_MODE_11
+    4'b 0001, // index[523] PINMUX_DIO_PAD_SLEEP_MODE_12
+    4'b 0001, // index[524] PINMUX_DIO_PAD_SLEEP_MODE_13
+    4'b 0001, // index[525] PINMUX_DIO_PAD_SLEEP_MODE_14
+    4'b 0001, // index[526] PINMUX_DIO_PAD_SLEEP_MODE_15
+    4'b 0001, // index[527] PINMUX_WKUP_DETECTOR_REGWEN_0
+    4'b 0001, // index[528] PINMUX_WKUP_DETECTOR_REGWEN_1
+    4'b 0001, // index[529] PINMUX_WKUP_DETECTOR_REGWEN_2
+    4'b 0001, // index[530] PINMUX_WKUP_DETECTOR_REGWEN_3
+    4'b 0001, // index[531] PINMUX_WKUP_DETECTOR_REGWEN_4
+    4'b 0001, // index[532] PINMUX_WKUP_DETECTOR_REGWEN_5
+    4'b 0001, // index[533] PINMUX_WKUP_DETECTOR_REGWEN_6
+    4'b 0001, // index[534] PINMUX_WKUP_DETECTOR_REGWEN_7
+    4'b 0001, // index[535] PINMUX_WKUP_DETECTOR_EN_0
+    4'b 0001, // index[536] PINMUX_WKUP_DETECTOR_EN_1
+    4'b 0001, // index[537] PINMUX_WKUP_DETECTOR_EN_2
+    4'b 0001, // index[538] PINMUX_WKUP_DETECTOR_EN_3
+    4'b 0001, // index[539] PINMUX_WKUP_DETECTOR_EN_4
+    4'b 0001, // index[540] PINMUX_WKUP_DETECTOR_EN_5
+    4'b 0001, // index[541] PINMUX_WKUP_DETECTOR_EN_6
+    4'b 0001, // index[542] PINMUX_WKUP_DETECTOR_EN_7
+    4'b 0001, // index[543] PINMUX_WKUP_DETECTOR_0
+    4'b 0001, // index[544] PINMUX_WKUP_DETECTOR_1
+    4'b 0001, // index[545] PINMUX_WKUP_DETECTOR_2
+    4'b 0001, // index[546] PINMUX_WKUP_DETECTOR_3
+    4'b 0001, // index[547] PINMUX_WKUP_DETECTOR_4
+    4'b 0001, // index[548] PINMUX_WKUP_DETECTOR_5
+    4'b 0001, // index[549] PINMUX_WKUP_DETECTOR_6
+    4'b 0001, // index[550] PINMUX_WKUP_DETECTOR_7
+    4'b 0001, // index[551] PINMUX_WKUP_DETECTOR_CNT_TH_0
+    4'b 0001, // index[552] PINMUX_WKUP_DETECTOR_CNT_TH_1
+    4'b 0001, // index[553] PINMUX_WKUP_DETECTOR_CNT_TH_2
+    4'b 0001, // index[554] PINMUX_WKUP_DETECTOR_CNT_TH_3
+    4'b 0001, // index[555] PINMUX_WKUP_DETECTOR_CNT_TH_4
+    4'b 0001, // index[556] PINMUX_WKUP_DETECTOR_CNT_TH_5
+    4'b 0001, // index[557] PINMUX_WKUP_DETECTOR_CNT_TH_6
+    4'b 0001, // index[558] PINMUX_WKUP_DETECTOR_CNT_TH_7
+    4'b 0001, // index[559] PINMUX_WKUP_DETECTOR_PADSEL_0
+    4'b 0001, // index[560] PINMUX_WKUP_DETECTOR_PADSEL_1
+    4'b 0001, // index[561] PINMUX_WKUP_DETECTOR_PADSEL_2
+    4'b 0001, // index[562] PINMUX_WKUP_DETECTOR_PADSEL_3
+    4'b 0001, // index[563] PINMUX_WKUP_DETECTOR_PADSEL_4
+    4'b 0001, // index[564] PINMUX_WKUP_DETECTOR_PADSEL_5
+    4'b 0001, // index[565] PINMUX_WKUP_DETECTOR_PADSEL_6
+    4'b 0001, // index[566] PINMUX_WKUP_DETECTOR_PADSEL_7
+    4'b 0001  // index[567] PINMUX_WKUP_CAUSE
   };
 
 endpackage
diff --git a/hw/top_earlgrey/ip/pinmux/rtl/autogen/pinmux_reg_top.sv b/hw/top_earlgrey/ip/pinmux/rtl/autogen/pinmux_reg_top.sv
index 1f28a31..f214fe0 100644
--- a/hw/top_earlgrey/ip/pinmux/rtl/autogen/pinmux_reg_top.sv
+++ b/hw/top_earlgrey/ip/pinmux/rtl/autogen/pinmux_reg_top.sv
@@ -1125,27 +1125,6 @@
   logic dio_pad_attr_regwen_15_we;
   logic dio_pad_attr_regwen_15_qs;
   logic dio_pad_attr_regwen_15_wd;
-  logic dio_pad_attr_regwen_16_we;
-  logic dio_pad_attr_regwen_16_qs;
-  logic dio_pad_attr_regwen_16_wd;
-  logic dio_pad_attr_regwen_17_we;
-  logic dio_pad_attr_regwen_17_qs;
-  logic dio_pad_attr_regwen_17_wd;
-  logic dio_pad_attr_regwen_18_we;
-  logic dio_pad_attr_regwen_18_qs;
-  logic dio_pad_attr_regwen_18_wd;
-  logic dio_pad_attr_regwen_19_we;
-  logic dio_pad_attr_regwen_19_qs;
-  logic dio_pad_attr_regwen_19_wd;
-  logic dio_pad_attr_regwen_20_we;
-  logic dio_pad_attr_regwen_20_qs;
-  logic dio_pad_attr_regwen_20_wd;
-  logic dio_pad_attr_regwen_21_we;
-  logic dio_pad_attr_regwen_21_qs;
-  logic dio_pad_attr_regwen_21_wd;
-  logic dio_pad_attr_regwen_22_we;
-  logic dio_pad_attr_regwen_22_qs;
-  logic dio_pad_attr_regwen_22_wd;
   logic dio_pad_attr_0_re;
   logic dio_pad_attr_0_we;
   logic [12:0] dio_pad_attr_0_qs;
@@ -1210,34 +1189,6 @@
   logic dio_pad_attr_15_we;
   logic [12:0] dio_pad_attr_15_qs;
   logic [12:0] dio_pad_attr_15_wd;
-  logic dio_pad_attr_16_re;
-  logic dio_pad_attr_16_we;
-  logic [12:0] dio_pad_attr_16_qs;
-  logic [12:0] dio_pad_attr_16_wd;
-  logic dio_pad_attr_17_re;
-  logic dio_pad_attr_17_we;
-  logic [12:0] dio_pad_attr_17_qs;
-  logic [12:0] dio_pad_attr_17_wd;
-  logic dio_pad_attr_18_re;
-  logic dio_pad_attr_18_we;
-  logic [12:0] dio_pad_attr_18_qs;
-  logic [12:0] dio_pad_attr_18_wd;
-  logic dio_pad_attr_19_re;
-  logic dio_pad_attr_19_we;
-  logic [12:0] dio_pad_attr_19_qs;
-  logic [12:0] dio_pad_attr_19_wd;
-  logic dio_pad_attr_20_re;
-  logic dio_pad_attr_20_we;
-  logic [12:0] dio_pad_attr_20_qs;
-  logic [12:0] dio_pad_attr_20_wd;
-  logic dio_pad_attr_21_re;
-  logic dio_pad_attr_21_we;
-  logic [12:0] dio_pad_attr_21_qs;
-  logic [12:0] dio_pad_attr_21_wd;
-  logic dio_pad_attr_22_re;
-  logic dio_pad_attr_22_we;
-  logic [12:0] dio_pad_attr_22_qs;
-  logic [12:0] dio_pad_attr_22_wd;
   logic mio_pad_sleep_status_0_we;
   logic mio_pad_sleep_status_0_en_0_qs;
   logic mio_pad_sleep_status_0_en_0_wd;
@@ -1790,20 +1741,6 @@
   logic dio_pad_sleep_status_en_14_wd;
   logic dio_pad_sleep_status_en_15_qs;
   logic dio_pad_sleep_status_en_15_wd;
-  logic dio_pad_sleep_status_en_16_qs;
-  logic dio_pad_sleep_status_en_16_wd;
-  logic dio_pad_sleep_status_en_17_qs;
-  logic dio_pad_sleep_status_en_17_wd;
-  logic dio_pad_sleep_status_en_18_qs;
-  logic dio_pad_sleep_status_en_18_wd;
-  logic dio_pad_sleep_status_en_19_qs;
-  logic dio_pad_sleep_status_en_19_wd;
-  logic dio_pad_sleep_status_en_20_qs;
-  logic dio_pad_sleep_status_en_20_wd;
-  logic dio_pad_sleep_status_en_21_qs;
-  logic dio_pad_sleep_status_en_21_wd;
-  logic dio_pad_sleep_status_en_22_qs;
-  logic dio_pad_sleep_status_en_22_wd;
   logic dio_pad_sleep_regwen_0_we;
   logic dio_pad_sleep_regwen_0_qs;
   logic dio_pad_sleep_regwen_0_wd;
@@ -1852,27 +1789,6 @@
   logic dio_pad_sleep_regwen_15_we;
   logic dio_pad_sleep_regwen_15_qs;
   logic dio_pad_sleep_regwen_15_wd;
-  logic dio_pad_sleep_regwen_16_we;
-  logic dio_pad_sleep_regwen_16_qs;
-  logic dio_pad_sleep_regwen_16_wd;
-  logic dio_pad_sleep_regwen_17_we;
-  logic dio_pad_sleep_regwen_17_qs;
-  logic dio_pad_sleep_regwen_17_wd;
-  logic dio_pad_sleep_regwen_18_we;
-  logic dio_pad_sleep_regwen_18_qs;
-  logic dio_pad_sleep_regwen_18_wd;
-  logic dio_pad_sleep_regwen_19_we;
-  logic dio_pad_sleep_regwen_19_qs;
-  logic dio_pad_sleep_regwen_19_wd;
-  logic dio_pad_sleep_regwen_20_we;
-  logic dio_pad_sleep_regwen_20_qs;
-  logic dio_pad_sleep_regwen_20_wd;
-  logic dio_pad_sleep_regwen_21_we;
-  logic dio_pad_sleep_regwen_21_qs;
-  logic dio_pad_sleep_regwen_21_wd;
-  logic dio_pad_sleep_regwen_22_we;
-  logic dio_pad_sleep_regwen_22_qs;
-  logic dio_pad_sleep_regwen_22_wd;
   logic dio_pad_sleep_en_0_we;
   logic dio_pad_sleep_en_0_qs;
   logic dio_pad_sleep_en_0_wd;
@@ -1921,27 +1837,6 @@
   logic dio_pad_sleep_en_15_we;
   logic dio_pad_sleep_en_15_qs;
   logic dio_pad_sleep_en_15_wd;
-  logic dio_pad_sleep_en_16_we;
-  logic dio_pad_sleep_en_16_qs;
-  logic dio_pad_sleep_en_16_wd;
-  logic dio_pad_sleep_en_17_we;
-  logic dio_pad_sleep_en_17_qs;
-  logic dio_pad_sleep_en_17_wd;
-  logic dio_pad_sleep_en_18_we;
-  logic dio_pad_sleep_en_18_qs;
-  logic dio_pad_sleep_en_18_wd;
-  logic dio_pad_sleep_en_19_we;
-  logic dio_pad_sleep_en_19_qs;
-  logic dio_pad_sleep_en_19_wd;
-  logic dio_pad_sleep_en_20_we;
-  logic dio_pad_sleep_en_20_qs;
-  logic dio_pad_sleep_en_20_wd;
-  logic dio_pad_sleep_en_21_we;
-  logic dio_pad_sleep_en_21_qs;
-  logic dio_pad_sleep_en_21_wd;
-  logic dio_pad_sleep_en_22_we;
-  logic dio_pad_sleep_en_22_qs;
-  logic dio_pad_sleep_en_22_wd;
   logic dio_pad_sleep_mode_0_we;
   logic [1:0] dio_pad_sleep_mode_0_qs;
   logic [1:0] dio_pad_sleep_mode_0_wd;
@@ -1990,27 +1885,6 @@
   logic dio_pad_sleep_mode_15_we;
   logic [1:0] dio_pad_sleep_mode_15_qs;
   logic [1:0] dio_pad_sleep_mode_15_wd;
-  logic dio_pad_sleep_mode_16_we;
-  logic [1:0] dio_pad_sleep_mode_16_qs;
-  logic [1:0] dio_pad_sleep_mode_16_wd;
-  logic dio_pad_sleep_mode_17_we;
-  logic [1:0] dio_pad_sleep_mode_17_qs;
-  logic [1:0] dio_pad_sleep_mode_17_wd;
-  logic dio_pad_sleep_mode_18_we;
-  logic [1:0] dio_pad_sleep_mode_18_qs;
-  logic [1:0] dio_pad_sleep_mode_18_wd;
-  logic dio_pad_sleep_mode_19_we;
-  logic [1:0] dio_pad_sleep_mode_19_qs;
-  logic [1:0] dio_pad_sleep_mode_19_wd;
-  logic dio_pad_sleep_mode_20_we;
-  logic [1:0] dio_pad_sleep_mode_20_qs;
-  logic [1:0] dio_pad_sleep_mode_20_wd;
-  logic dio_pad_sleep_mode_21_we;
-  logic [1:0] dio_pad_sleep_mode_21_qs;
-  logic [1:0] dio_pad_sleep_mode_21_wd;
-  logic dio_pad_sleep_mode_22_we;
-  logic [1:0] dio_pad_sleep_mode_22_qs;
-  logic [1:0] dio_pad_sleep_mode_22_wd;
   logic wkup_detector_regwen_0_we;
   logic wkup_detector_regwen_0_qs;
   logic wkup_detector_regwen_0_wd;
@@ -11192,195 +11066,6 @@
   );
 
 
-  // Subregister 16 of Multireg dio_pad_attr_regwen
-  // R[dio_pad_attr_regwen_16]: V(False)
-  prim_subreg #(
-    .DW      (1),
-    .SwAccess(prim_subreg_pkg::SwAccessW0C),
-    .RESVAL  (1'h1)
-  ) u_dio_pad_attr_regwen_16 (
-    .clk_i   (clk_i),
-    .rst_ni  (rst_ni),
-
-    // from register interface
-    .we     (dio_pad_attr_regwen_16_we),
-    .wd     (dio_pad_attr_regwen_16_wd),
-
-    // from internal hardware
-    .de     (1'b0),
-    .d      ('0),
-
-    // to internal hardware
-    .qe     (),
-    .q      (),
-
-    // to register interface (read)
-    .qs     (dio_pad_attr_regwen_16_qs)
-  );
-
-
-  // Subregister 17 of Multireg dio_pad_attr_regwen
-  // R[dio_pad_attr_regwen_17]: V(False)
-  prim_subreg #(
-    .DW      (1),
-    .SwAccess(prim_subreg_pkg::SwAccessW0C),
-    .RESVAL  (1'h1)
-  ) u_dio_pad_attr_regwen_17 (
-    .clk_i   (clk_i),
-    .rst_ni  (rst_ni),
-
-    // from register interface
-    .we     (dio_pad_attr_regwen_17_we),
-    .wd     (dio_pad_attr_regwen_17_wd),
-
-    // from internal hardware
-    .de     (1'b0),
-    .d      ('0),
-
-    // to internal hardware
-    .qe     (),
-    .q      (),
-
-    // to register interface (read)
-    .qs     (dio_pad_attr_regwen_17_qs)
-  );
-
-
-  // Subregister 18 of Multireg dio_pad_attr_regwen
-  // R[dio_pad_attr_regwen_18]: V(False)
-  prim_subreg #(
-    .DW      (1),
-    .SwAccess(prim_subreg_pkg::SwAccessW0C),
-    .RESVAL  (1'h1)
-  ) u_dio_pad_attr_regwen_18 (
-    .clk_i   (clk_i),
-    .rst_ni  (rst_ni),
-
-    // from register interface
-    .we     (dio_pad_attr_regwen_18_we),
-    .wd     (dio_pad_attr_regwen_18_wd),
-
-    // from internal hardware
-    .de     (1'b0),
-    .d      ('0),
-
-    // to internal hardware
-    .qe     (),
-    .q      (),
-
-    // to register interface (read)
-    .qs     (dio_pad_attr_regwen_18_qs)
-  );
-
-
-  // Subregister 19 of Multireg dio_pad_attr_regwen
-  // R[dio_pad_attr_regwen_19]: V(False)
-  prim_subreg #(
-    .DW      (1),
-    .SwAccess(prim_subreg_pkg::SwAccessW0C),
-    .RESVAL  (1'h1)
-  ) u_dio_pad_attr_regwen_19 (
-    .clk_i   (clk_i),
-    .rst_ni  (rst_ni),
-
-    // from register interface
-    .we     (dio_pad_attr_regwen_19_we),
-    .wd     (dio_pad_attr_regwen_19_wd),
-
-    // from internal hardware
-    .de     (1'b0),
-    .d      ('0),
-
-    // to internal hardware
-    .qe     (),
-    .q      (),
-
-    // to register interface (read)
-    .qs     (dio_pad_attr_regwen_19_qs)
-  );
-
-
-  // Subregister 20 of Multireg dio_pad_attr_regwen
-  // R[dio_pad_attr_regwen_20]: V(False)
-  prim_subreg #(
-    .DW      (1),
-    .SwAccess(prim_subreg_pkg::SwAccessW0C),
-    .RESVAL  (1'h1)
-  ) u_dio_pad_attr_regwen_20 (
-    .clk_i   (clk_i),
-    .rst_ni  (rst_ni),
-
-    // from register interface
-    .we     (dio_pad_attr_regwen_20_we),
-    .wd     (dio_pad_attr_regwen_20_wd),
-
-    // from internal hardware
-    .de     (1'b0),
-    .d      ('0),
-
-    // to internal hardware
-    .qe     (),
-    .q      (),
-
-    // to register interface (read)
-    .qs     (dio_pad_attr_regwen_20_qs)
-  );
-
-
-  // Subregister 21 of Multireg dio_pad_attr_regwen
-  // R[dio_pad_attr_regwen_21]: V(False)
-  prim_subreg #(
-    .DW      (1),
-    .SwAccess(prim_subreg_pkg::SwAccessW0C),
-    .RESVAL  (1'h1)
-  ) u_dio_pad_attr_regwen_21 (
-    .clk_i   (clk_i),
-    .rst_ni  (rst_ni),
-
-    // from register interface
-    .we     (dio_pad_attr_regwen_21_we),
-    .wd     (dio_pad_attr_regwen_21_wd),
-
-    // from internal hardware
-    .de     (1'b0),
-    .d      ('0),
-
-    // to internal hardware
-    .qe     (),
-    .q      (),
-
-    // to register interface (read)
-    .qs     (dio_pad_attr_regwen_21_qs)
-  );
-
-
-  // Subregister 22 of Multireg dio_pad_attr_regwen
-  // R[dio_pad_attr_regwen_22]: V(False)
-  prim_subreg #(
-    .DW      (1),
-    .SwAccess(prim_subreg_pkg::SwAccessW0C),
-    .RESVAL  (1'h1)
-  ) u_dio_pad_attr_regwen_22 (
-    .clk_i   (clk_i),
-    .rst_ni  (rst_ni),
-
-    // from register interface
-    .we     (dio_pad_attr_regwen_22_we),
-    .wd     (dio_pad_attr_regwen_22_wd),
-
-    // from internal hardware
-    .de     (1'b0),
-    .d      ('0),
-
-    // to internal hardware
-    .qe     (),
-    .q      (),
-
-    // to register interface (read)
-    .qs     (dio_pad_attr_regwen_22_qs)
-  );
-
-
   // Subregister 0 of Multireg dio_pad_attr
   // R[dio_pad_attr_0]: V(True)
   prim_subreg_ext #(
@@ -11637,118 +11322,6 @@
   );
 
 
-  // Subregister 16 of Multireg dio_pad_attr
-  // R[dio_pad_attr_16]: V(True)
-  prim_subreg_ext #(
-    .DW    (13)
-  ) u_dio_pad_attr_16 (
-    .re     (dio_pad_attr_16_re),
-    .we     (dio_pad_attr_16_we & dio_pad_attr_regwen_16_qs),
-    .wd     (dio_pad_attr_16_wd),
-    .d      (hw2reg.dio_pad_attr[16].d),
-    .qre    (),
-    .qe     (reg2hw.dio_pad_attr[16].qe),
-    .q      (reg2hw.dio_pad_attr[16].q),
-    .qs     (dio_pad_attr_16_qs)
-  );
-
-
-  // Subregister 17 of Multireg dio_pad_attr
-  // R[dio_pad_attr_17]: V(True)
-  prim_subreg_ext #(
-    .DW    (13)
-  ) u_dio_pad_attr_17 (
-    .re     (dio_pad_attr_17_re),
-    .we     (dio_pad_attr_17_we & dio_pad_attr_regwen_17_qs),
-    .wd     (dio_pad_attr_17_wd),
-    .d      (hw2reg.dio_pad_attr[17].d),
-    .qre    (),
-    .qe     (reg2hw.dio_pad_attr[17].qe),
-    .q      (reg2hw.dio_pad_attr[17].q),
-    .qs     (dio_pad_attr_17_qs)
-  );
-
-
-  // Subregister 18 of Multireg dio_pad_attr
-  // R[dio_pad_attr_18]: V(True)
-  prim_subreg_ext #(
-    .DW    (13)
-  ) u_dio_pad_attr_18 (
-    .re     (dio_pad_attr_18_re),
-    .we     (dio_pad_attr_18_we & dio_pad_attr_regwen_18_qs),
-    .wd     (dio_pad_attr_18_wd),
-    .d      (hw2reg.dio_pad_attr[18].d),
-    .qre    (),
-    .qe     (reg2hw.dio_pad_attr[18].qe),
-    .q      (reg2hw.dio_pad_attr[18].q),
-    .qs     (dio_pad_attr_18_qs)
-  );
-
-
-  // Subregister 19 of Multireg dio_pad_attr
-  // R[dio_pad_attr_19]: V(True)
-  prim_subreg_ext #(
-    .DW    (13)
-  ) u_dio_pad_attr_19 (
-    .re     (dio_pad_attr_19_re),
-    .we     (dio_pad_attr_19_we & dio_pad_attr_regwen_19_qs),
-    .wd     (dio_pad_attr_19_wd),
-    .d      (hw2reg.dio_pad_attr[19].d),
-    .qre    (),
-    .qe     (reg2hw.dio_pad_attr[19].qe),
-    .q      (reg2hw.dio_pad_attr[19].q),
-    .qs     (dio_pad_attr_19_qs)
-  );
-
-
-  // Subregister 20 of Multireg dio_pad_attr
-  // R[dio_pad_attr_20]: V(True)
-  prim_subreg_ext #(
-    .DW    (13)
-  ) u_dio_pad_attr_20 (
-    .re     (dio_pad_attr_20_re),
-    .we     (dio_pad_attr_20_we & dio_pad_attr_regwen_20_qs),
-    .wd     (dio_pad_attr_20_wd),
-    .d      (hw2reg.dio_pad_attr[20].d),
-    .qre    (),
-    .qe     (reg2hw.dio_pad_attr[20].qe),
-    .q      (reg2hw.dio_pad_attr[20].q),
-    .qs     (dio_pad_attr_20_qs)
-  );
-
-
-  // Subregister 21 of Multireg dio_pad_attr
-  // R[dio_pad_attr_21]: V(True)
-  prim_subreg_ext #(
-    .DW    (13)
-  ) u_dio_pad_attr_21 (
-    .re     (dio_pad_attr_21_re),
-    .we     (dio_pad_attr_21_we & dio_pad_attr_regwen_21_qs),
-    .wd     (dio_pad_attr_21_wd),
-    .d      (hw2reg.dio_pad_attr[21].d),
-    .qre    (),
-    .qe     (reg2hw.dio_pad_attr[21].qe),
-    .q      (reg2hw.dio_pad_attr[21].q),
-    .qs     (dio_pad_attr_21_qs)
-  );
-
-
-  // Subregister 22 of Multireg dio_pad_attr
-  // R[dio_pad_attr_22]: V(True)
-  prim_subreg_ext #(
-    .DW    (13)
-  ) u_dio_pad_attr_22 (
-    .re     (dio_pad_attr_22_re),
-    .we     (dio_pad_attr_22_we & dio_pad_attr_regwen_22_qs),
-    .wd     (dio_pad_attr_22_wd),
-    .d      (hw2reg.dio_pad_attr[22].d),
-    .qre    (),
-    .qe     (reg2hw.dio_pad_attr[22].qe),
-    .q      (reg2hw.dio_pad_attr[22].q),
-    .qs     (dio_pad_attr_22_qs)
-  );
-
-
   // Subregister 0 of Multireg mio_pad_sleep_status
   // R[mio_pad_sleep_status_0]: V(False)
   //   F[en_0]: 0:0
@@ -17139,181 +16712,6 @@
     .qs     (dio_pad_sleep_status_en_15_qs)
   );
 
-  //   F[en_16]: 16:16
-  prim_subreg #(
-    .DW      (1),
-    .SwAccess(prim_subreg_pkg::SwAccessW0C),
-    .RESVAL  (1'h0)
-  ) u_dio_pad_sleep_status_en_16 (
-    .clk_i   (clk_i),
-    .rst_ni  (rst_ni),
-
-    // from register interface
-    .we     (dio_pad_sleep_status_we),
-    .wd     (dio_pad_sleep_status_en_16_wd),
-
-    // from internal hardware
-    .de     (hw2reg.dio_pad_sleep_status[16].de),
-    .d      (hw2reg.dio_pad_sleep_status[16].d),
-
-    // to internal hardware
-    .qe     (),
-    .q      (reg2hw.dio_pad_sleep_status[16].q),
-
-    // to register interface (read)
-    .qs     (dio_pad_sleep_status_en_16_qs)
-  );
-
-  //   F[en_17]: 17:17
-  prim_subreg #(
-    .DW      (1),
-    .SwAccess(prim_subreg_pkg::SwAccessW0C),
-    .RESVAL  (1'h0)
-  ) u_dio_pad_sleep_status_en_17 (
-    .clk_i   (clk_i),
-    .rst_ni  (rst_ni),
-
-    // from register interface
-    .we     (dio_pad_sleep_status_we),
-    .wd     (dio_pad_sleep_status_en_17_wd),
-
-    // from internal hardware
-    .de     (hw2reg.dio_pad_sleep_status[17].de),
-    .d      (hw2reg.dio_pad_sleep_status[17].d),
-
-    // to internal hardware
-    .qe     (),
-    .q      (reg2hw.dio_pad_sleep_status[17].q),
-
-    // to register interface (read)
-    .qs     (dio_pad_sleep_status_en_17_qs)
-  );
-
-  //   F[en_18]: 18:18
-  prim_subreg #(
-    .DW      (1),
-    .SwAccess(prim_subreg_pkg::SwAccessW0C),
-    .RESVAL  (1'h0)
-  ) u_dio_pad_sleep_status_en_18 (
-    .clk_i   (clk_i),
-    .rst_ni  (rst_ni),
-
-    // from register interface
-    .we     (dio_pad_sleep_status_we),
-    .wd     (dio_pad_sleep_status_en_18_wd),
-
-    // from internal hardware
-    .de     (hw2reg.dio_pad_sleep_status[18].de),
-    .d      (hw2reg.dio_pad_sleep_status[18].d),
-
-    // to internal hardware
-    .qe     (),
-    .q      (reg2hw.dio_pad_sleep_status[18].q),
-
-    // to register interface (read)
-    .qs     (dio_pad_sleep_status_en_18_qs)
-  );
-
-  //   F[en_19]: 19:19
-  prim_subreg #(
-    .DW      (1),
-    .SwAccess(prim_subreg_pkg::SwAccessW0C),
-    .RESVAL  (1'h0)
-  ) u_dio_pad_sleep_status_en_19 (
-    .clk_i   (clk_i),
-    .rst_ni  (rst_ni),
-
-    // from register interface
-    .we     (dio_pad_sleep_status_we),
-    .wd     (dio_pad_sleep_status_en_19_wd),
-
-    // from internal hardware
-    .de     (hw2reg.dio_pad_sleep_status[19].de),
-    .d      (hw2reg.dio_pad_sleep_status[19].d),
-
-    // to internal hardware
-    .qe     (),
-    .q      (reg2hw.dio_pad_sleep_status[19].q),
-
-    // to register interface (read)
-    .qs     (dio_pad_sleep_status_en_19_qs)
-  );
-
-  //   F[en_20]: 20:20
-  prim_subreg #(
-    .DW      (1),
-    .SwAccess(prim_subreg_pkg::SwAccessW0C),
-    .RESVAL  (1'h0)
-  ) u_dio_pad_sleep_status_en_20 (
-    .clk_i   (clk_i),
-    .rst_ni  (rst_ni),
-
-    // from register interface
-    .we     (dio_pad_sleep_status_we),
-    .wd     (dio_pad_sleep_status_en_20_wd),
-
-    // from internal hardware
-    .de     (hw2reg.dio_pad_sleep_status[20].de),
-    .d      (hw2reg.dio_pad_sleep_status[20].d),
-
-    // to internal hardware
-    .qe     (),
-    .q      (reg2hw.dio_pad_sleep_status[20].q),
-
-    // to register interface (read)
-    .qs     (dio_pad_sleep_status_en_20_qs)
-  );
-
-  //   F[en_21]: 21:21
-  prim_subreg #(
-    .DW      (1),
-    .SwAccess(prim_subreg_pkg::SwAccessW0C),
-    .RESVAL  (1'h0)
-  ) u_dio_pad_sleep_status_en_21 (
-    .clk_i   (clk_i),
-    .rst_ni  (rst_ni),
-
-    // from register interface
-    .we     (dio_pad_sleep_status_we),
-    .wd     (dio_pad_sleep_status_en_21_wd),
-
-    // from internal hardware
-    .de     (hw2reg.dio_pad_sleep_status[21].de),
-    .d      (hw2reg.dio_pad_sleep_status[21].d),
-
-    // to internal hardware
-    .qe     (),
-    .q      (reg2hw.dio_pad_sleep_status[21].q),
-
-    // to register interface (read)
-    .qs     (dio_pad_sleep_status_en_21_qs)
-  );
-
-  //   F[en_22]: 22:22
-  prim_subreg #(
-    .DW      (1),
-    .SwAccess(prim_subreg_pkg::SwAccessW0C),
-    .RESVAL  (1'h0)
-  ) u_dio_pad_sleep_status_en_22 (
-    .clk_i   (clk_i),
-    .rst_ni  (rst_ni),
-
-    // from register interface
-    .we     (dio_pad_sleep_status_we),
-    .wd     (dio_pad_sleep_status_en_22_wd),
-
-    // from internal hardware
-    .de     (hw2reg.dio_pad_sleep_status[22].de),
-    .d      (hw2reg.dio_pad_sleep_status[22].d),
-
-    // to internal hardware
-    .qe     (),
-    .q      (reg2hw.dio_pad_sleep_status[22].q),
-
-    // to register interface (read)
-    .qs     (dio_pad_sleep_status_en_22_qs)
-  );
-
 
   // Subregister 0 of Multireg dio_pad_sleep_regwen
   // R[dio_pad_sleep_regwen_0]: V(False)
@@ -17747,195 +17145,6 @@
   );
 
 
-  // Subregister 16 of Multireg dio_pad_sleep_regwen
-  // R[dio_pad_sleep_regwen_16]: V(False)
-  prim_subreg #(
-    .DW      (1),
-    .SwAccess(prim_subreg_pkg::SwAccessW0C),
-    .RESVAL  (1'h1)
-  ) u_dio_pad_sleep_regwen_16 (
-    .clk_i   (clk_i),
-    .rst_ni  (rst_ni),
-
-    // from register interface
-    .we     (dio_pad_sleep_regwen_16_we),
-    .wd     (dio_pad_sleep_regwen_16_wd),
-
-    // from internal hardware
-    .de     (1'b0),
-    .d      ('0),
-
-    // to internal hardware
-    .qe     (),
-    .q      (),
-
-    // to register interface (read)
-    .qs     (dio_pad_sleep_regwen_16_qs)
-  );
-
-
-  // Subregister 17 of Multireg dio_pad_sleep_regwen
-  // R[dio_pad_sleep_regwen_17]: V(False)
-  prim_subreg #(
-    .DW      (1),
-    .SwAccess(prim_subreg_pkg::SwAccessW0C),
-    .RESVAL  (1'h1)
-  ) u_dio_pad_sleep_regwen_17 (
-    .clk_i   (clk_i),
-    .rst_ni  (rst_ni),
-
-    // from register interface
-    .we     (dio_pad_sleep_regwen_17_we),
-    .wd     (dio_pad_sleep_regwen_17_wd),
-
-    // from internal hardware
-    .de     (1'b0),
-    .d      ('0),
-
-    // to internal hardware
-    .qe     (),
-    .q      (),
-
-    // to register interface (read)
-    .qs     (dio_pad_sleep_regwen_17_qs)
-  );
-
-
-  // Subregister 18 of Multireg dio_pad_sleep_regwen
-  // R[dio_pad_sleep_regwen_18]: V(False)
-  prim_subreg #(
-    .DW      (1),
-    .SwAccess(prim_subreg_pkg::SwAccessW0C),
-    .RESVAL  (1'h1)
-  ) u_dio_pad_sleep_regwen_18 (
-    .clk_i   (clk_i),
-    .rst_ni  (rst_ni),
-
-    // from register interface
-    .we     (dio_pad_sleep_regwen_18_we),
-    .wd     (dio_pad_sleep_regwen_18_wd),
-
-    // from internal hardware
-    .de     (1'b0),
-    .d      ('0),
-
-    // to internal hardware
-    .qe     (),
-    .q      (),
-
-    // to register interface (read)
-    .qs     (dio_pad_sleep_regwen_18_qs)
-  );
-
-
-  // Subregister 19 of Multireg dio_pad_sleep_regwen
-  // R[dio_pad_sleep_regwen_19]: V(False)
-  prim_subreg #(
-    .DW      (1),
-    .SwAccess(prim_subreg_pkg::SwAccessW0C),
-    .RESVAL  (1'h1)
-  ) u_dio_pad_sleep_regwen_19 (
-    .clk_i   (clk_i),
-    .rst_ni  (rst_ni),
-
-    // from register interface
-    .we     (dio_pad_sleep_regwen_19_we),
-    .wd     (dio_pad_sleep_regwen_19_wd),
-
-    // from internal hardware
-    .de     (1'b0),
-    .d      ('0),
-
-    // to internal hardware
-    .qe     (),
-    .q      (),
-
-    // to register interface (read)
-    .qs     (dio_pad_sleep_regwen_19_qs)
-  );
-
-
-  // Subregister 20 of Multireg dio_pad_sleep_regwen
-  // R[dio_pad_sleep_regwen_20]: V(False)
-  prim_subreg #(
-    .DW      (1),
-    .SwAccess(prim_subreg_pkg::SwAccessW0C),
-    .RESVAL  (1'h1)
-  ) u_dio_pad_sleep_regwen_20 (
-    .clk_i   (clk_i),
-    .rst_ni  (rst_ni),
-
-    // from register interface
-    .we     (dio_pad_sleep_regwen_20_we),
-    .wd     (dio_pad_sleep_regwen_20_wd),
-
-    // from internal hardware
-    .de     (1'b0),
-    .d      ('0),
-
-    // to internal hardware
-    .qe     (),
-    .q      (),
-
-    // to register interface (read)
-    .qs     (dio_pad_sleep_regwen_20_qs)
-  );
-
-
-  // Subregister 21 of Multireg dio_pad_sleep_regwen
-  // R[dio_pad_sleep_regwen_21]: V(False)
-  prim_subreg #(
-    .DW      (1),
-    .SwAccess(prim_subreg_pkg::SwAccessW0C),
-    .RESVAL  (1'h1)
-  ) u_dio_pad_sleep_regwen_21 (
-    .clk_i   (clk_i),
-    .rst_ni  (rst_ni),
-
-    // from register interface
-    .we     (dio_pad_sleep_regwen_21_we),
-    .wd     (dio_pad_sleep_regwen_21_wd),
-
-    // from internal hardware
-    .de     (1'b0),
-    .d      ('0),
-
-    // to internal hardware
-    .qe     (),
-    .q      (),
-
-    // to register interface (read)
-    .qs     (dio_pad_sleep_regwen_21_qs)
-  );
-
-
-  // Subregister 22 of Multireg dio_pad_sleep_regwen
-  // R[dio_pad_sleep_regwen_22]: V(False)
-  prim_subreg #(
-    .DW      (1),
-    .SwAccess(prim_subreg_pkg::SwAccessW0C),
-    .RESVAL  (1'h1)
-  ) u_dio_pad_sleep_regwen_22 (
-    .clk_i   (clk_i),
-    .rst_ni  (rst_ni),
-
-    // from register interface
-    .we     (dio_pad_sleep_regwen_22_we),
-    .wd     (dio_pad_sleep_regwen_22_wd),
-
-    // from internal hardware
-    .de     (1'b0),
-    .d      ('0),
-
-    // to internal hardware
-    .qe     (),
-    .q      (),
-
-    // to register interface (read)
-    .qs     (dio_pad_sleep_regwen_22_qs)
-  );
-
-
   // Subregister 0 of Multireg dio_pad_sleep_en
   // R[dio_pad_sleep_en_0]: V(False)
   prim_subreg #(
@@ -18368,195 +17577,6 @@
   );
 
 
-  // Subregister 16 of Multireg dio_pad_sleep_en
-  // R[dio_pad_sleep_en_16]: V(False)
-  prim_subreg #(
-    .DW      (1),
-    .SwAccess(prim_subreg_pkg::SwAccessRW),
-    .RESVAL  (1'h0)
-  ) u_dio_pad_sleep_en_16 (
-    .clk_i   (clk_i),
-    .rst_ni  (rst_ni),
-
-    // from register interface
-    .we     (dio_pad_sleep_en_16_we & dio_pad_sleep_regwen_16_qs),
-    .wd     (dio_pad_sleep_en_16_wd),
-
-    // from internal hardware
-    .de     (1'b0),
-    .d      ('0),
-
-    // to internal hardware
-    .qe     (),
-    .q      (reg2hw.dio_pad_sleep_en[16].q),
-
-    // to register interface (read)
-    .qs     (dio_pad_sleep_en_16_qs)
-  );
-
-
-  // Subregister 17 of Multireg dio_pad_sleep_en
-  // R[dio_pad_sleep_en_17]: V(False)
-  prim_subreg #(
-    .DW      (1),
-    .SwAccess(prim_subreg_pkg::SwAccessRW),
-    .RESVAL  (1'h0)
-  ) u_dio_pad_sleep_en_17 (
-    .clk_i   (clk_i),
-    .rst_ni  (rst_ni),
-
-    // from register interface
-    .we     (dio_pad_sleep_en_17_we & dio_pad_sleep_regwen_17_qs),
-    .wd     (dio_pad_sleep_en_17_wd),
-
-    // from internal hardware
-    .de     (1'b0),
-    .d      ('0),
-
-    // to internal hardware
-    .qe     (),
-    .q      (reg2hw.dio_pad_sleep_en[17].q),
-
-    // to register interface (read)
-    .qs     (dio_pad_sleep_en_17_qs)
-  );
-
-
-  // Subregister 18 of Multireg dio_pad_sleep_en
-  // R[dio_pad_sleep_en_18]: V(False)
-  prim_subreg #(
-    .DW      (1),
-    .SwAccess(prim_subreg_pkg::SwAccessRW),
-    .RESVAL  (1'h0)
-  ) u_dio_pad_sleep_en_18 (
-    .clk_i   (clk_i),
-    .rst_ni  (rst_ni),
-
-    // from register interface
-    .we     (dio_pad_sleep_en_18_we & dio_pad_sleep_regwen_18_qs),
-    .wd     (dio_pad_sleep_en_18_wd),
-
-    // from internal hardware
-    .de     (1'b0),
-    .d      ('0),
-
-    // to internal hardware
-    .qe     (),
-    .q      (reg2hw.dio_pad_sleep_en[18].q),
-
-    // to register interface (read)
-    .qs     (dio_pad_sleep_en_18_qs)
-  );
-
-
-  // Subregister 19 of Multireg dio_pad_sleep_en
-  // R[dio_pad_sleep_en_19]: V(False)
-  prim_subreg #(
-    .DW      (1),
-    .SwAccess(prim_subreg_pkg::SwAccessRW),
-    .RESVAL  (1'h0)
-  ) u_dio_pad_sleep_en_19 (
-    .clk_i   (clk_i),
-    .rst_ni  (rst_ni),
-
-    // from register interface
-    .we     (dio_pad_sleep_en_19_we & dio_pad_sleep_regwen_19_qs),
-    .wd     (dio_pad_sleep_en_19_wd),
-
-    // from internal hardware
-    .de     (1'b0),
-    .d      ('0),
-
-    // to internal hardware
-    .qe     (),
-    .q      (reg2hw.dio_pad_sleep_en[19].q),
-
-    // to register interface (read)
-    .qs     (dio_pad_sleep_en_19_qs)
-  );
-
-
-  // Subregister 20 of Multireg dio_pad_sleep_en
-  // R[dio_pad_sleep_en_20]: V(False)
-  prim_subreg #(
-    .DW      (1),
-    .SwAccess(prim_subreg_pkg::SwAccessRW),
-    .RESVAL  (1'h0)
-  ) u_dio_pad_sleep_en_20 (
-    .clk_i   (clk_i),
-    .rst_ni  (rst_ni),
-
-    // from register interface
-    .we     (dio_pad_sleep_en_20_we & dio_pad_sleep_regwen_20_qs),
-    .wd     (dio_pad_sleep_en_20_wd),
-
-    // from internal hardware
-    .de     (1'b0),
-    .d      ('0),
-
-    // to internal hardware
-    .qe     (),
-    .q      (reg2hw.dio_pad_sleep_en[20].q),
-
-    // to register interface (read)
-    .qs     (dio_pad_sleep_en_20_qs)
-  );
-
-
-  // Subregister 21 of Multireg dio_pad_sleep_en
-  // R[dio_pad_sleep_en_21]: V(False)
-  prim_subreg #(
-    .DW      (1),
-    .SwAccess(prim_subreg_pkg::SwAccessRW),
-    .RESVAL  (1'h0)
-  ) u_dio_pad_sleep_en_21 (
-    .clk_i   (clk_i),
-    .rst_ni  (rst_ni),
-
-    // from register interface
-    .we     (dio_pad_sleep_en_21_we & dio_pad_sleep_regwen_21_qs),
-    .wd     (dio_pad_sleep_en_21_wd),
-
-    // from internal hardware
-    .de     (1'b0),
-    .d      ('0),
-
-    // to internal hardware
-    .qe     (),
-    .q      (reg2hw.dio_pad_sleep_en[21].q),
-
-    // to register interface (read)
-    .qs     (dio_pad_sleep_en_21_qs)
-  );
-
-
-  // Subregister 22 of Multireg dio_pad_sleep_en
-  // R[dio_pad_sleep_en_22]: V(False)
-  prim_subreg #(
-    .DW      (1),
-    .SwAccess(prim_subreg_pkg::SwAccessRW),
-    .RESVAL  (1'h0)
-  ) u_dio_pad_sleep_en_22 (
-    .clk_i   (clk_i),
-    .rst_ni  (rst_ni),
-
-    // from register interface
-    .we     (dio_pad_sleep_en_22_we & dio_pad_sleep_regwen_22_qs),
-    .wd     (dio_pad_sleep_en_22_wd),
-
-    // from internal hardware
-    .de     (1'b0),
-    .d      ('0),
-
-    // to internal hardware
-    .qe     (),
-    .q      (reg2hw.dio_pad_sleep_en[22].q),
-
-    // to register interface (read)
-    .qs     (dio_pad_sleep_en_22_qs)
-  );
-
-
   // Subregister 0 of Multireg dio_pad_sleep_mode
   // R[dio_pad_sleep_mode_0]: V(False)
   prim_subreg #(
@@ -18989,195 +18009,6 @@
   );
 
 
-  // Subregister 16 of Multireg dio_pad_sleep_mode
-  // R[dio_pad_sleep_mode_16]: V(False)
-  prim_subreg #(
-    .DW      (2),
-    .SwAccess(prim_subreg_pkg::SwAccessRW),
-    .RESVAL  (2'h2)
-  ) u_dio_pad_sleep_mode_16 (
-    .clk_i   (clk_i),
-    .rst_ni  (rst_ni),
-
-    // from register interface
-    .we     (dio_pad_sleep_mode_16_we & dio_pad_sleep_regwen_16_qs),
-    .wd     (dio_pad_sleep_mode_16_wd),
-
-    // from internal hardware
-    .de     (1'b0),
-    .d      ('0),
-
-    // to internal hardware
-    .qe     (),
-    .q      (reg2hw.dio_pad_sleep_mode[16].q),
-
-    // to register interface (read)
-    .qs     (dio_pad_sleep_mode_16_qs)
-  );
-
-
-  // Subregister 17 of Multireg dio_pad_sleep_mode
-  // R[dio_pad_sleep_mode_17]: V(False)
-  prim_subreg #(
-    .DW      (2),
-    .SwAccess(prim_subreg_pkg::SwAccessRW),
-    .RESVAL  (2'h2)
-  ) u_dio_pad_sleep_mode_17 (
-    .clk_i   (clk_i),
-    .rst_ni  (rst_ni),
-
-    // from register interface
-    .we     (dio_pad_sleep_mode_17_we & dio_pad_sleep_regwen_17_qs),
-    .wd     (dio_pad_sleep_mode_17_wd),
-
-    // from internal hardware
-    .de     (1'b0),
-    .d      ('0),
-
-    // to internal hardware
-    .qe     (),
-    .q      (reg2hw.dio_pad_sleep_mode[17].q),
-
-    // to register interface (read)
-    .qs     (dio_pad_sleep_mode_17_qs)
-  );
-
-
-  // Subregister 18 of Multireg dio_pad_sleep_mode
-  // R[dio_pad_sleep_mode_18]: V(False)
-  prim_subreg #(
-    .DW      (2),
-    .SwAccess(prim_subreg_pkg::SwAccessRW),
-    .RESVAL  (2'h2)
-  ) u_dio_pad_sleep_mode_18 (
-    .clk_i   (clk_i),
-    .rst_ni  (rst_ni),
-
-    // from register interface
-    .we     (dio_pad_sleep_mode_18_we & dio_pad_sleep_regwen_18_qs),
-    .wd     (dio_pad_sleep_mode_18_wd),
-
-    // from internal hardware
-    .de     (1'b0),
-    .d      ('0),
-
-    // to internal hardware
-    .qe     (),
-    .q      (reg2hw.dio_pad_sleep_mode[18].q),
-
-    // to register interface (read)
-    .qs     (dio_pad_sleep_mode_18_qs)
-  );
-
-
-  // Subregister 19 of Multireg dio_pad_sleep_mode
-  // R[dio_pad_sleep_mode_19]: V(False)
-  prim_subreg #(
-    .DW      (2),
-    .SwAccess(prim_subreg_pkg::SwAccessRW),
-    .RESVAL  (2'h2)
-  ) u_dio_pad_sleep_mode_19 (
-    .clk_i   (clk_i),
-    .rst_ni  (rst_ni),
-
-    // from register interface
-    .we     (dio_pad_sleep_mode_19_we & dio_pad_sleep_regwen_19_qs),
-    .wd     (dio_pad_sleep_mode_19_wd),
-
-    // from internal hardware
-    .de     (1'b0),
-    .d      ('0),
-
-    // to internal hardware
-    .qe     (),
-    .q      (reg2hw.dio_pad_sleep_mode[19].q),
-
-    // to register interface (read)
-    .qs     (dio_pad_sleep_mode_19_qs)
-  );
-
-
-  // Subregister 20 of Multireg dio_pad_sleep_mode
-  // R[dio_pad_sleep_mode_20]: V(False)
-  prim_subreg #(
-    .DW      (2),
-    .SwAccess(prim_subreg_pkg::SwAccessRW),
-    .RESVAL  (2'h2)
-  ) u_dio_pad_sleep_mode_20 (
-    .clk_i   (clk_i),
-    .rst_ni  (rst_ni),
-
-    // from register interface
-    .we     (dio_pad_sleep_mode_20_we & dio_pad_sleep_regwen_20_qs),
-    .wd     (dio_pad_sleep_mode_20_wd),
-
-    // from internal hardware
-    .de     (1'b0),
-    .d      ('0),
-
-    // to internal hardware
-    .qe     (),
-    .q      (reg2hw.dio_pad_sleep_mode[20].q),
-
-    // to register interface (read)
-    .qs     (dio_pad_sleep_mode_20_qs)
-  );
-
-
-  // Subregister 21 of Multireg dio_pad_sleep_mode
-  // R[dio_pad_sleep_mode_21]: V(False)
-  prim_subreg #(
-    .DW      (2),
-    .SwAccess(prim_subreg_pkg::SwAccessRW),
-    .RESVAL  (2'h2)
-  ) u_dio_pad_sleep_mode_21 (
-    .clk_i   (clk_i),
-    .rst_ni  (rst_ni),
-
-    // from register interface
-    .we     (dio_pad_sleep_mode_21_we & dio_pad_sleep_regwen_21_qs),
-    .wd     (dio_pad_sleep_mode_21_wd),
-
-    // from internal hardware
-    .de     (1'b0),
-    .d      ('0),
-
-    // to internal hardware
-    .qe     (),
-    .q      (reg2hw.dio_pad_sleep_mode[21].q),
-
-    // to register interface (read)
-    .qs     (dio_pad_sleep_mode_21_qs)
-  );
-
-
-  // Subregister 22 of Multireg dio_pad_sleep_mode
-  // R[dio_pad_sleep_mode_22]: V(False)
-  prim_subreg #(
-    .DW      (2),
-    .SwAccess(prim_subreg_pkg::SwAccessRW),
-    .RESVAL  (2'h2)
-  ) u_dio_pad_sleep_mode_22 (
-    .clk_i   (clk_i),
-    .rst_ni  (rst_ni),
-
-    // from register interface
-    .we     (dio_pad_sleep_mode_22_we & dio_pad_sleep_regwen_22_qs),
-    .wd     (dio_pad_sleep_mode_22_wd),
-
-    // from internal hardware
-    .de     (1'b0),
-    .d      ('0),
-
-    // to internal hardware
-    .qe     (),
-    .q      (reg2hw.dio_pad_sleep_mode[22].q),
-
-    // to register interface (read)
-    .qs     (dio_pad_sleep_mode_22_qs)
-  );
-
-
   // Subregister 0 of Multireg wkup_detector_regwen
   // R[wkup_detector_regwen_0]: V(False)
   prim_subreg #(
@@ -20870,7 +19701,7 @@
 
 
 
-  logic [602:0] addr_hit;
+  logic [567:0] addr_hit;
   always_comb begin
     addr_hit = '0;
     addr_hit[  0] = (reg_addr == PINMUX_ALERT_TEST_OFFSET);
@@ -21192,290 +20023,255 @@
     addr_hit[316] = (reg_addr == PINMUX_DIO_PAD_ATTR_REGWEN_13_OFFSET);
     addr_hit[317] = (reg_addr == PINMUX_DIO_PAD_ATTR_REGWEN_14_OFFSET);
     addr_hit[318] = (reg_addr == PINMUX_DIO_PAD_ATTR_REGWEN_15_OFFSET);
-    addr_hit[319] = (reg_addr == PINMUX_DIO_PAD_ATTR_REGWEN_16_OFFSET);
-    addr_hit[320] = (reg_addr == PINMUX_DIO_PAD_ATTR_REGWEN_17_OFFSET);
-    addr_hit[321] = (reg_addr == PINMUX_DIO_PAD_ATTR_REGWEN_18_OFFSET);
-    addr_hit[322] = (reg_addr == PINMUX_DIO_PAD_ATTR_REGWEN_19_OFFSET);
-    addr_hit[323] = (reg_addr == PINMUX_DIO_PAD_ATTR_REGWEN_20_OFFSET);
-    addr_hit[324] = (reg_addr == PINMUX_DIO_PAD_ATTR_REGWEN_21_OFFSET);
-    addr_hit[325] = (reg_addr == PINMUX_DIO_PAD_ATTR_REGWEN_22_OFFSET);
-    addr_hit[326] = (reg_addr == PINMUX_DIO_PAD_ATTR_0_OFFSET);
-    addr_hit[327] = (reg_addr == PINMUX_DIO_PAD_ATTR_1_OFFSET);
-    addr_hit[328] = (reg_addr == PINMUX_DIO_PAD_ATTR_2_OFFSET);
-    addr_hit[329] = (reg_addr == PINMUX_DIO_PAD_ATTR_3_OFFSET);
-    addr_hit[330] = (reg_addr == PINMUX_DIO_PAD_ATTR_4_OFFSET);
-    addr_hit[331] = (reg_addr == PINMUX_DIO_PAD_ATTR_5_OFFSET);
-    addr_hit[332] = (reg_addr == PINMUX_DIO_PAD_ATTR_6_OFFSET);
-    addr_hit[333] = (reg_addr == PINMUX_DIO_PAD_ATTR_7_OFFSET);
-    addr_hit[334] = (reg_addr == PINMUX_DIO_PAD_ATTR_8_OFFSET);
-    addr_hit[335] = (reg_addr == PINMUX_DIO_PAD_ATTR_9_OFFSET);
-    addr_hit[336] = (reg_addr == PINMUX_DIO_PAD_ATTR_10_OFFSET);
-    addr_hit[337] = (reg_addr == PINMUX_DIO_PAD_ATTR_11_OFFSET);
-    addr_hit[338] = (reg_addr == PINMUX_DIO_PAD_ATTR_12_OFFSET);
-    addr_hit[339] = (reg_addr == PINMUX_DIO_PAD_ATTR_13_OFFSET);
-    addr_hit[340] = (reg_addr == PINMUX_DIO_PAD_ATTR_14_OFFSET);
-    addr_hit[341] = (reg_addr == PINMUX_DIO_PAD_ATTR_15_OFFSET);
-    addr_hit[342] = (reg_addr == PINMUX_DIO_PAD_ATTR_16_OFFSET);
-    addr_hit[343] = (reg_addr == PINMUX_DIO_PAD_ATTR_17_OFFSET);
-    addr_hit[344] = (reg_addr == PINMUX_DIO_PAD_ATTR_18_OFFSET);
-    addr_hit[345] = (reg_addr == PINMUX_DIO_PAD_ATTR_19_OFFSET);
-    addr_hit[346] = (reg_addr == PINMUX_DIO_PAD_ATTR_20_OFFSET);
-    addr_hit[347] = (reg_addr == PINMUX_DIO_PAD_ATTR_21_OFFSET);
-    addr_hit[348] = (reg_addr == PINMUX_DIO_PAD_ATTR_22_OFFSET);
-    addr_hit[349] = (reg_addr == PINMUX_MIO_PAD_SLEEP_STATUS_0_OFFSET);
-    addr_hit[350] = (reg_addr == PINMUX_MIO_PAD_SLEEP_STATUS_1_OFFSET);
-    addr_hit[351] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_0_OFFSET);
-    addr_hit[352] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_1_OFFSET);
-    addr_hit[353] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_2_OFFSET);
-    addr_hit[354] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_3_OFFSET);
-    addr_hit[355] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_4_OFFSET);
-    addr_hit[356] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_5_OFFSET);
-    addr_hit[357] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_6_OFFSET);
-    addr_hit[358] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_7_OFFSET);
-    addr_hit[359] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_8_OFFSET);
-    addr_hit[360] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_9_OFFSET);
-    addr_hit[361] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_10_OFFSET);
-    addr_hit[362] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_11_OFFSET);
-    addr_hit[363] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_12_OFFSET);
-    addr_hit[364] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_13_OFFSET);
-    addr_hit[365] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_14_OFFSET);
-    addr_hit[366] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_15_OFFSET);
-    addr_hit[367] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_16_OFFSET);
-    addr_hit[368] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_17_OFFSET);
-    addr_hit[369] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_18_OFFSET);
-    addr_hit[370] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_19_OFFSET);
-    addr_hit[371] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_20_OFFSET);
-    addr_hit[372] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_21_OFFSET);
-    addr_hit[373] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_22_OFFSET);
-    addr_hit[374] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_23_OFFSET);
-    addr_hit[375] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_24_OFFSET);
-    addr_hit[376] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_25_OFFSET);
-    addr_hit[377] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_26_OFFSET);
-    addr_hit[378] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_27_OFFSET);
-    addr_hit[379] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_28_OFFSET);
-    addr_hit[380] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_29_OFFSET);
-    addr_hit[381] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_30_OFFSET);
-    addr_hit[382] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_31_OFFSET);
-    addr_hit[383] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_32_OFFSET);
-    addr_hit[384] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_33_OFFSET);
-    addr_hit[385] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_34_OFFSET);
-    addr_hit[386] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_35_OFFSET);
-    addr_hit[387] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_36_OFFSET);
-    addr_hit[388] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_37_OFFSET);
-    addr_hit[389] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_38_OFFSET);
-    addr_hit[390] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_39_OFFSET);
-    addr_hit[391] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_40_OFFSET);
-    addr_hit[392] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_41_OFFSET);
-    addr_hit[393] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_42_OFFSET);
-    addr_hit[394] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_43_OFFSET);
-    addr_hit[395] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_44_OFFSET);
-    addr_hit[396] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_45_OFFSET);
-    addr_hit[397] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_46_OFFSET);
-    addr_hit[398] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_0_OFFSET);
-    addr_hit[399] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_1_OFFSET);
-    addr_hit[400] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_2_OFFSET);
-    addr_hit[401] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_3_OFFSET);
-    addr_hit[402] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_4_OFFSET);
-    addr_hit[403] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_5_OFFSET);
-    addr_hit[404] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_6_OFFSET);
-    addr_hit[405] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_7_OFFSET);
-    addr_hit[406] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_8_OFFSET);
-    addr_hit[407] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_9_OFFSET);
-    addr_hit[408] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_10_OFFSET);
-    addr_hit[409] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_11_OFFSET);
-    addr_hit[410] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_12_OFFSET);
-    addr_hit[411] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_13_OFFSET);
-    addr_hit[412] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_14_OFFSET);
-    addr_hit[413] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_15_OFFSET);
-    addr_hit[414] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_16_OFFSET);
-    addr_hit[415] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_17_OFFSET);
-    addr_hit[416] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_18_OFFSET);
-    addr_hit[417] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_19_OFFSET);
-    addr_hit[418] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_20_OFFSET);
-    addr_hit[419] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_21_OFFSET);
-    addr_hit[420] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_22_OFFSET);
-    addr_hit[421] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_23_OFFSET);
-    addr_hit[422] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_24_OFFSET);
-    addr_hit[423] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_25_OFFSET);
-    addr_hit[424] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_26_OFFSET);
-    addr_hit[425] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_27_OFFSET);
-    addr_hit[426] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_28_OFFSET);
-    addr_hit[427] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_29_OFFSET);
-    addr_hit[428] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_30_OFFSET);
-    addr_hit[429] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_31_OFFSET);
-    addr_hit[430] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_32_OFFSET);
-    addr_hit[431] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_33_OFFSET);
-    addr_hit[432] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_34_OFFSET);
-    addr_hit[433] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_35_OFFSET);
-    addr_hit[434] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_36_OFFSET);
-    addr_hit[435] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_37_OFFSET);
-    addr_hit[436] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_38_OFFSET);
-    addr_hit[437] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_39_OFFSET);
-    addr_hit[438] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_40_OFFSET);
-    addr_hit[439] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_41_OFFSET);
-    addr_hit[440] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_42_OFFSET);
-    addr_hit[441] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_43_OFFSET);
-    addr_hit[442] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_44_OFFSET);
-    addr_hit[443] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_45_OFFSET);
-    addr_hit[444] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_46_OFFSET);
-    addr_hit[445] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_0_OFFSET);
-    addr_hit[446] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_1_OFFSET);
-    addr_hit[447] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_2_OFFSET);
-    addr_hit[448] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_3_OFFSET);
-    addr_hit[449] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_4_OFFSET);
-    addr_hit[450] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_5_OFFSET);
-    addr_hit[451] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_6_OFFSET);
-    addr_hit[452] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_7_OFFSET);
-    addr_hit[453] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_8_OFFSET);
-    addr_hit[454] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_9_OFFSET);
-    addr_hit[455] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_10_OFFSET);
-    addr_hit[456] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_11_OFFSET);
-    addr_hit[457] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_12_OFFSET);
-    addr_hit[458] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_13_OFFSET);
-    addr_hit[459] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_14_OFFSET);
-    addr_hit[460] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_15_OFFSET);
-    addr_hit[461] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_16_OFFSET);
-    addr_hit[462] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_17_OFFSET);
-    addr_hit[463] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_18_OFFSET);
-    addr_hit[464] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_19_OFFSET);
-    addr_hit[465] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_20_OFFSET);
-    addr_hit[466] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_21_OFFSET);
-    addr_hit[467] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_22_OFFSET);
-    addr_hit[468] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_23_OFFSET);
-    addr_hit[469] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_24_OFFSET);
-    addr_hit[470] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_25_OFFSET);
-    addr_hit[471] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_26_OFFSET);
-    addr_hit[472] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_27_OFFSET);
-    addr_hit[473] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_28_OFFSET);
-    addr_hit[474] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_29_OFFSET);
-    addr_hit[475] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_30_OFFSET);
-    addr_hit[476] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_31_OFFSET);
-    addr_hit[477] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_32_OFFSET);
-    addr_hit[478] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_33_OFFSET);
-    addr_hit[479] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_34_OFFSET);
-    addr_hit[480] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_35_OFFSET);
-    addr_hit[481] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_36_OFFSET);
-    addr_hit[482] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_37_OFFSET);
-    addr_hit[483] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_38_OFFSET);
-    addr_hit[484] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_39_OFFSET);
-    addr_hit[485] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_40_OFFSET);
-    addr_hit[486] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_41_OFFSET);
-    addr_hit[487] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_42_OFFSET);
-    addr_hit[488] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_43_OFFSET);
-    addr_hit[489] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_44_OFFSET);
-    addr_hit[490] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_45_OFFSET);
-    addr_hit[491] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_46_OFFSET);
-    addr_hit[492] = (reg_addr == PINMUX_DIO_PAD_SLEEP_STATUS_OFFSET);
-    addr_hit[493] = (reg_addr == PINMUX_DIO_PAD_SLEEP_REGWEN_0_OFFSET);
-    addr_hit[494] = (reg_addr == PINMUX_DIO_PAD_SLEEP_REGWEN_1_OFFSET);
-    addr_hit[495] = (reg_addr == PINMUX_DIO_PAD_SLEEP_REGWEN_2_OFFSET);
-    addr_hit[496] = (reg_addr == PINMUX_DIO_PAD_SLEEP_REGWEN_3_OFFSET);
-    addr_hit[497] = (reg_addr == PINMUX_DIO_PAD_SLEEP_REGWEN_4_OFFSET);
-    addr_hit[498] = (reg_addr == PINMUX_DIO_PAD_SLEEP_REGWEN_5_OFFSET);
-    addr_hit[499] = (reg_addr == PINMUX_DIO_PAD_SLEEP_REGWEN_6_OFFSET);
-    addr_hit[500] = (reg_addr == PINMUX_DIO_PAD_SLEEP_REGWEN_7_OFFSET);
-    addr_hit[501] = (reg_addr == PINMUX_DIO_PAD_SLEEP_REGWEN_8_OFFSET);
-    addr_hit[502] = (reg_addr == PINMUX_DIO_PAD_SLEEP_REGWEN_9_OFFSET);
-    addr_hit[503] = (reg_addr == PINMUX_DIO_PAD_SLEEP_REGWEN_10_OFFSET);
-    addr_hit[504] = (reg_addr == PINMUX_DIO_PAD_SLEEP_REGWEN_11_OFFSET);
-    addr_hit[505] = (reg_addr == PINMUX_DIO_PAD_SLEEP_REGWEN_12_OFFSET);
-    addr_hit[506] = (reg_addr == PINMUX_DIO_PAD_SLEEP_REGWEN_13_OFFSET);
-    addr_hit[507] = (reg_addr == PINMUX_DIO_PAD_SLEEP_REGWEN_14_OFFSET);
-    addr_hit[508] = (reg_addr == PINMUX_DIO_PAD_SLEEP_REGWEN_15_OFFSET);
-    addr_hit[509] = (reg_addr == PINMUX_DIO_PAD_SLEEP_REGWEN_16_OFFSET);
-    addr_hit[510] = (reg_addr == PINMUX_DIO_PAD_SLEEP_REGWEN_17_OFFSET);
-    addr_hit[511] = (reg_addr == PINMUX_DIO_PAD_SLEEP_REGWEN_18_OFFSET);
-    addr_hit[512] = (reg_addr == PINMUX_DIO_PAD_SLEEP_REGWEN_19_OFFSET);
-    addr_hit[513] = (reg_addr == PINMUX_DIO_PAD_SLEEP_REGWEN_20_OFFSET);
-    addr_hit[514] = (reg_addr == PINMUX_DIO_PAD_SLEEP_REGWEN_21_OFFSET);
-    addr_hit[515] = (reg_addr == PINMUX_DIO_PAD_SLEEP_REGWEN_22_OFFSET);
-    addr_hit[516] = (reg_addr == PINMUX_DIO_PAD_SLEEP_EN_0_OFFSET);
-    addr_hit[517] = (reg_addr == PINMUX_DIO_PAD_SLEEP_EN_1_OFFSET);
-    addr_hit[518] = (reg_addr == PINMUX_DIO_PAD_SLEEP_EN_2_OFFSET);
-    addr_hit[519] = (reg_addr == PINMUX_DIO_PAD_SLEEP_EN_3_OFFSET);
-    addr_hit[520] = (reg_addr == PINMUX_DIO_PAD_SLEEP_EN_4_OFFSET);
-    addr_hit[521] = (reg_addr == PINMUX_DIO_PAD_SLEEP_EN_5_OFFSET);
-    addr_hit[522] = (reg_addr == PINMUX_DIO_PAD_SLEEP_EN_6_OFFSET);
-    addr_hit[523] = (reg_addr == PINMUX_DIO_PAD_SLEEP_EN_7_OFFSET);
-    addr_hit[524] = (reg_addr == PINMUX_DIO_PAD_SLEEP_EN_8_OFFSET);
-    addr_hit[525] = (reg_addr == PINMUX_DIO_PAD_SLEEP_EN_9_OFFSET);
-    addr_hit[526] = (reg_addr == PINMUX_DIO_PAD_SLEEP_EN_10_OFFSET);
-    addr_hit[527] = (reg_addr == PINMUX_DIO_PAD_SLEEP_EN_11_OFFSET);
-    addr_hit[528] = (reg_addr == PINMUX_DIO_PAD_SLEEP_EN_12_OFFSET);
-    addr_hit[529] = (reg_addr == PINMUX_DIO_PAD_SLEEP_EN_13_OFFSET);
-    addr_hit[530] = (reg_addr == PINMUX_DIO_PAD_SLEEP_EN_14_OFFSET);
-    addr_hit[531] = (reg_addr == PINMUX_DIO_PAD_SLEEP_EN_15_OFFSET);
-    addr_hit[532] = (reg_addr == PINMUX_DIO_PAD_SLEEP_EN_16_OFFSET);
-    addr_hit[533] = (reg_addr == PINMUX_DIO_PAD_SLEEP_EN_17_OFFSET);
-    addr_hit[534] = (reg_addr == PINMUX_DIO_PAD_SLEEP_EN_18_OFFSET);
-    addr_hit[535] = (reg_addr == PINMUX_DIO_PAD_SLEEP_EN_19_OFFSET);
-    addr_hit[536] = (reg_addr == PINMUX_DIO_PAD_SLEEP_EN_20_OFFSET);
-    addr_hit[537] = (reg_addr == PINMUX_DIO_PAD_SLEEP_EN_21_OFFSET);
-    addr_hit[538] = (reg_addr == PINMUX_DIO_PAD_SLEEP_EN_22_OFFSET);
-    addr_hit[539] = (reg_addr == PINMUX_DIO_PAD_SLEEP_MODE_0_OFFSET);
-    addr_hit[540] = (reg_addr == PINMUX_DIO_PAD_SLEEP_MODE_1_OFFSET);
-    addr_hit[541] = (reg_addr == PINMUX_DIO_PAD_SLEEP_MODE_2_OFFSET);
-    addr_hit[542] = (reg_addr == PINMUX_DIO_PAD_SLEEP_MODE_3_OFFSET);
-    addr_hit[543] = (reg_addr == PINMUX_DIO_PAD_SLEEP_MODE_4_OFFSET);
-    addr_hit[544] = (reg_addr == PINMUX_DIO_PAD_SLEEP_MODE_5_OFFSET);
-    addr_hit[545] = (reg_addr == PINMUX_DIO_PAD_SLEEP_MODE_6_OFFSET);
-    addr_hit[546] = (reg_addr == PINMUX_DIO_PAD_SLEEP_MODE_7_OFFSET);
-    addr_hit[547] = (reg_addr == PINMUX_DIO_PAD_SLEEP_MODE_8_OFFSET);
-    addr_hit[548] = (reg_addr == PINMUX_DIO_PAD_SLEEP_MODE_9_OFFSET);
-    addr_hit[549] = (reg_addr == PINMUX_DIO_PAD_SLEEP_MODE_10_OFFSET);
-    addr_hit[550] = (reg_addr == PINMUX_DIO_PAD_SLEEP_MODE_11_OFFSET);
-    addr_hit[551] = (reg_addr == PINMUX_DIO_PAD_SLEEP_MODE_12_OFFSET);
-    addr_hit[552] = (reg_addr == PINMUX_DIO_PAD_SLEEP_MODE_13_OFFSET);
-    addr_hit[553] = (reg_addr == PINMUX_DIO_PAD_SLEEP_MODE_14_OFFSET);
-    addr_hit[554] = (reg_addr == PINMUX_DIO_PAD_SLEEP_MODE_15_OFFSET);
-    addr_hit[555] = (reg_addr == PINMUX_DIO_PAD_SLEEP_MODE_16_OFFSET);
-    addr_hit[556] = (reg_addr == PINMUX_DIO_PAD_SLEEP_MODE_17_OFFSET);
-    addr_hit[557] = (reg_addr == PINMUX_DIO_PAD_SLEEP_MODE_18_OFFSET);
-    addr_hit[558] = (reg_addr == PINMUX_DIO_PAD_SLEEP_MODE_19_OFFSET);
-    addr_hit[559] = (reg_addr == PINMUX_DIO_PAD_SLEEP_MODE_20_OFFSET);
-    addr_hit[560] = (reg_addr == PINMUX_DIO_PAD_SLEEP_MODE_21_OFFSET);
-    addr_hit[561] = (reg_addr == PINMUX_DIO_PAD_SLEEP_MODE_22_OFFSET);
-    addr_hit[562] = (reg_addr == PINMUX_WKUP_DETECTOR_REGWEN_0_OFFSET);
-    addr_hit[563] = (reg_addr == PINMUX_WKUP_DETECTOR_REGWEN_1_OFFSET);
-    addr_hit[564] = (reg_addr == PINMUX_WKUP_DETECTOR_REGWEN_2_OFFSET);
-    addr_hit[565] = (reg_addr == PINMUX_WKUP_DETECTOR_REGWEN_3_OFFSET);
-    addr_hit[566] = (reg_addr == PINMUX_WKUP_DETECTOR_REGWEN_4_OFFSET);
-    addr_hit[567] = (reg_addr == PINMUX_WKUP_DETECTOR_REGWEN_5_OFFSET);
-    addr_hit[568] = (reg_addr == PINMUX_WKUP_DETECTOR_REGWEN_6_OFFSET);
-    addr_hit[569] = (reg_addr == PINMUX_WKUP_DETECTOR_REGWEN_7_OFFSET);
-    addr_hit[570] = (reg_addr == PINMUX_WKUP_DETECTOR_EN_0_OFFSET);
-    addr_hit[571] = (reg_addr == PINMUX_WKUP_DETECTOR_EN_1_OFFSET);
-    addr_hit[572] = (reg_addr == PINMUX_WKUP_DETECTOR_EN_2_OFFSET);
-    addr_hit[573] = (reg_addr == PINMUX_WKUP_DETECTOR_EN_3_OFFSET);
-    addr_hit[574] = (reg_addr == PINMUX_WKUP_DETECTOR_EN_4_OFFSET);
-    addr_hit[575] = (reg_addr == PINMUX_WKUP_DETECTOR_EN_5_OFFSET);
-    addr_hit[576] = (reg_addr == PINMUX_WKUP_DETECTOR_EN_6_OFFSET);
-    addr_hit[577] = (reg_addr == PINMUX_WKUP_DETECTOR_EN_7_OFFSET);
-    addr_hit[578] = (reg_addr == PINMUX_WKUP_DETECTOR_0_OFFSET);
-    addr_hit[579] = (reg_addr == PINMUX_WKUP_DETECTOR_1_OFFSET);
-    addr_hit[580] = (reg_addr == PINMUX_WKUP_DETECTOR_2_OFFSET);
-    addr_hit[581] = (reg_addr == PINMUX_WKUP_DETECTOR_3_OFFSET);
-    addr_hit[582] = (reg_addr == PINMUX_WKUP_DETECTOR_4_OFFSET);
-    addr_hit[583] = (reg_addr == PINMUX_WKUP_DETECTOR_5_OFFSET);
-    addr_hit[584] = (reg_addr == PINMUX_WKUP_DETECTOR_6_OFFSET);
-    addr_hit[585] = (reg_addr == PINMUX_WKUP_DETECTOR_7_OFFSET);
-    addr_hit[586] = (reg_addr == PINMUX_WKUP_DETECTOR_CNT_TH_0_OFFSET);
-    addr_hit[587] = (reg_addr == PINMUX_WKUP_DETECTOR_CNT_TH_1_OFFSET);
-    addr_hit[588] = (reg_addr == PINMUX_WKUP_DETECTOR_CNT_TH_2_OFFSET);
-    addr_hit[589] = (reg_addr == PINMUX_WKUP_DETECTOR_CNT_TH_3_OFFSET);
-    addr_hit[590] = (reg_addr == PINMUX_WKUP_DETECTOR_CNT_TH_4_OFFSET);
-    addr_hit[591] = (reg_addr == PINMUX_WKUP_DETECTOR_CNT_TH_5_OFFSET);
-    addr_hit[592] = (reg_addr == PINMUX_WKUP_DETECTOR_CNT_TH_6_OFFSET);
-    addr_hit[593] = (reg_addr == PINMUX_WKUP_DETECTOR_CNT_TH_7_OFFSET);
-    addr_hit[594] = (reg_addr == PINMUX_WKUP_DETECTOR_PADSEL_0_OFFSET);
-    addr_hit[595] = (reg_addr == PINMUX_WKUP_DETECTOR_PADSEL_1_OFFSET);
-    addr_hit[596] = (reg_addr == PINMUX_WKUP_DETECTOR_PADSEL_2_OFFSET);
-    addr_hit[597] = (reg_addr == PINMUX_WKUP_DETECTOR_PADSEL_3_OFFSET);
-    addr_hit[598] = (reg_addr == PINMUX_WKUP_DETECTOR_PADSEL_4_OFFSET);
-    addr_hit[599] = (reg_addr == PINMUX_WKUP_DETECTOR_PADSEL_5_OFFSET);
-    addr_hit[600] = (reg_addr == PINMUX_WKUP_DETECTOR_PADSEL_6_OFFSET);
-    addr_hit[601] = (reg_addr == PINMUX_WKUP_DETECTOR_PADSEL_7_OFFSET);
-    addr_hit[602] = (reg_addr == PINMUX_WKUP_CAUSE_OFFSET);
+    addr_hit[319] = (reg_addr == PINMUX_DIO_PAD_ATTR_0_OFFSET);
+    addr_hit[320] = (reg_addr == PINMUX_DIO_PAD_ATTR_1_OFFSET);
+    addr_hit[321] = (reg_addr == PINMUX_DIO_PAD_ATTR_2_OFFSET);
+    addr_hit[322] = (reg_addr == PINMUX_DIO_PAD_ATTR_3_OFFSET);
+    addr_hit[323] = (reg_addr == PINMUX_DIO_PAD_ATTR_4_OFFSET);
+    addr_hit[324] = (reg_addr == PINMUX_DIO_PAD_ATTR_5_OFFSET);
+    addr_hit[325] = (reg_addr == PINMUX_DIO_PAD_ATTR_6_OFFSET);
+    addr_hit[326] = (reg_addr == PINMUX_DIO_PAD_ATTR_7_OFFSET);
+    addr_hit[327] = (reg_addr == PINMUX_DIO_PAD_ATTR_8_OFFSET);
+    addr_hit[328] = (reg_addr == PINMUX_DIO_PAD_ATTR_9_OFFSET);
+    addr_hit[329] = (reg_addr == PINMUX_DIO_PAD_ATTR_10_OFFSET);
+    addr_hit[330] = (reg_addr == PINMUX_DIO_PAD_ATTR_11_OFFSET);
+    addr_hit[331] = (reg_addr == PINMUX_DIO_PAD_ATTR_12_OFFSET);
+    addr_hit[332] = (reg_addr == PINMUX_DIO_PAD_ATTR_13_OFFSET);
+    addr_hit[333] = (reg_addr == PINMUX_DIO_PAD_ATTR_14_OFFSET);
+    addr_hit[334] = (reg_addr == PINMUX_DIO_PAD_ATTR_15_OFFSET);
+    addr_hit[335] = (reg_addr == PINMUX_MIO_PAD_SLEEP_STATUS_0_OFFSET);
+    addr_hit[336] = (reg_addr == PINMUX_MIO_PAD_SLEEP_STATUS_1_OFFSET);
+    addr_hit[337] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_0_OFFSET);
+    addr_hit[338] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_1_OFFSET);
+    addr_hit[339] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_2_OFFSET);
+    addr_hit[340] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_3_OFFSET);
+    addr_hit[341] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_4_OFFSET);
+    addr_hit[342] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_5_OFFSET);
+    addr_hit[343] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_6_OFFSET);
+    addr_hit[344] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_7_OFFSET);
+    addr_hit[345] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_8_OFFSET);
+    addr_hit[346] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_9_OFFSET);
+    addr_hit[347] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_10_OFFSET);
+    addr_hit[348] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_11_OFFSET);
+    addr_hit[349] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_12_OFFSET);
+    addr_hit[350] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_13_OFFSET);
+    addr_hit[351] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_14_OFFSET);
+    addr_hit[352] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_15_OFFSET);
+    addr_hit[353] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_16_OFFSET);
+    addr_hit[354] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_17_OFFSET);
+    addr_hit[355] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_18_OFFSET);
+    addr_hit[356] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_19_OFFSET);
+    addr_hit[357] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_20_OFFSET);
+    addr_hit[358] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_21_OFFSET);
+    addr_hit[359] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_22_OFFSET);
+    addr_hit[360] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_23_OFFSET);
+    addr_hit[361] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_24_OFFSET);
+    addr_hit[362] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_25_OFFSET);
+    addr_hit[363] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_26_OFFSET);
+    addr_hit[364] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_27_OFFSET);
+    addr_hit[365] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_28_OFFSET);
+    addr_hit[366] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_29_OFFSET);
+    addr_hit[367] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_30_OFFSET);
+    addr_hit[368] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_31_OFFSET);
+    addr_hit[369] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_32_OFFSET);
+    addr_hit[370] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_33_OFFSET);
+    addr_hit[371] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_34_OFFSET);
+    addr_hit[372] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_35_OFFSET);
+    addr_hit[373] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_36_OFFSET);
+    addr_hit[374] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_37_OFFSET);
+    addr_hit[375] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_38_OFFSET);
+    addr_hit[376] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_39_OFFSET);
+    addr_hit[377] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_40_OFFSET);
+    addr_hit[378] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_41_OFFSET);
+    addr_hit[379] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_42_OFFSET);
+    addr_hit[380] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_43_OFFSET);
+    addr_hit[381] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_44_OFFSET);
+    addr_hit[382] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_45_OFFSET);
+    addr_hit[383] = (reg_addr == PINMUX_MIO_PAD_SLEEP_REGWEN_46_OFFSET);
+    addr_hit[384] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_0_OFFSET);
+    addr_hit[385] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_1_OFFSET);
+    addr_hit[386] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_2_OFFSET);
+    addr_hit[387] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_3_OFFSET);
+    addr_hit[388] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_4_OFFSET);
+    addr_hit[389] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_5_OFFSET);
+    addr_hit[390] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_6_OFFSET);
+    addr_hit[391] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_7_OFFSET);
+    addr_hit[392] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_8_OFFSET);
+    addr_hit[393] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_9_OFFSET);
+    addr_hit[394] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_10_OFFSET);
+    addr_hit[395] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_11_OFFSET);
+    addr_hit[396] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_12_OFFSET);
+    addr_hit[397] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_13_OFFSET);
+    addr_hit[398] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_14_OFFSET);
+    addr_hit[399] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_15_OFFSET);
+    addr_hit[400] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_16_OFFSET);
+    addr_hit[401] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_17_OFFSET);
+    addr_hit[402] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_18_OFFSET);
+    addr_hit[403] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_19_OFFSET);
+    addr_hit[404] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_20_OFFSET);
+    addr_hit[405] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_21_OFFSET);
+    addr_hit[406] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_22_OFFSET);
+    addr_hit[407] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_23_OFFSET);
+    addr_hit[408] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_24_OFFSET);
+    addr_hit[409] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_25_OFFSET);
+    addr_hit[410] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_26_OFFSET);
+    addr_hit[411] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_27_OFFSET);
+    addr_hit[412] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_28_OFFSET);
+    addr_hit[413] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_29_OFFSET);
+    addr_hit[414] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_30_OFFSET);
+    addr_hit[415] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_31_OFFSET);
+    addr_hit[416] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_32_OFFSET);
+    addr_hit[417] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_33_OFFSET);
+    addr_hit[418] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_34_OFFSET);
+    addr_hit[419] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_35_OFFSET);
+    addr_hit[420] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_36_OFFSET);
+    addr_hit[421] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_37_OFFSET);
+    addr_hit[422] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_38_OFFSET);
+    addr_hit[423] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_39_OFFSET);
+    addr_hit[424] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_40_OFFSET);
+    addr_hit[425] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_41_OFFSET);
+    addr_hit[426] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_42_OFFSET);
+    addr_hit[427] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_43_OFFSET);
+    addr_hit[428] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_44_OFFSET);
+    addr_hit[429] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_45_OFFSET);
+    addr_hit[430] = (reg_addr == PINMUX_MIO_PAD_SLEEP_EN_46_OFFSET);
+    addr_hit[431] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_0_OFFSET);
+    addr_hit[432] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_1_OFFSET);
+    addr_hit[433] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_2_OFFSET);
+    addr_hit[434] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_3_OFFSET);
+    addr_hit[435] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_4_OFFSET);
+    addr_hit[436] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_5_OFFSET);
+    addr_hit[437] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_6_OFFSET);
+    addr_hit[438] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_7_OFFSET);
+    addr_hit[439] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_8_OFFSET);
+    addr_hit[440] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_9_OFFSET);
+    addr_hit[441] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_10_OFFSET);
+    addr_hit[442] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_11_OFFSET);
+    addr_hit[443] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_12_OFFSET);
+    addr_hit[444] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_13_OFFSET);
+    addr_hit[445] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_14_OFFSET);
+    addr_hit[446] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_15_OFFSET);
+    addr_hit[447] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_16_OFFSET);
+    addr_hit[448] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_17_OFFSET);
+    addr_hit[449] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_18_OFFSET);
+    addr_hit[450] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_19_OFFSET);
+    addr_hit[451] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_20_OFFSET);
+    addr_hit[452] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_21_OFFSET);
+    addr_hit[453] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_22_OFFSET);
+    addr_hit[454] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_23_OFFSET);
+    addr_hit[455] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_24_OFFSET);
+    addr_hit[456] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_25_OFFSET);
+    addr_hit[457] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_26_OFFSET);
+    addr_hit[458] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_27_OFFSET);
+    addr_hit[459] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_28_OFFSET);
+    addr_hit[460] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_29_OFFSET);
+    addr_hit[461] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_30_OFFSET);
+    addr_hit[462] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_31_OFFSET);
+    addr_hit[463] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_32_OFFSET);
+    addr_hit[464] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_33_OFFSET);
+    addr_hit[465] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_34_OFFSET);
+    addr_hit[466] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_35_OFFSET);
+    addr_hit[467] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_36_OFFSET);
+    addr_hit[468] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_37_OFFSET);
+    addr_hit[469] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_38_OFFSET);
+    addr_hit[470] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_39_OFFSET);
+    addr_hit[471] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_40_OFFSET);
+    addr_hit[472] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_41_OFFSET);
+    addr_hit[473] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_42_OFFSET);
+    addr_hit[474] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_43_OFFSET);
+    addr_hit[475] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_44_OFFSET);
+    addr_hit[476] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_45_OFFSET);
+    addr_hit[477] = (reg_addr == PINMUX_MIO_PAD_SLEEP_MODE_46_OFFSET);
+    addr_hit[478] = (reg_addr == PINMUX_DIO_PAD_SLEEP_STATUS_OFFSET);
+    addr_hit[479] = (reg_addr == PINMUX_DIO_PAD_SLEEP_REGWEN_0_OFFSET);
+    addr_hit[480] = (reg_addr == PINMUX_DIO_PAD_SLEEP_REGWEN_1_OFFSET);
+    addr_hit[481] = (reg_addr == PINMUX_DIO_PAD_SLEEP_REGWEN_2_OFFSET);
+    addr_hit[482] = (reg_addr == PINMUX_DIO_PAD_SLEEP_REGWEN_3_OFFSET);
+    addr_hit[483] = (reg_addr == PINMUX_DIO_PAD_SLEEP_REGWEN_4_OFFSET);
+    addr_hit[484] = (reg_addr == PINMUX_DIO_PAD_SLEEP_REGWEN_5_OFFSET);
+    addr_hit[485] = (reg_addr == PINMUX_DIO_PAD_SLEEP_REGWEN_6_OFFSET);
+    addr_hit[486] = (reg_addr == PINMUX_DIO_PAD_SLEEP_REGWEN_7_OFFSET);
+    addr_hit[487] = (reg_addr == PINMUX_DIO_PAD_SLEEP_REGWEN_8_OFFSET);
+    addr_hit[488] = (reg_addr == PINMUX_DIO_PAD_SLEEP_REGWEN_9_OFFSET);
+    addr_hit[489] = (reg_addr == PINMUX_DIO_PAD_SLEEP_REGWEN_10_OFFSET);
+    addr_hit[490] = (reg_addr == PINMUX_DIO_PAD_SLEEP_REGWEN_11_OFFSET);
+    addr_hit[491] = (reg_addr == PINMUX_DIO_PAD_SLEEP_REGWEN_12_OFFSET);
+    addr_hit[492] = (reg_addr == PINMUX_DIO_PAD_SLEEP_REGWEN_13_OFFSET);
+    addr_hit[493] = (reg_addr == PINMUX_DIO_PAD_SLEEP_REGWEN_14_OFFSET);
+    addr_hit[494] = (reg_addr == PINMUX_DIO_PAD_SLEEP_REGWEN_15_OFFSET);
+    addr_hit[495] = (reg_addr == PINMUX_DIO_PAD_SLEEP_EN_0_OFFSET);
+    addr_hit[496] = (reg_addr == PINMUX_DIO_PAD_SLEEP_EN_1_OFFSET);
+    addr_hit[497] = (reg_addr == PINMUX_DIO_PAD_SLEEP_EN_2_OFFSET);
+    addr_hit[498] = (reg_addr == PINMUX_DIO_PAD_SLEEP_EN_3_OFFSET);
+    addr_hit[499] = (reg_addr == PINMUX_DIO_PAD_SLEEP_EN_4_OFFSET);
+    addr_hit[500] = (reg_addr == PINMUX_DIO_PAD_SLEEP_EN_5_OFFSET);
+    addr_hit[501] = (reg_addr == PINMUX_DIO_PAD_SLEEP_EN_6_OFFSET);
+    addr_hit[502] = (reg_addr == PINMUX_DIO_PAD_SLEEP_EN_7_OFFSET);
+    addr_hit[503] = (reg_addr == PINMUX_DIO_PAD_SLEEP_EN_8_OFFSET);
+    addr_hit[504] = (reg_addr == PINMUX_DIO_PAD_SLEEP_EN_9_OFFSET);
+    addr_hit[505] = (reg_addr == PINMUX_DIO_PAD_SLEEP_EN_10_OFFSET);
+    addr_hit[506] = (reg_addr == PINMUX_DIO_PAD_SLEEP_EN_11_OFFSET);
+    addr_hit[507] = (reg_addr == PINMUX_DIO_PAD_SLEEP_EN_12_OFFSET);
+    addr_hit[508] = (reg_addr == PINMUX_DIO_PAD_SLEEP_EN_13_OFFSET);
+    addr_hit[509] = (reg_addr == PINMUX_DIO_PAD_SLEEP_EN_14_OFFSET);
+    addr_hit[510] = (reg_addr == PINMUX_DIO_PAD_SLEEP_EN_15_OFFSET);
+    addr_hit[511] = (reg_addr == PINMUX_DIO_PAD_SLEEP_MODE_0_OFFSET);
+    addr_hit[512] = (reg_addr == PINMUX_DIO_PAD_SLEEP_MODE_1_OFFSET);
+    addr_hit[513] = (reg_addr == PINMUX_DIO_PAD_SLEEP_MODE_2_OFFSET);
+    addr_hit[514] = (reg_addr == PINMUX_DIO_PAD_SLEEP_MODE_3_OFFSET);
+    addr_hit[515] = (reg_addr == PINMUX_DIO_PAD_SLEEP_MODE_4_OFFSET);
+    addr_hit[516] = (reg_addr == PINMUX_DIO_PAD_SLEEP_MODE_5_OFFSET);
+    addr_hit[517] = (reg_addr == PINMUX_DIO_PAD_SLEEP_MODE_6_OFFSET);
+    addr_hit[518] = (reg_addr == PINMUX_DIO_PAD_SLEEP_MODE_7_OFFSET);
+    addr_hit[519] = (reg_addr == PINMUX_DIO_PAD_SLEEP_MODE_8_OFFSET);
+    addr_hit[520] = (reg_addr == PINMUX_DIO_PAD_SLEEP_MODE_9_OFFSET);
+    addr_hit[521] = (reg_addr == PINMUX_DIO_PAD_SLEEP_MODE_10_OFFSET);
+    addr_hit[522] = (reg_addr == PINMUX_DIO_PAD_SLEEP_MODE_11_OFFSET);
+    addr_hit[523] = (reg_addr == PINMUX_DIO_PAD_SLEEP_MODE_12_OFFSET);
+    addr_hit[524] = (reg_addr == PINMUX_DIO_PAD_SLEEP_MODE_13_OFFSET);
+    addr_hit[525] = (reg_addr == PINMUX_DIO_PAD_SLEEP_MODE_14_OFFSET);
+    addr_hit[526] = (reg_addr == PINMUX_DIO_PAD_SLEEP_MODE_15_OFFSET);
+    addr_hit[527] = (reg_addr == PINMUX_WKUP_DETECTOR_REGWEN_0_OFFSET);
+    addr_hit[528] = (reg_addr == PINMUX_WKUP_DETECTOR_REGWEN_1_OFFSET);
+    addr_hit[529] = (reg_addr == PINMUX_WKUP_DETECTOR_REGWEN_2_OFFSET);
+    addr_hit[530] = (reg_addr == PINMUX_WKUP_DETECTOR_REGWEN_3_OFFSET);
+    addr_hit[531] = (reg_addr == PINMUX_WKUP_DETECTOR_REGWEN_4_OFFSET);
+    addr_hit[532] = (reg_addr == PINMUX_WKUP_DETECTOR_REGWEN_5_OFFSET);
+    addr_hit[533] = (reg_addr == PINMUX_WKUP_DETECTOR_REGWEN_6_OFFSET);
+    addr_hit[534] = (reg_addr == PINMUX_WKUP_DETECTOR_REGWEN_7_OFFSET);
+    addr_hit[535] = (reg_addr == PINMUX_WKUP_DETECTOR_EN_0_OFFSET);
+    addr_hit[536] = (reg_addr == PINMUX_WKUP_DETECTOR_EN_1_OFFSET);
+    addr_hit[537] = (reg_addr == PINMUX_WKUP_DETECTOR_EN_2_OFFSET);
+    addr_hit[538] = (reg_addr == PINMUX_WKUP_DETECTOR_EN_3_OFFSET);
+    addr_hit[539] = (reg_addr == PINMUX_WKUP_DETECTOR_EN_4_OFFSET);
+    addr_hit[540] = (reg_addr == PINMUX_WKUP_DETECTOR_EN_5_OFFSET);
+    addr_hit[541] = (reg_addr == PINMUX_WKUP_DETECTOR_EN_6_OFFSET);
+    addr_hit[542] = (reg_addr == PINMUX_WKUP_DETECTOR_EN_7_OFFSET);
+    addr_hit[543] = (reg_addr == PINMUX_WKUP_DETECTOR_0_OFFSET);
+    addr_hit[544] = (reg_addr == PINMUX_WKUP_DETECTOR_1_OFFSET);
+    addr_hit[545] = (reg_addr == PINMUX_WKUP_DETECTOR_2_OFFSET);
+    addr_hit[546] = (reg_addr == PINMUX_WKUP_DETECTOR_3_OFFSET);
+    addr_hit[547] = (reg_addr == PINMUX_WKUP_DETECTOR_4_OFFSET);
+    addr_hit[548] = (reg_addr == PINMUX_WKUP_DETECTOR_5_OFFSET);
+    addr_hit[549] = (reg_addr == PINMUX_WKUP_DETECTOR_6_OFFSET);
+    addr_hit[550] = (reg_addr == PINMUX_WKUP_DETECTOR_7_OFFSET);
+    addr_hit[551] = (reg_addr == PINMUX_WKUP_DETECTOR_CNT_TH_0_OFFSET);
+    addr_hit[552] = (reg_addr == PINMUX_WKUP_DETECTOR_CNT_TH_1_OFFSET);
+    addr_hit[553] = (reg_addr == PINMUX_WKUP_DETECTOR_CNT_TH_2_OFFSET);
+    addr_hit[554] = (reg_addr == PINMUX_WKUP_DETECTOR_CNT_TH_3_OFFSET);
+    addr_hit[555] = (reg_addr == PINMUX_WKUP_DETECTOR_CNT_TH_4_OFFSET);
+    addr_hit[556] = (reg_addr == PINMUX_WKUP_DETECTOR_CNT_TH_5_OFFSET);
+    addr_hit[557] = (reg_addr == PINMUX_WKUP_DETECTOR_CNT_TH_6_OFFSET);
+    addr_hit[558] = (reg_addr == PINMUX_WKUP_DETECTOR_CNT_TH_7_OFFSET);
+    addr_hit[559] = (reg_addr == PINMUX_WKUP_DETECTOR_PADSEL_0_OFFSET);
+    addr_hit[560] = (reg_addr == PINMUX_WKUP_DETECTOR_PADSEL_1_OFFSET);
+    addr_hit[561] = (reg_addr == PINMUX_WKUP_DETECTOR_PADSEL_2_OFFSET);
+    addr_hit[562] = (reg_addr == PINMUX_WKUP_DETECTOR_PADSEL_3_OFFSET);
+    addr_hit[563] = (reg_addr == PINMUX_WKUP_DETECTOR_PADSEL_4_OFFSET);
+    addr_hit[564] = (reg_addr == PINMUX_WKUP_DETECTOR_PADSEL_5_OFFSET);
+    addr_hit[565] = (reg_addr == PINMUX_WKUP_DETECTOR_PADSEL_6_OFFSET);
+    addr_hit[566] = (reg_addr == PINMUX_WKUP_DETECTOR_PADSEL_7_OFFSET);
+    addr_hit[567] = (reg_addr == PINMUX_WKUP_CAUSE_OFFSET);
   end
 
   assign addrmiss = (reg_re || reg_we) ? ~|addr_hit : 1'b0 ;
@@ -22050,42 +20846,7 @@
                (addr_hit[564] & (|(PINMUX_PERMIT[564] & ~reg_be))) |
                (addr_hit[565] & (|(PINMUX_PERMIT[565] & ~reg_be))) |
                (addr_hit[566] & (|(PINMUX_PERMIT[566] & ~reg_be))) |
-               (addr_hit[567] & (|(PINMUX_PERMIT[567] & ~reg_be))) |
-               (addr_hit[568] & (|(PINMUX_PERMIT[568] & ~reg_be))) |
-               (addr_hit[569] & (|(PINMUX_PERMIT[569] & ~reg_be))) |
-               (addr_hit[570] & (|(PINMUX_PERMIT[570] & ~reg_be))) |
-               (addr_hit[571] & (|(PINMUX_PERMIT[571] & ~reg_be))) |
-               (addr_hit[572] & (|(PINMUX_PERMIT[572] & ~reg_be))) |
-               (addr_hit[573] & (|(PINMUX_PERMIT[573] & ~reg_be))) |
-               (addr_hit[574] & (|(PINMUX_PERMIT[574] & ~reg_be))) |
-               (addr_hit[575] & (|(PINMUX_PERMIT[575] & ~reg_be))) |
-               (addr_hit[576] & (|(PINMUX_PERMIT[576] & ~reg_be))) |
-               (addr_hit[577] & (|(PINMUX_PERMIT[577] & ~reg_be))) |
-               (addr_hit[578] & (|(PINMUX_PERMIT[578] & ~reg_be))) |
-               (addr_hit[579] & (|(PINMUX_PERMIT[579] & ~reg_be))) |
-               (addr_hit[580] & (|(PINMUX_PERMIT[580] & ~reg_be))) |
-               (addr_hit[581] & (|(PINMUX_PERMIT[581] & ~reg_be))) |
-               (addr_hit[582] & (|(PINMUX_PERMIT[582] & ~reg_be))) |
-               (addr_hit[583] & (|(PINMUX_PERMIT[583] & ~reg_be))) |
-               (addr_hit[584] & (|(PINMUX_PERMIT[584] & ~reg_be))) |
-               (addr_hit[585] & (|(PINMUX_PERMIT[585] & ~reg_be))) |
-               (addr_hit[586] & (|(PINMUX_PERMIT[586] & ~reg_be))) |
-               (addr_hit[587] & (|(PINMUX_PERMIT[587] & ~reg_be))) |
-               (addr_hit[588] & (|(PINMUX_PERMIT[588] & ~reg_be))) |
-               (addr_hit[589] & (|(PINMUX_PERMIT[589] & ~reg_be))) |
-               (addr_hit[590] & (|(PINMUX_PERMIT[590] & ~reg_be))) |
-               (addr_hit[591] & (|(PINMUX_PERMIT[591] & ~reg_be))) |
-               (addr_hit[592] & (|(PINMUX_PERMIT[592] & ~reg_be))) |
-               (addr_hit[593] & (|(PINMUX_PERMIT[593] & ~reg_be))) |
-               (addr_hit[594] & (|(PINMUX_PERMIT[594] & ~reg_be))) |
-               (addr_hit[595] & (|(PINMUX_PERMIT[595] & ~reg_be))) |
-               (addr_hit[596] & (|(PINMUX_PERMIT[596] & ~reg_be))) |
-               (addr_hit[597] & (|(PINMUX_PERMIT[597] & ~reg_be))) |
-               (addr_hit[598] & (|(PINMUX_PERMIT[598] & ~reg_be))) |
-               (addr_hit[599] & (|(PINMUX_PERMIT[599] & ~reg_be))) |
-               (addr_hit[600] & (|(PINMUX_PERMIT[600] & ~reg_be))) |
-               (addr_hit[601] & (|(PINMUX_PERMIT[601] & ~reg_be))) |
-               (addr_hit[602] & (|(PINMUX_PERMIT[602] & ~reg_be)))));
+               (addr_hit[567] & (|(PINMUX_PERMIT[567] & ~reg_be)))));
   end
   assign alert_test_we = addr_hit[0] & reg_we & !reg_error;
 
@@ -23091,120 +21852,71 @@
   assign dio_pad_attr_regwen_15_we = addr_hit[318] & reg_we & !reg_error;
 
   assign dio_pad_attr_regwen_15_wd = reg_wdata[0];
-  assign dio_pad_attr_regwen_16_we = addr_hit[319] & reg_we & !reg_error;
-
-  assign dio_pad_attr_regwen_16_wd = reg_wdata[0];
-  assign dio_pad_attr_regwen_17_we = addr_hit[320] & reg_we & !reg_error;
-
-  assign dio_pad_attr_regwen_17_wd = reg_wdata[0];
-  assign dio_pad_attr_regwen_18_we = addr_hit[321] & reg_we & !reg_error;
-
-  assign dio_pad_attr_regwen_18_wd = reg_wdata[0];
-  assign dio_pad_attr_regwen_19_we = addr_hit[322] & reg_we & !reg_error;
-
-  assign dio_pad_attr_regwen_19_wd = reg_wdata[0];
-  assign dio_pad_attr_regwen_20_we = addr_hit[323] & reg_we & !reg_error;
-
-  assign dio_pad_attr_regwen_20_wd = reg_wdata[0];
-  assign dio_pad_attr_regwen_21_we = addr_hit[324] & reg_we & !reg_error;
-
-  assign dio_pad_attr_regwen_21_wd = reg_wdata[0];
-  assign dio_pad_attr_regwen_22_we = addr_hit[325] & reg_we & !reg_error;
-
-  assign dio_pad_attr_regwen_22_wd = reg_wdata[0];
-  assign dio_pad_attr_0_re = addr_hit[326] & reg_re & !reg_error;
-  assign dio_pad_attr_0_we = addr_hit[326] & reg_we & !reg_error;
+  assign dio_pad_attr_0_re = addr_hit[319] & reg_re & !reg_error;
+  assign dio_pad_attr_0_we = addr_hit[319] & reg_we & !reg_error;
 
   assign dio_pad_attr_0_wd = reg_wdata[12:0];
-  assign dio_pad_attr_1_re = addr_hit[327] & reg_re & !reg_error;
-  assign dio_pad_attr_1_we = addr_hit[327] & reg_we & !reg_error;
+  assign dio_pad_attr_1_re = addr_hit[320] & reg_re & !reg_error;
+  assign dio_pad_attr_1_we = addr_hit[320] & reg_we & !reg_error;
 
   assign dio_pad_attr_1_wd = reg_wdata[12:0];
-  assign dio_pad_attr_2_re = addr_hit[328] & reg_re & !reg_error;
-  assign dio_pad_attr_2_we = addr_hit[328] & reg_we & !reg_error;
+  assign dio_pad_attr_2_re = addr_hit[321] & reg_re & !reg_error;
+  assign dio_pad_attr_2_we = addr_hit[321] & reg_we & !reg_error;
 
   assign dio_pad_attr_2_wd = reg_wdata[12:0];
-  assign dio_pad_attr_3_re = addr_hit[329] & reg_re & !reg_error;
-  assign dio_pad_attr_3_we = addr_hit[329] & reg_we & !reg_error;
+  assign dio_pad_attr_3_re = addr_hit[322] & reg_re & !reg_error;
+  assign dio_pad_attr_3_we = addr_hit[322] & reg_we & !reg_error;
 
   assign dio_pad_attr_3_wd = reg_wdata[12:0];
-  assign dio_pad_attr_4_re = addr_hit[330] & reg_re & !reg_error;
-  assign dio_pad_attr_4_we = addr_hit[330] & reg_we & !reg_error;
+  assign dio_pad_attr_4_re = addr_hit[323] & reg_re & !reg_error;
+  assign dio_pad_attr_4_we = addr_hit[323] & reg_we & !reg_error;
 
   assign dio_pad_attr_4_wd = reg_wdata[12:0];
-  assign dio_pad_attr_5_re = addr_hit[331] & reg_re & !reg_error;
-  assign dio_pad_attr_5_we = addr_hit[331] & reg_we & !reg_error;
+  assign dio_pad_attr_5_re = addr_hit[324] & reg_re & !reg_error;
+  assign dio_pad_attr_5_we = addr_hit[324] & reg_we & !reg_error;
 
   assign dio_pad_attr_5_wd = reg_wdata[12:0];
-  assign dio_pad_attr_6_re = addr_hit[332] & reg_re & !reg_error;
-  assign dio_pad_attr_6_we = addr_hit[332] & reg_we & !reg_error;
+  assign dio_pad_attr_6_re = addr_hit[325] & reg_re & !reg_error;
+  assign dio_pad_attr_6_we = addr_hit[325] & reg_we & !reg_error;
 
   assign dio_pad_attr_6_wd = reg_wdata[12:0];
-  assign dio_pad_attr_7_re = addr_hit[333] & reg_re & !reg_error;
-  assign dio_pad_attr_7_we = addr_hit[333] & reg_we & !reg_error;
+  assign dio_pad_attr_7_re = addr_hit[326] & reg_re & !reg_error;
+  assign dio_pad_attr_7_we = addr_hit[326] & reg_we & !reg_error;
 
   assign dio_pad_attr_7_wd = reg_wdata[12:0];
-  assign dio_pad_attr_8_re = addr_hit[334] & reg_re & !reg_error;
-  assign dio_pad_attr_8_we = addr_hit[334] & reg_we & !reg_error;
+  assign dio_pad_attr_8_re = addr_hit[327] & reg_re & !reg_error;
+  assign dio_pad_attr_8_we = addr_hit[327] & reg_we & !reg_error;
 
   assign dio_pad_attr_8_wd = reg_wdata[12:0];
-  assign dio_pad_attr_9_re = addr_hit[335] & reg_re & !reg_error;
-  assign dio_pad_attr_9_we = addr_hit[335] & reg_we & !reg_error;
+  assign dio_pad_attr_9_re = addr_hit[328] & reg_re & !reg_error;
+  assign dio_pad_attr_9_we = addr_hit[328] & reg_we & !reg_error;
 
   assign dio_pad_attr_9_wd = reg_wdata[12:0];
-  assign dio_pad_attr_10_re = addr_hit[336] & reg_re & !reg_error;
-  assign dio_pad_attr_10_we = addr_hit[336] & reg_we & !reg_error;
+  assign dio_pad_attr_10_re = addr_hit[329] & reg_re & !reg_error;
+  assign dio_pad_attr_10_we = addr_hit[329] & reg_we & !reg_error;
 
   assign dio_pad_attr_10_wd = reg_wdata[12:0];
-  assign dio_pad_attr_11_re = addr_hit[337] & reg_re & !reg_error;
-  assign dio_pad_attr_11_we = addr_hit[337] & reg_we & !reg_error;
+  assign dio_pad_attr_11_re = addr_hit[330] & reg_re & !reg_error;
+  assign dio_pad_attr_11_we = addr_hit[330] & reg_we & !reg_error;
 
   assign dio_pad_attr_11_wd = reg_wdata[12:0];
-  assign dio_pad_attr_12_re = addr_hit[338] & reg_re & !reg_error;
-  assign dio_pad_attr_12_we = addr_hit[338] & reg_we & !reg_error;
+  assign dio_pad_attr_12_re = addr_hit[331] & reg_re & !reg_error;
+  assign dio_pad_attr_12_we = addr_hit[331] & reg_we & !reg_error;
 
   assign dio_pad_attr_12_wd = reg_wdata[12:0];
-  assign dio_pad_attr_13_re = addr_hit[339] & reg_re & !reg_error;
-  assign dio_pad_attr_13_we = addr_hit[339] & reg_we & !reg_error;
+  assign dio_pad_attr_13_re = addr_hit[332] & reg_re & !reg_error;
+  assign dio_pad_attr_13_we = addr_hit[332] & reg_we & !reg_error;
 
   assign dio_pad_attr_13_wd = reg_wdata[12:0];
-  assign dio_pad_attr_14_re = addr_hit[340] & reg_re & !reg_error;
-  assign dio_pad_attr_14_we = addr_hit[340] & reg_we & !reg_error;
+  assign dio_pad_attr_14_re = addr_hit[333] & reg_re & !reg_error;
+  assign dio_pad_attr_14_we = addr_hit[333] & reg_we & !reg_error;
 
   assign dio_pad_attr_14_wd = reg_wdata[12:0];
-  assign dio_pad_attr_15_re = addr_hit[341] & reg_re & !reg_error;
-  assign dio_pad_attr_15_we = addr_hit[341] & reg_we & !reg_error;
+  assign dio_pad_attr_15_re = addr_hit[334] & reg_re & !reg_error;
+  assign dio_pad_attr_15_we = addr_hit[334] & reg_we & !reg_error;
 
   assign dio_pad_attr_15_wd = reg_wdata[12:0];
-  assign dio_pad_attr_16_re = addr_hit[342] & reg_re & !reg_error;
-  assign dio_pad_attr_16_we = addr_hit[342] & reg_we & !reg_error;
-
-  assign dio_pad_attr_16_wd = reg_wdata[12:0];
-  assign dio_pad_attr_17_re = addr_hit[343] & reg_re & !reg_error;
-  assign dio_pad_attr_17_we = addr_hit[343] & reg_we & !reg_error;
-
-  assign dio_pad_attr_17_wd = reg_wdata[12:0];
-  assign dio_pad_attr_18_re = addr_hit[344] & reg_re & !reg_error;
-  assign dio_pad_attr_18_we = addr_hit[344] & reg_we & !reg_error;
-
-  assign dio_pad_attr_18_wd = reg_wdata[12:0];
-  assign dio_pad_attr_19_re = addr_hit[345] & reg_re & !reg_error;
-  assign dio_pad_attr_19_we = addr_hit[345] & reg_we & !reg_error;
-
-  assign dio_pad_attr_19_wd = reg_wdata[12:0];
-  assign dio_pad_attr_20_re = addr_hit[346] & reg_re & !reg_error;
-  assign dio_pad_attr_20_we = addr_hit[346] & reg_we & !reg_error;
-
-  assign dio_pad_attr_20_wd = reg_wdata[12:0];
-  assign dio_pad_attr_21_re = addr_hit[347] & reg_re & !reg_error;
-  assign dio_pad_attr_21_we = addr_hit[347] & reg_we & !reg_error;
-
-  assign dio_pad_attr_21_wd = reg_wdata[12:0];
-  assign dio_pad_attr_22_re = addr_hit[348] & reg_re & !reg_error;
-  assign dio_pad_attr_22_we = addr_hit[348] & reg_we & !reg_error;
-
-  assign dio_pad_attr_22_wd = reg_wdata[12:0];
-  assign mio_pad_sleep_status_0_we = addr_hit[349] & reg_we & !reg_error;
+  assign mio_pad_sleep_status_0_we = addr_hit[335] & reg_we & !reg_error;
 
   assign mio_pad_sleep_status_0_en_0_wd = reg_wdata[0];
 
@@ -23269,7 +21981,7 @@
   assign mio_pad_sleep_status_0_en_30_wd = reg_wdata[30];
 
   assign mio_pad_sleep_status_0_en_31_wd = reg_wdata[31];
-  assign mio_pad_sleep_status_1_we = addr_hit[350] & reg_we & !reg_error;
+  assign mio_pad_sleep_status_1_we = addr_hit[336] & reg_we & !reg_error;
 
   assign mio_pad_sleep_status_1_en_32_wd = reg_wdata[0];
 
@@ -23300,430 +22012,430 @@
   assign mio_pad_sleep_status_1_en_45_wd = reg_wdata[13];
 
   assign mio_pad_sleep_status_1_en_46_wd = reg_wdata[14];
-  assign mio_pad_sleep_regwen_0_we = addr_hit[351] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_0_we = addr_hit[337] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_0_wd = reg_wdata[0];
-  assign mio_pad_sleep_regwen_1_we = addr_hit[352] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_1_we = addr_hit[338] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_1_wd = reg_wdata[0];
-  assign mio_pad_sleep_regwen_2_we = addr_hit[353] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_2_we = addr_hit[339] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_2_wd = reg_wdata[0];
-  assign mio_pad_sleep_regwen_3_we = addr_hit[354] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_3_we = addr_hit[340] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_3_wd = reg_wdata[0];
-  assign mio_pad_sleep_regwen_4_we = addr_hit[355] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_4_we = addr_hit[341] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_4_wd = reg_wdata[0];
-  assign mio_pad_sleep_regwen_5_we = addr_hit[356] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_5_we = addr_hit[342] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_5_wd = reg_wdata[0];
-  assign mio_pad_sleep_regwen_6_we = addr_hit[357] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_6_we = addr_hit[343] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_6_wd = reg_wdata[0];
-  assign mio_pad_sleep_regwen_7_we = addr_hit[358] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_7_we = addr_hit[344] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_7_wd = reg_wdata[0];
-  assign mio_pad_sleep_regwen_8_we = addr_hit[359] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_8_we = addr_hit[345] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_8_wd = reg_wdata[0];
-  assign mio_pad_sleep_regwen_9_we = addr_hit[360] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_9_we = addr_hit[346] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_9_wd = reg_wdata[0];
-  assign mio_pad_sleep_regwen_10_we = addr_hit[361] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_10_we = addr_hit[347] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_10_wd = reg_wdata[0];
-  assign mio_pad_sleep_regwen_11_we = addr_hit[362] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_11_we = addr_hit[348] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_11_wd = reg_wdata[0];
-  assign mio_pad_sleep_regwen_12_we = addr_hit[363] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_12_we = addr_hit[349] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_12_wd = reg_wdata[0];
-  assign mio_pad_sleep_regwen_13_we = addr_hit[364] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_13_we = addr_hit[350] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_13_wd = reg_wdata[0];
-  assign mio_pad_sleep_regwen_14_we = addr_hit[365] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_14_we = addr_hit[351] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_14_wd = reg_wdata[0];
-  assign mio_pad_sleep_regwen_15_we = addr_hit[366] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_15_we = addr_hit[352] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_15_wd = reg_wdata[0];
-  assign mio_pad_sleep_regwen_16_we = addr_hit[367] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_16_we = addr_hit[353] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_16_wd = reg_wdata[0];
-  assign mio_pad_sleep_regwen_17_we = addr_hit[368] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_17_we = addr_hit[354] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_17_wd = reg_wdata[0];
-  assign mio_pad_sleep_regwen_18_we = addr_hit[369] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_18_we = addr_hit[355] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_18_wd = reg_wdata[0];
-  assign mio_pad_sleep_regwen_19_we = addr_hit[370] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_19_we = addr_hit[356] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_19_wd = reg_wdata[0];
-  assign mio_pad_sleep_regwen_20_we = addr_hit[371] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_20_we = addr_hit[357] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_20_wd = reg_wdata[0];
-  assign mio_pad_sleep_regwen_21_we = addr_hit[372] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_21_we = addr_hit[358] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_21_wd = reg_wdata[0];
-  assign mio_pad_sleep_regwen_22_we = addr_hit[373] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_22_we = addr_hit[359] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_22_wd = reg_wdata[0];
-  assign mio_pad_sleep_regwen_23_we = addr_hit[374] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_23_we = addr_hit[360] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_23_wd = reg_wdata[0];
-  assign mio_pad_sleep_regwen_24_we = addr_hit[375] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_24_we = addr_hit[361] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_24_wd = reg_wdata[0];
-  assign mio_pad_sleep_regwen_25_we = addr_hit[376] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_25_we = addr_hit[362] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_25_wd = reg_wdata[0];
-  assign mio_pad_sleep_regwen_26_we = addr_hit[377] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_26_we = addr_hit[363] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_26_wd = reg_wdata[0];
-  assign mio_pad_sleep_regwen_27_we = addr_hit[378] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_27_we = addr_hit[364] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_27_wd = reg_wdata[0];
-  assign mio_pad_sleep_regwen_28_we = addr_hit[379] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_28_we = addr_hit[365] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_28_wd = reg_wdata[0];
-  assign mio_pad_sleep_regwen_29_we = addr_hit[380] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_29_we = addr_hit[366] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_29_wd = reg_wdata[0];
-  assign mio_pad_sleep_regwen_30_we = addr_hit[381] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_30_we = addr_hit[367] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_30_wd = reg_wdata[0];
-  assign mio_pad_sleep_regwen_31_we = addr_hit[382] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_31_we = addr_hit[368] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_31_wd = reg_wdata[0];
-  assign mio_pad_sleep_regwen_32_we = addr_hit[383] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_32_we = addr_hit[369] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_32_wd = reg_wdata[0];
-  assign mio_pad_sleep_regwen_33_we = addr_hit[384] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_33_we = addr_hit[370] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_33_wd = reg_wdata[0];
-  assign mio_pad_sleep_regwen_34_we = addr_hit[385] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_34_we = addr_hit[371] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_34_wd = reg_wdata[0];
-  assign mio_pad_sleep_regwen_35_we = addr_hit[386] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_35_we = addr_hit[372] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_35_wd = reg_wdata[0];
-  assign mio_pad_sleep_regwen_36_we = addr_hit[387] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_36_we = addr_hit[373] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_36_wd = reg_wdata[0];
-  assign mio_pad_sleep_regwen_37_we = addr_hit[388] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_37_we = addr_hit[374] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_37_wd = reg_wdata[0];
-  assign mio_pad_sleep_regwen_38_we = addr_hit[389] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_38_we = addr_hit[375] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_38_wd = reg_wdata[0];
-  assign mio_pad_sleep_regwen_39_we = addr_hit[390] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_39_we = addr_hit[376] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_39_wd = reg_wdata[0];
-  assign mio_pad_sleep_regwen_40_we = addr_hit[391] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_40_we = addr_hit[377] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_40_wd = reg_wdata[0];
-  assign mio_pad_sleep_regwen_41_we = addr_hit[392] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_41_we = addr_hit[378] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_41_wd = reg_wdata[0];
-  assign mio_pad_sleep_regwen_42_we = addr_hit[393] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_42_we = addr_hit[379] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_42_wd = reg_wdata[0];
-  assign mio_pad_sleep_regwen_43_we = addr_hit[394] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_43_we = addr_hit[380] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_43_wd = reg_wdata[0];
-  assign mio_pad_sleep_regwen_44_we = addr_hit[395] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_44_we = addr_hit[381] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_44_wd = reg_wdata[0];
-  assign mio_pad_sleep_regwen_45_we = addr_hit[396] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_45_we = addr_hit[382] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_45_wd = reg_wdata[0];
-  assign mio_pad_sleep_regwen_46_we = addr_hit[397] & reg_we & !reg_error;
+  assign mio_pad_sleep_regwen_46_we = addr_hit[383] & reg_we & !reg_error;
 
   assign mio_pad_sleep_regwen_46_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_0_we = addr_hit[398] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_0_we = addr_hit[384] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_0_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_1_we = addr_hit[399] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_1_we = addr_hit[385] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_1_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_2_we = addr_hit[400] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_2_we = addr_hit[386] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_2_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_3_we = addr_hit[401] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_3_we = addr_hit[387] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_3_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_4_we = addr_hit[402] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_4_we = addr_hit[388] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_4_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_5_we = addr_hit[403] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_5_we = addr_hit[389] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_5_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_6_we = addr_hit[404] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_6_we = addr_hit[390] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_6_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_7_we = addr_hit[405] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_7_we = addr_hit[391] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_7_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_8_we = addr_hit[406] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_8_we = addr_hit[392] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_8_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_9_we = addr_hit[407] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_9_we = addr_hit[393] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_9_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_10_we = addr_hit[408] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_10_we = addr_hit[394] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_10_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_11_we = addr_hit[409] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_11_we = addr_hit[395] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_11_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_12_we = addr_hit[410] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_12_we = addr_hit[396] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_12_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_13_we = addr_hit[411] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_13_we = addr_hit[397] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_13_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_14_we = addr_hit[412] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_14_we = addr_hit[398] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_14_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_15_we = addr_hit[413] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_15_we = addr_hit[399] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_15_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_16_we = addr_hit[414] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_16_we = addr_hit[400] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_16_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_17_we = addr_hit[415] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_17_we = addr_hit[401] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_17_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_18_we = addr_hit[416] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_18_we = addr_hit[402] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_18_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_19_we = addr_hit[417] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_19_we = addr_hit[403] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_19_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_20_we = addr_hit[418] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_20_we = addr_hit[404] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_20_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_21_we = addr_hit[419] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_21_we = addr_hit[405] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_21_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_22_we = addr_hit[420] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_22_we = addr_hit[406] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_22_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_23_we = addr_hit[421] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_23_we = addr_hit[407] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_23_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_24_we = addr_hit[422] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_24_we = addr_hit[408] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_24_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_25_we = addr_hit[423] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_25_we = addr_hit[409] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_25_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_26_we = addr_hit[424] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_26_we = addr_hit[410] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_26_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_27_we = addr_hit[425] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_27_we = addr_hit[411] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_27_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_28_we = addr_hit[426] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_28_we = addr_hit[412] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_28_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_29_we = addr_hit[427] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_29_we = addr_hit[413] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_29_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_30_we = addr_hit[428] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_30_we = addr_hit[414] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_30_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_31_we = addr_hit[429] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_31_we = addr_hit[415] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_31_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_32_we = addr_hit[430] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_32_we = addr_hit[416] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_32_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_33_we = addr_hit[431] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_33_we = addr_hit[417] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_33_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_34_we = addr_hit[432] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_34_we = addr_hit[418] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_34_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_35_we = addr_hit[433] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_35_we = addr_hit[419] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_35_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_36_we = addr_hit[434] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_36_we = addr_hit[420] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_36_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_37_we = addr_hit[435] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_37_we = addr_hit[421] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_37_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_38_we = addr_hit[436] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_38_we = addr_hit[422] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_38_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_39_we = addr_hit[437] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_39_we = addr_hit[423] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_39_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_40_we = addr_hit[438] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_40_we = addr_hit[424] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_40_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_41_we = addr_hit[439] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_41_we = addr_hit[425] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_41_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_42_we = addr_hit[440] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_42_we = addr_hit[426] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_42_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_43_we = addr_hit[441] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_43_we = addr_hit[427] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_43_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_44_we = addr_hit[442] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_44_we = addr_hit[428] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_44_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_45_we = addr_hit[443] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_45_we = addr_hit[429] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_45_wd = reg_wdata[0];
-  assign mio_pad_sleep_en_46_we = addr_hit[444] & reg_we & !reg_error;
+  assign mio_pad_sleep_en_46_we = addr_hit[430] & reg_we & !reg_error;
 
   assign mio_pad_sleep_en_46_wd = reg_wdata[0];
-  assign mio_pad_sleep_mode_0_we = addr_hit[445] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_0_we = addr_hit[431] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_0_wd = reg_wdata[1:0];
-  assign mio_pad_sleep_mode_1_we = addr_hit[446] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_1_we = addr_hit[432] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_1_wd = reg_wdata[1:0];
-  assign mio_pad_sleep_mode_2_we = addr_hit[447] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_2_we = addr_hit[433] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_2_wd = reg_wdata[1:0];
-  assign mio_pad_sleep_mode_3_we = addr_hit[448] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_3_we = addr_hit[434] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_3_wd = reg_wdata[1:0];
-  assign mio_pad_sleep_mode_4_we = addr_hit[449] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_4_we = addr_hit[435] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_4_wd = reg_wdata[1:0];
-  assign mio_pad_sleep_mode_5_we = addr_hit[450] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_5_we = addr_hit[436] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_5_wd = reg_wdata[1:0];
-  assign mio_pad_sleep_mode_6_we = addr_hit[451] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_6_we = addr_hit[437] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_6_wd = reg_wdata[1:0];
-  assign mio_pad_sleep_mode_7_we = addr_hit[452] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_7_we = addr_hit[438] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_7_wd = reg_wdata[1:0];
-  assign mio_pad_sleep_mode_8_we = addr_hit[453] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_8_we = addr_hit[439] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_8_wd = reg_wdata[1:0];
-  assign mio_pad_sleep_mode_9_we = addr_hit[454] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_9_we = addr_hit[440] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_9_wd = reg_wdata[1:0];
-  assign mio_pad_sleep_mode_10_we = addr_hit[455] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_10_we = addr_hit[441] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_10_wd = reg_wdata[1:0];
-  assign mio_pad_sleep_mode_11_we = addr_hit[456] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_11_we = addr_hit[442] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_11_wd = reg_wdata[1:0];
-  assign mio_pad_sleep_mode_12_we = addr_hit[457] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_12_we = addr_hit[443] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_12_wd = reg_wdata[1:0];
-  assign mio_pad_sleep_mode_13_we = addr_hit[458] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_13_we = addr_hit[444] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_13_wd = reg_wdata[1:0];
-  assign mio_pad_sleep_mode_14_we = addr_hit[459] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_14_we = addr_hit[445] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_14_wd = reg_wdata[1:0];
-  assign mio_pad_sleep_mode_15_we = addr_hit[460] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_15_we = addr_hit[446] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_15_wd = reg_wdata[1:0];
-  assign mio_pad_sleep_mode_16_we = addr_hit[461] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_16_we = addr_hit[447] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_16_wd = reg_wdata[1:0];
-  assign mio_pad_sleep_mode_17_we = addr_hit[462] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_17_we = addr_hit[448] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_17_wd = reg_wdata[1:0];
-  assign mio_pad_sleep_mode_18_we = addr_hit[463] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_18_we = addr_hit[449] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_18_wd = reg_wdata[1:0];
-  assign mio_pad_sleep_mode_19_we = addr_hit[464] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_19_we = addr_hit[450] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_19_wd = reg_wdata[1:0];
-  assign mio_pad_sleep_mode_20_we = addr_hit[465] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_20_we = addr_hit[451] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_20_wd = reg_wdata[1:0];
-  assign mio_pad_sleep_mode_21_we = addr_hit[466] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_21_we = addr_hit[452] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_21_wd = reg_wdata[1:0];
-  assign mio_pad_sleep_mode_22_we = addr_hit[467] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_22_we = addr_hit[453] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_22_wd = reg_wdata[1:0];
-  assign mio_pad_sleep_mode_23_we = addr_hit[468] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_23_we = addr_hit[454] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_23_wd = reg_wdata[1:0];
-  assign mio_pad_sleep_mode_24_we = addr_hit[469] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_24_we = addr_hit[455] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_24_wd = reg_wdata[1:0];
-  assign mio_pad_sleep_mode_25_we = addr_hit[470] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_25_we = addr_hit[456] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_25_wd = reg_wdata[1:0];
-  assign mio_pad_sleep_mode_26_we = addr_hit[471] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_26_we = addr_hit[457] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_26_wd = reg_wdata[1:0];
-  assign mio_pad_sleep_mode_27_we = addr_hit[472] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_27_we = addr_hit[458] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_27_wd = reg_wdata[1:0];
-  assign mio_pad_sleep_mode_28_we = addr_hit[473] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_28_we = addr_hit[459] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_28_wd = reg_wdata[1:0];
-  assign mio_pad_sleep_mode_29_we = addr_hit[474] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_29_we = addr_hit[460] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_29_wd = reg_wdata[1:0];
-  assign mio_pad_sleep_mode_30_we = addr_hit[475] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_30_we = addr_hit[461] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_30_wd = reg_wdata[1:0];
-  assign mio_pad_sleep_mode_31_we = addr_hit[476] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_31_we = addr_hit[462] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_31_wd = reg_wdata[1:0];
-  assign mio_pad_sleep_mode_32_we = addr_hit[477] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_32_we = addr_hit[463] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_32_wd = reg_wdata[1:0];
-  assign mio_pad_sleep_mode_33_we = addr_hit[478] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_33_we = addr_hit[464] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_33_wd = reg_wdata[1:0];
-  assign mio_pad_sleep_mode_34_we = addr_hit[479] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_34_we = addr_hit[465] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_34_wd = reg_wdata[1:0];
-  assign mio_pad_sleep_mode_35_we = addr_hit[480] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_35_we = addr_hit[466] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_35_wd = reg_wdata[1:0];
-  assign mio_pad_sleep_mode_36_we = addr_hit[481] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_36_we = addr_hit[467] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_36_wd = reg_wdata[1:0];
-  assign mio_pad_sleep_mode_37_we = addr_hit[482] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_37_we = addr_hit[468] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_37_wd = reg_wdata[1:0];
-  assign mio_pad_sleep_mode_38_we = addr_hit[483] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_38_we = addr_hit[469] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_38_wd = reg_wdata[1:0];
-  assign mio_pad_sleep_mode_39_we = addr_hit[484] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_39_we = addr_hit[470] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_39_wd = reg_wdata[1:0];
-  assign mio_pad_sleep_mode_40_we = addr_hit[485] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_40_we = addr_hit[471] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_40_wd = reg_wdata[1:0];
-  assign mio_pad_sleep_mode_41_we = addr_hit[486] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_41_we = addr_hit[472] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_41_wd = reg_wdata[1:0];
-  assign mio_pad_sleep_mode_42_we = addr_hit[487] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_42_we = addr_hit[473] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_42_wd = reg_wdata[1:0];
-  assign mio_pad_sleep_mode_43_we = addr_hit[488] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_43_we = addr_hit[474] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_43_wd = reg_wdata[1:0];
-  assign mio_pad_sleep_mode_44_we = addr_hit[489] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_44_we = addr_hit[475] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_44_wd = reg_wdata[1:0];
-  assign mio_pad_sleep_mode_45_we = addr_hit[490] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_45_we = addr_hit[476] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_45_wd = reg_wdata[1:0];
-  assign mio_pad_sleep_mode_46_we = addr_hit[491] & reg_we & !reg_error;
+  assign mio_pad_sleep_mode_46_we = addr_hit[477] & reg_we & !reg_error;
 
   assign mio_pad_sleep_mode_46_wd = reg_wdata[1:0];
-  assign dio_pad_sleep_status_we = addr_hit[492] & reg_we & !reg_error;
+  assign dio_pad_sleep_status_we = addr_hit[478] & reg_we & !reg_error;
 
   assign dio_pad_sleep_status_en_0_wd = reg_wdata[0];
 
@@ -23756,340 +22468,263 @@
   assign dio_pad_sleep_status_en_14_wd = reg_wdata[14];
 
   assign dio_pad_sleep_status_en_15_wd = reg_wdata[15];
-
-  assign dio_pad_sleep_status_en_16_wd = reg_wdata[16];
-
-  assign dio_pad_sleep_status_en_17_wd = reg_wdata[17];
-
-  assign dio_pad_sleep_status_en_18_wd = reg_wdata[18];
-
-  assign dio_pad_sleep_status_en_19_wd = reg_wdata[19];
-
-  assign dio_pad_sleep_status_en_20_wd = reg_wdata[20];
-
-  assign dio_pad_sleep_status_en_21_wd = reg_wdata[21];
-
-  assign dio_pad_sleep_status_en_22_wd = reg_wdata[22];
-  assign dio_pad_sleep_regwen_0_we = addr_hit[493] & reg_we & !reg_error;
+  assign dio_pad_sleep_regwen_0_we = addr_hit[479] & reg_we & !reg_error;
 
   assign dio_pad_sleep_regwen_0_wd = reg_wdata[0];
-  assign dio_pad_sleep_regwen_1_we = addr_hit[494] & reg_we & !reg_error;
+  assign dio_pad_sleep_regwen_1_we = addr_hit[480] & reg_we & !reg_error;
 
   assign dio_pad_sleep_regwen_1_wd = reg_wdata[0];
-  assign dio_pad_sleep_regwen_2_we = addr_hit[495] & reg_we & !reg_error;
+  assign dio_pad_sleep_regwen_2_we = addr_hit[481] & reg_we & !reg_error;
 
   assign dio_pad_sleep_regwen_2_wd = reg_wdata[0];
-  assign dio_pad_sleep_regwen_3_we = addr_hit[496] & reg_we & !reg_error;
+  assign dio_pad_sleep_regwen_3_we = addr_hit[482] & reg_we & !reg_error;
 
   assign dio_pad_sleep_regwen_3_wd = reg_wdata[0];
-  assign dio_pad_sleep_regwen_4_we = addr_hit[497] & reg_we & !reg_error;
+  assign dio_pad_sleep_regwen_4_we = addr_hit[483] & reg_we & !reg_error;
 
   assign dio_pad_sleep_regwen_4_wd = reg_wdata[0];
-  assign dio_pad_sleep_regwen_5_we = addr_hit[498] & reg_we & !reg_error;
+  assign dio_pad_sleep_regwen_5_we = addr_hit[484] & reg_we & !reg_error;
 
   assign dio_pad_sleep_regwen_5_wd = reg_wdata[0];
-  assign dio_pad_sleep_regwen_6_we = addr_hit[499] & reg_we & !reg_error;
+  assign dio_pad_sleep_regwen_6_we = addr_hit[485] & reg_we & !reg_error;
 
   assign dio_pad_sleep_regwen_6_wd = reg_wdata[0];
-  assign dio_pad_sleep_regwen_7_we = addr_hit[500] & reg_we & !reg_error;
+  assign dio_pad_sleep_regwen_7_we = addr_hit[486] & reg_we & !reg_error;
 
   assign dio_pad_sleep_regwen_7_wd = reg_wdata[0];
-  assign dio_pad_sleep_regwen_8_we = addr_hit[501] & reg_we & !reg_error;
+  assign dio_pad_sleep_regwen_8_we = addr_hit[487] & reg_we & !reg_error;
 
   assign dio_pad_sleep_regwen_8_wd = reg_wdata[0];
-  assign dio_pad_sleep_regwen_9_we = addr_hit[502] & reg_we & !reg_error;
+  assign dio_pad_sleep_regwen_9_we = addr_hit[488] & reg_we & !reg_error;
 
   assign dio_pad_sleep_regwen_9_wd = reg_wdata[0];
-  assign dio_pad_sleep_regwen_10_we = addr_hit[503] & reg_we & !reg_error;
+  assign dio_pad_sleep_regwen_10_we = addr_hit[489] & reg_we & !reg_error;
 
   assign dio_pad_sleep_regwen_10_wd = reg_wdata[0];
-  assign dio_pad_sleep_regwen_11_we = addr_hit[504] & reg_we & !reg_error;
+  assign dio_pad_sleep_regwen_11_we = addr_hit[490] & reg_we & !reg_error;
 
   assign dio_pad_sleep_regwen_11_wd = reg_wdata[0];
-  assign dio_pad_sleep_regwen_12_we = addr_hit[505] & reg_we & !reg_error;
+  assign dio_pad_sleep_regwen_12_we = addr_hit[491] & reg_we & !reg_error;
 
   assign dio_pad_sleep_regwen_12_wd = reg_wdata[0];
-  assign dio_pad_sleep_regwen_13_we = addr_hit[506] & reg_we & !reg_error;
+  assign dio_pad_sleep_regwen_13_we = addr_hit[492] & reg_we & !reg_error;
 
   assign dio_pad_sleep_regwen_13_wd = reg_wdata[0];
-  assign dio_pad_sleep_regwen_14_we = addr_hit[507] & reg_we & !reg_error;
+  assign dio_pad_sleep_regwen_14_we = addr_hit[493] & reg_we & !reg_error;
 
   assign dio_pad_sleep_regwen_14_wd = reg_wdata[0];
-  assign dio_pad_sleep_regwen_15_we = addr_hit[508] & reg_we & !reg_error;
+  assign dio_pad_sleep_regwen_15_we = addr_hit[494] & reg_we & !reg_error;
 
   assign dio_pad_sleep_regwen_15_wd = reg_wdata[0];
-  assign dio_pad_sleep_regwen_16_we = addr_hit[509] & reg_we & !reg_error;
-
-  assign dio_pad_sleep_regwen_16_wd = reg_wdata[0];
-  assign dio_pad_sleep_regwen_17_we = addr_hit[510] & reg_we & !reg_error;
-
-  assign dio_pad_sleep_regwen_17_wd = reg_wdata[0];
-  assign dio_pad_sleep_regwen_18_we = addr_hit[511] & reg_we & !reg_error;
-
-  assign dio_pad_sleep_regwen_18_wd = reg_wdata[0];
-  assign dio_pad_sleep_regwen_19_we = addr_hit[512] & reg_we & !reg_error;
-
-  assign dio_pad_sleep_regwen_19_wd = reg_wdata[0];
-  assign dio_pad_sleep_regwen_20_we = addr_hit[513] & reg_we & !reg_error;
-
-  assign dio_pad_sleep_regwen_20_wd = reg_wdata[0];
-  assign dio_pad_sleep_regwen_21_we = addr_hit[514] & reg_we & !reg_error;
-
-  assign dio_pad_sleep_regwen_21_wd = reg_wdata[0];
-  assign dio_pad_sleep_regwen_22_we = addr_hit[515] & reg_we & !reg_error;
-
-  assign dio_pad_sleep_regwen_22_wd = reg_wdata[0];
-  assign dio_pad_sleep_en_0_we = addr_hit[516] & reg_we & !reg_error;
+  assign dio_pad_sleep_en_0_we = addr_hit[495] & reg_we & !reg_error;
 
   assign dio_pad_sleep_en_0_wd = reg_wdata[0];
-  assign dio_pad_sleep_en_1_we = addr_hit[517] & reg_we & !reg_error;
+  assign dio_pad_sleep_en_1_we = addr_hit[496] & reg_we & !reg_error;
 
   assign dio_pad_sleep_en_1_wd = reg_wdata[0];
-  assign dio_pad_sleep_en_2_we = addr_hit[518] & reg_we & !reg_error;
+  assign dio_pad_sleep_en_2_we = addr_hit[497] & reg_we & !reg_error;
 
   assign dio_pad_sleep_en_2_wd = reg_wdata[0];
-  assign dio_pad_sleep_en_3_we = addr_hit[519] & reg_we & !reg_error;
+  assign dio_pad_sleep_en_3_we = addr_hit[498] & reg_we & !reg_error;
 
   assign dio_pad_sleep_en_3_wd = reg_wdata[0];
-  assign dio_pad_sleep_en_4_we = addr_hit[520] & reg_we & !reg_error;
+  assign dio_pad_sleep_en_4_we = addr_hit[499] & reg_we & !reg_error;
 
   assign dio_pad_sleep_en_4_wd = reg_wdata[0];
-  assign dio_pad_sleep_en_5_we = addr_hit[521] & reg_we & !reg_error;
+  assign dio_pad_sleep_en_5_we = addr_hit[500] & reg_we & !reg_error;
 
   assign dio_pad_sleep_en_5_wd = reg_wdata[0];
-  assign dio_pad_sleep_en_6_we = addr_hit[522] & reg_we & !reg_error;
+  assign dio_pad_sleep_en_6_we = addr_hit[501] & reg_we & !reg_error;
 
   assign dio_pad_sleep_en_6_wd = reg_wdata[0];
-  assign dio_pad_sleep_en_7_we = addr_hit[523] & reg_we & !reg_error;
+  assign dio_pad_sleep_en_7_we = addr_hit[502] & reg_we & !reg_error;
 
   assign dio_pad_sleep_en_7_wd = reg_wdata[0];
-  assign dio_pad_sleep_en_8_we = addr_hit[524] & reg_we & !reg_error;
+  assign dio_pad_sleep_en_8_we = addr_hit[503] & reg_we & !reg_error;
 
   assign dio_pad_sleep_en_8_wd = reg_wdata[0];
-  assign dio_pad_sleep_en_9_we = addr_hit[525] & reg_we & !reg_error;
+  assign dio_pad_sleep_en_9_we = addr_hit[504] & reg_we & !reg_error;
 
   assign dio_pad_sleep_en_9_wd = reg_wdata[0];
-  assign dio_pad_sleep_en_10_we = addr_hit[526] & reg_we & !reg_error;
+  assign dio_pad_sleep_en_10_we = addr_hit[505] & reg_we & !reg_error;
 
   assign dio_pad_sleep_en_10_wd = reg_wdata[0];
-  assign dio_pad_sleep_en_11_we = addr_hit[527] & reg_we & !reg_error;
+  assign dio_pad_sleep_en_11_we = addr_hit[506] & reg_we & !reg_error;
 
   assign dio_pad_sleep_en_11_wd = reg_wdata[0];
-  assign dio_pad_sleep_en_12_we = addr_hit[528] & reg_we & !reg_error;
+  assign dio_pad_sleep_en_12_we = addr_hit[507] & reg_we & !reg_error;
 
   assign dio_pad_sleep_en_12_wd = reg_wdata[0];
-  assign dio_pad_sleep_en_13_we = addr_hit[529] & reg_we & !reg_error;
+  assign dio_pad_sleep_en_13_we = addr_hit[508] & reg_we & !reg_error;
 
   assign dio_pad_sleep_en_13_wd = reg_wdata[0];
-  assign dio_pad_sleep_en_14_we = addr_hit[530] & reg_we & !reg_error;
+  assign dio_pad_sleep_en_14_we = addr_hit[509] & reg_we & !reg_error;
 
   assign dio_pad_sleep_en_14_wd = reg_wdata[0];
-  assign dio_pad_sleep_en_15_we = addr_hit[531] & reg_we & !reg_error;
+  assign dio_pad_sleep_en_15_we = addr_hit[510] & reg_we & !reg_error;
 
   assign dio_pad_sleep_en_15_wd = reg_wdata[0];
-  assign dio_pad_sleep_en_16_we = addr_hit[532] & reg_we & !reg_error;
-
-  assign dio_pad_sleep_en_16_wd = reg_wdata[0];
-  assign dio_pad_sleep_en_17_we = addr_hit[533] & reg_we & !reg_error;
-
-  assign dio_pad_sleep_en_17_wd = reg_wdata[0];
-  assign dio_pad_sleep_en_18_we = addr_hit[534] & reg_we & !reg_error;
-
-  assign dio_pad_sleep_en_18_wd = reg_wdata[0];
-  assign dio_pad_sleep_en_19_we = addr_hit[535] & reg_we & !reg_error;
-
-  assign dio_pad_sleep_en_19_wd = reg_wdata[0];
-  assign dio_pad_sleep_en_20_we = addr_hit[536] & reg_we & !reg_error;
-
-  assign dio_pad_sleep_en_20_wd = reg_wdata[0];
-  assign dio_pad_sleep_en_21_we = addr_hit[537] & reg_we & !reg_error;
-
-  assign dio_pad_sleep_en_21_wd = reg_wdata[0];
-  assign dio_pad_sleep_en_22_we = addr_hit[538] & reg_we & !reg_error;
-
-  assign dio_pad_sleep_en_22_wd = reg_wdata[0];
-  assign dio_pad_sleep_mode_0_we = addr_hit[539] & reg_we & !reg_error;
+  assign dio_pad_sleep_mode_0_we = addr_hit[511] & reg_we & !reg_error;
 
   assign dio_pad_sleep_mode_0_wd = reg_wdata[1:0];
-  assign dio_pad_sleep_mode_1_we = addr_hit[540] & reg_we & !reg_error;
+  assign dio_pad_sleep_mode_1_we = addr_hit[512] & reg_we & !reg_error;
 
   assign dio_pad_sleep_mode_1_wd = reg_wdata[1:0];
-  assign dio_pad_sleep_mode_2_we = addr_hit[541] & reg_we & !reg_error;
+  assign dio_pad_sleep_mode_2_we = addr_hit[513] & reg_we & !reg_error;
 
   assign dio_pad_sleep_mode_2_wd = reg_wdata[1:0];
-  assign dio_pad_sleep_mode_3_we = addr_hit[542] & reg_we & !reg_error;
+  assign dio_pad_sleep_mode_3_we = addr_hit[514] & reg_we & !reg_error;
 
   assign dio_pad_sleep_mode_3_wd = reg_wdata[1:0];
-  assign dio_pad_sleep_mode_4_we = addr_hit[543] & reg_we & !reg_error;
+  assign dio_pad_sleep_mode_4_we = addr_hit[515] & reg_we & !reg_error;
 
   assign dio_pad_sleep_mode_4_wd = reg_wdata[1:0];
-  assign dio_pad_sleep_mode_5_we = addr_hit[544] & reg_we & !reg_error;
+  assign dio_pad_sleep_mode_5_we = addr_hit[516] & reg_we & !reg_error;
 
   assign dio_pad_sleep_mode_5_wd = reg_wdata[1:0];
-  assign dio_pad_sleep_mode_6_we = addr_hit[545] & reg_we & !reg_error;
+  assign dio_pad_sleep_mode_6_we = addr_hit[517] & reg_we & !reg_error;
 
   assign dio_pad_sleep_mode_6_wd = reg_wdata[1:0];
-  assign dio_pad_sleep_mode_7_we = addr_hit[546] & reg_we & !reg_error;
+  assign dio_pad_sleep_mode_7_we = addr_hit[518] & reg_we & !reg_error;
 
   assign dio_pad_sleep_mode_7_wd = reg_wdata[1:0];
-  assign dio_pad_sleep_mode_8_we = addr_hit[547] & reg_we & !reg_error;
+  assign dio_pad_sleep_mode_8_we = addr_hit[519] & reg_we & !reg_error;
 
   assign dio_pad_sleep_mode_8_wd = reg_wdata[1:0];
-  assign dio_pad_sleep_mode_9_we = addr_hit[548] & reg_we & !reg_error;
+  assign dio_pad_sleep_mode_9_we = addr_hit[520] & reg_we & !reg_error;
 
   assign dio_pad_sleep_mode_9_wd = reg_wdata[1:0];
-  assign dio_pad_sleep_mode_10_we = addr_hit[549] & reg_we & !reg_error;
+  assign dio_pad_sleep_mode_10_we = addr_hit[521] & reg_we & !reg_error;
 
   assign dio_pad_sleep_mode_10_wd = reg_wdata[1:0];
-  assign dio_pad_sleep_mode_11_we = addr_hit[550] & reg_we & !reg_error;
+  assign dio_pad_sleep_mode_11_we = addr_hit[522] & reg_we & !reg_error;
 
   assign dio_pad_sleep_mode_11_wd = reg_wdata[1:0];
-  assign dio_pad_sleep_mode_12_we = addr_hit[551] & reg_we & !reg_error;
+  assign dio_pad_sleep_mode_12_we = addr_hit[523] & reg_we & !reg_error;
 
   assign dio_pad_sleep_mode_12_wd = reg_wdata[1:0];
-  assign dio_pad_sleep_mode_13_we = addr_hit[552] & reg_we & !reg_error;
+  assign dio_pad_sleep_mode_13_we = addr_hit[524] & reg_we & !reg_error;
 
   assign dio_pad_sleep_mode_13_wd = reg_wdata[1:0];
-  assign dio_pad_sleep_mode_14_we = addr_hit[553] & reg_we & !reg_error;
+  assign dio_pad_sleep_mode_14_we = addr_hit[525] & reg_we & !reg_error;
 
   assign dio_pad_sleep_mode_14_wd = reg_wdata[1:0];
-  assign dio_pad_sleep_mode_15_we = addr_hit[554] & reg_we & !reg_error;
+  assign dio_pad_sleep_mode_15_we = addr_hit[526] & reg_we & !reg_error;
 
   assign dio_pad_sleep_mode_15_wd = reg_wdata[1:0];
-  assign dio_pad_sleep_mode_16_we = addr_hit[555] & reg_we & !reg_error;
-
-  assign dio_pad_sleep_mode_16_wd = reg_wdata[1:0];
-  assign dio_pad_sleep_mode_17_we = addr_hit[556] & reg_we & !reg_error;
-
-  assign dio_pad_sleep_mode_17_wd = reg_wdata[1:0];
-  assign dio_pad_sleep_mode_18_we = addr_hit[557] & reg_we & !reg_error;
-
-  assign dio_pad_sleep_mode_18_wd = reg_wdata[1:0];
-  assign dio_pad_sleep_mode_19_we = addr_hit[558] & reg_we & !reg_error;
-
-  assign dio_pad_sleep_mode_19_wd = reg_wdata[1:0];
-  assign dio_pad_sleep_mode_20_we = addr_hit[559] & reg_we & !reg_error;
-
-  assign dio_pad_sleep_mode_20_wd = reg_wdata[1:0];
-  assign dio_pad_sleep_mode_21_we = addr_hit[560] & reg_we & !reg_error;
-
-  assign dio_pad_sleep_mode_21_wd = reg_wdata[1:0];
-  assign dio_pad_sleep_mode_22_we = addr_hit[561] & reg_we & !reg_error;
-
-  assign dio_pad_sleep_mode_22_wd = reg_wdata[1:0];
-  assign wkup_detector_regwen_0_we = addr_hit[562] & reg_we & !reg_error;
+  assign wkup_detector_regwen_0_we = addr_hit[527] & reg_we & !reg_error;
 
   assign wkup_detector_regwen_0_wd = reg_wdata[0];
-  assign wkup_detector_regwen_1_we = addr_hit[563] & reg_we & !reg_error;
+  assign wkup_detector_regwen_1_we = addr_hit[528] & reg_we & !reg_error;
 
   assign wkup_detector_regwen_1_wd = reg_wdata[0];
-  assign wkup_detector_regwen_2_we = addr_hit[564] & reg_we & !reg_error;
+  assign wkup_detector_regwen_2_we = addr_hit[529] & reg_we & !reg_error;
 
   assign wkup_detector_regwen_2_wd = reg_wdata[0];
-  assign wkup_detector_regwen_3_we = addr_hit[565] & reg_we & !reg_error;
+  assign wkup_detector_regwen_3_we = addr_hit[530] & reg_we & !reg_error;
 
   assign wkup_detector_regwen_3_wd = reg_wdata[0];
-  assign wkup_detector_regwen_4_we = addr_hit[566] & reg_we & !reg_error;
+  assign wkup_detector_regwen_4_we = addr_hit[531] & reg_we & !reg_error;
 
   assign wkup_detector_regwen_4_wd = reg_wdata[0];
-  assign wkup_detector_regwen_5_we = addr_hit[567] & reg_we & !reg_error;
+  assign wkup_detector_regwen_5_we = addr_hit[532] & reg_we & !reg_error;
 
   assign wkup_detector_regwen_5_wd = reg_wdata[0];
-  assign wkup_detector_regwen_6_we = addr_hit[568] & reg_we & !reg_error;
+  assign wkup_detector_regwen_6_we = addr_hit[533] & reg_we & !reg_error;
 
   assign wkup_detector_regwen_6_wd = reg_wdata[0];
-  assign wkup_detector_regwen_7_we = addr_hit[569] & reg_we & !reg_error;
+  assign wkup_detector_regwen_7_we = addr_hit[534] & reg_we & !reg_error;
 
   assign wkup_detector_regwen_7_wd = reg_wdata[0];
-  assign wkup_detector_en_0_we = addr_hit[570] & reg_we & !reg_error;
+  assign wkup_detector_en_0_we = addr_hit[535] & reg_we & !reg_error;
 
-  assign wkup_detector_en_1_we = addr_hit[571] & reg_we & !reg_error;
+  assign wkup_detector_en_1_we = addr_hit[536] & reg_we & !reg_error;
 
-  assign wkup_detector_en_2_we = addr_hit[572] & reg_we & !reg_error;
+  assign wkup_detector_en_2_we = addr_hit[537] & reg_we & !reg_error;
 
-  assign wkup_detector_en_3_we = addr_hit[573] & reg_we & !reg_error;
+  assign wkup_detector_en_3_we = addr_hit[538] & reg_we & !reg_error;
 
-  assign wkup_detector_en_4_we = addr_hit[574] & reg_we & !reg_error;
+  assign wkup_detector_en_4_we = addr_hit[539] & reg_we & !reg_error;
 
-  assign wkup_detector_en_5_we = addr_hit[575] & reg_we & !reg_error;
+  assign wkup_detector_en_5_we = addr_hit[540] & reg_we & !reg_error;
 
-  assign wkup_detector_en_6_we = addr_hit[576] & reg_we & !reg_error;
+  assign wkup_detector_en_6_we = addr_hit[541] & reg_we & !reg_error;
 
-  assign wkup_detector_en_7_we = addr_hit[577] & reg_we & !reg_error;
+  assign wkup_detector_en_7_we = addr_hit[542] & reg_we & !reg_error;
 
-  assign wkup_detector_0_we = addr_hit[578] & reg_we & !reg_error;
+  assign wkup_detector_0_we = addr_hit[543] & reg_we & !reg_error;
 
 
 
-  assign wkup_detector_1_we = addr_hit[579] & reg_we & !reg_error;
+  assign wkup_detector_1_we = addr_hit[544] & reg_we & !reg_error;
 
 
 
-  assign wkup_detector_2_we = addr_hit[580] & reg_we & !reg_error;
+  assign wkup_detector_2_we = addr_hit[545] & reg_we & !reg_error;
 
 
 
-  assign wkup_detector_3_we = addr_hit[581] & reg_we & !reg_error;
+  assign wkup_detector_3_we = addr_hit[546] & reg_we & !reg_error;
 
 
 
-  assign wkup_detector_4_we = addr_hit[582] & reg_we & !reg_error;
+  assign wkup_detector_4_we = addr_hit[547] & reg_we & !reg_error;
 
 
 
-  assign wkup_detector_5_we = addr_hit[583] & reg_we & !reg_error;
+  assign wkup_detector_5_we = addr_hit[548] & reg_we & !reg_error;
 
 
 
-  assign wkup_detector_6_we = addr_hit[584] & reg_we & !reg_error;
+  assign wkup_detector_6_we = addr_hit[549] & reg_we & !reg_error;
 
 
 
-  assign wkup_detector_7_we = addr_hit[585] & reg_we & !reg_error;
+  assign wkup_detector_7_we = addr_hit[550] & reg_we & !reg_error;
 
 
 
-  assign wkup_detector_cnt_th_0_we = addr_hit[586] & reg_we & !reg_error;
+  assign wkup_detector_cnt_th_0_we = addr_hit[551] & reg_we & !reg_error;
 
-  assign wkup_detector_cnt_th_1_we = addr_hit[587] & reg_we & !reg_error;
+  assign wkup_detector_cnt_th_1_we = addr_hit[552] & reg_we & !reg_error;
 
-  assign wkup_detector_cnt_th_2_we = addr_hit[588] & reg_we & !reg_error;
+  assign wkup_detector_cnt_th_2_we = addr_hit[553] & reg_we & !reg_error;
 
-  assign wkup_detector_cnt_th_3_we = addr_hit[589] & reg_we & !reg_error;
+  assign wkup_detector_cnt_th_3_we = addr_hit[554] & reg_we & !reg_error;
 
-  assign wkup_detector_cnt_th_4_we = addr_hit[590] & reg_we & !reg_error;
+  assign wkup_detector_cnt_th_4_we = addr_hit[555] & reg_we & !reg_error;
 
-  assign wkup_detector_cnt_th_5_we = addr_hit[591] & reg_we & !reg_error;
+  assign wkup_detector_cnt_th_5_we = addr_hit[556] & reg_we & !reg_error;
 
-  assign wkup_detector_cnt_th_6_we = addr_hit[592] & reg_we & !reg_error;
+  assign wkup_detector_cnt_th_6_we = addr_hit[557] & reg_we & !reg_error;
 
-  assign wkup_detector_cnt_th_7_we = addr_hit[593] & reg_we & !reg_error;
+  assign wkup_detector_cnt_th_7_we = addr_hit[558] & reg_we & !reg_error;
 
-  assign wkup_detector_padsel_0_we = addr_hit[594] & reg_we & !reg_error;
+  assign wkup_detector_padsel_0_we = addr_hit[559] & reg_we & !reg_error;
 
   assign wkup_detector_padsel_0_wd = reg_wdata[5:0];
-  assign wkup_detector_padsel_1_we = addr_hit[595] & reg_we & !reg_error;
+  assign wkup_detector_padsel_1_we = addr_hit[560] & reg_we & !reg_error;
 
   assign wkup_detector_padsel_1_wd = reg_wdata[5:0];
-  assign wkup_detector_padsel_2_we = addr_hit[596] & reg_we & !reg_error;
+  assign wkup_detector_padsel_2_we = addr_hit[561] & reg_we & !reg_error;
 
   assign wkup_detector_padsel_2_wd = reg_wdata[5:0];
-  assign wkup_detector_padsel_3_we = addr_hit[597] & reg_we & !reg_error;
+  assign wkup_detector_padsel_3_we = addr_hit[562] & reg_we & !reg_error;
 
   assign wkup_detector_padsel_3_wd = reg_wdata[5:0];
-  assign wkup_detector_padsel_4_we = addr_hit[598] & reg_we & !reg_error;
+  assign wkup_detector_padsel_4_we = addr_hit[563] & reg_we & !reg_error;
 
   assign wkup_detector_padsel_4_wd = reg_wdata[5:0];
-  assign wkup_detector_padsel_5_we = addr_hit[599] & reg_we & !reg_error;
+  assign wkup_detector_padsel_5_we = addr_hit[564] & reg_we & !reg_error;
 
   assign wkup_detector_padsel_5_wd = reg_wdata[5:0];
-  assign wkup_detector_padsel_6_we = addr_hit[600] & reg_we & !reg_error;
+  assign wkup_detector_padsel_6_we = addr_hit[565] & reg_we & !reg_error;
 
   assign wkup_detector_padsel_6_wd = reg_wdata[5:0];
-  assign wkup_detector_padsel_7_we = addr_hit[601] & reg_we & !reg_error;
+  assign wkup_detector_padsel_7_we = addr_hit[566] & reg_we & !reg_error;
 
   assign wkup_detector_padsel_7_wd = reg_wdata[5:0];
-  assign wkup_cause_we = addr_hit[602] & reg_we & !reg_error;
+  assign wkup_cause_we = addr_hit[567] & reg_we & !reg_error;
 
 
 
@@ -25380,126 +24015,70 @@
       end
 
       addr_hit[319]: begin
-        reg_rdata_next[0] = dio_pad_attr_regwen_16_qs;
-      end
-
-      addr_hit[320]: begin
-        reg_rdata_next[0] = dio_pad_attr_regwen_17_qs;
-      end
-
-      addr_hit[321]: begin
-        reg_rdata_next[0] = dio_pad_attr_regwen_18_qs;
-      end
-
-      addr_hit[322]: begin
-        reg_rdata_next[0] = dio_pad_attr_regwen_19_qs;
-      end
-
-      addr_hit[323]: begin
-        reg_rdata_next[0] = dio_pad_attr_regwen_20_qs;
-      end
-
-      addr_hit[324]: begin
-        reg_rdata_next[0] = dio_pad_attr_regwen_21_qs;
-      end
-
-      addr_hit[325]: begin
-        reg_rdata_next[0] = dio_pad_attr_regwen_22_qs;
-      end
-
-      addr_hit[326]: begin
         reg_rdata_next[12:0] = dio_pad_attr_0_qs;
       end
 
-      addr_hit[327]: begin
+      addr_hit[320]: begin
         reg_rdata_next[12:0] = dio_pad_attr_1_qs;
       end
 
-      addr_hit[328]: begin
+      addr_hit[321]: begin
         reg_rdata_next[12:0] = dio_pad_attr_2_qs;
       end
 
-      addr_hit[329]: begin
+      addr_hit[322]: begin
         reg_rdata_next[12:0] = dio_pad_attr_3_qs;
       end
 
-      addr_hit[330]: begin
+      addr_hit[323]: begin
         reg_rdata_next[12:0] = dio_pad_attr_4_qs;
       end
 
-      addr_hit[331]: begin
+      addr_hit[324]: begin
         reg_rdata_next[12:0] = dio_pad_attr_5_qs;
       end
 
-      addr_hit[332]: begin
+      addr_hit[325]: begin
         reg_rdata_next[12:0] = dio_pad_attr_6_qs;
       end
 
-      addr_hit[333]: begin
+      addr_hit[326]: begin
         reg_rdata_next[12:0] = dio_pad_attr_7_qs;
       end
 
-      addr_hit[334]: begin
+      addr_hit[327]: begin
         reg_rdata_next[12:0] = dio_pad_attr_8_qs;
       end
 
-      addr_hit[335]: begin
+      addr_hit[328]: begin
         reg_rdata_next[12:0] = dio_pad_attr_9_qs;
       end
 
-      addr_hit[336]: begin
+      addr_hit[329]: begin
         reg_rdata_next[12:0] = dio_pad_attr_10_qs;
       end
 
-      addr_hit[337]: begin
+      addr_hit[330]: begin
         reg_rdata_next[12:0] = dio_pad_attr_11_qs;
       end
 
-      addr_hit[338]: begin
+      addr_hit[331]: begin
         reg_rdata_next[12:0] = dio_pad_attr_12_qs;
       end
 
-      addr_hit[339]: begin
+      addr_hit[332]: begin
         reg_rdata_next[12:0] = dio_pad_attr_13_qs;
       end
 
-      addr_hit[340]: begin
+      addr_hit[333]: begin
         reg_rdata_next[12:0] = dio_pad_attr_14_qs;
       end
 
-      addr_hit[341]: begin
+      addr_hit[334]: begin
         reg_rdata_next[12:0] = dio_pad_attr_15_qs;
       end
 
-      addr_hit[342]: begin
-        reg_rdata_next[12:0] = dio_pad_attr_16_qs;
-      end
-
-      addr_hit[343]: begin
-        reg_rdata_next[12:0] = dio_pad_attr_17_qs;
-      end
-
-      addr_hit[344]: begin
-        reg_rdata_next[12:0] = dio_pad_attr_18_qs;
-      end
-
-      addr_hit[345]: begin
-        reg_rdata_next[12:0] = dio_pad_attr_19_qs;
-      end
-
-      addr_hit[346]: begin
-        reg_rdata_next[12:0] = dio_pad_attr_20_qs;
-      end
-
-      addr_hit[347]: begin
-        reg_rdata_next[12:0] = dio_pad_attr_21_qs;
-      end
-
-      addr_hit[348]: begin
-        reg_rdata_next[12:0] = dio_pad_attr_22_qs;
-      end
-
-      addr_hit[349]: begin
+      addr_hit[335]: begin
         reg_rdata_next[0] = mio_pad_sleep_status_0_en_0_qs;
         reg_rdata_next[1] = mio_pad_sleep_status_0_en_1_qs;
         reg_rdata_next[2] = mio_pad_sleep_status_0_en_2_qs;
@@ -25534,7 +24113,7 @@
         reg_rdata_next[31] = mio_pad_sleep_status_0_en_31_qs;
       end
 
-      addr_hit[350]: begin
+      addr_hit[336]: begin
         reg_rdata_next[0] = mio_pad_sleep_status_1_en_32_qs;
         reg_rdata_next[1] = mio_pad_sleep_status_1_en_33_qs;
         reg_rdata_next[2] = mio_pad_sleep_status_1_en_34_qs;
@@ -25552,571 +24131,571 @@
         reg_rdata_next[14] = mio_pad_sleep_status_1_en_46_qs;
       end
 
-      addr_hit[351]: begin
+      addr_hit[337]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_0_qs;
       end
 
-      addr_hit[352]: begin
+      addr_hit[338]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_1_qs;
       end
 
-      addr_hit[353]: begin
+      addr_hit[339]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_2_qs;
       end
 
-      addr_hit[354]: begin
+      addr_hit[340]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_3_qs;
       end
 
-      addr_hit[355]: begin
+      addr_hit[341]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_4_qs;
       end
 
-      addr_hit[356]: begin
+      addr_hit[342]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_5_qs;
       end
 
-      addr_hit[357]: begin
+      addr_hit[343]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_6_qs;
       end
 
-      addr_hit[358]: begin
+      addr_hit[344]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_7_qs;
       end
 
-      addr_hit[359]: begin
+      addr_hit[345]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_8_qs;
       end
 
-      addr_hit[360]: begin
+      addr_hit[346]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_9_qs;
       end
 
-      addr_hit[361]: begin
+      addr_hit[347]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_10_qs;
       end
 
-      addr_hit[362]: begin
+      addr_hit[348]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_11_qs;
       end
 
-      addr_hit[363]: begin
+      addr_hit[349]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_12_qs;
       end
 
-      addr_hit[364]: begin
+      addr_hit[350]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_13_qs;
       end
 
-      addr_hit[365]: begin
+      addr_hit[351]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_14_qs;
       end
 
-      addr_hit[366]: begin
+      addr_hit[352]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_15_qs;
       end
 
-      addr_hit[367]: begin
+      addr_hit[353]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_16_qs;
       end
 
-      addr_hit[368]: begin
+      addr_hit[354]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_17_qs;
       end
 
-      addr_hit[369]: begin
+      addr_hit[355]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_18_qs;
       end
 
-      addr_hit[370]: begin
+      addr_hit[356]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_19_qs;
       end
 
-      addr_hit[371]: begin
+      addr_hit[357]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_20_qs;
       end
 
-      addr_hit[372]: begin
+      addr_hit[358]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_21_qs;
       end
 
-      addr_hit[373]: begin
+      addr_hit[359]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_22_qs;
       end
 
-      addr_hit[374]: begin
+      addr_hit[360]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_23_qs;
       end
 
-      addr_hit[375]: begin
+      addr_hit[361]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_24_qs;
       end
 
-      addr_hit[376]: begin
+      addr_hit[362]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_25_qs;
       end
 
-      addr_hit[377]: begin
+      addr_hit[363]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_26_qs;
       end
 
-      addr_hit[378]: begin
+      addr_hit[364]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_27_qs;
       end
 
-      addr_hit[379]: begin
+      addr_hit[365]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_28_qs;
       end
 
-      addr_hit[380]: begin
+      addr_hit[366]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_29_qs;
       end
 
-      addr_hit[381]: begin
+      addr_hit[367]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_30_qs;
       end
 
-      addr_hit[382]: begin
+      addr_hit[368]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_31_qs;
       end
 
-      addr_hit[383]: begin
+      addr_hit[369]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_32_qs;
       end
 
-      addr_hit[384]: begin
+      addr_hit[370]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_33_qs;
       end
 
-      addr_hit[385]: begin
+      addr_hit[371]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_34_qs;
       end
 
-      addr_hit[386]: begin
+      addr_hit[372]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_35_qs;
       end
 
-      addr_hit[387]: begin
+      addr_hit[373]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_36_qs;
       end
 
-      addr_hit[388]: begin
+      addr_hit[374]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_37_qs;
       end
 
-      addr_hit[389]: begin
+      addr_hit[375]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_38_qs;
       end
 
-      addr_hit[390]: begin
+      addr_hit[376]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_39_qs;
       end
 
-      addr_hit[391]: begin
+      addr_hit[377]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_40_qs;
       end
 
-      addr_hit[392]: begin
+      addr_hit[378]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_41_qs;
       end
 
-      addr_hit[393]: begin
+      addr_hit[379]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_42_qs;
       end
 
-      addr_hit[394]: begin
+      addr_hit[380]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_43_qs;
       end
 
-      addr_hit[395]: begin
+      addr_hit[381]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_44_qs;
       end
 
-      addr_hit[396]: begin
+      addr_hit[382]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_45_qs;
       end
 
-      addr_hit[397]: begin
+      addr_hit[383]: begin
         reg_rdata_next[0] = mio_pad_sleep_regwen_46_qs;
       end
 
-      addr_hit[398]: begin
+      addr_hit[384]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_0_qs;
       end
 
-      addr_hit[399]: begin
+      addr_hit[385]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_1_qs;
       end
 
-      addr_hit[400]: begin
+      addr_hit[386]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_2_qs;
       end
 
-      addr_hit[401]: begin
+      addr_hit[387]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_3_qs;
       end
 
-      addr_hit[402]: begin
+      addr_hit[388]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_4_qs;
       end
 
-      addr_hit[403]: begin
+      addr_hit[389]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_5_qs;
       end
 
-      addr_hit[404]: begin
+      addr_hit[390]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_6_qs;
       end
 
-      addr_hit[405]: begin
+      addr_hit[391]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_7_qs;
       end
 
-      addr_hit[406]: begin
+      addr_hit[392]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_8_qs;
       end
 
-      addr_hit[407]: begin
+      addr_hit[393]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_9_qs;
       end
 
-      addr_hit[408]: begin
+      addr_hit[394]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_10_qs;
       end
 
-      addr_hit[409]: begin
+      addr_hit[395]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_11_qs;
       end
 
-      addr_hit[410]: begin
+      addr_hit[396]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_12_qs;
       end
 
-      addr_hit[411]: begin
+      addr_hit[397]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_13_qs;
       end
 
-      addr_hit[412]: begin
+      addr_hit[398]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_14_qs;
       end
 
-      addr_hit[413]: begin
+      addr_hit[399]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_15_qs;
       end
 
-      addr_hit[414]: begin
+      addr_hit[400]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_16_qs;
       end
 
-      addr_hit[415]: begin
+      addr_hit[401]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_17_qs;
       end
 
-      addr_hit[416]: begin
+      addr_hit[402]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_18_qs;
       end
 
-      addr_hit[417]: begin
+      addr_hit[403]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_19_qs;
       end
 
-      addr_hit[418]: begin
+      addr_hit[404]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_20_qs;
       end
 
-      addr_hit[419]: begin
+      addr_hit[405]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_21_qs;
       end
 
-      addr_hit[420]: begin
+      addr_hit[406]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_22_qs;
       end
 
-      addr_hit[421]: begin
+      addr_hit[407]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_23_qs;
       end
 
-      addr_hit[422]: begin
+      addr_hit[408]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_24_qs;
       end
 
-      addr_hit[423]: begin
+      addr_hit[409]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_25_qs;
       end
 
-      addr_hit[424]: begin
+      addr_hit[410]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_26_qs;
       end
 
-      addr_hit[425]: begin
+      addr_hit[411]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_27_qs;
       end
 
-      addr_hit[426]: begin
+      addr_hit[412]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_28_qs;
       end
 
-      addr_hit[427]: begin
+      addr_hit[413]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_29_qs;
       end
 
-      addr_hit[428]: begin
+      addr_hit[414]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_30_qs;
       end
 
-      addr_hit[429]: begin
+      addr_hit[415]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_31_qs;
       end
 
-      addr_hit[430]: begin
+      addr_hit[416]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_32_qs;
       end
 
-      addr_hit[431]: begin
+      addr_hit[417]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_33_qs;
       end
 
-      addr_hit[432]: begin
+      addr_hit[418]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_34_qs;
       end
 
-      addr_hit[433]: begin
+      addr_hit[419]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_35_qs;
       end
 
-      addr_hit[434]: begin
+      addr_hit[420]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_36_qs;
       end
 
-      addr_hit[435]: begin
+      addr_hit[421]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_37_qs;
       end
 
-      addr_hit[436]: begin
+      addr_hit[422]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_38_qs;
       end
 
-      addr_hit[437]: begin
+      addr_hit[423]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_39_qs;
       end
 
-      addr_hit[438]: begin
+      addr_hit[424]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_40_qs;
       end
 
-      addr_hit[439]: begin
+      addr_hit[425]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_41_qs;
       end
 
-      addr_hit[440]: begin
+      addr_hit[426]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_42_qs;
       end
 
-      addr_hit[441]: begin
+      addr_hit[427]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_43_qs;
       end
 
-      addr_hit[442]: begin
+      addr_hit[428]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_44_qs;
       end
 
-      addr_hit[443]: begin
+      addr_hit[429]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_45_qs;
       end
 
-      addr_hit[444]: begin
+      addr_hit[430]: begin
         reg_rdata_next[0] = mio_pad_sleep_en_46_qs;
       end
 
-      addr_hit[445]: begin
+      addr_hit[431]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_0_qs;
       end
 
-      addr_hit[446]: begin
+      addr_hit[432]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_1_qs;
       end
 
-      addr_hit[447]: begin
+      addr_hit[433]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_2_qs;
       end
 
-      addr_hit[448]: begin
+      addr_hit[434]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_3_qs;
       end
 
-      addr_hit[449]: begin
+      addr_hit[435]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_4_qs;
       end
 
-      addr_hit[450]: begin
+      addr_hit[436]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_5_qs;
       end
 
-      addr_hit[451]: begin
+      addr_hit[437]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_6_qs;
       end
 
-      addr_hit[452]: begin
+      addr_hit[438]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_7_qs;
       end
 
-      addr_hit[453]: begin
+      addr_hit[439]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_8_qs;
       end
 
-      addr_hit[454]: begin
+      addr_hit[440]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_9_qs;
       end
 
-      addr_hit[455]: begin
+      addr_hit[441]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_10_qs;
       end
 
-      addr_hit[456]: begin
+      addr_hit[442]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_11_qs;
       end
 
-      addr_hit[457]: begin
+      addr_hit[443]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_12_qs;
       end
 
-      addr_hit[458]: begin
+      addr_hit[444]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_13_qs;
       end
 
-      addr_hit[459]: begin
+      addr_hit[445]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_14_qs;
       end
 
-      addr_hit[460]: begin
+      addr_hit[446]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_15_qs;
       end
 
-      addr_hit[461]: begin
+      addr_hit[447]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_16_qs;
       end
 
-      addr_hit[462]: begin
+      addr_hit[448]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_17_qs;
       end
 
-      addr_hit[463]: begin
+      addr_hit[449]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_18_qs;
       end
 
-      addr_hit[464]: begin
+      addr_hit[450]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_19_qs;
       end
 
-      addr_hit[465]: begin
+      addr_hit[451]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_20_qs;
       end
 
-      addr_hit[466]: begin
+      addr_hit[452]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_21_qs;
       end
 
-      addr_hit[467]: begin
+      addr_hit[453]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_22_qs;
       end
 
-      addr_hit[468]: begin
+      addr_hit[454]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_23_qs;
       end
 
-      addr_hit[469]: begin
+      addr_hit[455]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_24_qs;
       end
 
-      addr_hit[470]: begin
+      addr_hit[456]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_25_qs;
       end
 
-      addr_hit[471]: begin
+      addr_hit[457]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_26_qs;
       end
 
-      addr_hit[472]: begin
+      addr_hit[458]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_27_qs;
       end
 
-      addr_hit[473]: begin
+      addr_hit[459]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_28_qs;
       end
 
-      addr_hit[474]: begin
+      addr_hit[460]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_29_qs;
       end
 
-      addr_hit[475]: begin
+      addr_hit[461]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_30_qs;
       end
 
-      addr_hit[476]: begin
+      addr_hit[462]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_31_qs;
       end
 
-      addr_hit[477]: begin
+      addr_hit[463]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_32_qs;
       end
 
-      addr_hit[478]: begin
+      addr_hit[464]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_33_qs;
       end
 
-      addr_hit[479]: begin
+      addr_hit[465]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_34_qs;
       end
 
-      addr_hit[480]: begin
+      addr_hit[466]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_35_qs;
       end
 
-      addr_hit[481]: begin
+      addr_hit[467]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_36_qs;
       end
 
-      addr_hit[482]: begin
+      addr_hit[468]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_37_qs;
       end
 
-      addr_hit[483]: begin
+      addr_hit[469]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_38_qs;
       end
 
-      addr_hit[484]: begin
+      addr_hit[470]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_39_qs;
       end
 
-      addr_hit[485]: begin
+      addr_hit[471]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_40_qs;
       end
 
-      addr_hit[486]: begin
+      addr_hit[472]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_41_qs;
       end
 
-      addr_hit[487]: begin
+      addr_hit[473]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_42_qs;
       end
 
-      addr_hit[488]: begin
+      addr_hit[474]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_43_qs;
       end
 
-      addr_hit[489]: begin
+      addr_hit[475]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_44_qs;
       end
 
-      addr_hit[490]: begin
+      addr_hit[476]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_45_qs;
       end
 
-      addr_hit[491]: begin
+      addr_hit[477]: begin
         reg_rdata_next[1:0] = mio_pad_sleep_mode_46_qs;
       end
 
-      addr_hit[492]: begin
+      addr_hit[478]: begin
         reg_rdata_next[0] = dio_pad_sleep_status_en_0_qs;
         reg_rdata_next[1] = dio_pad_sleep_status_en_1_qs;
         reg_rdata_next[2] = dio_pad_sleep_status_en_2_qs;
@@ -26133,428 +24712,337 @@
         reg_rdata_next[13] = dio_pad_sleep_status_en_13_qs;
         reg_rdata_next[14] = dio_pad_sleep_status_en_14_qs;
         reg_rdata_next[15] = dio_pad_sleep_status_en_15_qs;
-        reg_rdata_next[16] = dio_pad_sleep_status_en_16_qs;
-        reg_rdata_next[17] = dio_pad_sleep_status_en_17_qs;
-        reg_rdata_next[18] = dio_pad_sleep_status_en_18_qs;
-        reg_rdata_next[19] = dio_pad_sleep_status_en_19_qs;
-        reg_rdata_next[20] = dio_pad_sleep_status_en_20_qs;
-        reg_rdata_next[21] = dio_pad_sleep_status_en_21_qs;
-        reg_rdata_next[22] = dio_pad_sleep_status_en_22_qs;
       end
 
-      addr_hit[493]: begin
+      addr_hit[479]: begin
         reg_rdata_next[0] = dio_pad_sleep_regwen_0_qs;
       end
 
-      addr_hit[494]: begin
+      addr_hit[480]: begin
         reg_rdata_next[0] = dio_pad_sleep_regwen_1_qs;
       end
 
-      addr_hit[495]: begin
+      addr_hit[481]: begin
         reg_rdata_next[0] = dio_pad_sleep_regwen_2_qs;
       end
 
-      addr_hit[496]: begin
+      addr_hit[482]: begin
         reg_rdata_next[0] = dio_pad_sleep_regwen_3_qs;
       end
 
-      addr_hit[497]: begin
+      addr_hit[483]: begin
         reg_rdata_next[0] = dio_pad_sleep_regwen_4_qs;
       end
 
-      addr_hit[498]: begin
+      addr_hit[484]: begin
         reg_rdata_next[0] = dio_pad_sleep_regwen_5_qs;
       end
 
-      addr_hit[499]: begin
+      addr_hit[485]: begin
         reg_rdata_next[0] = dio_pad_sleep_regwen_6_qs;
       end
 
-      addr_hit[500]: begin
+      addr_hit[486]: begin
         reg_rdata_next[0] = dio_pad_sleep_regwen_7_qs;
       end
 
-      addr_hit[501]: begin
+      addr_hit[487]: begin
         reg_rdata_next[0] = dio_pad_sleep_regwen_8_qs;
       end
 
-      addr_hit[502]: begin
+      addr_hit[488]: begin
         reg_rdata_next[0] = dio_pad_sleep_regwen_9_qs;
       end
 
-      addr_hit[503]: begin
+      addr_hit[489]: begin
         reg_rdata_next[0] = dio_pad_sleep_regwen_10_qs;
       end
 
-      addr_hit[504]: begin
+      addr_hit[490]: begin
         reg_rdata_next[0] = dio_pad_sleep_regwen_11_qs;
       end
 
-      addr_hit[505]: begin
+      addr_hit[491]: begin
         reg_rdata_next[0] = dio_pad_sleep_regwen_12_qs;
       end
 
-      addr_hit[506]: begin
+      addr_hit[492]: begin
         reg_rdata_next[0] = dio_pad_sleep_regwen_13_qs;
       end
 
-      addr_hit[507]: begin
+      addr_hit[493]: begin
         reg_rdata_next[0] = dio_pad_sleep_regwen_14_qs;
       end
 
-      addr_hit[508]: begin
+      addr_hit[494]: begin
         reg_rdata_next[0] = dio_pad_sleep_regwen_15_qs;
       end
 
-      addr_hit[509]: begin
-        reg_rdata_next[0] = dio_pad_sleep_regwen_16_qs;
-      end
-
-      addr_hit[510]: begin
-        reg_rdata_next[0] = dio_pad_sleep_regwen_17_qs;
-      end
-
-      addr_hit[511]: begin
-        reg_rdata_next[0] = dio_pad_sleep_regwen_18_qs;
-      end
-
-      addr_hit[512]: begin
-        reg_rdata_next[0] = dio_pad_sleep_regwen_19_qs;
-      end
-
-      addr_hit[513]: begin
-        reg_rdata_next[0] = dio_pad_sleep_regwen_20_qs;
-      end
-
-      addr_hit[514]: begin
-        reg_rdata_next[0] = dio_pad_sleep_regwen_21_qs;
-      end
-
-      addr_hit[515]: begin
-        reg_rdata_next[0] = dio_pad_sleep_regwen_22_qs;
-      end
-
-      addr_hit[516]: begin
+      addr_hit[495]: begin
         reg_rdata_next[0] = dio_pad_sleep_en_0_qs;
       end
 
-      addr_hit[517]: begin
+      addr_hit[496]: begin
         reg_rdata_next[0] = dio_pad_sleep_en_1_qs;
       end
 
-      addr_hit[518]: begin
+      addr_hit[497]: begin
         reg_rdata_next[0] = dio_pad_sleep_en_2_qs;
       end
 
-      addr_hit[519]: begin
+      addr_hit[498]: begin
         reg_rdata_next[0] = dio_pad_sleep_en_3_qs;
       end
 
-      addr_hit[520]: begin
+      addr_hit[499]: begin
         reg_rdata_next[0] = dio_pad_sleep_en_4_qs;
       end
 
-      addr_hit[521]: begin
+      addr_hit[500]: begin
         reg_rdata_next[0] = dio_pad_sleep_en_5_qs;
       end
 
-      addr_hit[522]: begin
+      addr_hit[501]: begin
         reg_rdata_next[0] = dio_pad_sleep_en_6_qs;
       end
 
-      addr_hit[523]: begin
+      addr_hit[502]: begin
         reg_rdata_next[0] = dio_pad_sleep_en_7_qs;
       end
 
-      addr_hit[524]: begin
+      addr_hit[503]: begin
         reg_rdata_next[0] = dio_pad_sleep_en_8_qs;
       end
 
-      addr_hit[525]: begin
+      addr_hit[504]: begin
         reg_rdata_next[0] = dio_pad_sleep_en_9_qs;
       end
 
-      addr_hit[526]: begin
+      addr_hit[505]: begin
         reg_rdata_next[0] = dio_pad_sleep_en_10_qs;
       end
 
-      addr_hit[527]: begin
+      addr_hit[506]: begin
         reg_rdata_next[0] = dio_pad_sleep_en_11_qs;
       end
 
-      addr_hit[528]: begin
+      addr_hit[507]: begin
         reg_rdata_next[0] = dio_pad_sleep_en_12_qs;
       end
 
-      addr_hit[529]: begin
+      addr_hit[508]: begin
         reg_rdata_next[0] = dio_pad_sleep_en_13_qs;
       end
 
-      addr_hit[530]: begin
+      addr_hit[509]: begin
         reg_rdata_next[0] = dio_pad_sleep_en_14_qs;
       end
 
-      addr_hit[531]: begin
+      addr_hit[510]: begin
         reg_rdata_next[0] = dio_pad_sleep_en_15_qs;
       end
 
-      addr_hit[532]: begin
-        reg_rdata_next[0] = dio_pad_sleep_en_16_qs;
-      end
-
-      addr_hit[533]: begin
-        reg_rdata_next[0] = dio_pad_sleep_en_17_qs;
-      end
-
-      addr_hit[534]: begin
-        reg_rdata_next[0] = dio_pad_sleep_en_18_qs;
-      end
-
-      addr_hit[535]: begin
-        reg_rdata_next[0] = dio_pad_sleep_en_19_qs;
-      end
-
-      addr_hit[536]: begin
-        reg_rdata_next[0] = dio_pad_sleep_en_20_qs;
-      end
-
-      addr_hit[537]: begin
-        reg_rdata_next[0] = dio_pad_sleep_en_21_qs;
-      end
-
-      addr_hit[538]: begin
-        reg_rdata_next[0] = dio_pad_sleep_en_22_qs;
-      end
-
-      addr_hit[539]: begin
+      addr_hit[511]: begin
         reg_rdata_next[1:0] = dio_pad_sleep_mode_0_qs;
       end
 
-      addr_hit[540]: begin
+      addr_hit[512]: begin
         reg_rdata_next[1:0] = dio_pad_sleep_mode_1_qs;
       end
 
-      addr_hit[541]: begin
+      addr_hit[513]: begin
         reg_rdata_next[1:0] = dio_pad_sleep_mode_2_qs;
       end
 
-      addr_hit[542]: begin
+      addr_hit[514]: begin
         reg_rdata_next[1:0] = dio_pad_sleep_mode_3_qs;
       end
 
-      addr_hit[543]: begin
+      addr_hit[515]: begin
         reg_rdata_next[1:0] = dio_pad_sleep_mode_4_qs;
       end
 
-      addr_hit[544]: begin
+      addr_hit[516]: begin
         reg_rdata_next[1:0] = dio_pad_sleep_mode_5_qs;
       end
 
-      addr_hit[545]: begin
+      addr_hit[517]: begin
         reg_rdata_next[1:0] = dio_pad_sleep_mode_6_qs;
       end
 
-      addr_hit[546]: begin
+      addr_hit[518]: begin
         reg_rdata_next[1:0] = dio_pad_sleep_mode_7_qs;
       end
 
-      addr_hit[547]: begin
+      addr_hit[519]: begin
         reg_rdata_next[1:0] = dio_pad_sleep_mode_8_qs;
       end
 
-      addr_hit[548]: begin
+      addr_hit[520]: begin
         reg_rdata_next[1:0] = dio_pad_sleep_mode_9_qs;
       end
 
-      addr_hit[549]: begin
+      addr_hit[521]: begin
         reg_rdata_next[1:0] = dio_pad_sleep_mode_10_qs;
       end
 
-      addr_hit[550]: begin
+      addr_hit[522]: begin
         reg_rdata_next[1:0] = dio_pad_sleep_mode_11_qs;
       end
 
-      addr_hit[551]: begin
+      addr_hit[523]: begin
         reg_rdata_next[1:0] = dio_pad_sleep_mode_12_qs;
       end
 
-      addr_hit[552]: begin
+      addr_hit[524]: begin
         reg_rdata_next[1:0] = dio_pad_sleep_mode_13_qs;
       end
 
-      addr_hit[553]: begin
+      addr_hit[525]: begin
         reg_rdata_next[1:0] = dio_pad_sleep_mode_14_qs;
       end
 
-      addr_hit[554]: begin
+      addr_hit[526]: begin
         reg_rdata_next[1:0] = dio_pad_sleep_mode_15_qs;
       end
 
-      addr_hit[555]: begin
-        reg_rdata_next[1:0] = dio_pad_sleep_mode_16_qs;
-      end
-
-      addr_hit[556]: begin
-        reg_rdata_next[1:0] = dio_pad_sleep_mode_17_qs;
-      end
-
-      addr_hit[557]: begin
-        reg_rdata_next[1:0] = dio_pad_sleep_mode_18_qs;
-      end
-
-      addr_hit[558]: begin
-        reg_rdata_next[1:0] = dio_pad_sleep_mode_19_qs;
-      end
-
-      addr_hit[559]: begin
-        reg_rdata_next[1:0] = dio_pad_sleep_mode_20_qs;
-      end
-
-      addr_hit[560]: begin
-        reg_rdata_next[1:0] = dio_pad_sleep_mode_21_qs;
-      end
-
-      addr_hit[561]: begin
-        reg_rdata_next[1:0] = dio_pad_sleep_mode_22_qs;
-      end
-
-      addr_hit[562]: begin
+      addr_hit[527]: begin
         reg_rdata_next[0] = wkup_detector_regwen_0_qs;
       end
 
-      addr_hit[563]: begin
+      addr_hit[528]: begin
         reg_rdata_next[0] = wkup_detector_regwen_1_qs;
       end
 
-      addr_hit[564]: begin
+      addr_hit[529]: begin
         reg_rdata_next[0] = wkup_detector_regwen_2_qs;
       end
 
-      addr_hit[565]: begin
+      addr_hit[530]: begin
         reg_rdata_next[0] = wkup_detector_regwen_3_qs;
       end
 
-      addr_hit[566]: begin
+      addr_hit[531]: begin
         reg_rdata_next[0] = wkup_detector_regwen_4_qs;
       end
 
-      addr_hit[567]: begin
+      addr_hit[532]: begin
         reg_rdata_next[0] = wkup_detector_regwen_5_qs;
       end
 
-      addr_hit[568]: begin
+      addr_hit[533]: begin
         reg_rdata_next[0] = wkup_detector_regwen_6_qs;
       end
 
-      addr_hit[569]: begin
+      addr_hit[534]: begin
         reg_rdata_next[0] = wkup_detector_regwen_7_qs;
       end
 
-      addr_hit[570]: begin
+      addr_hit[535]: begin
         reg_rdata_next = DW'(wkup_detector_en_0_qs);
       end
-      addr_hit[571]: begin
+      addr_hit[536]: begin
         reg_rdata_next = DW'(wkup_detector_en_1_qs);
       end
-      addr_hit[572]: begin
+      addr_hit[537]: begin
         reg_rdata_next = DW'(wkup_detector_en_2_qs);
       end
-      addr_hit[573]: begin
+      addr_hit[538]: begin
         reg_rdata_next = DW'(wkup_detector_en_3_qs);
       end
-      addr_hit[574]: begin
+      addr_hit[539]: begin
         reg_rdata_next = DW'(wkup_detector_en_4_qs);
       end
-      addr_hit[575]: begin
+      addr_hit[540]: begin
         reg_rdata_next = DW'(wkup_detector_en_5_qs);
       end
-      addr_hit[576]: begin
+      addr_hit[541]: begin
         reg_rdata_next = DW'(wkup_detector_en_6_qs);
       end
-      addr_hit[577]: begin
+      addr_hit[542]: begin
         reg_rdata_next = DW'(wkup_detector_en_7_qs);
       end
-      addr_hit[578]: begin
+      addr_hit[543]: begin
         reg_rdata_next = DW'(wkup_detector_0_qs);
       end
-      addr_hit[579]: begin
+      addr_hit[544]: begin
         reg_rdata_next = DW'(wkup_detector_1_qs);
       end
-      addr_hit[580]: begin
+      addr_hit[545]: begin
         reg_rdata_next = DW'(wkup_detector_2_qs);
       end
-      addr_hit[581]: begin
+      addr_hit[546]: begin
         reg_rdata_next = DW'(wkup_detector_3_qs);
       end
-      addr_hit[582]: begin
+      addr_hit[547]: begin
         reg_rdata_next = DW'(wkup_detector_4_qs);
       end
-      addr_hit[583]: begin
+      addr_hit[548]: begin
         reg_rdata_next = DW'(wkup_detector_5_qs);
       end
-      addr_hit[584]: begin
+      addr_hit[549]: begin
         reg_rdata_next = DW'(wkup_detector_6_qs);
       end
-      addr_hit[585]: begin
+      addr_hit[550]: begin
         reg_rdata_next = DW'(wkup_detector_7_qs);
       end
-      addr_hit[586]: begin
+      addr_hit[551]: begin
         reg_rdata_next = DW'(wkup_detector_cnt_th_0_qs);
       end
-      addr_hit[587]: begin
+      addr_hit[552]: begin
         reg_rdata_next = DW'(wkup_detector_cnt_th_1_qs);
       end
-      addr_hit[588]: begin
+      addr_hit[553]: begin
         reg_rdata_next = DW'(wkup_detector_cnt_th_2_qs);
       end
-      addr_hit[589]: begin
+      addr_hit[554]: begin
         reg_rdata_next = DW'(wkup_detector_cnt_th_3_qs);
       end
-      addr_hit[590]: begin
+      addr_hit[555]: begin
         reg_rdata_next = DW'(wkup_detector_cnt_th_4_qs);
       end
-      addr_hit[591]: begin
+      addr_hit[556]: begin
         reg_rdata_next = DW'(wkup_detector_cnt_th_5_qs);
       end
-      addr_hit[592]: begin
+      addr_hit[557]: begin
         reg_rdata_next = DW'(wkup_detector_cnt_th_6_qs);
       end
-      addr_hit[593]: begin
+      addr_hit[558]: begin
         reg_rdata_next = DW'(wkup_detector_cnt_th_7_qs);
       end
-      addr_hit[594]: begin
+      addr_hit[559]: begin
         reg_rdata_next[5:0] = wkup_detector_padsel_0_qs;
       end
 
-      addr_hit[595]: begin
+      addr_hit[560]: begin
         reg_rdata_next[5:0] = wkup_detector_padsel_1_qs;
       end
 
-      addr_hit[596]: begin
+      addr_hit[561]: begin
         reg_rdata_next[5:0] = wkup_detector_padsel_2_qs;
       end
 
-      addr_hit[597]: begin
+      addr_hit[562]: begin
         reg_rdata_next[5:0] = wkup_detector_padsel_3_qs;
       end
 
-      addr_hit[598]: begin
+      addr_hit[563]: begin
         reg_rdata_next[5:0] = wkup_detector_padsel_4_qs;
       end
 
-      addr_hit[599]: begin
+      addr_hit[564]: begin
         reg_rdata_next[5:0] = wkup_detector_padsel_5_qs;
       end
 
-      addr_hit[600]: begin
+      addr_hit[565]: begin
         reg_rdata_next[5:0] = wkup_detector_padsel_6_qs;
       end
 
-      addr_hit[601]: begin
+      addr_hit[566]: begin
         reg_rdata_next[5:0] = wkup_detector_padsel_7_qs;
       end
 
-      addr_hit[602]: begin
+      addr_hit[567]: begin
         reg_rdata_next = DW'(wkup_cause_qs);
       end
       default: begin
@@ -26573,79 +25061,79 @@
   always_comb begin
     reg_busy_sel = '0;
     unique case (1'b1)
-      addr_hit[570]: begin
+      addr_hit[535]: begin
         reg_busy_sel = wkup_detector_en_0_busy;
       end
-      addr_hit[571]: begin
+      addr_hit[536]: begin
         reg_busy_sel = wkup_detector_en_1_busy;
       end
-      addr_hit[572]: begin
+      addr_hit[537]: begin
         reg_busy_sel = wkup_detector_en_2_busy;
       end
-      addr_hit[573]: begin
+      addr_hit[538]: begin
         reg_busy_sel = wkup_detector_en_3_busy;
       end
-      addr_hit[574]: begin
+      addr_hit[539]: begin
         reg_busy_sel = wkup_detector_en_4_busy;
       end
-      addr_hit[575]: begin
+      addr_hit[540]: begin
         reg_busy_sel = wkup_detector_en_5_busy;
       end
-      addr_hit[576]: begin
+      addr_hit[541]: begin
         reg_busy_sel = wkup_detector_en_6_busy;
       end
-      addr_hit[577]: begin
+      addr_hit[542]: begin
         reg_busy_sel = wkup_detector_en_7_busy;
       end
-      addr_hit[578]: begin
+      addr_hit[543]: begin
         reg_busy_sel = wkup_detector_0_busy;
       end
-      addr_hit[579]: begin
+      addr_hit[544]: begin
         reg_busy_sel = wkup_detector_1_busy;
       end
-      addr_hit[580]: begin
+      addr_hit[545]: begin
         reg_busy_sel = wkup_detector_2_busy;
       end
-      addr_hit[581]: begin
+      addr_hit[546]: begin
         reg_busy_sel = wkup_detector_3_busy;
       end
-      addr_hit[582]: begin
+      addr_hit[547]: begin
         reg_busy_sel = wkup_detector_4_busy;
       end
-      addr_hit[583]: begin
+      addr_hit[548]: begin
         reg_busy_sel = wkup_detector_5_busy;
       end
-      addr_hit[584]: begin
+      addr_hit[549]: begin
         reg_busy_sel = wkup_detector_6_busy;
       end
-      addr_hit[585]: begin
+      addr_hit[550]: begin
         reg_busy_sel = wkup_detector_7_busy;
       end
-      addr_hit[586]: begin
+      addr_hit[551]: begin
         reg_busy_sel = wkup_detector_cnt_th_0_busy;
       end
-      addr_hit[587]: begin
+      addr_hit[552]: begin
         reg_busy_sel = wkup_detector_cnt_th_1_busy;
       end
-      addr_hit[588]: begin
+      addr_hit[553]: begin
         reg_busy_sel = wkup_detector_cnt_th_2_busy;
       end
-      addr_hit[589]: begin
+      addr_hit[554]: begin
         reg_busy_sel = wkup_detector_cnt_th_3_busy;
       end
-      addr_hit[590]: begin
+      addr_hit[555]: begin
         reg_busy_sel = wkup_detector_cnt_th_4_busy;
       end
-      addr_hit[591]: begin
+      addr_hit[556]: begin
         reg_busy_sel = wkup_detector_cnt_th_5_busy;
       end
-      addr_hit[592]: begin
+      addr_hit[557]: begin
         reg_busy_sel = wkup_detector_cnt_th_6_busy;
       end
-      addr_hit[593]: begin
+      addr_hit[558]: begin
         reg_busy_sel = wkup_detector_cnt_th_7_busy;
       end
-      addr_hit[602]: begin
+      addr_hit[567]: begin
         reg_busy_sel = wkup_cause_busy;
       end
       default: begin
diff --git a/hw/top_earlgrey/rtl/autogen/chip_earlgrey_asic.sv b/hw/top_earlgrey/rtl/autogen/chip_earlgrey_asic.sv
index b6f93b6..e96b42b 100644
--- a/hw/top_earlgrey/rtl/autogen/chip_earlgrey_asic.sv
+++ b/hw/top_earlgrey/rtl/autogen/chip_earlgrey_asic.sv
@@ -115,28 +115,17 @@
     dft_strap0_idx:    Dft0PadIdx,
     dft_strap1_idx:    Dft1PadIdx,
     // TODO: check whether there is a better way to pass these USB-specific params
-    usb_dp_idx:        DioUsbdevDp,
-    usb_dn_idx:        DioUsbdevDn,
-    usb_dp_pullup_idx: DioUsbdevDpPullup,
-    usb_dn_pullup_idx: DioUsbdevDnPullup,
+    usb_dp_idx:        DioUsbdevUsbDp,
+    usb_dn_idx:        DioUsbdevUsbDn,
     usb_sense_idx:     MioInUsbdevSense,
     // Pad types for attribute WARL behavior
     dio_pad_type: {
-      BidirTol, // DIO usbdev_rx_enable
-      BidirTol, // DIO usbdev_suspend
-      BidirTol, // DIO usbdev_tx_mode_se
-      BidirTol, // DIO usbdev_dn_pullup
-      BidirTol, // DIO usbdev_dp_pullup
-      BidirTol, // DIO usbdev_se0
       BidirStd, // DIO spi_host0_csb
       BidirStd, // DIO spi_host0_sck
       InputStd, // DIO spi_device_csb
       InputStd, // DIO spi_device_sck
       BidirOd, // DIO sysrst_ctrl_aon_flash_wp_l
       BidirOd, // DIO sysrst_ctrl_aon_ec_rst_l
-      BidirTol, // DIO usbdev_dn
-      BidirTol, // DIO usbdev_dp
-      BidirTol, // DIO usbdev_d
       BidirStd, // DIO spi_device_sd
       BidirStd, // DIO spi_device_sd
       BidirStd, // DIO spi_device_sd
@@ -144,7 +133,9 @@
       BidirStd, // DIO spi_host0_sd
       BidirStd, // DIO spi_host0_sd
       BidirStd, // DIO spi_host0_sd
-      BidirStd  // DIO spi_host0_sd
+      BidirStd, // DIO spi_host0_sd
+      BidirStd, // DIO usbdev_usb_dn
+      BidirStd  // DIO usbdev_usb_dp
     },
     mio_pad_type: {
       BidirOd, // MIO Pad 46
@@ -1039,25 +1030,23 @@
 
   // Connect the D+ pad
   // Note that we use two pads in parallel for the D+ channel to meet electrical specifications.
-  assign dio_in[DioUsbdevDp] = manual_in_usb_p;
-  assign manual_out_usb_p = dio_out[DioUsbdevDp];
-  assign manual_oe_usb_p = dio_oe[DioUsbdevDp];
-  assign manual_attr_usb_p = dio_attr[DioUsbdevDp];
+  assign dio_in[DioUsbdevUsbDp] = manual_in_usb_p;
+  assign manual_out_usb_p = dio_out[DioUsbdevUsbDp];
+  assign manual_oe_usb_p = dio_oe[DioUsbdevUsbDp];
+  assign manual_attr_usb_p = dio_attr[DioUsbdevUsbDp];
 
   // Connect the D- pads
   // Note that we use two pads in parallel for the D- channel to meet electrical specifications.
-  assign dio_in[DioUsbdevDn] = manual_in_usb_n;
-  assign manual_out_usb_n = dio_out[DioUsbdevDn];
-  assign manual_oe_usb_n = dio_oe[DioUsbdevDn];
-  assign manual_attr_usb_n = dio_attr[DioUsbdevDn];
+  assign dio_in[DioUsbdevUsbDn] = manual_in_usb_n;
+  assign manual_out_usb_n = dio_out[DioUsbdevUsbDn];
+  assign manual_oe_usb_n = dio_oe[DioUsbdevUsbDn];
+  assign manual_attr_usb_n = dio_attr[DioUsbdevUsbDn];
 
-  // Pullups
-  logic usb_pullup_p_en, usb_pullup_n_en;
-  assign usb_pullup_p_en = dio_out[DioUsbdevDpPullup];
-  assign usb_pullup_n_en = dio_out[DioUsbdevDnPullup];
+  logic usb_rx_d;
 
+  // Pullups and differential receiver enable
+  logic usb_dp_pullup_en, usb_dn_pullup_en;
   logic usb_rx_enable;
-  assign usb_rx_enable = dio_out[DioUsbdevRxEnable];
 
   prim_usb_diff_rx #(
     .CalibW(ast_pkg::UsbCalibWidth)
@@ -1066,49 +1055,13 @@
     .input_ni          ( USB_N                 ),
     .input_en_i        ( usb_rx_enable         ),
     .core_pok_h_i      ( ast_pwst_h.aon_pok    ),
-    .pullup_p_en_i     ( usb_pullup_p_en       ),
-    .pullup_n_en_i     ( usb_pullup_n_en       ),
+    .pullup_p_en_i     ( usb_dp_pullup_en      ),
+    .pullup_n_en_i     ( usb_dn_pullup_en      ),
     .calibration_i     ( usb_io_pu_cal         ),
     .usb_diff_rx_obs_o ( usb_diff_rx_obs       ),
-    .input_o           ( dio_in[DioUsbdevD]    )
+    .input_o           ( usb_rx_d              )
   );
 
-  // Tie-off unused signals
-  assign dio_in[DioUsbdevSe0] = 1'b0;
-  assign dio_in[DioUsbdevDpPullup] = 1'b0;
-  assign dio_in[DioUsbdevDnPullup] = 1'b0;
-  assign dio_in[DioUsbdevTxModeSe] = 1'b0;
-  assign dio_in[DioUsbdevSuspend] = 1'b0;
-  assign dio_in[DioUsbdevRxEnable] = 1'b0;
-
-  logic unused_usb_sigs;
-  assign unused_usb_sigs = ^{
-    // SE0
-    dio_out[DioUsbdevSe0],
-    dio_oe[DioUsbdevSe0],
-    dio_attr[DioUsbdevSe0],
-    // TX Mode
-    dio_out[DioUsbdevTxModeSe],
-    dio_oe[DioUsbdevTxModeSe],
-    dio_attr[DioUsbdevTxModeSe],
-    // Suspend
-    dio_out[DioUsbdevSuspend],
-    dio_oe[DioUsbdevSuspend],
-    dio_attr[DioUsbdevSuspend],
-    // Rx enable
-    dio_oe[DioUsbdevRxEnable],
-    dio_attr[DioUsbdevRxEnable],
-    // D is used as an input only
-    dio_out[DioUsbdevD],
-    dio_oe[DioUsbdevD],
-    dio_attr[DioUsbdevD],
-    // Pullup/down
-    dio_oe[DioUsbdevDpPullup],
-    dio_oe[DioUsbdevDnPullup],
-    dio_attr[DioUsbdevDpPullup],
-    dio_attr[DioUsbdevDnPullup]
-  };
-
   //////////////////////
   // Top-level design //
   //////////////////////
@@ -1133,6 +1086,14 @@
     .sensor_ctrl_ast_alert_req_i  ( ast_alert_req              ),
     .sensor_ctrl_ast_alert_rsp_o  ( ast_alert_rsp              ),
     .sensor_ctrl_ast_status_i     ( ast_pwst.io_pok            ),
+    .usb_dp_pullup_en_o           ( usb_dp_pullup_en           ),
+    .usb_dn_pullup_en_o           ( usb_dn_pullup_en           ),
+    .usbdev_usb_rx_d_i            ( usb_rx_d                   ),
+    .usbdev_usb_tx_d_o            (                            ),
+    .usbdev_usb_tx_se0_o          (                            ),
+    .usbdev_usb_tx_use_d_se0_o    (                            ),
+    .usbdev_usb_suspend_o         (                            ),
+    .usbdev_usb_rx_enable_o       ( usb_rx_enable              ),
     .usbdev_usb_ref_val_o         ( usb_ref_val                ),
     .usbdev_usb_ref_pulse_o       ( usb_ref_pulse              ),
     .ast_tl_req_o                 ( base_ast_bus               ),
diff --git a/hw/top_earlgrey/rtl/autogen/chip_earlgrey_cw310.sv b/hw/top_earlgrey/rtl/autogen/chip_earlgrey_cw310.sv
index 66b0fc1..e4de760 100644
--- a/hw/top_earlgrey/rtl/autogen/chip_earlgrey_cw310.sv
+++ b/hw/top_earlgrey/rtl/autogen/chip_earlgrey_cw310.sv
@@ -87,11 +87,11 @@
   parameter int Tap1PadIdx = 16;
   parameter int Dft0PadIdx = 23;
   parameter int Dft1PadIdx = 34;
-  parameter int TckPadIdx = 60;
-  parameter int TmsPadIdx = 61;
+  parameter int TckPadIdx = 59;
+  parameter int TmsPadIdx = 60;
   parameter int TrstNPadIdx = 18;
-  parameter int TdiPadIdx = 51;
-  parameter int TdoPadIdx = 52;
+  parameter int TdiPadIdx = 53;
+  parameter int TdoPadIdx = 54;
 
   // DFT and Debug signal positions in the pinout.
   localparam pinmux_pkg::target_cfg_t PinmuxTargetCfg = '{
@@ -105,28 +105,17 @@
     dft_strap0_idx:    Dft0PadIdx,
     dft_strap1_idx:    Dft1PadIdx,
     // TODO: check whether there is a better way to pass these USB-specific params
-    usb_dp_idx:        DioUsbdevDp,
-    usb_dn_idx:        DioUsbdevDn,
-    usb_dp_pullup_idx: DioUsbdevDpPullup,
-    usb_dn_pullup_idx: DioUsbdevDnPullup,
+    usb_dp_idx:        DioUsbdevUsbDp,
+    usb_dn_idx:        DioUsbdevUsbDn,
     usb_sense_idx:     MioInUsbdevSense,
     // Pad types for attribute WARL behavior
     dio_pad_type: {
-      BidirTol, // DIO usbdev_rx_enable
-      BidirTol, // DIO usbdev_suspend
-      BidirTol, // DIO usbdev_tx_mode_se
-      BidirTol, // DIO usbdev_dn_pullup
-      BidirTol, // DIO usbdev_dp_pullup
-      BidirTol, // DIO usbdev_se0
       BidirStd, // DIO spi_host0_csb
       BidirStd, // DIO spi_host0_sck
       InputStd, // DIO spi_device_csb
       InputStd, // DIO spi_device_sck
       BidirOd, // DIO sysrst_ctrl_aon_flash_wp_l
       BidirOd, // DIO sysrst_ctrl_aon_ec_rst_l
-      BidirTol, // DIO usbdev_dn
-      BidirTol, // DIO usbdev_dp
-      BidirTol, // DIO usbdev_d
       BidirStd, // DIO spi_device_sd
       BidirStd, // DIO spi_device_sd
       BidirStd, // DIO spi_device_sd
@@ -134,7 +123,9 @@
       BidirStd, // DIO spi_host0_sd
       BidirStd, // DIO spi_host0_sd
       BidirStd, // DIO spi_host0_sd
-      BidirStd  // DIO spi_host0_sd
+      BidirStd, // DIO spi_host0_sd
+      BidirStd, // DIO usbdev_usb_dn
+      BidirStd  // DIO usbdev_usb_dp
     },
     mio_pad_type: {
       BidirOd, // MIO Pad 46
@@ -575,77 +566,61 @@
   // TODO: generalize this USB mux code and align with other tops.
 
   // Only use the UPHY on CW310, which does not support pin flipping.
+  logic usb_dp_pullup_en;
+  logic usb_dn_pullup_en;
+  logic usb_rx_d;
+  logic usb_tx_d;
+  logic usb_tx_se0;
+  logic usb_suspend;
+  logic usb_rx_enable;
 
-  // DioUsbdevDn
+  // DioUsbdevUsbDn
   assign manual_attr_io_usb_dn_tx = '0;
-  assign manual_out_io_usb_dn_tx = dio_out[DioUsbdevDn];
-  assign manual_oe_io_usb_dn_tx = dio_oe[DioUsbdevDn];
-  assign dio_in[DioUsbdevDn] = manual_in_io_usb_dn_rx;
-  // DioUsbdevDp
+  assign manual_out_io_usb_dn_tx = dio_out[DioUsbdevUsbDn];
+  assign manual_oe_io_usb_dn_tx = 1'b1;
+  assign dio_in[DioUsbdevUsbDn] = manual_in_io_usb_dn_rx;
+  // DioUsbdevUsbDp
   assign manual_attr_io_usb_dp_tx = '0;
-  assign manual_out_io_usb_dp_tx = dio_out[DioUsbdevDp];
-  assign manual_oe_io_usb_dp_tx = dio_oe[DioUsbdevDp];
-  assign dio_in[DioUsbdevDp] = manual_in_io_usb_dp_rx;
+  assign manual_out_io_usb_dp_tx = dio_out[DioUsbdevUsbDp];
+  assign manual_oe_io_usb_dp_tx = 1'b1;
+  assign dio_in[DioUsbdevUsbDp] = manual_in_io_usb_dp_rx;
 
   assign manual_attr_io_usb_oe_n = '0;
-  assign manual_out_io_usb_oe_n = ~dio_oe[DioUsbdevDp];
+  assign manual_out_io_usb_oe_n = ~dio_oe[DioUsbdevUsbDp];
   assign manual_oe_io_usb_oe_n = 1'b1;
 
-  logic unused_in_io_usb_oe_n;
-  assign unused_in_io_usb_oe_n = manual_in_io_usb_oe_n;
-
   // DioUsbdevD
   assign manual_attr_io_usb_d_rx = '0;
-  assign dio_in[DioUsbdevD] = manual_in_io_usb_d_rx;
+  assign usb_rx_d = manual_in_io_usb_d_rx;
 
-  // DioUsbdevDpPullup
+  // Pull-up / soft connect pin
   assign manual_attr_io_usb_connect = '0;
-  assign manual_out_io_usb_connect = dio_out[DioUsbdevDpPullup] &
-                                     dio_oe[DioUsbdevDpPullup];
+  assign manual_out_io_usb_connect = usb_dp_pullup_en;
   assign manual_oe_io_usb_connect = 1'b1;
-  assign dio_in[DioUsbdevDpPullup] = manual_in_io_usb_connect;
 
   // Set SPD to full-speed
   assign manual_out_io_usb_speed = 1'b1;
   assign manual_oe_io_usb_speed = 1'b1;
 
-  logic unused_in_io_usb_speed;
-  assign unused_in_io_usb_speed = manual_in_io_usb_speed;
-
   // TUSB1106 low-power mode
-  assign manual_out_io_usb_suspend = dio_out[DioUsbdevSuspend];
+  assign manual_out_io_usb_suspend = usb_suspend;
   assign manual_oe_io_usb_suspend = 1'b1;
-  assign dio_in[DioUsbdevSuspend] = manual_in_io_usb_suspend;
-
-  // Tie-off unused signals
-  assign dio_in[DioUsbdevDnPullup] = 1'b0;
-  assign dio_in[DioUsbdevSe0] = 1'b0;
-  assign dio_in[DioUsbdevTxModeSe] = 1'b0;
 
   logic unused_usb_sigs;
   assign unused_usb_sigs = ^{
-    // DN pull-up
-    dio_out[DioUsbdevDnPullup],
-    dio_oe[DioUsbdevDnPullup],
-    dio_attr[DioUsbdevDnPullup],
-    // SE0
-    dio_out[DioUsbdevSe0],
-    dio_oe[DioUsbdevSe0],
-    dio_attr[DioUsbdevSe0],
-    // TX Mode
-    dio_out[DioUsbdevTxModeSe],
-    dio_oe[DioUsbdevTxModeSe],
-    dio_attr[DioUsbdevTxModeSe],
-    // Suspend
-    dio_oe[DioUsbdevSuspend],
-    dio_attr[DioUsbdevSuspend],
-    // D is used as an input only
-    dio_out[DioUsbdevD],
-    dio_oe[DioUsbdevD],
-    dio_attr[DioUsbdevD],
+    usb_dn_pullup_en,
+    usb_tx_d,
+    usb_tx_se0,
+    usb_rx_enable,
+    manual_in_io_usb_connect,
+    manual_in_io_usb_oe_n,
+    manual_in_io_usb_speed,
+    manual_in_io_usb_suspend,
     // DP and DN are broken out into multiple unidirectional pins
-    dio_attr[DioUsbdevDp],
-    dio_attr[DioUsbdevDn]
+    dio_oe[DioUsbdevUsbDp],
+    dio_oe[DioUsbdevUsbDn],
+    dio_attr[DioUsbdevUsbDp],
+    dio_attr[DioUsbdevUsbDn]
   };
 
 
@@ -1009,6 +984,14 @@
     .sck_monitor_o                ( sck_monitor           ),
     .pwrmgr_ast_req_o             ( base_ast_pwr          ),
     .pwrmgr_ast_rsp_i             ( ast_base_pwr          ),
+    .usb_dp_pullup_en_o           ( usb_dp_pullup_en      ),
+    .usb_dn_pullup_en_o           ( usb_dn_pullup_en      ),
+    .usbdev_usb_rx_d_i            ( usb_rx_d              ),
+    .usbdev_usb_tx_d_o            ( usb_tx_d              ),
+    .usbdev_usb_tx_se0_o          ( usb_tx_se0            ),
+    .usbdev_usb_tx_use_d_se0_o    ( usb_tx_use_d_se0      ),
+    .usbdev_usb_suspend_o         ( usb_suspend           ),
+    .usbdev_usb_rx_enable_o       ( usb_rx_enable         ),
     .usbdev_usb_ref_val_o         ( usb_ref_val           ),
     .usbdev_usb_ref_pulse_o       ( usb_ref_pulse         ),
     .ast_edn_req_i                ( ast_edn_edn_req       ),
diff --git a/hw/top_earlgrey/rtl/autogen/chip_earlgrey_nexysvideo.sv b/hw/top_earlgrey/rtl/autogen/chip_earlgrey_nexysvideo.sv
index 48943f6..628c973 100644
--- a/hw/top_earlgrey/rtl/autogen/chip_earlgrey_nexysvideo.sv
+++ b/hw/top_earlgrey/rtl/autogen/chip_earlgrey_nexysvideo.sv
@@ -82,11 +82,11 @@
   parameter int Tap1PadIdx = 16;
   parameter int Dft0PadIdx = 23;
   parameter int Dft1PadIdx = 34;
-  parameter int TckPadIdx = 60;
-  parameter int TmsPadIdx = 61;
+  parameter int TckPadIdx = 59;
+  parameter int TmsPadIdx = 60;
   parameter int TrstNPadIdx = 18;
-  parameter int TdiPadIdx = 51;
-  parameter int TdoPadIdx = 52;
+  parameter int TdiPadIdx = 53;
+  parameter int TdoPadIdx = 54;
 
   // DFT and Debug signal positions in the pinout.
   localparam pinmux_pkg::target_cfg_t PinmuxTargetCfg = '{
@@ -100,28 +100,17 @@
     dft_strap0_idx:    Dft0PadIdx,
     dft_strap1_idx:    Dft1PadIdx,
     // TODO: check whether there is a better way to pass these USB-specific params
-    usb_dp_idx:        DioUsbdevDp,
-    usb_dn_idx:        DioUsbdevDn,
-    usb_dp_pullup_idx: DioUsbdevDpPullup,
-    usb_dn_pullup_idx: DioUsbdevDnPullup,
+    usb_dp_idx:        DioUsbdevUsbDp,
+    usb_dn_idx:        DioUsbdevUsbDn,
     usb_sense_idx:     MioInUsbdevSense,
     // Pad types for attribute WARL behavior
     dio_pad_type: {
-      BidirTol, // DIO usbdev_rx_enable
-      BidirTol, // DIO usbdev_suspend
-      BidirTol, // DIO usbdev_tx_mode_se
-      BidirTol, // DIO usbdev_dn_pullup
-      BidirTol, // DIO usbdev_dp_pullup
-      BidirTol, // DIO usbdev_se0
       BidirStd, // DIO spi_host0_csb
       BidirStd, // DIO spi_host0_sck
       InputStd, // DIO spi_device_csb
       InputStd, // DIO spi_device_sck
       BidirOd, // DIO sysrst_ctrl_aon_flash_wp_l
       BidirOd, // DIO sysrst_ctrl_aon_ec_rst_l
-      BidirTol, // DIO usbdev_dn
-      BidirTol, // DIO usbdev_dp
-      BidirTol, // DIO usbdev_d
       BidirStd, // DIO spi_device_sd
       BidirStd, // DIO spi_device_sd
       BidirStd, // DIO spi_device_sd
@@ -129,7 +118,9 @@
       BidirStd, // DIO spi_host0_sd
       BidirStd, // DIO spi_host0_sd
       BidirStd, // DIO spi_host0_sd
-      BidirStd  // DIO spi_host0_sd
+      BidirStd, // DIO spi_host0_sd
+      BidirStd, // DIO usbdev_usb_dn
+      BidirStd  // DIO usbdev_usb_dp
     },
     mio_pad_type: {
       BidirOd, // MIO Pad 46
@@ -565,55 +556,62 @@
   // Outputs always drive and just copy the value
   // Let them go to the normal place too because it won't do any harm
   // and it simplifies the changes needed
+  logic usb_dp_pullup_en;
+  logic usb_dn_pullup_en;
+  logic usb_rx_d;
+  logic usb_tx_d;
+  logic usb_tx_se0;
+  logic usb_tx_use_d_se0;
+  logic usb_suspend;
+  logic usb_rx_enable;
 
-  // The output enable for IO_USB_DNPULLUP0 is used to decide whether we need to undo the swapping.
+  // The value for IO_USB_DNPULLUP0 is used to decide whether we need to undo the swapping.
   logic undo_swap;
-  assign undo_swap = dio_oe[DioUsbdevDnPullup];
+  assign undo_swap = usb_dn_pullup_en;
 
   // GPIO[2] = Switch 2 on board is used to select using the UPHY
   // Keep GPIO[1] for selecting differential in sw
   logic use_uphy;
   assign use_uphy = mio_in[MioPadIoa2];
 
-  // DioUsbdevDn
+  // DioUsbdevUsbDn
   assign manual_attr_usb_n = '0;
   assign manual_attr_io_uphy_dn_tx = '0;
 
   assign manual_out_io_uphy_dn_tx = manual_out_usb_n;
-  assign manual_out_usb_n = undo_swap ? dio_out[DioUsbdevDp] :
-                                        dio_out[DioUsbdevDn];
+  assign manual_out_usb_n = undo_swap ? dio_out[DioUsbdevUsbDp] :
+                                        dio_out[DioUsbdevUsbDn];
 
   assign manual_oe_io_uphy_dn_tx = manual_oe_usb_n;
-  assign manual_oe_usb_n = undo_swap ? dio_oe[DioUsbdevDp] :
-                                       dio_oe[DioUsbdevDn];
+  assign manual_oe_usb_n = undo_swap ? dio_oe[DioUsbdevUsbDp] :
+                                       dio_oe[DioUsbdevUsbDn];
 
-  assign dio_in[DioUsbdevDn] = use_uphy ?
-                               (undo_swap ? manual_in_io_uphy_dp_rx :
-                                            manual_in_io_uphy_dn_rx) :
-                               (undo_swap ? manual_in_usb_p :
-                                            manual_in_usb_n);
-  // DioUsbdevDp
+  assign dio_in[DioUsbdevUsbDn] = use_uphy ?
+                                  (undo_swap ? manual_in_io_uphy_dp_rx :
+                                               manual_in_io_uphy_dn_rx) :
+                                  (undo_swap ? manual_in_usb_p :
+                                               manual_in_usb_n);
+  // DioUsbdevUsbDp
   assign manual_attr_usb_p = '0;
   assign manual_attr_io_uphy_dp_tx = '0;
 
   assign manual_out_io_uphy_dp_tx = manual_out_usb_p;
-  assign manual_out_usb_p = undo_swap ? dio_out[DioUsbdevDn] :
-                                       dio_out[DioUsbdevDp];
+  assign manual_out_usb_p = undo_swap ? dio_out[DioUsbdevUsbDn] :
+                                        dio_out[DioUsbdevUsbDp];
 
   assign manual_oe_io_uphy_dp_tx = manual_oe_usb_p;
-  assign manual_oe_usb_p = undo_swap ? dio_oe[DioUsbdevDn] :
-                                       dio_oe[DioUsbdevDp];
-  assign dio_in[DioUsbdevDp] = use_uphy ?
-                               (undo_swap ? manual_in_io_uphy_dn_rx :
-                                            manual_in_io_uphy_dp_rx) :
-                               (undo_swap ? manual_in_usb_n :
-                                            manual_in_usb_p);
-  // DioUsbdevD
+  assign manual_oe_usb_p = undo_swap ? dio_oe[DioUsbdevUsbDn] :
+                                       dio_oe[DioUsbdevUsbDp];
+  assign dio_in[DioUsbdevUsbDp] = use_uphy ?
+                                  (undo_swap ? manual_in_io_uphy_dn_rx :
+                                               manual_in_io_uphy_dp_rx) :
+                                  (undo_swap ? manual_in_usb_n :
+                                               manual_in_usb_p);
+  // UsbdevD
   // This is not connected at the moment
   logic unused_out_usb_d;
-  assign unused_out_usb_d = dio_out[DioUsbdevD] ^
-                            dio_oe[DioUsbdevD];
-  assign dio_in[DioUsbdevD] = use_uphy ?
+  assign unused_out_usb_d = usb_tx_d;
+  assign usb_rx_d = use_uphy ?
                               (undo_swap ? ~manual_in_io_uphy_d_rx :
                                             manual_in_io_uphy_d_rx) :
                               // This is not connected at the moment
@@ -621,24 +619,15 @@
   assign manual_out_io_uphy_d_rx = 1'b0;
   assign manual_oe_io_uphy_d_rx = 1'b0;
 
-  // DioUsbdevDnPullup
+  // UsbdevDnPullup
   assign manual_attr_io_usb_dnpullup0 = '0;
-  assign manual_out_io_usb_dnpullup0 = undo_swap ? dio_out[DioUsbdevDpPullup] :
-                                                   dio_out[DioUsbdevDnPullup];
-  assign manual_oe_io_usb_dnpullup0 = undo_swap ? dio_oe[DioUsbdevDpPullup] :
-                                                  dio_oe[DioUsbdevDnPullup];
-  assign dio_in[DioUsbdevDnPullup] = manual_in_io_usb_dnpullup0;
+  assign manual_out_io_usb_dnpullup0 = usb_dn_pullup_en;
+  assign manual_oe_io_usb_dnpullup0 = undo_swap ? usb_dp_pullup_en : usb_dn_pullup_en;
 
   // DioUsbdevDpPullup
   assign manual_attr_io_usb_dppullup0 = '0;
-  assign manual_out_io_usb_dppullup0 = undo_swap ? dio_out[DioUsbdevDnPullup] :
-                                                   dio_out[DioUsbdevDpPullup];
-  assign manual_oe_io_usb_dppullup0 = undo_swap ? dio_oe[DioUsbdevDnPullup] :
-                                                  dio_oe[DioUsbdevDpPullup];
-  assign dio_in[DioUsbdevDpPullup] = manual_in_io_usb_dppullup0;
-
-  // DioUsbdevRxEnable
-  assign dio_in[DioUsbdevRxEnable] = 1'b0;
+  assign manual_out_io_usb_dppullup0 = usb_dp_pullup_en;
+  assign manual_oe_io_usb_dppullup0 = undo_swap ? usb_dn_pullup_en : usb_dp_pullup_en;
 
   // Additional outputs for uphy
   assign manual_oe_io_uphy_dppullup = 1'b1;
@@ -1014,6 +1003,14 @@
     .sck_monitor_o                ( sck_monitor           ),
     .pwrmgr_ast_req_o             ( base_ast_pwr          ),
     .pwrmgr_ast_rsp_i             ( ast_base_pwr          ),
+    .usb_dp_pullup_en_o           ( usb_dp_pullup_en      ),
+    .usb_dn_pullup_en_o           ( usb_dn_pullup_en      ),
+    .usbdev_usb_rx_d_i            ( usb_rx_d              ),
+    .usbdev_usb_tx_d_o            ( usb_tx_d              ),
+    .usbdev_usb_tx_se0_o          ( usb_tx_se0            ),
+    .usbdev_usb_tx_use_d_se0_o    ( usb_tx_use_d_se0      ),
+    .usbdev_usb_suspend_o         ( usb_suspend           ),
+    .usbdev_usb_rx_enable_o       ( usb_rx_enable         ),
     .usbdev_usb_ref_val_o         ( usb_ref_val           ),
     .usbdev_usb_ref_pulse_o       ( usb_ref_pulse         ),
     .ast_edn_req_i                ( ast_edn_edn_req       ),
diff --git a/hw/top_earlgrey/rtl/autogen/top_earlgrey.sv b/hw/top_earlgrey/rtl/autogen/top_earlgrey.sv
index 40cf771..3f1fc48 100644
--- a/hw/top_earlgrey/rtl/autogen/top_earlgrey.sv
+++ b/hw/top_earlgrey/rtl/autogen/top_earlgrey.sv
@@ -106,9 +106,9 @@
   output logic [46:0] mio_out_o,
   output logic [46:0] mio_oe_o,
   // Dedicated I/O
-  input        [22:0] dio_in_i,
-  output logic [22:0] dio_out_o,
-  output logic [22:0] dio_oe_o,
+  input        [15:0] dio_in_i,
+  output logic [15:0] dio_out_o,
+  output logic [15:0] dio_oe_o,
 
   // pad attributes to padring
   output prim_pad_wrapper_pkg::pad_attr_t [pinmux_reg_pkg::NMioPads-1:0] mio_attr_o,
@@ -145,6 +145,8 @@
   input  tlul_pkg::tl_d2h_t       ast_tl_rsp_i,
   output pinmux_pkg::dft_strap_test_req_t       dft_strap_test_o,
   input  logic       dft_hold_tap_sel_i,
+  output logic       usb_dp_pullup_en_o,
+  output logic       usb_dn_pullup_en_o,
   output pwrmgr_pkg::pwr_ast_req_t       pwrmgr_ast_req_o,
   input  pwrmgr_pkg::pwr_ast_rsp_t       pwrmgr_ast_rsp_i,
   output otp_ctrl_pkg::otp_ast_req_t       otp_ctrl_otp_ast_pwr_seq_o,
@@ -159,6 +161,12 @@
   input  logic [8:0] ast2pinmux_i,
   input  logic       ast_init_done_i,
   output logic       sck_monitor_o,
+  input  logic       usbdev_usb_rx_d_i,
+  output logic       usbdev_usb_tx_d_o,
+  output logic       usbdev_usb_tx_se0_o,
+  output logic       usbdev_usb_tx_use_d_se0_o,
+  output logic       usbdev_usb_suspend_o,
+  output logic       usbdev_usb_rx_enable_o,
   output logic       usbdev_usb_ref_val_o,
   output logic       usbdev_usb_ref_pulse_o,
 
@@ -201,9 +209,9 @@
   logic [56:0] mio_p2d;
   logic [74:0] mio_d2p;
   logic [74:0] mio_en_d2p;
-  logic [22:0] dio_p2d;
-  logic [22:0] dio_d2p;
-  logic [22:0] dio_en_d2p;
+  logic [15:0] dio_p2d;
+  logic [15:0] dio_d2p;
+  logic [15:0] dio_en_d2p;
   // uart0
   logic        cio_uart0_rx_p2d;
   logic        cio_uart0_tx_d2p;
@@ -264,27 +272,12 @@
   // rv_timer
   // usbdev
   logic        cio_usbdev_sense_p2d;
-  logic        cio_usbdev_d_p2d;
-  logic        cio_usbdev_dp_p2d;
-  logic        cio_usbdev_dn_p2d;
-  logic        cio_usbdev_se0_d2p;
-  logic        cio_usbdev_se0_en_d2p;
-  logic        cio_usbdev_dp_pullup_d2p;
-  logic        cio_usbdev_dp_pullup_en_d2p;
-  logic        cio_usbdev_dn_pullup_d2p;
-  logic        cio_usbdev_dn_pullup_en_d2p;
-  logic        cio_usbdev_tx_mode_se_d2p;
-  logic        cio_usbdev_tx_mode_se_en_d2p;
-  logic        cio_usbdev_suspend_d2p;
-  logic        cio_usbdev_suspend_en_d2p;
-  logic        cio_usbdev_rx_enable_d2p;
-  logic        cio_usbdev_rx_enable_en_d2p;
-  logic        cio_usbdev_d_d2p;
-  logic        cio_usbdev_d_en_d2p;
-  logic        cio_usbdev_dp_d2p;
-  logic        cio_usbdev_dp_en_d2p;
-  logic        cio_usbdev_dn_d2p;
-  logic        cio_usbdev_dn_en_d2p;
+  logic        cio_usbdev_usb_dp_p2d;
+  logic        cio_usbdev_usb_dn_p2d;
+  logic        cio_usbdev_usb_dp_d2p;
+  logic        cio_usbdev_usb_dp_en_d2p;
+  logic        cio_usbdev_usb_dn_d2p;
+  logic        cio_usbdev_usb_dn_en_d2p;
   // otp_ctrl
   logic [7:0]  cio_otp_ctrl_test_d2p;
   logic [7:0]  cio_otp_ctrl_test_en_d2p;
@@ -564,6 +557,8 @@
   lc_ctrl_pkg::lc_tx_t       pwrmgr_aon_fetch_en;
   rom_ctrl_pkg::pwrmgr_data_t       rom_ctrl_pwrmgr_data;
   rom_ctrl_pkg::keymgr_data_t       rom_ctrl_keymgr_data;
+  logic       usbdev_usb_dp_pullup;
+  logic       usbdev_usb_dn_pullup;
   logic       usbdev_usb_out_of_rst;
   logic       usbdev_usb_aon_wake_en;
   logic       usbdev_usb_aon_wake_ack;
@@ -753,6 +748,7 @@
   assign ast_ram_1p_cfg = ram_1p_cfg_i;
   assign ast_ram_2p_cfg = ram_2p_cfg_i;
   assign ast_rom_cfg = rom_cfg_i;
+  assign usbdev_usb_suspend_o = usbdev_usb_suspend;
 
   // define partial inter-module tie-off
   edn_pkg::edn_rsp_t unused_edn1_edn_rsp1;
@@ -1378,30 +1374,15 @@
   ) u_usbdev (
 
       // Input
-      .cio_sense_i         (cio_usbdev_sense_p2d),
-      .cio_d_i             (cio_usbdev_d_p2d),
-      .cio_dp_i            (cio_usbdev_dp_p2d),
-      .cio_dn_i            (cio_usbdev_dn_p2d),
+      .cio_sense_i     (cio_usbdev_sense_p2d),
+      .cio_usb_dp_i    (cio_usbdev_usb_dp_p2d),
+      .cio_usb_dn_i    (cio_usbdev_usb_dn_p2d),
 
       // Output
-      .cio_se0_o           (cio_usbdev_se0_d2p),
-      .cio_se0_en_o        (cio_usbdev_se0_en_d2p),
-      .cio_dp_pullup_o     (cio_usbdev_dp_pullup_d2p),
-      .cio_dp_pullup_en_o  (cio_usbdev_dp_pullup_en_d2p),
-      .cio_dn_pullup_o     (cio_usbdev_dn_pullup_d2p),
-      .cio_dn_pullup_en_o  (cio_usbdev_dn_pullup_en_d2p),
-      .cio_tx_mode_se_o    (cio_usbdev_tx_mode_se_d2p),
-      .cio_tx_mode_se_en_o (cio_usbdev_tx_mode_se_en_d2p),
-      .cio_suspend_o       (cio_usbdev_suspend_d2p),
-      .cio_suspend_en_o    (cio_usbdev_suspend_en_d2p),
-      .cio_rx_enable_o     (cio_usbdev_rx_enable_d2p),
-      .cio_rx_enable_en_o  (cio_usbdev_rx_enable_en_d2p),
-      .cio_d_o             (cio_usbdev_d_d2p),
-      .cio_d_en_o          (cio_usbdev_d_en_d2p),
-      .cio_dp_o            (cio_usbdev_dp_d2p),
-      .cio_dp_en_o         (cio_usbdev_dp_en_d2p),
-      .cio_dn_o            (cio_usbdev_dn_d2p),
-      .cio_dn_en_o         (cio_usbdev_dn_en_d2p),
+      .cio_usb_dp_o    (cio_usbdev_usb_dp_d2p),
+      .cio_usb_dp_en_o (cio_usbdev_usb_dp_en_d2p),
+      .cio_usb_dn_o    (cio_usbdev_usb_dn_d2p),
+      .cio_usb_dn_en_o (cio_usbdev_usb_dn_en_d2p),
 
       // Interrupt
       .intr_pkt_received_o    (intr_usbdev_pkt_received),
@@ -1426,6 +1407,13 @@
       .alert_rx_i  ( alert_rx[11:11] ),
 
       // Inter-module signals
+      .usb_rx_d_i(usbdev_usb_rx_d_i),
+      .usb_tx_d_o(usbdev_usb_tx_d_o),
+      .usb_tx_se0_o(usbdev_usb_tx_se0_o),
+      .usb_tx_use_d_se0_o(usbdev_usb_tx_use_d_se0_o),
+      .usb_dp_pullup_o(usbdev_usb_dp_pullup),
+      .usb_dn_pullup_o(usbdev_usb_dn_pullup),
+      .usb_rx_enable_o(usbdev_usb_rx_enable_o),
       .usb_ref_val_o(usbdev_usb_ref_val_o),
       .usb_ref_pulse_o(usbdev_usb_ref_pulse_o),
       .usb_out_of_rst_o(usbdev_usb_out_of_rst),
@@ -1906,6 +1894,10 @@
       .sleep_en_i(pwrmgr_aon_low_power),
       .strap_en_i(pwrmgr_aon_strap),
       .pin_wkup_req_o(pwrmgr_aon_wakeups[2]),
+      .usb_dppullup_en_upwr_i(usbdev_usb_dp_pullup),
+      .usb_dnpullup_en_upwr_i(usbdev_usb_dn_pullup),
+      .usb_dppullup_en_o(usb_dp_pullup_en_o),
+      .usb_dnpullup_en_o(usb_dn_pullup_en_o),
       .usb_wkup_req_o(pwrmgr_aon_wakeups[3]),
       .usb_out_of_rst_i(usbdev_usb_out_of_rst),
       .usb_aon_wake_en_i(usbdev_usb_aon_wake_en),
@@ -3190,8 +3182,10 @@
   assign mio_en_d2p[MioOutSysrstCtrlAonZ3Wakeup] = cio_sysrst_ctrl_aon_z3_wakeup_en_d2p;
 
   // All dedicated inputs
-  logic [22:0] unused_dio_p2d;
+  logic [15:0] unused_dio_p2d;
   assign unused_dio_p2d = dio_p2d;
+  assign cio_usbdev_usb_dp_p2d = dio_p2d[DioUsbdevUsbDp];
+  assign cio_usbdev_usb_dn_p2d = dio_p2d[DioUsbdevUsbDn];
   assign cio_spi_host0_sd_p2d[0] = dio_p2d[DioSpiHost0Sd0];
   assign cio_spi_host0_sd_p2d[1] = dio_p2d[DioSpiHost0Sd1];
   assign cio_spi_host0_sd_p2d[2] = dio_p2d[DioSpiHost0Sd2];
@@ -3200,15 +3194,14 @@
   assign cio_spi_device_sd_p2d[1] = dio_p2d[DioSpiDeviceSd1];
   assign cio_spi_device_sd_p2d[2] = dio_p2d[DioSpiDeviceSd2];
   assign cio_spi_device_sd_p2d[3] = dio_p2d[DioSpiDeviceSd3];
-  assign cio_usbdev_d_p2d = dio_p2d[DioUsbdevD];
-  assign cio_usbdev_dp_p2d = dio_p2d[DioUsbdevDp];
-  assign cio_usbdev_dn_p2d = dio_p2d[DioUsbdevDn];
   assign cio_sysrst_ctrl_aon_ec_rst_l_p2d = dio_p2d[DioSysrstCtrlAonEcRstL];
   assign cio_sysrst_ctrl_aon_flash_wp_l_p2d = dio_p2d[DioSysrstCtrlAonFlashWpL];
   assign cio_spi_device_sck_p2d = dio_p2d[DioSpiDeviceSck];
   assign cio_spi_device_csb_p2d = dio_p2d[DioSpiDeviceCsb];
 
     // All dedicated outputs
+  assign dio_d2p[DioUsbdevUsbDp] = cio_usbdev_usb_dp_d2p;
+  assign dio_d2p[DioUsbdevUsbDn] = cio_usbdev_usb_dn_d2p;
   assign dio_d2p[DioSpiHost0Sd0] = cio_spi_host0_sd_d2p[0];
   assign dio_d2p[DioSpiHost0Sd1] = cio_spi_host0_sd_d2p[1];
   assign dio_d2p[DioSpiHost0Sd2] = cio_spi_host0_sd_d2p[2];
@@ -3217,23 +3210,16 @@
   assign dio_d2p[DioSpiDeviceSd1] = cio_spi_device_sd_d2p[1];
   assign dio_d2p[DioSpiDeviceSd2] = cio_spi_device_sd_d2p[2];
   assign dio_d2p[DioSpiDeviceSd3] = cio_spi_device_sd_d2p[3];
-  assign dio_d2p[DioUsbdevD] = cio_usbdev_d_d2p;
-  assign dio_d2p[DioUsbdevDp] = cio_usbdev_dp_d2p;
-  assign dio_d2p[DioUsbdevDn] = cio_usbdev_dn_d2p;
   assign dio_d2p[DioSysrstCtrlAonEcRstL] = cio_sysrst_ctrl_aon_ec_rst_l_d2p;
   assign dio_d2p[DioSysrstCtrlAonFlashWpL] = cio_sysrst_ctrl_aon_flash_wp_l_d2p;
   assign dio_d2p[DioSpiDeviceSck] = 1'b0;
   assign dio_d2p[DioSpiDeviceCsb] = 1'b0;
   assign dio_d2p[DioSpiHost0Sck] = cio_spi_host0_sck_d2p;
   assign dio_d2p[DioSpiHost0Csb] = cio_spi_host0_csb_d2p;
-  assign dio_d2p[DioUsbdevSe0] = cio_usbdev_se0_d2p;
-  assign dio_d2p[DioUsbdevDpPullup] = cio_usbdev_dp_pullup_d2p;
-  assign dio_d2p[DioUsbdevDnPullup] = cio_usbdev_dn_pullup_d2p;
-  assign dio_d2p[DioUsbdevTxModeSe] = cio_usbdev_tx_mode_se_d2p;
-  assign dio_d2p[DioUsbdevSuspend] = cio_usbdev_suspend_d2p;
-  assign dio_d2p[DioUsbdevRxEnable] = cio_usbdev_rx_enable_d2p;
 
   // All dedicated output enables
+  assign dio_en_d2p[DioUsbdevUsbDp] = cio_usbdev_usb_dp_en_d2p;
+  assign dio_en_d2p[DioUsbdevUsbDn] = cio_usbdev_usb_dn_en_d2p;
   assign dio_en_d2p[DioSpiHost0Sd0] = cio_spi_host0_sd_en_d2p[0];
   assign dio_en_d2p[DioSpiHost0Sd1] = cio_spi_host0_sd_en_d2p[1];
   assign dio_en_d2p[DioSpiHost0Sd2] = cio_spi_host0_sd_en_d2p[2];
@@ -3242,21 +3228,12 @@
   assign dio_en_d2p[DioSpiDeviceSd1] = cio_spi_device_sd_en_d2p[1];
   assign dio_en_d2p[DioSpiDeviceSd2] = cio_spi_device_sd_en_d2p[2];
   assign dio_en_d2p[DioSpiDeviceSd3] = cio_spi_device_sd_en_d2p[3];
-  assign dio_en_d2p[DioUsbdevD] = cio_usbdev_d_en_d2p;
-  assign dio_en_d2p[DioUsbdevDp] = cio_usbdev_dp_en_d2p;
-  assign dio_en_d2p[DioUsbdevDn] = cio_usbdev_dn_en_d2p;
   assign dio_en_d2p[DioSysrstCtrlAonEcRstL] = cio_sysrst_ctrl_aon_ec_rst_l_en_d2p;
   assign dio_en_d2p[DioSysrstCtrlAonFlashWpL] = cio_sysrst_ctrl_aon_flash_wp_l_en_d2p;
   assign dio_en_d2p[DioSpiDeviceSck] = 1'b0;
   assign dio_en_d2p[DioSpiDeviceCsb] = 1'b0;
   assign dio_en_d2p[DioSpiHost0Sck] = cio_spi_host0_sck_en_d2p;
   assign dio_en_d2p[DioSpiHost0Csb] = cio_spi_host0_csb_en_d2p;
-  assign dio_en_d2p[DioUsbdevSe0] = cio_usbdev_se0_en_d2p;
-  assign dio_en_d2p[DioUsbdevDpPullup] = cio_usbdev_dp_pullup_en_d2p;
-  assign dio_en_d2p[DioUsbdevDnPullup] = cio_usbdev_dn_pullup_en_d2p;
-  assign dio_en_d2p[DioUsbdevTxModeSe] = cio_usbdev_tx_mode_se_en_d2p;
-  assign dio_en_d2p[DioUsbdevSuspend] = cio_usbdev_suspend_en_d2p;
-  assign dio_en_d2p[DioUsbdevRxEnable] = cio_usbdev_rx_enable_en_d2p;
 
 
   // make sure scanmode_i is never X (including during reset)
diff --git a/hw/top_earlgrey/rtl/autogen/top_earlgrey_pkg.sv b/hw/top_earlgrey/rtl/autogen/top_earlgrey_pkg.sv
index 9119994..ce46e2b 100644
--- a/hw/top_earlgrey/rtl/autogen/top_earlgrey_pkg.sv
+++ b/hw/top_earlgrey/rtl/autogen/top_earlgrey_pkg.sv
@@ -704,30 +704,23 @@
 
   // Enumeration for DIO signals, used on both the top and chip-levels.
   typedef enum int unsigned {
-    DioSpiHost0Sd0 = 0,
-    DioSpiHost0Sd1 = 1,
-    DioSpiHost0Sd2 = 2,
-    DioSpiHost0Sd3 = 3,
-    DioSpiDeviceSd0 = 4,
-    DioSpiDeviceSd1 = 5,
-    DioSpiDeviceSd2 = 6,
-    DioSpiDeviceSd3 = 7,
-    DioUsbdevD = 8,
-    DioUsbdevDp = 9,
-    DioUsbdevDn = 10,
-    DioSysrstCtrlAonEcRstL = 11,
-    DioSysrstCtrlAonFlashWpL = 12,
-    DioSpiDeviceSck = 13,
-    DioSpiDeviceCsb = 14,
-    DioSpiHost0Sck = 15,
-    DioSpiHost0Csb = 16,
-    DioUsbdevSe0 = 17,
-    DioUsbdevDpPullup = 18,
-    DioUsbdevDnPullup = 19,
-    DioUsbdevTxModeSe = 20,
-    DioUsbdevSuspend = 21,
-    DioUsbdevRxEnable = 22,
-    DioCount = 23
+    DioUsbdevUsbDp = 0,
+    DioUsbdevUsbDn = 1,
+    DioSpiHost0Sd0 = 2,
+    DioSpiHost0Sd1 = 3,
+    DioSpiHost0Sd2 = 4,
+    DioSpiHost0Sd3 = 5,
+    DioSpiDeviceSd0 = 6,
+    DioSpiDeviceSd1 = 7,
+    DioSpiDeviceSd2 = 8,
+    DioSpiDeviceSd3 = 9,
+    DioSysrstCtrlAonEcRstL = 10,
+    DioSysrstCtrlAonFlashWpL = 11,
+    DioSpiDeviceSck = 12,
+    DioSpiDeviceCsb = 13,
+    DioSpiHost0Sck = 14,
+    DioSpiHost0Csb = 15,
+    DioCount = 16
   } dio_e;
 
   // Raw MIO/DIO input array indices on chip-level.
diff --git a/hw/top_earlgrey/rtl/chip_earlgrey_verilator.sv b/hw/top_earlgrey/rtl/chip_earlgrey_verilator.sv
index 93682bb..87869ff 100644
--- a/hw/top_earlgrey/rtl/chip_earlgrey_verilator.sv
+++ b/hw/top_earlgrey/rtl/chip_earlgrey_verilator.sv
@@ -27,9 +27,7 @@
   // communication with USB
   input cio_usbdev_sense_p2d_i,
   output logic cio_usbdev_dp_pullup_d2p_o,
-  output logic cio_usbdev_dp_pullup_en_d2p_o,
   output logic cio_usbdev_dn_pullup_d2p_o,
-  output logic cio_usbdev_dn_pullup_en_d2p_o,
   input cio_usbdev_dp_p2d_i,
   output logic cio_usbdev_dp_d2p_o,
   output logic cio_usbdev_dp_en_d2p_o,
@@ -40,9 +38,9 @@
   output logic cio_usbdev_d_d2p_o,
   output logic cio_usbdev_d_en_d2p_o,
   output logic cio_usbdev_se0_d2p_o,
-  output logic cio_usbdev_se0_en_d2p_o,
-  output logic cio_usbdev_tx_mode_se_d2p_o,
-  output logic cio_usbdev_tx_mode_se_en_d2p_o
+  output logic cio_usbdev_rx_enable_d2p_o,
+  output logic cio_usbdev_tx_use_d_se0_d2p_o,
+  output logic cio_usbdev_suspend_d2p_o
 );
 
   import top_earlgrey_pkg::*;
@@ -60,29 +58,36 @@
     dio_in[DioSpiDeviceSck] = cio_spi_device_sck_p2d_i;
     dio_in[DioSpiDeviceCsb] = cio_spi_device_csb_p2d_i;
     dio_in[DioSpiDeviceSd0] = cio_spi_device_sdi_p2d_i;
-    dio_in[DioUsbdevD] = cio_usbdev_d_p2d_i;
-    dio_in[DioUsbdevDp] = cio_usbdev_dp_p2d_i;
-    dio_in[DioUsbdevDn] = cio_usbdev_dn_p2d_i;
+    dio_in[DioUsbdevUsbDp] = cio_usbdev_dp_p2d_i;
+    dio_in[DioUsbdevUsbDn] = cio_usbdev_dn_p2d_i;
   end
 
-  assign cio_usbdev_dn_d2p_o = dio_out[DioUsbdevDn];
-  assign cio_usbdev_dp_d2p_o = dio_out[DioUsbdevDp];
-  assign cio_usbdev_d_d2p_o  = dio_out[DioUsbdevD];
-  assign cio_usbdev_suspend_d2p_o = dio_out[DioUsbdevSuspend];
-  assign cio_usbdev_tx_mode_se_d2p_o = dio_out[DioUsbdevTxModeSe];
-  assign cio_usbdev_dn_pullup_d2p_o = dio_out[DioUsbdevDnPullup];
-  assign cio_usbdev_dp_pullup_d2p_o = dio_out[DioUsbdevDpPullup];
-  assign cio_usbdev_se0_d2p_o = dio_out[DioUsbdevSe0];
-  assign cio_spi_device_sdo_d2p_o = dio_out[DioSpiDeviceSd1];
+  // USB
+  logic usb_dp_pullup;
+  logic usb_dn_pullup;
+  logic usb_rx_d;
+  logic usb_tx_d;
+  logic usb_tx_se0;
+  logic usb_tx_use_d_se0;
+  logic usb_suspend;
+  logic usb_rx_enable;
 
-  assign cio_usbdev_dn_en_d2p_o = dio_oe[DioUsbdevDn];
-  assign cio_usbdev_dp_en_d2p_o = dio_oe[DioUsbdevDp];
-  assign cio_usbdev_d_en_d2p_o  = dio_oe[DioUsbdevD];
-  assign cio_usbdev_suspend_en_d2p_o = dio_oe[DioUsbdevSuspend];
-  assign cio_usbdev_tx_mode_se_en_d2p_o = dio_oe[DioUsbdevTxModeSe];
-  assign cio_usbdev_dn_pullup_en_d2p_o = dio_oe[DioUsbdevDnPullup];
-  assign cio_usbdev_dp_pullup_en_d2p_o = dio_oe[DioUsbdevDpPullup];
-  assign cio_usbdev_se0_en_d2p_o = dio_oe[DioUsbdevSe0];
+  assign usb_rx_d = cio_usbdev_d_p2d_i;
+  assign cio_usbdev_d_d2p_o  = usb_tx_d;
+  assign cio_usbdev_d_en_d2p_o = dio_oe[DioUsbdevUsbDp];
+  assign cio_usbdev_suspend_d2p_o = usb_suspend;
+  assign cio_usbdev_dn_pullup_d2p_o = usb_dn_pullup;
+  assign cio_usbdev_dp_pullup_d2p_o = usb_dp_pullup;
+  assign cio_usbdev_se0_d2p_o = usb_tx_se0;
+  assign cio_usbdev_rx_enable_d2p_o = usb_rx_enable;
+  assign cio_usbdev_tx_use_d_se0_d2p_o = usb_tx_use_d_se0;
+
+  assign cio_usbdev_dp_d2p_o = dio_out[DioUsbdevUsbDp];
+  assign cio_usbdev_dp_en_d2p_o = dio_oe[DioUsbdevUsbDp];
+  assign cio_usbdev_dn_d2p_o = dio_out[DioUsbdevUsbDn];
+  assign cio_usbdev_dn_en_d2p_o = dio_oe[DioUsbdevUsbDn];
+
+  assign cio_spi_device_sdo_d2p_o = dio_out[DioSpiDeviceSd1];
   assign cio_spi_device_sdo_en_d2p_o = dio_oe[DioSpiDeviceSd1];
 
   logic [pinmux_pkg::NMioPads-1:0] mio_in;
@@ -397,10 +402,8 @@
     dft_strap0_idx: 21, // MIO 21
     dft_strap1_idx: 22, // MIO 22
     // TODO: check whether there is a better way to pass these USB-specific params
-    usb_dp_idx:        DioUsbdevDp,
-    usb_dn_idx:        DioUsbdevDn,
-    usb_dp_pullup_idx: DioUsbdevDpPullup,
-    usb_dn_pullup_idx: DioUsbdevDnPullup,
+    usb_dp_idx:        DioUsbdevUsbDp,
+    usb_dn_idx:        DioUsbdevUsbDn,
     usb_sense_idx:     MioInUsbdevSense,
     // TODO: connect these once the verilator chip-level has been merged with the chiplevel.sv.tpl
     dio_pad_type: {pinmux_reg_pkg::NDioPads{prim_pad_wrapper_pkg::BidirStd}},
@@ -462,6 +465,16 @@
     .ast2pinmux_i                 ( ast2pinmux                 ),
     .ast_init_done_i              ( ast_init_done              ),
 
+    // USB signals
+    .usb_dp_pullup_en_o           (usb_dp_pullup),
+    .usb_dn_pullup_en_o           (usb_dn_pullup),
+    .usbdev_usb_rx_d_i            (usb_rx_d),
+    .usbdev_usb_tx_d_o            (usb_tx_d),
+    .usbdev_usb_tx_se0_o          (usb_tx_se0),
+    .usbdev_usb_tx_use_d_se0_o    (usb_tx_use_d_se0),
+    .usbdev_usb_suspend_o         (usb_suspend),
+    .usbdev_usb_rx_enable_o       (usb_rx_enable),
+
     // Flash test mode voltages
     .flash_test_mode_a_io         ( ),
     .flash_test_voltage_h_io      ( ),
diff --git a/hw/top_earlgrey/sw/autogen/top_earlgrey.h b/hw/top_earlgrey/sw/autogen/top_earlgrey.h
index 7ddf2e9..a96e5fb 100644
--- a/hw/top_earlgrey/sw/autogen/top_earlgrey.h
+++ b/hw/top_earlgrey/sw/autogen/top_earlgrey.h
@@ -1356,7 +1356,7 @@
 // PERIPH_INSEL ranges from 0 to NUM_MIO_PADS + 2 -1}
 //  0 and 1 are tied to value 0 and 1
 #define NUM_MIO_PADS 47
-#define NUM_DIO_PADS 23
+#define NUM_DIO_PADS 16
 
 #define PINMUX_PERIPH_OUTSEL_IDX_OFFSET 3
 
diff --git a/hw/top_englishbreakfast/data/top_englishbreakfast.hjson b/hw/top_englishbreakfast/data/top_englishbreakfast.hjson
index b03c894..e293a42 100644
--- a/hw/top_englishbreakfast/data/top_englishbreakfast.hjson
+++ b/hw/top_englishbreakfast/data/top_englishbreakfast.hjson
@@ -560,12 +560,14 @@
       'pwrmgr_aon.fetch_en'     : ['rv_core_ibex.pwrmgr_cpu_en'],
 
       // usbdev connection to pinmux
-      'usbdev.usb_out_of_rst'      : ['pinmux_aon.usb_out_of_rst'],
-      'usbdev.usb_aon_wake_en'     : ['pinmux_aon.usb_aon_wake_en'],
-      'usbdev.usb_aon_wake_ack'    : ['pinmux_aon.usb_aon_wake_ack'],
-      'usbdev.usb_suspend'         : ['pinmux_aon.usb_suspend'],
-      'usbdev.usb_aon_bus_reset'   : ['pinmux_aon.usb_bus_reset'],
-      'usbdev.usb_aon_sense_lost'  : ['pinmux_aon.usb_sense_lost'],
+      'usbdev.usb_dp_pullup'      : ['pinmux_aon.usb_dppullup_en_upwr'],
+      'usbdev.usb_dn_pullup'      : ['pinmux_aon.usb_dnpullup_en_upwr'],
+      'usbdev.usb_out_of_rst'     : ['pinmux_aon.usb_out_of_rst'],
+      'usbdev.usb_aon_wake_en'    : ['pinmux_aon.usb_aon_wake_en'],
+      'usbdev.usb_aon_wake_ack'   : ['pinmux_aon.usb_aon_wake_ack'],
+      'usbdev.usb_suspend'        : ['pinmux_aon.usb_suspend'],
+      'usbdev.usb_aon_bus_reset'  : ['pinmux_aon.usb_bus_reset'],
+      'usbdev.usb_aon_sense_lost' : ['pinmux_aon.usb_sense_lost'],
       'pinmux_aon.usb_state_debug' : ['usbdev.usb_state_debug'],
 
       // The idle connection is automatically connected through topgen.
@@ -663,11 +665,19 @@
         'peri.tl_ast'                  : 'ast_tl',
         'pinmux_aon.dft_strap_test'    : 'dft_strap_test'
         'pinmux_aon.dft_hold_tap_sel'  : 'dft_hold_tap_sel',
+        'pinmux_aon.usb_dppullup_en'   : 'usb_dp_pullup_en',
+        'pinmux_aon.usb_dnpullup_en'   : 'usb_dn_pullup_en',
         'pwrmgr_aon.pwr_ast'           : 'pwrmgr_ast',
         # 'otp_ctrl.otp_ast_pwr_seq'     : '',
         # 'otp_ctrl.otp_ast_pwr_seq_h'   : '',
         # 'otp_ctrl.otp_alert'           : 'otp_alert',
         'rstmgr_aon.por_n'               : 'por_n'
+        'usbdev.usb_rx_d'                : '',
+        'usbdev.usb_tx_d'                : '',
+        'usbdev.usb_tx_se0'              : '',
+        'usbdev.usb_tx_use_d_se0'        : '',
+        'usbdev.usb_suspend'             : '',
+        'usbdev.usb_rx_enable'           : '',
         'usbdev.usb_ref_val'             : '',
         'usbdev.usb_ref_pulse'           : '',
         'spi_device.sck_monitor'         : 'sck_monitor',
@@ -862,7 +872,8 @@
       { instance: 'spi_device',      port: 'sd[2]', connection: 'direct', pad: 'SPI_DEV_D2'   , desc: ''},
       { instance: 'spi_device',      port: 'sd[3]', connection: 'direct', pad: 'SPI_DEV_D3'   , desc: ''},
       // USBDEV
-      { instance: 'usbdev',          port: '',      connection: 'manual', pad: ''             , desc: '', attr: 'BidirTol'},
+      { instance: 'usbdev',          port: 'usb_dp',         connection: 'manual', pad: ''             , desc: ''},
+      { instance: 'usbdev',          port: 'usb_dn',         connection: 'manual', pad: ''             , desc: ''},
       // MIOs
       { instance: "gpio",            port: '',      connection: 'muxed' , pad: ''             , desc: ''},
       { instance: "uart0",           port: '',      connection: 'muxed' , pad: ''             , desc: ''},
diff --git a/hw/top_englishbreakfast/rtl/chip_englishbreakfast_verilator.sv b/hw/top_englishbreakfast/rtl/chip_englishbreakfast_verilator.sv
index 612bf0e..c9159d2 100644
--- a/hw/top_englishbreakfast/rtl/chip_englishbreakfast_verilator.sv
+++ b/hw/top_englishbreakfast/rtl/chip_englishbreakfast_verilator.sv
@@ -18,11 +18,12 @@
   logic cio_spi_device_sdo_d2p, cio_spi_device_sdo_en_d2p;
 
   logic cio_usbdev_sense_p2d;
-  logic cio_usbdev_se0_d2p, cio_usbdev_se0_en_d2p;
-  logic cio_usbdev_dp_pullup_d2p, cio_usbdev_dp_pullup_en_d2p;
-  logic cio_usbdev_dn_pullup_d2p, cio_usbdev_dn_pullup_en_d2p;
-  logic cio_usbdev_tx_mode_se_d2p, cio_usbdev_tx_mode_se_en_d2p;
-  logic cio_usbdev_suspend_d2p, cio_usbdev_suspend_en_d2p;
+  logic cio_usbdev_se0_d2p;
+  logic cio_usbdev_dp_pullup_d2p;
+  logic cio_usbdev_dn_pullup_d2p;
+  logic cio_usbdev_suspend_d2p;
+  logic cio_usbdev_rx_enable_d2p;
+  logic cio_usbdev_tx_use_d_se0_d2p;
   logic cio_usbdev_d_p2d, cio_usbdev_d_d2p, cio_usbdev_d_en_d2p;
   logic cio_usbdev_dp_p2d, cio_usbdev_dp_d2p, cio_usbdev_dp_en_d2p;
   logic cio_usbdev_dn_p2d, cio_usbdev_dn_d2p, cio_usbdev_dn_en_d2p;
@@ -39,29 +40,34 @@
     dio_in[DioSpiDeviceSck] = cio_spi_device_sck_p2d;
     dio_in[DioSpiDeviceCsb] = cio_spi_device_csb_p2d;
     dio_in[DioSpiDeviceSd0] = cio_spi_device_sdi_p2d;
-    dio_in[DioUsbdevD] = cio_usbdev_d_p2d;
-    dio_in[DioUsbdevDp] = cio_usbdev_dp_p2d;
-    dio_in[DioUsbdevDn] = cio_usbdev_dn_p2d;
+    dio_in[DioUsbdevUsbDp] = cio_usbdev_dp_p2d;
+    dio_in[DioUsbdevUsbDn] = cio_usbdev_dn_p2d;
   end
 
-  assign cio_usbdev_dn_d2p = dio_out[DioUsbdevDn];
-  assign cio_usbdev_dp_d2p = dio_out[DioUsbdevDp];
-  assign cio_usbdev_d_d2p  = dio_out[DioUsbdevD];
-  assign cio_usbdev_suspend_d2p = dio_out[DioUsbdevSuspend];
-  assign cio_usbdev_tx_mode_se_d2p = dio_out[DioUsbdevTxModeSe];
-  assign cio_usbdev_dn_pullup_d2p = dio_out[DioUsbdevDnPullup];
-  assign cio_usbdev_dp_pullup_d2p = dio_out[DioUsbdevDpPullup];
-  assign cio_usbdev_se0_d2p = dio_out[DioUsbdevSe0];
+  logic usb_dp_pullup;
+  logic usb_dn_pullup;
+  logic usb_rx_d;
+  logic usb_tx_d;
+  logic usb_tx_se0;
+  logic usb_tx_use_d_se0;
+  logic usb_suspend;
+  logic usb_rx_enable;
+
+  assign usb_rx_d = cio_usbdev_d_p2d;
+  assign cio_usbdev_dn_d2p = dio_out[DioUsbdevUsbDn];
+  assign cio_usbdev_dp_d2p = dio_out[DioUsbdevUsbDp];
+  assign cio_usbdev_d_d2p  = usb_tx_d;
+  assign cio_usbdev_suspend_d2p = usb_suspend;
+  assign cio_usbdev_rx_enable_d2p = usb_rx_enable;
+  assign cio_usbdev_tx_use_d_se0_d2p = usb_tx_use_d_se0;
+  assign cio_usbdev_dn_pullup_d2p = usb_dn_pullup;
+  assign cio_usbdev_dp_pullup_d2p = usb_dp_pullup;
+  assign cio_usbdev_se0_d2p = usb_tx_se0;
   assign cio_spi_device_sdo_d2p = dio_out[DioSpiDeviceSd1];
 
-  assign cio_usbdev_dn_en_d2p = dio_oe[DioUsbdevDn];
-  assign cio_usbdev_dp_en_d2p = dio_oe[DioUsbdevDp];
-  assign cio_usbdev_d_en_d2p  = dio_oe[DioUsbdevD];
-  assign cio_usbdev_suspend_en_d2p = dio_oe[DioUsbdevSuspend];
-  assign cio_usbdev_tx_mode_se_en_d2p = dio_oe[DioUsbdevTxModeSe];
-  assign cio_usbdev_dn_pullup_en_d2p = dio_oe[DioUsbdevDnPullup];
-  assign cio_usbdev_dp_pullup_en_d2p = dio_oe[DioUsbdevDpPullup];
-  assign cio_usbdev_se0_en_d2p = dio_oe[DioUsbdevSe0];
+  assign cio_usbdev_dn_en_d2p = dio_oe[DioUsbdevUsbDn];
+  assign cio_usbdev_dp_en_d2p = dio_oe[DioUsbdevUsbDp];
+  assign cio_usbdev_d_en_d2p  = dio_oe[DioUsbdevUsbDp];
   assign cio_spi_device_sdo_en_d2p = dio_oe[DioSpiDeviceSd1];
 
   logic [pinmux_pkg::NMioPads-1:0] mio_in;
@@ -142,10 +148,8 @@
     dft_strap0_idx: 21, // MIO 21
     dft_strap1_idx: 22, // MIO 22
     // TODO: check whether there is a better way to pass these USB-specific params
-    usb_dp_idx:        DioUsbdevDp,
-    usb_dn_idx:        DioUsbdevDn,
-    usb_dp_pullup_idx: DioUsbdevDpPullup,
-    usb_dn_pullup_idx: DioUsbdevDnPullup,
+    usb_dp_idx:        DioUsbdevUsbDp,
+    usb_dn_idx:        DioUsbdevUsbDn,
     usb_sense_idx:     MioInUsbdevSense,
     // TODO: connect these once the verilator chip-level has been merged with the chiplevel.sv.tpl
     dio_pad_type: {pinmux_reg_pkg::NDioPads{prim_pad_wrapper_pkg::BidirStd}},
@@ -187,6 +191,16 @@
     .io_clk_byp_req_o             ( io_clk_bypass    ),
     .io_clk_byp_ack_i             ( io_clk_bypass    ),
 
+    // USB signals
+    .usb_dp_pullup_en_o           (usb_dp_pullup),
+    .usb_dn_pullup_en_o           (usb_dn_pullup),
+    .usbdev_usb_rx_d_i            (usb_rx_d),
+    .usbdev_usb_tx_d_o            (usb_tx_d),
+    .usbdev_usb_tx_se0_o          (usb_tx_se0),
+    .usbdev_usb_tx_use_d_se0_o      (usb_tx_use_d_se0),
+    .usbdev_usb_suspend_o         (usb_suspend),
+    .usbdev_usb_rx_enable_o       (usb_rx_enable),
+
     // Multiplexed I/O
     .mio_in_i                     (mio_in),
     .mio_out_o                    (mio_out),
@@ -288,9 +302,7 @@
     .clk_48MHz_i     (clk_i),
     .sense_p2d       (cio_usbdev_sense_p2d),
     .pullupdp_d2p    (cio_usbdev_dp_pullup_d2p),
-    .pullupdp_en_d2p (cio_usbdev_dp_pullup_en_d2p),
     .pullupdn_d2p    (cio_usbdev_dn_pullup_d2p),
-    .pullupdn_en_d2p (cio_usbdev_dn_pullup_en_d2p),
     .dp_p2d          (cio_usbdev_dp_p2d),
     .dp_d2p          (cio_usbdev_dp_d2p),
     .dp_en_d2p       (cio_usbdev_dp_en_d2p),
@@ -301,16 +313,10 @@
     .d_d2p           (cio_usbdev_d_d2p),
     .d_en_d2p        (cio_usbdev_d_en_d2p),
     .se0_d2p         (cio_usbdev_se0_d2p),
-    .se0_en_d2p      (cio_usbdev_se0_en_d2p),
-    .txmode_d2p      (cio_usbdev_tx_mode_se_d2p),
-    .txmode_en_d2p   (cio_usbdev_tx_mode_se_en_d2p)
+    .rx_enable_d2p   (cio_usbdev_rx_enable_d2p),
+    .tx_use_d_se0_d2p(cio_usbdev_tx_use_d_se0_d2p)
   );
 
-  // Tie off unused signals.
-  logic unused_cio_usbdev_suspend_d2p, unused_cio_usbdev_suspend_en_d2p;
-  assign unused_cio_usbdev_suspend_d2p = cio_usbdev_suspend_d2p;
-  assign unused_cio_usbdev_suspend_en_d2p = cio_usbdev_suspend_en_d2p;
-
   `define RV_CORE_IBEX      top_englishbreakfast.u_rv_core_ibex
   `define SIM_SRAM_IF       u_sim_sram.u_sim_sram_if
 
diff --git a/sw/device/examples/hello_usbdev/hello_usbdev.c b/sw/device/examples/hello_usbdev/hello_usbdev.c
index 0c321f3..ea779c5 100644
--- a/sw/device/examples/hello_usbdev/hello_usbdev.c
+++ b/sw/device/examples/hello_usbdev/hello_usbdev.c
@@ -107,7 +107,7 @@
 
 // These GPIO bits control USB PHY configuration
 static const uint32_t kPinflipMask = 1;
-static const uint32_t kDiffMask = 2;
+static const uint32_t kDiffXcvrMask = 2;
 static const uint32_t kUPhyMask = 4;
 
 int main(int argc, char **argv) {
@@ -153,10 +153,10 @@
   uint32_t gpio_state;
   CHECK_DIF_OK(dif_gpio_read_all(&gpio, &gpio_state));
   bool pinflip = gpio_state & kPinflipMask ? true : false;
-  bool differential = gpio_state & kDiffMask ? true : false;
+  bool differential_xcvr = gpio_state & kDiffXcvrMask ? true : false;
   bool uphy = gpio_state & kUPhyMask ? true : false;
-  LOG_INFO("PHY settings: pinflip=%d differential=%d USB Phy=%d", pinflip,
-           differential, uphy);
+  LOG_INFO("PHY settings: pinflip=%d differential_xcvr=%d USB Phy=%d", pinflip,
+           differential_xcvr, uphy);
   // Connect correct VBUS detection pin
   if (uphy) {
     CHECK_DIF_OK(dif_pinmux_input_select(
@@ -170,8 +170,8 @@
   CHECK_DIF_OK(
       dif_spi_device_send(&spi, &spi_config, "SPI!", 4, /*bytes_sent=*/NULL));
 
-  // The TI phy always uses single ended TX
-  usbdev_init(&usbdev, pinflip, differential, differential && !uphy);
+  // The TI phy always uses a differential TX interface
+  usbdev_init(&usbdev, pinflip, differential_xcvr, differential_xcvr && !uphy);
 
   usb_controlep_init(&usbdev_control, &usbdev, 0, config_descriptors,
                      sizeof(config_descriptors));
diff --git a/sw/device/lib/dif/dif_usbdev.c b/sw/device/lib/dif/dif_usbdev.c
index 5ac7513..1de79a4 100644
--- a/sw/device/lib/dif/dif_usbdev.c
+++ b/sw/device/lib/dif/dif_usbdev.c
@@ -234,7 +234,7 @@
 
   // Check enum fields.
   if (!is_valid_toggle(config.differential_rx) ||
-      !is_valid_toggle(config.differential_tx) ||
+      !is_valid_toggle(config.use_tx_d_se0) ||
       !is_valid_toggle(config.single_bit_eop) ||
       !is_valid_toggle(config.pin_flip) ||
       !is_valid_toggle(config.clock_sync_signals)) {
@@ -254,14 +254,14 @@
         1);
   }
 
-  if (config.differential_tx == kDifToggleEnabled) {
-    phy_config_val = bitfield_field32_write(
-        phy_config_val,
-        (bitfield_field32_t){
-            .mask = 1,
-            .index = USBDEV_PHY_CONFIG_TX_DIFFERENTIAL_MODE_BIT,
-        },
-        1);
+  if (config.use_tx_d_se0 == kDifToggleEnabled) {
+    phy_config_val =
+        bitfield_field32_write(phy_config_val,
+                               (bitfield_field32_t){
+                                   .mask = 1,
+                                   .index = USBDEV_PHY_CONFIG_TX_USE_D_SE0_BIT,
+                               },
+                               1);
   }
 
   if (config.single_bit_eop == kDifToggleEnabled) {
diff --git a/sw/device/lib/dif/dif_usbdev.h b/sw/device/lib/dif/dif_usbdev.h
index 377effe..46b7240 100644
--- a/sw/device/lib/dif/dif_usbdev.h
+++ b/sw/device/lib/dif/dif_usbdev.h
@@ -127,9 +127,10 @@
    */
   dif_toggle_t differential_rx;
   /**
-   * Use the differential tx signal instead of the single-ended signals.
+   * Use the TX interface with D and SE0 signals instead of Dp/Dn, for use with
+   * certain transceivers.
    */
-  dif_toggle_t differential_tx;
+  dif_toggle_t use_tx_d_se0;
   /*
    * Recognize a single SE0 bit as end of packet instead of requiring
    * two bits.
diff --git a/sw/device/lib/usbdev.c b/sw/device/lib/usbdev.c
index 2471d5e..9de3848 100644
--- a/sw/device/lib/usbdev.c
+++ b/sw/device/lib/usbdev.c
@@ -299,7 +299,8 @@
       (1 << USBDEV_USBCTRL_ENABLE_BIT);
 }
 
-void usbdev_init(usbdev_ctx_t *ctx, bool pinflip, bool diff_rx, bool diff_tx) {
+void usbdev_init(usbdev_ctx_t *ctx, bool pinflip, bool diff_rx,
+                 bool tx_use_d_se0) {
   // setup context
   for (int i = 0; i < NUM_ENDPOINTS; i++) {
     usbdev_endpoint_setup(ctx, i, 0, NULL, NULL, NULL, NULL, NULL);
@@ -328,7 +329,7 @@
   uint32_t phy_config =
       (pinflip << USBDEV_PHY_CONFIG_PINFLIP_BIT) |
       (diff_rx << USBDEV_PHY_CONFIG_RX_DIFFERENTIAL_MODE_BIT) |
-      (diff_tx << USBDEV_PHY_CONFIG_TX_DIFFERENTIAL_MODE_BIT) |
+      (tx_use_d_se0 << USBDEV_PHY_CONFIG_TX_USE_D_SE0_BIT) |
       (1 << USBDEV_PHY_CONFIG_EOP_SINGLE_BIT_BIT);
   REG32(USBDEV_BASE_ADDR + USBDEV_PHY_CONFIG_REG_OFFSET) = phy_config;
 }
diff --git a/sw/device/lib/usbdev.h b/sw/device/lib/usbdev.h
index c01ce75..b8f356e 100644
--- a/sw/device/lib/usbdev.h
+++ b/sw/device/lib/usbdev.h
@@ -240,9 +240,11 @@
  * @param ctx uninitialized usbdev context pointer
  * @param pinflip boolean to indicate if PHY should be configured for D+/D- flip
  * @param diff_rx boolean to indicate if PHY uses differential RX
- * @param diff_tx boolean to indicate if PHY uses differential TX
+ * @param tx_use_d_se0 boolean to indicate if PHY uses D/SE0 for TX instead of
+ *                     Dp/Dn
  */
-void usbdev_init(usbdev_ctx_t *ctx, bool pinflip, bool diff_rx, bool diff_tx);
+void usbdev_init(usbdev_ctx_t *ctx, bool pinflip, bool diff_rx,
+                 bool tx_use_d_se0);
 
 /**
  * Force usbdev to output suspend state for testing purposes
diff --git a/sw/device/tests/usbdev_test.c b/sw/device/tests/usbdev_test.c
index ab10a59..4d48502 100644
--- a/sw/device/tests/usbdev_test.c
+++ b/sw/device/tests/usbdev_test.c
@@ -109,7 +109,7 @@
   // simulation has finished all of the printing, which takes a while
   // if `--trace` was passed in.
   usbdev_init(&usbdev, /* pinflip= */ false, /* rx_diff= */ false,
-              /* tx_diff= */ false);
+              /* tx_use_d_se0= */ false);
   usb_controlep_init(&usbdev_control, &usbdev, 0, config_descriptors,
                      sizeof(config_descriptors));
   while (usbdev_control.device_state != kUsbDeviceConfigured) {
diff --git a/util/topgen/templates/chiplevel.sv.tpl b/util/topgen/templates/chiplevel.sv.tpl
index 49376a3..e568e0a 100644
--- a/util/topgen/templates/chiplevel.sv.tpl
+++ b/util/topgen/templates/chiplevel.sv.tpl
@@ -140,10 +140,8 @@
     dft_strap0_idx:    Dft0PadIdx,
     dft_strap1_idx:    Dft1PadIdx,
     // TODO: check whether there is a better way to pass these USB-specific params
-    usb_dp_idx:        DioUsbdevDp,
-    usb_dn_idx:        DioUsbdevDn,
-    usb_dp_pullup_idx: DioUsbdevDpPullup,
-    usb_dn_pullup_idx: DioUsbdevDnPullup,
+    usb_dp_idx:        DioUsbdevUsbDp,
+    usb_dn_idx:        DioUsbdevUsbDn,
     usb_sense_idx:     MioInUsbdevSense,
     // Pad types for attribute WARL behavior
     dio_pad_type: {
@@ -350,54 +348,39 @@
 ## USB for CW305                                                 ##
 ###################################################################
 % if target["name"] == "cw305":
+  logic usb_dp_pullup_en;
+  logic usb_dn_pullup_en;
+  logic usb_rx_d;
+  logic usb_tx_d;
+  logic usb_tx_se0;
+  logic usb_tx_use_d_se0;
+  logic usb_suspend;
+  logic usb_rx_enable;
+
   // Connect the DP pad
-  assign dio_in[DioUsbdevDp] = manual_in_usb_p;
-  assign manual_out_usb_p = dio_out[DioUsbdevDp];
-  assign manual_oe_usb_p = dio_oe[DioUsbdevDp];
-  assign manual_attr_usb_p = dio_attr[DioUsbdevDp];
+  assign dio_in[DioUsbdevUsbDp] = manual_in_usb_p;
+  assign manual_out_usb_p = dio_out[DioUsbdevUsbDp];
+  assign manual_oe_usb_p = dio_oe[DioUsbdevUsbDp];
+  assign manual_attr_usb_p = dio_attr[DioUsbdevUsbDp];
 
   // Connect the DN pad
-  assign dio_in[DioUsbdevDn] = manual_in_usb_n;
-  assign manual_out_usb_n = dio_out[DioUsbdevDn];
-  assign manual_oe_usb_n = dio_oe[DioUsbdevDn];
-  assign manual_attr_usb_n = dio_attr[DioUsbdevDn];
+  assign dio_in[DioUsbdevUsbDn] = manual_in_usb_n;
+  assign manual_out_usb_n = dio_out[DioUsbdevUsbDn];
+  assign manual_oe_usb_n = dio_oe[DioUsbdevUsbDn];
+  assign manual_attr_usb_n = dio_attr[DioUsbdevUsbDn];
 
   // Connect DN pullup
-  assign dio_in[DioUsbdevDnPullup] = manual_in_io_usb_dnpullup0;
-  assign manual_out_io_usb_dnpullup0 = dio_out[DioUsbdevDnPullup];
-  assign manual_oe_io_usb_dnpullup0 = dio_oe[DioUsbdevDnPullup];
-  assign manual_attr_io_dnpullup0 = dio_attr[DioUsbdevDnPullup];
+  assign manual_out_io_usb_dnpullup0 = usb_dn_pullup_en;
+  assign manual_oe_io_usb_dnpullup0 = 1'b1;
+  assign manual_attr_io_dnpullup0 = '0;
 
   // Connect DP pullup
-  assign dio_in[DioUsbdevDpPullup] = manual_in_io_usb_dppullup0;
-  assign manual_out_io_usb_dppullup0 = dio_out[DioUsbdevDpPullup];
-  assign manual_oe_io_usb_dppullup0 = dio_oe[DioUsbdevDpPullup];
-  assign manual_attr_io_dppullup0 = dio_attr[DioUsbdevDpPullup];
+  assign manual_out_io_usb_dppullup0 = usb_dp_pullup_en;
+  assign manual_oe_io_usb_dppullup0 = 1'b1;
+  assign manual_attr_io_dppullup0 = '0;
 
   // Tie-off unused signals
-  assign dio_in[DioUsbdevSe0] = 1'b0;
-  assign dio_in[DioUsbdevTxModeSe] = 1'b0;
-  assign dio_in[DioUsbdevSuspend] = 1'b0;
-
-  logic unused_usb_sigs;
-  assign unused_usb_sigs = ^{
-    // SE0
-    dio_out[DioUsbdevSe0],
-    dio_oe[DioUsbdevSe0],
-    dio_attr[DioUsbdevSe0],
-    // TX Mode
-    dio_out[DioUsbdevTxModeSe],
-    dio_oe[DioUsbdevTxModeSe],
-    dio_attr[DioUsbdevTxModeSe],
-    // Suspend
-    dio_out[DioUsbdevSuspend],
-    dio_oe[DioUsbdevSuspend],
-    dio_attr[DioUsbdevSuspend],
-    // D is used as an input only
-    dio_out[DioUsbdevD],
-    dio_oe[DioUsbdevD],
-    dio_attr[DioUsbdevD]
-  };
+  assign usb_rx_d = 1'b0;
 
 % endif
 ###################################################################
@@ -407,77 +390,61 @@
   // TODO: generalize this USB mux code and align with other tops.
 
   // Only use the UPHY on CW310, which does not support pin flipping.
+  logic usb_dp_pullup_en;
+  logic usb_dn_pullup_en;
+  logic usb_rx_d;
+  logic usb_tx_d;
+  logic usb_tx_se0;
+  logic usb_suspend;
+  logic usb_rx_enable;
 
-  // DioUsbdevDn
+  // DioUsbdevUsbDn
   assign manual_attr_io_usb_dn_tx = '0;
-  assign manual_out_io_usb_dn_tx = dio_out[DioUsbdevDn];
-  assign manual_oe_io_usb_dn_tx = dio_oe[DioUsbdevDn];
-  assign dio_in[DioUsbdevDn] = manual_in_io_usb_dn_rx;
-  // DioUsbdevDp
+  assign manual_out_io_usb_dn_tx = dio_out[DioUsbdevUsbDn];
+  assign manual_oe_io_usb_dn_tx = 1'b1;
+  assign dio_in[DioUsbdevUsbDn] = manual_in_io_usb_dn_rx;
+  // DioUsbdevUsbDp
   assign manual_attr_io_usb_dp_tx = '0;
-  assign manual_out_io_usb_dp_tx = dio_out[DioUsbdevDp];
-  assign manual_oe_io_usb_dp_tx = dio_oe[DioUsbdevDp];
-  assign dio_in[DioUsbdevDp] = manual_in_io_usb_dp_rx;
+  assign manual_out_io_usb_dp_tx = dio_out[DioUsbdevUsbDp];
+  assign manual_oe_io_usb_dp_tx = 1'b1;
+  assign dio_in[DioUsbdevUsbDp] = manual_in_io_usb_dp_rx;
 
   assign manual_attr_io_usb_oe_n = '0;
-  assign manual_out_io_usb_oe_n = ~dio_oe[DioUsbdevDp];
+  assign manual_out_io_usb_oe_n = ~dio_oe[DioUsbdevUsbDp];
   assign manual_oe_io_usb_oe_n = 1'b1;
 
-  logic unused_in_io_usb_oe_n;
-  assign unused_in_io_usb_oe_n = manual_in_io_usb_oe_n;
-
   // DioUsbdevD
   assign manual_attr_io_usb_d_rx = '0;
-  assign dio_in[DioUsbdevD] = manual_in_io_usb_d_rx;
+  assign usb_rx_d = manual_in_io_usb_d_rx;
 
-  // DioUsbdevDpPullup
+  // Pull-up / soft connect pin
   assign manual_attr_io_usb_connect = '0;
-  assign manual_out_io_usb_connect = dio_out[DioUsbdevDpPullup] &
-                                     dio_oe[DioUsbdevDpPullup];
+  assign manual_out_io_usb_connect = usb_dp_pullup_en;
   assign manual_oe_io_usb_connect = 1'b1;
-  assign dio_in[DioUsbdevDpPullup] = manual_in_io_usb_connect;
 
   // Set SPD to full-speed
   assign manual_out_io_usb_speed = 1'b1;
   assign manual_oe_io_usb_speed = 1'b1;
 
-  logic unused_in_io_usb_speed;
-  assign unused_in_io_usb_speed = manual_in_io_usb_speed;
-
   // TUSB1106 low-power mode
-  assign manual_out_io_usb_suspend = dio_out[DioUsbdevSuspend];
+  assign manual_out_io_usb_suspend = usb_suspend;
   assign manual_oe_io_usb_suspend = 1'b1;
-  assign dio_in[DioUsbdevSuspend] = manual_in_io_usb_suspend;
-
-  // Tie-off unused signals
-  assign dio_in[DioUsbdevDnPullup] = 1'b0;
-  assign dio_in[DioUsbdevSe0] = 1'b0;
-  assign dio_in[DioUsbdevTxModeSe] = 1'b0;
 
   logic unused_usb_sigs;
   assign unused_usb_sigs = ^{
-    // DN pull-up
-    dio_out[DioUsbdevDnPullup],
-    dio_oe[DioUsbdevDnPullup],
-    dio_attr[DioUsbdevDnPullup],
-    // SE0
-    dio_out[DioUsbdevSe0],
-    dio_oe[DioUsbdevSe0],
-    dio_attr[DioUsbdevSe0],
-    // TX Mode
-    dio_out[DioUsbdevTxModeSe],
-    dio_oe[DioUsbdevTxModeSe],
-    dio_attr[DioUsbdevTxModeSe],
-    // Suspend
-    dio_oe[DioUsbdevSuspend],
-    dio_attr[DioUsbdevSuspend],
-    // D is used as an input only
-    dio_out[DioUsbdevD],
-    dio_oe[DioUsbdevD],
-    dio_attr[DioUsbdevD],
+    usb_dn_pullup_en,
+    usb_tx_d,
+    usb_tx_se0,
+    usb_rx_enable,
+    manual_in_io_usb_connect,
+    manual_in_io_usb_oe_n,
+    manual_in_io_usb_speed,
+    manual_in_io_usb_suspend,
     // DP and DN are broken out into multiple unidirectional pins
-    dio_attr[DioUsbdevDp],
-    dio_attr[DioUsbdevDn]
+    dio_oe[DioUsbdevUsbDp],
+    dio_oe[DioUsbdevUsbDn],
+    dio_attr[DioUsbdevUsbDp],
+    dio_attr[DioUsbdevUsbDn]
   };
 
 % endif
@@ -508,55 +475,62 @@
   // Outputs always drive and just copy the value
   // Let them go to the normal place too because it won't do any harm
   // and it simplifies the changes needed
+  logic usb_dp_pullup_en;
+  logic usb_dn_pullup_en;
+  logic usb_rx_d;
+  logic usb_tx_d;
+  logic usb_tx_se0;
+  logic usb_tx_use_d_se0;
+  logic usb_suspend;
+  logic usb_rx_enable;
 
-  // The output enable for IO_USB_DNPULLUP0 is used to decide whether we need to undo the swapping.
+  // The value for IO_USB_DNPULLUP0 is used to decide whether we need to undo the swapping.
   logic undo_swap;
-  assign undo_swap = dio_oe[DioUsbdevDnPullup];
+  assign undo_swap = usb_dn_pullup_en;
 
   // GPIO[2] = Switch 2 on board is used to select using the UPHY
   // Keep GPIO[1] for selecting differential in sw
   logic use_uphy;
   assign use_uphy = mio_in[MioPadIoa2];
 
-  // DioUsbdevDn
+  // DioUsbdevUsbDn
   assign manual_attr_usb_n = '0;
   assign manual_attr_io_uphy_dn_tx = '0;
 
   assign manual_out_io_uphy_dn_tx = manual_out_usb_n;
-  assign manual_out_usb_n = undo_swap ? dio_out[DioUsbdevDp] :
-                                        dio_out[DioUsbdevDn];
+  assign manual_out_usb_n = undo_swap ? dio_out[DioUsbdevUsbDp] :
+                                        dio_out[DioUsbdevUsbDn];
 
   assign manual_oe_io_uphy_dn_tx = manual_oe_usb_n;
-  assign manual_oe_usb_n = undo_swap ? dio_oe[DioUsbdevDp] :
-                                       dio_oe[DioUsbdevDn];
+  assign manual_oe_usb_n = undo_swap ? dio_oe[DioUsbdevUsbDp] :
+                                       dio_oe[DioUsbdevUsbDn];
 
-  assign dio_in[DioUsbdevDn] = use_uphy ?
-                               (undo_swap ? manual_in_io_uphy_dp_rx :
-                                            manual_in_io_uphy_dn_rx) :
-                               (undo_swap ? manual_in_usb_p :
-                                            manual_in_usb_n);
-  // DioUsbdevDp
+  assign dio_in[DioUsbdevUsbDn] = use_uphy ?
+                                  (undo_swap ? manual_in_io_uphy_dp_rx :
+                                               manual_in_io_uphy_dn_rx) :
+                                  (undo_swap ? manual_in_usb_p :
+                                               manual_in_usb_n);
+  // DioUsbdevUsbDp
   assign manual_attr_usb_p = '0;
   assign manual_attr_io_uphy_dp_tx = '0;
 
   assign manual_out_io_uphy_dp_tx = manual_out_usb_p;
-  assign manual_out_usb_p = undo_swap ? dio_out[DioUsbdevDn] :
-                                       dio_out[DioUsbdevDp];
+  assign manual_out_usb_p = undo_swap ? dio_out[DioUsbdevUsbDn] :
+                                        dio_out[DioUsbdevUsbDp];
 
   assign manual_oe_io_uphy_dp_tx = manual_oe_usb_p;
-  assign manual_oe_usb_p = undo_swap ? dio_oe[DioUsbdevDn] :
-                                       dio_oe[DioUsbdevDp];
-  assign dio_in[DioUsbdevDp] = use_uphy ?
-                               (undo_swap ? manual_in_io_uphy_dn_rx :
-                                            manual_in_io_uphy_dp_rx) :
-                               (undo_swap ? manual_in_usb_n :
-                                            manual_in_usb_p);
-  // DioUsbdevD
+  assign manual_oe_usb_p = undo_swap ? dio_oe[DioUsbdevUsbDn] :
+                                       dio_oe[DioUsbdevUsbDp];
+  assign dio_in[DioUsbdevUsbDp] = use_uphy ?
+                                  (undo_swap ? manual_in_io_uphy_dn_rx :
+                                               manual_in_io_uphy_dp_rx) :
+                                  (undo_swap ? manual_in_usb_n :
+                                               manual_in_usb_p);
+  // UsbdevD
   // This is not connected at the moment
   logic unused_out_usb_d;
-  assign unused_out_usb_d = dio_out[DioUsbdevD] ^
-                            dio_oe[DioUsbdevD];
-  assign dio_in[DioUsbdevD] = use_uphy ?
+  assign unused_out_usb_d = usb_tx_d;
+  assign usb_rx_d = use_uphy ?
                               (undo_swap ? ~manual_in_io_uphy_d_rx :
                                             manual_in_io_uphy_d_rx) :
                               // This is not connected at the moment
@@ -564,24 +538,15 @@
   assign manual_out_io_uphy_d_rx = 1'b0;
   assign manual_oe_io_uphy_d_rx = 1'b0;
 
-  // DioUsbdevDnPullup
+  // UsbdevDnPullup
   assign manual_attr_io_usb_dnpullup0 = '0;
-  assign manual_out_io_usb_dnpullup0 = undo_swap ? dio_out[DioUsbdevDpPullup] :
-                                                   dio_out[DioUsbdevDnPullup];
-  assign manual_oe_io_usb_dnpullup0 = undo_swap ? dio_oe[DioUsbdevDpPullup] :
-                                                  dio_oe[DioUsbdevDnPullup];
-  assign dio_in[DioUsbdevDnPullup] = manual_in_io_usb_dnpullup0;
+  assign manual_out_io_usb_dnpullup0 = usb_dn_pullup_en;
+  assign manual_oe_io_usb_dnpullup0 = undo_swap ? usb_dp_pullup_en : usb_dn_pullup_en;
 
   // DioUsbdevDpPullup
   assign manual_attr_io_usb_dppullup0 = '0;
-  assign manual_out_io_usb_dppullup0 = undo_swap ? dio_out[DioUsbdevDnPullup] :
-                                                   dio_out[DioUsbdevDpPullup];
-  assign manual_oe_io_usb_dppullup0 = undo_swap ? dio_oe[DioUsbdevDnPullup] :
-                                                  dio_oe[DioUsbdevDpPullup];
-  assign dio_in[DioUsbdevDpPullup] = manual_in_io_usb_dppullup0;
-
-  // DioUsbdevRxEnable
-  assign dio_in[DioUsbdevRxEnable] = 1'b0;
+  assign manual_out_io_usb_dppullup0 = usb_dp_pullup_en;
+  assign manual_oe_io_usb_dppullup0 = undo_swap ? usb_dn_pullup_en : usb_dp_pullup_en;
 
   // Additional outputs for uphy
   assign manual_oe_io_uphy_dppullup = 1'b1;
@@ -1014,25 +979,23 @@
 
   // Connect the D+ pad
   // Note that we use two pads in parallel for the D+ channel to meet electrical specifications.
-  assign dio_in[DioUsbdevDp] = manual_in_usb_p;
-  assign manual_out_usb_p = dio_out[DioUsbdevDp];
-  assign manual_oe_usb_p = dio_oe[DioUsbdevDp];
-  assign manual_attr_usb_p = dio_attr[DioUsbdevDp];
+  assign dio_in[DioUsbdevUsbDp] = manual_in_usb_p;
+  assign manual_out_usb_p = dio_out[DioUsbdevUsbDp];
+  assign manual_oe_usb_p = dio_oe[DioUsbdevUsbDp];
+  assign manual_attr_usb_p = dio_attr[DioUsbdevUsbDp];
 
   // Connect the D- pads
   // Note that we use two pads in parallel for the D- channel to meet electrical specifications.
-  assign dio_in[DioUsbdevDn] = manual_in_usb_n;
-  assign manual_out_usb_n = dio_out[DioUsbdevDn];
-  assign manual_oe_usb_n = dio_oe[DioUsbdevDn];
-  assign manual_attr_usb_n = dio_attr[DioUsbdevDn];
+  assign dio_in[DioUsbdevUsbDn] = manual_in_usb_n;
+  assign manual_out_usb_n = dio_out[DioUsbdevUsbDn];
+  assign manual_oe_usb_n = dio_oe[DioUsbdevUsbDn];
+  assign manual_attr_usb_n = dio_attr[DioUsbdevUsbDn];
 
-  // Pullups
-  logic usb_pullup_p_en, usb_pullup_n_en;
-  assign usb_pullup_p_en = dio_out[DioUsbdevDpPullup];
-  assign usb_pullup_n_en = dio_out[DioUsbdevDnPullup];
+  logic usb_rx_d;
 
+  // Pullups and differential receiver enable
+  logic usb_dp_pullup_en, usb_dn_pullup_en;
   logic usb_rx_enable;
-  assign usb_rx_enable = dio_out[DioUsbdevRxEnable];
 
   prim_usb_diff_rx #(
     .CalibW(ast_pkg::UsbCalibWidth)
@@ -1041,49 +1004,13 @@
     .input_ni          ( USB_N                 ),
     .input_en_i        ( usb_rx_enable         ),
     .core_pok_h_i      ( ast_pwst_h.aon_pok    ),
-    .pullup_p_en_i     ( usb_pullup_p_en       ),
-    .pullup_n_en_i     ( usb_pullup_n_en       ),
+    .pullup_p_en_i     ( usb_dp_pullup_en      ),
+    .pullup_n_en_i     ( usb_dn_pullup_en      ),
     .calibration_i     ( usb_io_pu_cal         ),
     .usb_diff_rx_obs_o ( usb_diff_rx_obs       ),
-    .input_o           ( dio_in[DioUsbdevD]    )
+    .input_o           ( usb_rx_d              )
   );
 
-  // Tie-off unused signals
-  assign dio_in[DioUsbdevSe0] = 1'b0;
-  assign dio_in[DioUsbdevDpPullup] = 1'b0;
-  assign dio_in[DioUsbdevDnPullup] = 1'b0;
-  assign dio_in[DioUsbdevTxModeSe] = 1'b0;
-  assign dio_in[DioUsbdevSuspend] = 1'b0;
-  assign dio_in[DioUsbdevRxEnable] = 1'b0;
-
-  logic unused_usb_sigs;
-  assign unused_usb_sigs = ^{
-    // SE0
-    dio_out[DioUsbdevSe0],
-    dio_oe[DioUsbdevSe0],
-    dio_attr[DioUsbdevSe0],
-    // TX Mode
-    dio_out[DioUsbdevTxModeSe],
-    dio_oe[DioUsbdevTxModeSe],
-    dio_attr[DioUsbdevTxModeSe],
-    // Suspend
-    dio_out[DioUsbdevSuspend],
-    dio_oe[DioUsbdevSuspend],
-    dio_attr[DioUsbdevSuspend],
-    // Rx enable
-    dio_oe[DioUsbdevRxEnable],
-    dio_attr[DioUsbdevRxEnable],
-    // D is used as an input only
-    dio_out[DioUsbdevD],
-    dio_oe[DioUsbdevD],
-    dio_attr[DioUsbdevD],
-    // Pullup/down
-    dio_oe[DioUsbdevDpPullup],
-    dio_oe[DioUsbdevDnPullup],
-    dio_attr[DioUsbdevDpPullup],
-    dio_attr[DioUsbdevDnPullup]
-  };
-
   //////////////////////
   // Top-level design //
   //////////////////////
@@ -1108,6 +1035,14 @@
     .sensor_ctrl_ast_alert_req_i  ( ast_alert_req              ),
     .sensor_ctrl_ast_alert_rsp_o  ( ast_alert_rsp              ),
     .sensor_ctrl_ast_status_i     ( ast_pwst.io_pok            ),
+    .usb_dp_pullup_en_o           ( usb_dp_pullup_en           ),
+    .usb_dn_pullup_en_o           ( usb_dn_pullup_en           ),
+    .usbdev_usb_rx_d_i            ( usb_rx_d                   ),
+    .usbdev_usb_tx_d_o            (                            ),
+    .usbdev_usb_tx_se0_o          (                            ),
+    .usbdev_usb_tx_use_d_se0_o    (                            ),
+    .usbdev_usb_suspend_o         (                            ),
+    .usbdev_usb_rx_enable_o       ( usb_rx_enable              ),
     .usbdev_usb_ref_val_o         ( usb_ref_val                ),
     .usbdev_usb_ref_pulse_o       ( usb_ref_pulse              ),
     .ast_tl_req_o                 ( base_ast_bus               ),
@@ -1264,6 +1199,14 @@
     .sck_monitor_o                ( sck_monitor           ),
     .pwrmgr_ast_req_o             ( base_ast_pwr          ),
     .pwrmgr_ast_rsp_i             ( ast_base_pwr          ),
+    .usb_dp_pullup_en_o           ( usb_dp_pullup_en      ),
+    .usb_dn_pullup_en_o           ( usb_dn_pullup_en      ),
+    .usbdev_usb_rx_d_i            ( usb_rx_d              ),
+    .usbdev_usb_tx_d_o            ( usb_tx_d              ),
+    .usbdev_usb_tx_se0_o          ( usb_tx_se0            ),
+    .usbdev_usb_tx_use_d_se0_o    ( usb_tx_use_d_se0      ),
+    .usbdev_usb_suspend_o         ( usb_suspend           ),
+    .usbdev_usb_rx_enable_o       ( usb_rx_enable         ),
     .usbdev_usb_ref_val_o         ( usb_ref_val           ),
     .usbdev_usb_ref_pulse_o       ( usb_ref_pulse         ),
     .ast_edn_req_i                ( ast_edn_edn_req       ),