The DPLL USB can generate higher speed (x2) than the regular ones.
The max multiplication value is then twice the previous value.

Fix both max_mult and max_div with that correct values.

Change the max_div variable type to u16 to allow storing up to 256.

Replace as well the define with the value to avoid
unneeded indirection and provide a better readability.

Remove the defines that become useless.

Signed-off-by: Benoit Cousson <b-cous...@ti.com>
Cc: Paul Walmsley <p...@pwsan.com>
Cc: Rajendra Nayak <rna...@ti.com>
---
 arch/arm/mach-omap2/clock44xx.h         |    7 -------
 arch/arm/mach-omap2/clock44xx_data.c    |   28 ++++++++++++++--------------
 arch/arm/plat-omap/include/plat/clock.h |    2 +-
 3 files changed, 15 insertions(+), 22 deletions(-)

diff --git a/arch/arm/mach-omap2/clock44xx.h b/arch/arm/mach-omap2/clock44xx.h
index 6be1095..7ceb870 100644
--- a/arch/arm/mach-omap2/clock44xx.h
+++ b/arch/arm/mach-omap2/clock44xx.h
@@ -8,13 +8,6 @@
 #ifndef __ARCH_ARM_MACH_OMAP2_CLOCK44XX_H
 #define __ARCH_ARM_MACH_OMAP2_CLOCK44XX_H
 
-/*
- * XXX Missing values for the OMAP4 DPLL_USB
- * XXX Missing min_multiplier values for all OMAP4 DPLLs
- */
-#define OMAP4430_MAX_DPLL_MULT 2047
-#define OMAP4430_MAX_DPLL_DIV  128
-
 int omap4xxx_clk_init(void);
 
 #endif
diff --git a/arch/arm/mach-omap2/clock44xx_data.c 
b/arch/arm/mach-omap2/clock44xx_data.c
index 555044d..8307c9e 100644
--- a/arch/arm/mach-omap2/clock44xx_data.c
+++ b/arch/arm/mach-omap2/clock44xx_data.c
@@ -258,8 +258,8 @@ static struct dpll_data dpll_abe_dd = {
        .enable_mask    = OMAP4430_DPLL_EN_MASK,
        .autoidle_mask  = OMAP4430_AUTO_DPLL_MODE_MASK,
        .idlest_mask    = OMAP4430_ST_DPLL_CLK_MASK,
-       .max_multiplier = OMAP4430_MAX_DPLL_MULT,
-       .max_divider    = OMAP4430_MAX_DPLL_DIV,
+       .max_multiplier = 2047,
+       .max_divider    = 128,
        .min_divider    = 1,
 };
 
@@ -434,8 +434,8 @@ static struct dpll_data dpll_core_dd = {
        .enable_mask    = OMAP4430_DPLL_EN_MASK,
        .autoidle_mask  = OMAP4430_AUTO_DPLL_MODE_MASK,
        .idlest_mask    = OMAP4430_ST_DPLL_CLK_MASK,
-       .max_multiplier = OMAP4430_MAX_DPLL_MULT,
-       .max_divider    = OMAP4430_MAX_DPLL_DIV,
+       .max_multiplier = 2047,
+       .max_divider    = 128,
        .min_divider    = 1,
 };
 
@@ -672,8 +672,8 @@ static struct dpll_data dpll_iva_dd = {
        .enable_mask    = OMAP4430_DPLL_EN_MASK,
        .autoidle_mask  = OMAP4430_AUTO_DPLL_MODE_MASK,
        .idlest_mask    = OMAP4430_ST_DPLL_CLK_MASK,
-       .max_multiplier = OMAP4430_MAX_DPLL_MULT,
-       .max_divider    = OMAP4430_MAX_DPLL_DIV,
+       .max_multiplier = 2047,
+       .max_divider    = 128,
        .min_divider    = 1,
 };
 
@@ -740,8 +740,8 @@ static struct dpll_data dpll_mpu_dd = {
        .enable_mask    = OMAP4430_DPLL_EN_MASK,
        .autoidle_mask  = OMAP4430_AUTO_DPLL_MODE_MASK,
        .idlest_mask    = OMAP4430_ST_DPLL_CLK_MASK,
-       .max_multiplier = OMAP4430_MAX_DPLL_MULT,
-       .max_divider    = OMAP4430_MAX_DPLL_DIV,
+       .max_multiplier = 2047,
+       .max_divider    = 128,
        .min_divider    = 1,
 };
 
@@ -813,8 +813,8 @@ static struct dpll_data dpll_per_dd = {
        .enable_mask    = OMAP4430_DPLL_EN_MASK,
        .autoidle_mask  = OMAP4430_AUTO_DPLL_MODE_MASK,
        .idlest_mask    = OMAP4430_ST_DPLL_CLK_MASK,
-       .max_multiplier = OMAP4430_MAX_DPLL_MULT,
-       .max_divider    = OMAP4430_MAX_DPLL_DIV,
+       .max_multiplier = 2047,
+       .max_divider    = 128,
        .min_divider    = 1,
 };
 
@@ -949,8 +949,8 @@ static struct dpll_data dpll_unipro_dd = {
        .enable_mask    = OMAP4430_DPLL_EN_MASK,
        .autoidle_mask  = OMAP4430_AUTO_DPLL_MODE_MASK,
        .idlest_mask    = OMAP4430_ST_DPLL_CLK_MASK,
-       .max_multiplier = OMAP4430_MAX_DPLL_MULT,
-       .max_divider    = OMAP4430_MAX_DPLL_DIV,
+       .max_multiplier = 2047,
+       .max_divider    = 128,
        .min_divider    = 1,
 };
 
@@ -1016,8 +1016,8 @@ static struct dpll_data dpll_usb_dd = {
        .autoidle_mask  = OMAP4430_AUTO_DPLL_MODE_MASK,
        .idlest_mask    = OMAP4430_ST_DPLL_CLK_MASK,
        .sddiv_mask     = OMAP4430_DPLL_SD_DIV_MASK,
-       .max_multiplier = OMAP4430_MAX_DPLL_MULT,
-       .max_divider    = OMAP4430_MAX_DPLL_DIV,
+       .max_multiplier = 4095,
+       .max_divider    = 256,
        .min_divider    = 1,
 };
 
diff --git a/arch/arm/plat-omap/include/plat/clock.h 
b/arch/arm/plat-omap/include/plat/clock.h
index 006e599..f57e064 100644
--- a/arch/arm/plat-omap/include/plat/clock.h
+++ b/arch/arm/plat-omap/include/plat/clock.h
@@ -152,7 +152,7 @@ struct dpll_data {
        u16                     max_multiplier;
        u8                      last_rounded_n;
        u8                      min_divider;
-       u8                      max_divider;
+       u16                     max_divider;
        u8                      modes;
 #if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_ARCH_OMAP4)
        void __iomem            *autoidle_reg;
-- 
1.7.0.4

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to