|
@@ -61,3 +61,41 @@ static struct prm_reset_src_map omap44xx_prm_reset_src_map[] = {
|
|
|
{ OMAP4430_GLOBAL_COLD_RST_SHIFT,
|
|
|
OMAP_GLOBAL_COLD_RST_SRC_ID_SHIFT },
|
|
|
{ OMAP4430_MPU_SECURITY_VIOL_RST_SHIFT,
|
|
|
+ OMAP_SECU_VIOL_RST_SRC_ID_SHIFT },
|
|
|
+ { OMAP4430_MPU_WDT_RST_SHIFT, OMAP_MPU_WD_RST_SRC_ID_SHIFT },
|
|
|
+ { OMAP4430_SECURE_WDT_RST_SHIFT, OMAP_SECU_WD_RST_SRC_ID_SHIFT },
|
|
|
+ { OMAP4430_EXTERNAL_WARM_RST_SHIFT, OMAP_EXTWARM_RST_SRC_ID_SHIFT },
|
|
|
+ { OMAP4430_VDD_MPU_VOLT_MGR_RST_SHIFT,
|
|
|
+ OMAP_VDD_MPU_VM_RST_SRC_ID_SHIFT },
|
|
|
+ { OMAP4430_VDD_IVA_VOLT_MGR_RST_SHIFT,
|
|
|
+ OMAP_VDD_IVA_VM_RST_SRC_ID_SHIFT },
|
|
|
+ { OMAP4430_VDD_CORE_VOLT_MGR_RST_SHIFT,
|
|
|
+ OMAP_VDD_CORE_VM_RST_SRC_ID_SHIFT },
|
|
|
+ { OMAP4430_ICEPICK_RST_SHIFT, OMAP_ICEPICK_RST_SRC_ID_SHIFT },
|
|
|
+ { OMAP4430_C2C_RST_SHIFT, OMAP_C2C_RST_SRC_ID_SHIFT },
|
|
|
+ { -1, -1 },
|
|
|
+};
|
|
|
+
|
|
|
+/* PRM low-level functions */
|
|
|
+
|
|
|
+/* Read a register in a CM/PRM instance in the PRM module */
|
|
|
+u32 omap4_prm_read_inst_reg(s16 inst, u16 reg)
|
|
|
+{
|
|
|
+ return __raw_readl(OMAP44XX_PRM_REGADDR(inst, reg));
|
|
|
+}
|
|
|
+
|
|
|
+/* Write into a register in a CM/PRM instance in the PRM module */
|
|
|
+void omap4_prm_write_inst_reg(u32 val, s16 inst, u16 reg)
|
|
|
+{
|
|
|
+ __raw_writel(val, OMAP44XX_PRM_REGADDR(inst, reg));
|
|
|
+}
|
|
|
+
|
|
|
+/* Read-modify-write a register in a PRM module. Caller must lock */
|
|
|
+u32 omap4_prm_rmw_inst_reg_bits(u32 mask, u32 bits, s16 inst, s16 reg)
|
|
|
+{
|
|
|
+ u32 v;
|
|
|
+
|
|
|
+ v = omap4_prm_read_inst_reg(inst, reg);
|
|
|
+ v &= ~mask;
|
|
|
+ v |= bits;
|
|
|
+ omap4_prm_write_inst_reg(v, inst, reg);
|