arm: imx-common: init: rework wdog settings for imx6/imx7
authorAdrian Alonso <aalonso@freescale.com>
Wed, 2 Sep 2015 18:54:21 +0000 (13:54 -0500)
committerStefano Babic <sbabic@denx.de>
Sun, 13 Sep 2015 08:11:54 +0000 (10:11 +0200)
Rework imx_set_wdog_powerdown to be reused by imx6 and imx7

Signed-off-by: Adrian Alonso <aalonso@freescale.com>
arch/arm/cpu/armv7/mx6/soc.c
arch/arm/imx-common/init.c
arch/arm/include/asm/imx-common/sys_proto.h

index 06f63daedc4f5cb0a09c21a2e38edc6a4c864a25..282302b1fc15a1224db191608106dec7f8f59596 100644 (file)
@@ -250,20 +250,6 @@ static int set_ldo_voltage(enum ldo_reg ldo, u32 mv)
        return 0;
 }
 
-static void imx_set_wdog_powerdown(bool enable)
-{
-       struct wdog_regs *wdog1 = (struct wdog_regs *)WDOG1_BASE_ADDR;
-       struct wdog_regs *wdog2 = (struct wdog_regs *)WDOG2_BASE_ADDR;
-       struct wdog_regs *wdog3 = (struct wdog_regs *)WDOG3_BASE_ADDR;
-
-       if (is_cpu_type(MXC_CPU_MX6SX) || is_cpu_type(MXC_CPU_MX6UL))
-               writew(enable, &wdog3->wmcr);
-
-       /* Write to the PDE (Power Down Enable) bit */
-       writew(enable, &wdog1->wmcr);
-       writew(enable, &wdog2->wmcr);
-}
-
 static void set_ahb_rate(u32 val)
 {
        struct mxc_ccm_reg *mxc_ccm = (struct mxc_ccm_reg *)CCM_BASE_ADDR;
index f1d43142a24c75af0af08f48cc9a2da9dbf0f345..56d501044991626fc7eb9a04cac0dab1f0d37a92 100644 (file)
@@ -66,6 +66,27 @@ void init_aips(void)
        }
 }
 
+void imx_set_wdog_powerdown(bool enable)
+{
+       struct wdog_regs *wdog1 = (struct wdog_regs *)WDOG1_BASE_ADDR;
+       struct wdog_regs *wdog2 = (struct wdog_regs *)WDOG2_BASE_ADDR;
+       struct wdog_regs *wdog3 = (struct wdog_regs *)WDOG3_BASE_ADDR;
+#ifdef CONFIG_MX7D
+       struct wdog_regs *wdog4 = (struct wdog_regs *)WDOG4_BASE_ADDR;
+#endif
+
+       /* Write to the PDE (Power Down Enable) bit */
+       writew(enable, &wdog1->wmcr);
+       writew(enable, &wdog2->wmcr);
+
+       if (is_cpu_type(MXC_CPU_MX6SX) || is_cpu_type(MXC_CPU_MX6UL) ||
+                       is_soc_type(MXC_SOC_MX7))
+               writew(enable, &wdog3->wmcr);
+#ifdef CONFIG_MX7D
+       writew(enable, &wdog4->wmcr);
+#endif
+}
+
 #define SRC_SCR_WARM_RESET_ENABLE      0
 
 void init_src(void)
index c0a5b2cdb9968746fcb56fb5dc412baadf3c4543..5673fb4bc1dcda24739fdc42b5b5246430dbb831 100644 (file)
@@ -37,6 +37,7 @@ void set_chipselect_size(int const);
 
 void init_aips(void);
 void init_src(void);
+void imx_set_wdog_powerdown(bool enable);
 
 /*
  * Initializes on-chip ethernet controllers.