|
@@ -155,3 +155,22 @@ int omap4_prminst_deassert_hardreset(u8 shift, u8 part, s16 inst,
|
|
|
|
|
|
return (c == MAX_MODULE_HARDRESET_WAIT) ? -EBUSY : 0;
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+void omap4_prminst_global_warm_sw_reset(void)
|
|
|
+{
|
|
|
+ u32 v;
|
|
|
+
|
|
|
+ v = omap4_prminst_read_inst_reg(OMAP4430_PRM_PARTITION,
|
|
|
+ OMAP4430_PRM_DEVICE_INST,
|
|
|
+ OMAP4_PRM_RSTCTRL_OFFSET);
|
|
|
+ v |= OMAP4430_RST_GLOBAL_WARM_SW_MASK;
|
|
|
+ omap4_prminst_write_inst_reg(v, OMAP4430_PRM_PARTITION,
|
|
|
+ OMAP4430_PRM_DEVICE_INST,
|
|
|
+ OMAP4_PRM_RSTCTRL_OFFSET);
|
|
|
+
|
|
|
+ /* OCP barrier */
|
|
|
+ v = omap4_prminst_read_inst_reg(OMAP4430_PRM_PARTITION,
|
|
|
+ OMAP4430_PRM_DEVICE_INST,
|
|
|
+ OMAP4_PRM_RSTCTRL_OFFSET);
|
|
|
+}
|