aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/prminst44xx.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-omap2/prminst44xx.c')
-rw-r--r--arch/arm/mach-omap2/prminst44xx.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/arch/arm/mach-omap2/prminst44xx.c b/arch/arm/mach-omap2/prminst44xx.c
index c12320c0ae95..6334b96b4097 100644
--- a/arch/arm/mach-omap2/prminst44xx.c
+++ b/arch/arm/mach-omap2/prminst44xx.c
@@ -20,10 +20,13 @@
20#include "common.h" 20#include "common.h"
21#include "prcm-common.h" 21#include "prcm-common.h"
22#include "prm44xx.h" 22#include "prm44xx.h"
23#include "prm54xx.h"
24#include "prm7xx.h"
23#include "prminst44xx.h" 25#include "prminst44xx.h"
24#include "prm-regbits-44xx.h" 26#include "prm-regbits-44xx.h"
25#include "prcm44xx.h" 27#include "prcm44xx.h"
26#include "prcm_mpu44xx.h" 28#include "prcm_mpu44xx.h"
29#include "soc.h"
27 30
28static void __iomem *_prm_bases[OMAP4_MAX_PRCM_PARTITIONS]; 31static void __iomem *_prm_bases[OMAP4_MAX_PRCM_PARTITIONS];
29 32
@@ -165,10 +168,19 @@ int omap4_prminst_deassert_hardreset(u8 shift, u8 part, s16 inst,
165void omap4_prminst_global_warm_sw_reset(void) 168void omap4_prminst_global_warm_sw_reset(void)
166{ 169{
167 u32 v; 170 u32 v;
168 171 s16 dev_inst;
169 v = omap4_prminst_read_inst_reg(OMAP4430_PRM_PARTITION, 172
170 OMAP4430_PRM_DEVICE_INST, 173 if (cpu_is_omap44xx())
171 OMAP4_PRM_RSTCTRL_OFFSET); 174 dev_inst = OMAP4430_PRM_DEVICE_INST;
175 else if (soc_is_omap54xx())
176 dev_inst = OMAP54XX_PRM_DEVICE_INST;
177 else if (soc_is_dra7xx())
178 dev_inst = DRA7XX_PRM_DEVICE_INST;
179 else
180 return;
181
182 v = omap4_prminst_read_inst_reg(OMAP4430_PRM_PARTITION, dev_inst,
183 OMAP4_PRM_RSTCTRL_OFFSET);
172 v |= OMAP4430_RST_GLOBAL_WARM_SW_MASK; 184 v |= OMAP4430_RST_GLOBAL_WARM_SW_MASK;
173 omap4_prminst_write_inst_reg(v, OMAP4430_PRM_PARTITION, 185 omap4_prminst_write_inst_reg(v, OMAP4430_PRM_PARTITION,
174 OMAP4430_PRM_DEVICE_INST, 186 OMAP4430_PRM_DEVICE_INST,