OMAP3: PRCM: Consider UART4 for 3630 chip in prcm_setup_regs
authorGovindraj.R <govindraj.raja@ti.com>
Mon, 27 Sep 2010 14:50:25 +0000 (20:20 +0530)
committerKevin Hilman <khilman@deeprootsystems.com>
Wed, 29 Sep 2010 19:43:00 +0000 (12:43 -0700)
To standarize among other uarts (1 to 3), we shall now:

 - Enable uart4 autodile bit.
 - Enable uart4 wakeup in PER.
 - Allow uart4 to wakeup the MPU.

Signed-off-by: Sergio Aguirre <saaguirre@ti.com>
Signed-off-by: Govindraj.R <govindraj.raja@ti.com>
Acked-by: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
arch/arm/mach-omap2/cm-regbits-34xx.h
arch/arm/mach-omap2/pm34xx.c
arch/arm/mach-omap2/prcm-common.h
arch/arm/mach-omap2/prm-regbits-34xx.h

index fe82b79d5f3b8ac44cfadefd5f658d4a9b4977b0..4f959a7d881c82712557f58f2f0115d358af868a 100644 (file)
 #define OMAP3430_ST_MCBSP2_MASK                                (1 << 0)
 
 /* CM_AUTOIDLE_PER */
+#define OMAP3630_AUTO_UART4_MASK                       (1 << 18)
+#define OMAP3630_AUTO_UART4_SHIFT                      18
 #define OMAP3430_AUTO_GPIO6_MASK                       (1 << 17)
 #define OMAP3430_AUTO_GPIO6_SHIFT                      17
 #define OMAP3430_AUTO_GPIO5_MASK                       (1 << 16)
index d2b940c7215da92213ba7bed3030abdc641afc53..043faaa3f3dcdf2301774d841bd83add4eddb8f2 100644 (file)
@@ -676,6 +676,14 @@ static void __init omap3_d2d_idle(void)
 
 static void __init prcm_setup_regs(void)
 {
+       u32 omap3630_auto_uart4_mask = cpu_is_omap3630() ?
+                                       OMAP3630_AUTO_UART4_MASK : 0;
+       u32 omap3630_en_uart4_mask = cpu_is_omap3630() ?
+                                       OMAP3630_EN_UART4_MASK : 0;
+       u32 omap3630_grpsel_uart4_mask = cpu_is_omap3630() ?
+                                       OMAP3630_GRPSEL_UART4_MASK : 0;
+
+
        /* XXX Reset all wkdeps. This should be done when initializing
         * powerdomains */
        prm_write_mod_reg(0, OMAP3430_IVA2_MOD, PM_WKDEP);
@@ -762,6 +770,7 @@ static void __init prcm_setup_regs(void)
                CM_AUTOIDLE);
 
        cm_write_mod_reg(
+               omap3630_auto_uart4_mask |
                OMAP3430_AUTO_GPIO6_MASK |
                OMAP3430_AUTO_GPIO5_MASK |
                OMAP3430_AUTO_GPIO4_MASK |
@@ -838,14 +847,16 @@ static void __init prcm_setup_regs(void)
                                OMAP3430_DSS_MOD, PM_WKEN);
 
        /* Enable wakeups in PER */
-       prm_write_mod_reg(OMAP3430_EN_GPIO2_MASK | OMAP3430_EN_GPIO3_MASK |
+       prm_write_mod_reg(omap3630_en_uart4_mask |
+                         OMAP3430_EN_GPIO2_MASK | OMAP3430_EN_GPIO3_MASK |
                          OMAP3430_EN_GPIO4_MASK | OMAP3430_EN_GPIO5_MASK |
                          OMAP3430_EN_GPIO6_MASK | OMAP3430_EN_UART3_MASK |
                          OMAP3430_EN_MCBSP2_MASK | OMAP3430_EN_MCBSP3_MASK |
                          OMAP3430_EN_MCBSP4_MASK,
                          OMAP3430_PER_MOD, PM_WKEN);
        /* and allow them to wake up MPU */
-       prm_write_mod_reg(OMAP3430_GRPSEL_GPIO2_MASK |
+       prm_write_mod_reg(omap3630_grpsel_uart4_mask |
+                         OMAP3430_GRPSEL_GPIO2_MASK |
                          OMAP3430_GRPSEL_GPIO3_MASK |
                          OMAP3430_GRPSEL_GPIO4_MASK |
                          OMAP3430_GRPSEL_GPIO5_MASK |
index 86edcf9ada7ca5c8f3be11387f6a980fc82559a4..298a22a754e20a56e428aeaed051cdd7b2b923f7 100644 (file)
 #define OMAP3430_EN_MCBSP2_SHIFT                       0
 
 /* CM_IDLEST_PER, PM_WKST_PER shared bits */
+#define OMAP3630_ST_UART4_SHIFT                                18
+#define OMAP3630_ST_UART4_MASK                         (1 << 18)
 #define OMAP3430_ST_GPIO6_SHIFT                                17
 #define OMAP3430_ST_GPIO6_MASK                         (1 << 17)
 #define OMAP3430_ST_GPIO5_SHIFT                                16
index 7fd6023edf967a6c693a62c8d2bdc19e174266c0..9e63cb743a976a9506e0f431ca6ecd24b4c20fae 100644 (file)
 #define OMAP3430_MEMRETSTATE_MASK                      (1 << 8)
 
 /* PM_MPUGRPSEL_PER, PM_IVA2GRPSEL_PER shared bits */
+#define OMAP3630_GRPSEL_UART4_MASK                     (1 << 18)
 #define OMAP3430_GRPSEL_GPIO6_MASK                     (1 << 17)
 #define OMAP3430_GRPSEL_GPIO5_MASK                     (1 << 16)
 #define OMAP3430_GRPSEL_GPIO4_MASK                     (1 << 15)