[top] Generate reset request headers

Signed-off-by: Timothy Chen <timothytim@google.com>
diff --git a/hw/top_earlgrey/data/top_earlgrey.h.tpl b/hw/top_earlgrey/data/top_earlgrey.h.tpl
index a7c87f2..07a90ef 100644
--- a/hw/top_earlgrey/data/top_earlgrey.h.tpl
+++ b/hw/top_earlgrey/data/top_earlgrey.h.tpl
@@ -154,6 +154,12 @@
  */
 ${helper.rstmgr_sw_rsts.render()}
 
+/**
+ * Power Manager Reset Request Signals
+ */
+${helper.pwrmgr_reset_requests.render()}
+
+
 // Header Extern Guard
 #ifdef __cplusplus
 }  // extern "C"
diff --git a/hw/top_earlgrey/sw/autogen/top_earlgrey.h b/hw/top_earlgrey/sw/autogen/top_earlgrey.h
index 0fd66fa..2bfdcf1 100644
--- a/hw/top_earlgrey/sw/autogen/top_earlgrey.h
+++ b/hw/top_earlgrey/sw/autogen/top_earlgrey.h
@@ -800,6 +800,15 @@
   kTopEarlgreyResetManagerSwResetsLast = 1, /**< \internal Last valid rstmgr software reset request */
 } top_earlgrey_reset_manager_sw_resets_t;
 
+/**
+ * Power Manager Reset Request Signals
+ */
+typedef enum top_earlgrey_power_manager_reset_requests {
+  kTopEarlgreyPowerManagerResetRequestsNmiGenNmiRstReq = 0, /**<  */
+  kTopEarlgreyPowerManagerResetRequestsLast = 0, /**< \internal Last valid pwrmgr reset_request signal */
+} top_earlgrey_power_manager_reset_requests_t;
+
+
 // Header Extern Guard
 #ifdef __cplusplus
 }  // extern "C"
diff --git a/util/topgen/c.py b/util/topgen/c.py
index 0884176..070d218 100644
--- a/util/topgen/c.py
+++ b/util/topgen/c.py
@@ -149,6 +149,7 @@
         self._init_pinmux_mapping()
         self._init_pwrmgr_wakeups()
         self._init_rstmgr_sw_rsts()
+        self._init_pwrmgr_reset_requests()
 
     def modules(self):
         return [(m["name"],
@@ -274,7 +275,7 @@
                     name = Name.from_snake_case(
                         alert["name"]) + Name([str(i)])
                     irq_id = alerts.add_constant(name, docstring="{} {}".format(
-                                                         alert["name"], i))
+                        alert["name"], i))
                     source_name = source_name_map[alert["module_name"]]
                     alert_mapping.add_entry(irq_id, source_name)
             else:
@@ -321,7 +322,7 @@
             else:
                 peripheral_in.add_constant(Name.from_snake_case(
                     signal["name"]),
-                                           docstring=signal["name"])
+                    docstring=signal["name"])
         peripheral_in.add_last_constant("Last valid peripheral input")
 
         # Pinmux Input Selects
@@ -392,3 +393,14 @@
         enum.add_last_constant("Last valid rstmgr software reset request")
 
         self.rstmgr_sw_rsts = enum
+
+    def _init_pwrmgr_reset_requests(self):
+        enum = CEnum(self._top_name + Name(["power", "manager", "reset", "requests"]))
+
+        for signal in self.top["reset_requests"]:
+            enum.add_constant(Name.from_snake_case(signal["module"]) +
+                              Name.from_snake_case(signal["name"]))
+
+        enum.add_last_constant("Last valid pwrmgr reset_request signal")
+
+        self.pwrmgr_reset_requests = enum