diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-omap2/Makefile | 1 | ||||
-rw-r--r-- | arch/arm/mach-omap2/board-generic.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-omap2/prminst44xx.c | 20 |
3 files changed, 18 insertions, 4 deletions
diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile index 44ec4d1bf251..522119748edb 100644 --- a/arch/arm/mach-omap2/Makefile +++ b/arch/arm/mach-omap2/Makefile | |||
@@ -63,6 +63,7 @@ obj-$(CONFIG_SOC_AM33XX) += am33xx-restart.o | |||
63 | obj-$(CONFIG_ARCH_OMAP3) += omap3-restart.o | 63 | obj-$(CONFIG_ARCH_OMAP3) += omap3-restart.o |
64 | obj-$(CONFIG_ARCH_OMAP4) += omap4-restart.o | 64 | obj-$(CONFIG_ARCH_OMAP4) += omap4-restart.o |
65 | obj-$(CONFIG_SOC_OMAP5) += omap4-restart.o | 65 | obj-$(CONFIG_SOC_OMAP5) += omap4-restart.o |
66 | obj-$(CONFIG_SOC_DRA7XX) += omap4-restart.o | ||
66 | 67 | ||
67 | # Pin multiplexing | 68 | # Pin multiplexing |
68 | obj-$(CONFIG_SOC_OMAP2420) += mux2420.o | 69 | obj-$(CONFIG_SOC_OMAP2420) += mux2420.o |
diff --git a/arch/arm/mach-omap2/board-generic.c b/arch/arm/mach-omap2/board-generic.c index b89e55ba2c13..39c78387ddec 100644 --- a/arch/arm/mach-omap2/board-generic.c +++ b/arch/arm/mach-omap2/board-generic.c | |||
@@ -238,5 +238,6 @@ DT_MACHINE_START(DRA7XX_DT, "Generic DRA7XX (Flattened Device Tree)") | |||
238 | .init_machine = omap_generic_init, | 238 | .init_machine = omap_generic_init, |
239 | .init_time = omap5_realtime_timer_init, | 239 | .init_time = omap5_realtime_timer_init, |
240 | .dt_compat = dra7xx_boards_compat, | 240 | .dt_compat = dra7xx_boards_compat, |
241 | .restart = omap44xx_restart, | ||
241 | MACHINE_END | 242 | MACHINE_END |
242 | #endif | 243 | #endif |
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 | ||
28 | static void __iomem *_prm_bases[OMAP4_MAX_PRCM_PARTITIONS]; | 31 | static 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, | |||
165 | void omap4_prminst_global_warm_sw_reset(void) | 168 | void 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, |