]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
ARM: OMAP: DRA7: Reuse the omap44xx_restart and fix the device instance
authorRajendra Nayak <rnayak@ti.com>
Tue, 9 Jul 2013 07:32:15 +0000 (13:02 +0530)
committerPaul Walmsley <paul@pwsan.com>
Fri, 23 Aug 2013 10:28:36 +0000 (04:28 -0600)
The omap44xx_restart used on omap4 and omap5 devices can be reused
on dra7 devices as well. The device instance however is different
across omap5 and dra7 as compared to omap4. So fix this for omap5
as well as dra7.

Signed-off-by: Rajendra Nayak <rnayak@ti.com>
Signed-off-by: R Sricharan <r.sricharan@ti.com>
Signed-off-by: Paul Walmsley <paul@pwsan.com>
arch/arm/mach-omap2/Makefile
arch/arm/mach-omap2/board-generic.c
arch/arm/mach-omap2/prminst44xx.c

index 44ec4d1bf251fbcfed01899ae2957069601b4aef..522119748edb0e84d62ee9dce66e253cca494f7c 100644 (file)
@@ -63,6 +63,7 @@ obj-$(CONFIG_SOC_AM33XX)              += am33xx-restart.o
 obj-$(CONFIG_ARCH_OMAP3)               += omap3-restart.o
 obj-$(CONFIG_ARCH_OMAP4)               += omap4-restart.o
 obj-$(CONFIG_SOC_OMAP5)                        += omap4-restart.o
+obj-$(CONFIG_SOC_DRA7XX)               += omap4-restart.o
 
 # Pin multiplexing
 obj-$(CONFIG_SOC_OMAP2420)             += mux2420.o
index b89e55ba2c13a517a1118992229966d250a07d16..39c78387ddecb1b287ebfe732d7de0f3c62ca4db 100644 (file)
@@ -238,5 +238,6 @@ DT_MACHINE_START(DRA7XX_DT, "Generic DRA7XX (Flattened Device Tree)")
        .init_machine   = omap_generic_init,
        .init_time      = omap5_realtime_timer_init,
        .dt_compat      = dra7xx_boards_compat,
+       .restart        = omap44xx_restart,
 MACHINE_END
 #endif
index c12320c0ae952e46d05a40d50d6d260994ff98d7..6334b96b4097b6977ae29047040bf6990aed06a7 100644 (file)
 #include "common.h"
 #include "prcm-common.h"
 #include "prm44xx.h"
+#include "prm54xx.h"
+#include "prm7xx.h"
 #include "prminst44xx.h"
 #include "prm-regbits-44xx.h"
 #include "prcm44xx.h"
 #include "prcm_mpu44xx.h"
+#include "soc.h"
 
 static void __iomem *_prm_bases[OMAP4_MAX_PRCM_PARTITIONS];
 
@@ -165,10 +168,19 @@ int omap4_prminst_deassert_hardreset(u8 shift, u8 part, s16 inst,
 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);
+       s16 dev_inst;
+
+       if (cpu_is_omap44xx())
+               dev_inst = OMAP4430_PRM_DEVICE_INST;
+       else if (soc_is_omap54xx())
+               dev_inst = OMAP54XX_PRM_DEVICE_INST;
+       else if (soc_is_dra7xx())
+               dev_inst = DRA7XX_PRM_DEVICE_INST;
+       else
+               return;
+
+       v = omap4_prminst_read_inst_reg(OMAP4430_PRM_PARTITION, dev_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,