]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - glsdk/meta-ti-glsdk.git/blob - recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0051-OMAP4-clock-data-Fix-max-mult-and-div-for-USB-DPLL.patch
linux 3.0: updates
[glsdk/meta-ti-glsdk.git] / recipes-kernel / linux / linux-3.0 / pm-wip / voltdm / 0051-OMAP4-clock-data-Fix-max-mult-and-div-for-USB-DPLL.patch
1 From 6bf20dc93c089368a608a08926b8ac386102815f Mon Sep 17 00:00:00 2001
2 From: Benoit Cousson <b-cousson@ti.com>
3 Date: Sat, 9 Jul 2011 19:14:46 -0600
4 Subject: [PATCH 051/149] OMAP4: clock data: Fix max mult and div for USB DPLL
6 The DPLL USB can generate higher speed (x2) than the regular ones.
7 The max multiplication value is then twice the previous value.
9 Fix both max_mult and max_div with that correct values.
11 Change the max_div variable type to u16 to allow storing up to 256.
13 Replace as well the define with the value to avoid
14 unneeded indirection and provide a better readability.
16 Remove the defines that become useless.
18 Signed-off-by: Benoit Cousson <b-cousson@ti.com>
19 Cc: Paul Walmsley <paul@pwsan.com>
20 Cc: Rajendra Nayak <rnayak@ti.com>
21 Signed-off-by: Paul Walmsley <paul@pwsan.com>
22 ---
23  arch/arm/mach-omap2/clock44xx.h         |    7 -------
24  arch/arm/mach-omap2/clock44xx_data.c    |   29 ++++++++++++++---------------
25  arch/arm/plat-omap/include/plat/clock.h |    2 +-
26  3 files changed, 15 insertions(+), 23 deletions(-)
28 diff --git a/arch/arm/mach-omap2/clock44xx.h b/arch/arm/mach-omap2/clock44xx.h
29 index 6be1095..7ceb870 100644
30 --- a/arch/arm/mach-omap2/clock44xx.h
31 +++ b/arch/arm/mach-omap2/clock44xx.h
32 @@ -8,13 +8,6 @@
33  #ifndef __ARCH_ARM_MACH_OMAP2_CLOCK44XX_H
34  #define __ARCH_ARM_MACH_OMAP2_CLOCK44XX_H
35  
36 -/*
37 - * XXX Missing values for the OMAP4 DPLL_USB
38 - * XXX Missing min_multiplier values for all OMAP4 DPLLs
39 - */
40 -#define OMAP4430_MAX_DPLL_MULT 2047
41 -#define OMAP4430_MAX_DPLL_DIV  128
42 -
43  int omap4xxx_clk_init(void);
44  
45  #endif
46 diff --git a/arch/arm/mach-omap2/clock44xx_data.c b/arch/arm/mach-omap2/clock44xx_data.c
47 index 4b57d55..8307c9e 100644
48 --- a/arch/arm/mach-omap2/clock44xx_data.c
49 +++ b/arch/arm/mach-omap2/clock44xx_data.c
50 @@ -258,8 +258,8 @@ static struct dpll_data dpll_abe_dd = {
51         .enable_mask    = OMAP4430_DPLL_EN_MASK,
52         .autoidle_mask  = OMAP4430_AUTO_DPLL_MODE_MASK,
53         .idlest_mask    = OMAP4430_ST_DPLL_CLK_MASK,
54 -       .max_multiplier = OMAP4430_MAX_DPLL_MULT,
55 -       .max_divider    = OMAP4430_MAX_DPLL_DIV,
56 +       .max_multiplier = 2047,
57 +       .max_divider    = 128,
58         .min_divider    = 1,
59  };
60  
61 @@ -434,8 +434,8 @@ static struct dpll_data dpll_core_dd = {
62         .enable_mask    = OMAP4430_DPLL_EN_MASK,
63         .autoidle_mask  = OMAP4430_AUTO_DPLL_MODE_MASK,
64         .idlest_mask    = OMAP4430_ST_DPLL_CLK_MASK,
65 -       .max_multiplier = OMAP4430_MAX_DPLL_MULT,
66 -       .max_divider    = OMAP4430_MAX_DPLL_DIV,
67 +       .max_multiplier = 2047,
68 +       .max_divider    = 128,
69         .min_divider    = 1,
70  };
71  
72 @@ -672,8 +672,8 @@ static struct dpll_data dpll_iva_dd = {
73         .enable_mask    = OMAP4430_DPLL_EN_MASK,
74         .autoidle_mask  = OMAP4430_AUTO_DPLL_MODE_MASK,
75         .idlest_mask    = OMAP4430_ST_DPLL_CLK_MASK,
76 -       .max_multiplier = OMAP4430_MAX_DPLL_MULT,
77 -       .max_divider    = OMAP4430_MAX_DPLL_DIV,
78 +       .max_multiplier = 2047,
79 +       .max_divider    = 128,
80         .min_divider    = 1,
81  };
82  
83 @@ -740,8 +740,8 @@ static struct dpll_data dpll_mpu_dd = {
84         .enable_mask    = OMAP4430_DPLL_EN_MASK,
85         .autoidle_mask  = OMAP4430_AUTO_DPLL_MODE_MASK,
86         .idlest_mask    = OMAP4430_ST_DPLL_CLK_MASK,
87 -       .max_multiplier = OMAP4430_MAX_DPLL_MULT,
88 -       .max_divider    = OMAP4430_MAX_DPLL_DIV,
89 +       .max_multiplier = 2047,
90 +       .max_divider    = 128,
91         .min_divider    = 1,
92  };
93  
94 @@ -813,8 +813,8 @@ static struct dpll_data dpll_per_dd = {
95         .enable_mask    = OMAP4430_DPLL_EN_MASK,
96         .autoidle_mask  = OMAP4430_AUTO_DPLL_MODE_MASK,
97         .idlest_mask    = OMAP4430_ST_DPLL_CLK_MASK,
98 -       .max_multiplier = OMAP4430_MAX_DPLL_MULT,
99 -       .max_divider    = OMAP4430_MAX_DPLL_DIV,
100 +       .max_multiplier = 2047,
101 +       .max_divider    = 128,
102         .min_divider    = 1,
103  };
104  
105 @@ -949,9 +949,8 @@ static struct dpll_data dpll_unipro_dd = {
106         .enable_mask    = OMAP4430_DPLL_EN_MASK,
107         .autoidle_mask  = OMAP4430_AUTO_DPLL_MODE_MASK,
108         .idlest_mask    = OMAP4430_ST_DPLL_CLK_MASK,
109 -       .sddiv_mask     = OMAP4430_DPLL_SD_DIV_MASK,
110 -       .max_multiplier = OMAP4430_MAX_DPLL_MULT,
111 -       .max_divider    = OMAP4430_MAX_DPLL_DIV,
112 +       .max_multiplier = 2047,
113 +       .max_divider    = 128,
114         .min_divider    = 1,
115  };
116  
117 @@ -1017,8 +1016,8 @@ static struct dpll_data dpll_usb_dd = {
118         .autoidle_mask  = OMAP4430_AUTO_DPLL_MODE_MASK,
119         .idlest_mask    = OMAP4430_ST_DPLL_CLK_MASK,
120         .sddiv_mask     = OMAP4430_DPLL_SD_DIV_MASK,
121 -       .max_multiplier = OMAP4430_MAX_DPLL_MULT,
122 -       .max_divider    = OMAP4430_MAX_DPLL_DIV,
123 +       .max_multiplier = 4095,
124 +       .max_divider    = 256,
125         .min_divider    = 1,
126  };
127  
128 diff --git a/arch/arm/plat-omap/include/plat/clock.h b/arch/arm/plat-omap/include/plat/clock.h
129 index 006e599..f57e064 100644
130 --- a/arch/arm/plat-omap/include/plat/clock.h
131 +++ b/arch/arm/plat-omap/include/plat/clock.h
132 @@ -152,7 +152,7 @@ struct dpll_data {
133         u16                     max_multiplier;
134         u8                      last_rounded_n;
135         u8                      min_divider;
136 -       u8                      max_divider;
137 +       u16                     max_divider;
138         u8                      modes;
139  #if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_ARCH_OMAP4)
140         void __iomem            *autoidle_reg;
141 -- 
142 1.6.6.1