diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-05-19 14:36:03 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-05-19 14:36:03 -0400 |
commit | 7c7cbaf5b82c418cd3b1dcf718f71d0e6057e639 (patch) | |
tree | da9aaa5a246af464b1e10d88618c1cad07b76314 /arch/sh/kernel/cpu/sh4a/clock-sh7366.c | |
parent | ba0234ec35127fe21d373db53cbaf9fe20620cb6 (diff) | |
parent | 4d0956b8f597aac10208ca763f8fe641fde16aab (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: (127 commits)
sh: update defconfigs.
sh: Fix up the NUMA build for recent LMB changes.
sh64: provide a stub per_cpu_trap_init() definition.
sh: fix up CONFIG_KEXEC=n build.
sh: fixup the docbook paths for clock framework shuffling.
driver core: Early dev_name() depends on slab_is_available().
sh: simplify WARN usage in SH clock driver
sh: Check return value of clk_get on ms7724
sh: Check return value of clk_get on ecovec24
sh: move sh clock-cpg.c contents to drivers/sh/clk-cpg.c
sh: move sh clock.c contents to drivers/sh/clk.
sh: move sh asm/clock.h contents to linux/sh_clk.h V2
sh: remove unused clock lookup
sh: switch boards to clkdev
sh: switch sh4-202 to clkdev
sh: switch shx3 to clkdev
sh: switch sh7757 to clkdev
sh: switch sh7763 to clkdev
sh: switch sh7780 to clkdev
sh: switch sh7786 to clkdev
...
Diffstat (limited to 'arch/sh/kernel/cpu/sh4a/clock-sh7366.c')
-rw-r--r-- | arch/sh/kernel/cpu/sh4a/clock-sh7366.c | 210 |
1 files changed, 145 insertions, 65 deletions
diff --git a/arch/sh/kernel/cpu/sh4a/clock-sh7366.c b/arch/sh/kernel/cpu/sh4a/clock-sh7366.c index 91588d280cd..7ce5bbcd408 100644 --- a/arch/sh/kernel/cpu/sh4a/clock-sh7366.c +++ b/arch/sh/kernel/cpu/sh4a/clock-sh7366.c | |||
@@ -21,6 +21,7 @@ | |||
21 | #include <linux/init.h> | 21 | #include <linux/init.h> |
22 | #include <linux/kernel.h> | 22 | #include <linux/kernel.h> |
23 | #include <linux/io.h> | 23 | #include <linux/io.h> |
24 | #include <asm/clkdev.h> | ||
24 | #include <asm/clock.h> | 25 | #include <asm/clock.h> |
25 | 26 | ||
26 | /* SH7366 registers */ | 27 | /* SH7366 registers */ |
@@ -36,8 +37,6 @@ | |||
36 | 37 | ||
37 | /* Fixed 32 KHz root clock for RTC and Power Management purposes */ | 38 | /* Fixed 32 KHz root clock for RTC and Power Management purposes */ |
38 | static struct clk r_clk = { | 39 | static struct clk r_clk = { |
39 | .name = "rclk", | ||
40 | .id = -1, | ||
41 | .rate = 32768, | 40 | .rate = 32768, |
42 | }; | 41 | }; |
43 | 42 | ||
@@ -46,8 +45,6 @@ static struct clk r_clk = { | |||
46 | * from the platform code. | 45 | * from the platform code. |
47 | */ | 46 | */ |
48 | struct clk extal_clk = { | 47 | struct clk extal_clk = { |
49 | .name = "extal", | ||
50 | .id = -1, | ||
51 | .rate = 33333333, | 48 | .rate = 33333333, |
52 | }; | 49 | }; |
53 | 50 | ||
@@ -69,8 +66,6 @@ static struct clk_ops dll_clk_ops = { | |||
69 | }; | 66 | }; |
70 | 67 | ||
71 | static struct clk dll_clk = { | 68 | static struct clk dll_clk = { |
72 | .name = "dll_clk", | ||
73 | .id = -1, | ||
74 | .ops = &dll_clk_ops, | 69 | .ops = &dll_clk_ops, |
75 | .parent = &r_clk, | 70 | .parent = &r_clk, |
76 | .flags = CLK_ENABLE_ON_INIT, | 71 | .flags = CLK_ENABLE_ON_INIT, |
@@ -94,8 +89,6 @@ static struct clk_ops pll_clk_ops = { | |||
94 | }; | 89 | }; |
95 | 90 | ||
96 | static struct clk pll_clk = { | 91 | static struct clk pll_clk = { |
97 | .name = "pll_clk", | ||
98 | .id = -1, | ||
99 | .ops = &pll_clk_ops, | 92 | .ops = &pll_clk_ops, |
100 | .flags = CLK_ENABLE_ON_INIT, | 93 | .flags = CLK_ENABLE_ON_INIT, |
101 | }; | 94 | }; |
@@ -124,69 +117,154 @@ static struct clk_div4_table div4_table = { | |||
124 | enum { DIV4_I, DIV4_U, DIV4_SH, DIV4_B, DIV4_B3, DIV4_P, | 117 | enum { DIV4_I, DIV4_U, DIV4_SH, DIV4_B, DIV4_B3, DIV4_P, |
125 | DIV4_SIUA, DIV4_SIUB, DIV4_NR }; | 118 | DIV4_SIUA, DIV4_SIUB, DIV4_NR }; |
126 | 119 | ||
127 | #define DIV4(_str, _reg, _bit, _mask, _flags) \ | 120 | #define DIV4(_reg, _bit, _mask, _flags) \ |
128 | SH_CLK_DIV4(_str, &pll_clk, _reg, _bit, _mask, _flags) | 121 | SH_CLK_DIV4(&pll_clk, _reg, _bit, _mask, _flags) |
129 | 122 | ||
130 | struct clk div4_clks[DIV4_NR] = { | 123 | struct clk div4_clks[DIV4_NR] = { |
131 | [DIV4_I] = DIV4("cpu_clk", FRQCR, 20, 0x1fef, CLK_ENABLE_ON_INIT), | 124 | [DIV4_I] = DIV4(FRQCR, 20, 0x1fef, CLK_ENABLE_ON_INIT), |
132 | [DIV4_U] = DIV4("umem_clk", FRQCR, 16, 0x1fff, CLK_ENABLE_ON_INIT), | 125 | [DIV4_U] = DIV4(FRQCR, 16, 0x1fff, CLK_ENABLE_ON_INIT), |
133 | [DIV4_SH] = DIV4("shyway_clk", FRQCR, 12, 0x1fff, CLK_ENABLE_ON_INIT), | 126 | [DIV4_SH] = DIV4(FRQCR, 12, 0x1fff, CLK_ENABLE_ON_INIT), |
134 | [DIV4_B] = DIV4("bus_clk", FRQCR, 8, 0x1fff, CLK_ENABLE_ON_INIT), | 127 | [DIV4_B] = DIV4(FRQCR, 8, 0x1fff, CLK_ENABLE_ON_INIT), |
135 | [DIV4_B3] = DIV4("b3_clk", FRQCR, 4, 0x1fff, CLK_ENABLE_ON_INIT), | 128 | [DIV4_B3] = DIV4(FRQCR, 4, 0x1fff, CLK_ENABLE_ON_INIT), |
136 | [DIV4_P] = DIV4("peripheral_clk", FRQCR, 0, 0x1fff, 0), | 129 | [DIV4_P] = DIV4(FRQCR, 0, 0x1fff, 0), |
137 | [DIV4_SIUA] = DIV4("siua_clk", SCLKACR, 0, 0x1fff, 0), | 130 | [DIV4_SIUA] = DIV4(SCLKACR, 0, 0x1fff, 0), |
138 | [DIV4_SIUB] = DIV4("siub_clk", SCLKBCR, 0, 0x1fff, 0), | 131 | [DIV4_SIUB] = DIV4(SCLKBCR, 0, 0x1fff, 0), |
139 | }; | 132 | }; |
140 | 133 | ||
141 | struct clk div6_clks[] = { | 134 | enum { DIV6_V, DIV6_NR }; |
142 | SH_CLK_DIV6("video_clk", &pll_clk, VCLKCR, 0), | 135 | |
136 | struct clk div6_clks[DIV6_NR] = { | ||
137 | [DIV6_V] = SH_CLK_DIV6(&pll_clk, VCLKCR, 0), | ||
143 | }; | 138 | }; |
144 | 139 | ||
145 | #define MSTP(_str, _parent, _reg, _bit, _flags) \ | 140 | #define MSTP(_parent, _reg, _bit, _flags) \ |
146 | SH_CLK_MSTP32(_str, -1, _parent, _reg, _bit, _flags) | 141 | SH_CLK_MSTP32(_parent, _reg, _bit, _flags) |
142 | |||
143 | enum { MSTP031, MSTP030, MSTP029, MSTP028, MSTP026, | ||
144 | MSTP023, MSTP022, MSTP021, MSTP020, MSTP019, MSTP018, MSTP017, MSTP016, | ||
145 | MSTP015, MSTP014, MSTP013, MSTP012, MSTP011, MSTP010, | ||
146 | MSTP007, MSTP006, MSTP005, MSTP002, MSTP001, | ||
147 | MSTP109, MSTP100, | ||
148 | MSTP227, MSTP226, MSTP224, MSTP223, MSTP222, MSTP218, MSTP217, | ||
149 | MSTP211, MSTP207, MSTP205, MSTP204, MSTP203, MSTP202, MSTP201, MSTP200, | ||
150 | MSTP_NR }; | ||
147 | 151 | ||
148 | static struct clk mstp_clks[] = { | 152 | static struct clk mstp_clks[MSTP_NR] = { |
149 | /* See page 52 of Datasheet V0.40: Overview -> Block Diagram */ | 153 | /* See page 52 of Datasheet V0.40: Overview -> Block Diagram */ |
150 | MSTP("tlb0", &div4_clks[DIV4_I], MSTPCR0, 31, CLK_ENABLE_ON_INIT), | 154 | [MSTP031] = MSTP(&div4_clks[DIV4_I], MSTPCR0, 31, CLK_ENABLE_ON_INIT), |
151 | MSTP("ic0", &div4_clks[DIV4_I], MSTPCR0, 30, CLK_ENABLE_ON_INIT), | 155 | [MSTP030] = MSTP(&div4_clks[DIV4_I], MSTPCR0, 30, CLK_ENABLE_ON_INIT), |
152 | MSTP("oc0", &div4_clks[DIV4_I], MSTPCR0, 29, CLK_ENABLE_ON_INIT), | 156 | [MSTP029] = MSTP(&div4_clks[DIV4_I], MSTPCR0, 29, CLK_ENABLE_ON_INIT), |
153 | MSTP("rsmem0", &div4_clks[DIV4_SH], MSTPCR0, 28, CLK_ENABLE_ON_INIT), | 157 | [MSTP028] = MSTP(&div4_clks[DIV4_SH], MSTPCR0, 28, CLK_ENABLE_ON_INIT), |
154 | MSTP("xymem0", &div4_clks[DIV4_B], MSTPCR0, 26, CLK_ENABLE_ON_INIT), | 158 | [MSTP026] = MSTP(&div4_clks[DIV4_B], MSTPCR0, 26, CLK_ENABLE_ON_INIT), |
155 | MSTP("intc3", &div4_clks[DIV4_P], MSTPCR0, 23, 0), | 159 | [MSTP023] = MSTP(&div4_clks[DIV4_P], MSTPCR0, 23, 0), |
156 | MSTP("intc0", &div4_clks[DIV4_P], MSTPCR0, 22, 0), | 160 | [MSTP022] = MSTP(&div4_clks[DIV4_P], MSTPCR0, 22, 0), |
157 | MSTP("dmac0", &div4_clks[DIV4_P], MSTPCR0, 21, 0), | 161 | [MSTP021] = MSTP(&div4_clks[DIV4_P], MSTPCR0, 21, 0), |
158 | MSTP("sh0", &div4_clks[DIV4_P], MSTPCR0, 20, 0), | 162 | [MSTP020] = MSTP(&div4_clks[DIV4_P], MSTPCR0, 20, 0), |
159 | MSTP("hudi0", &div4_clks[DIV4_P], MSTPCR0, 19, 0), | 163 | [MSTP019] = MSTP(&div4_clks[DIV4_P], MSTPCR0, 19, 0), |
160 | MSTP("ubc0", &div4_clks[DIV4_P], MSTPCR0, 17, 0), | 164 | [MSTP017] = MSTP(&div4_clks[DIV4_P], MSTPCR0, 17, 0), |
161 | MSTP("tmu0", &div4_clks[DIV4_P], MSTPCR0, 15, 0), | 165 | [MSTP015] = MSTP(&div4_clks[DIV4_P], MSTPCR0, 15, 0), |
162 | MSTP("cmt0", &r_clk, MSTPCR0, 14, 0), | 166 | [MSTP014] = MSTP(&r_clk, MSTPCR0, 14, 0), |
163 | MSTP("rwdt0", &r_clk, MSTPCR0, 13, 0), | 167 | [MSTP013] = MSTP(&r_clk, MSTPCR0, 13, 0), |
164 | MSTP("mfi0", &div4_clks[DIV4_P], MSTPCR0, 11, 0), | 168 | [MSTP011] = MSTP(&div4_clks[DIV4_P], MSTPCR0, 11, 0), |
165 | MSTP("flctl0", &div4_clks[DIV4_P], MSTPCR0, 10, 0), | 169 | [MSTP010] = MSTP(&div4_clks[DIV4_P], MSTPCR0, 10, 0), |
166 | MSTP("scif0", &div4_clks[DIV4_P], MSTPCR0, 7, 0), | 170 | [MSTP007] = MSTP(&div4_clks[DIV4_P], MSTPCR0, 7, 0), |
167 | MSTP("scif1", &div4_clks[DIV4_P], MSTPCR0, 6, 0), | 171 | [MSTP006] = MSTP(&div4_clks[DIV4_P], MSTPCR0, 6, 0), |
168 | MSTP("scif2", &div4_clks[DIV4_P], MSTPCR0, 5, 0), | 172 | [MSTP005] = MSTP(&div4_clks[DIV4_P], MSTPCR0, 5, 0), |
169 | MSTP("msiof0", &div4_clks[DIV4_P], MSTPCR0, 2, 0), | 173 | [MSTP002] = MSTP(&div4_clks[DIV4_P], MSTPCR0, 2, 0), |
170 | MSTP("sbr0", &div4_clks[DIV4_P], MSTPCR0, 1, 0), | 174 | [MSTP001] = MSTP(&div4_clks[DIV4_P], MSTPCR0, 1, 0), |
171 | 175 | ||
172 | MSTP("i2c0", &div4_clks[DIV4_P], MSTPCR1, 9, 0), | 176 | [MSTP109] = MSTP(&div4_clks[DIV4_P], MSTPCR1, 9, 0), |
173 | 177 | ||
174 | MSTP("icb0", &div4_clks[DIV4_P], MSTPCR2, 27, 0), | 178 | [MSTP227] = MSTP(&div4_clks[DIV4_P], MSTPCR2, 27, 0), |
175 | MSTP("meram0", &div4_clks[DIV4_P], MSTPCR2, 26, 0), | 179 | [MSTP226] = MSTP(&div4_clks[DIV4_P], MSTPCR2, 26, 0), |
176 | MSTP("dacy1", &div4_clks[DIV4_P], MSTPCR2, 24, 0), | 180 | [MSTP224] = MSTP(&div4_clks[DIV4_P], MSTPCR2, 24, 0), |
177 | MSTP("dacy0", &div4_clks[DIV4_P], MSTPCR2, 23, 0), | 181 | [MSTP223] = MSTP(&div4_clks[DIV4_P], MSTPCR2, 23, 0), |
178 | MSTP("tsif0", &div4_clks[DIV4_P], MSTPCR2, 22, 0), | 182 | [MSTP222] = MSTP(&div4_clks[DIV4_P], MSTPCR2, 22, 0), |
179 | MSTP("sdhi0", &div4_clks[DIV4_P], MSTPCR2, 18, 0), | 183 | [MSTP218] = MSTP(&div4_clks[DIV4_P], MSTPCR2, 18, 0), |
180 | MSTP("mmcif0", &div4_clks[DIV4_P], MSTPCR2, 17, 0), | 184 | [MSTP217] = MSTP(&div4_clks[DIV4_P], MSTPCR2, 17, 0), |
181 | MSTP("usbf0", &div4_clks[DIV4_P], MSTPCR2, 11, 0), | 185 | [MSTP211] = MSTP(&div4_clks[DIV4_P], MSTPCR2, 11, 0), |
182 | MSTP("siu0", &div4_clks[DIV4_B], MSTPCR2, 9, 0), | 186 | [MSTP207] = MSTP(&div4_clks[DIV4_B], MSTPCR2, 7, CLK_ENABLE_ON_INIT), |
183 | MSTP("veu1", &div4_clks[DIV4_B], MSTPCR2, 7, CLK_ENABLE_ON_INIT), | 187 | [MSTP205] = MSTP(&div4_clks[DIV4_B], MSTPCR2, 5, 0), |
184 | MSTP("vou0", &div4_clks[DIV4_B], MSTPCR2, 5, 0), | 188 | [MSTP204] = MSTP(&div4_clks[DIV4_B], MSTPCR2, 4, 0), |
185 | MSTP("beu0", &div4_clks[DIV4_B], MSTPCR2, 4, 0), | 189 | [MSTP203] = MSTP(&div4_clks[DIV4_B], MSTPCR2, 3, 0), |
186 | MSTP("ceu0", &div4_clks[DIV4_B], MSTPCR2, 3, 0), | 190 | [MSTP202] = MSTP(&div4_clks[DIV4_B], MSTPCR2, 2, CLK_ENABLE_ON_INIT), |
187 | MSTP("veu0", &div4_clks[DIV4_B], MSTPCR2, 2, CLK_ENABLE_ON_INIT), | 191 | [MSTP201] = MSTP(&div4_clks[DIV4_B], MSTPCR2, 1, CLK_ENABLE_ON_INIT), |
188 | MSTP("vpu0", &div4_clks[DIV4_B], MSTPCR2, 1, CLK_ENABLE_ON_INIT), | 192 | [MSTP200] = MSTP(&div4_clks[DIV4_B], MSTPCR2, 0, 0), |
189 | MSTP("lcdc0", &div4_clks[DIV4_B], MSTPCR2, 0, 0), | 193 | }; |
194 | |||
195 | #define CLKDEV_CON_ID(_id, _clk) { .con_id = _id, .clk = _clk } | ||
196 | |||
197 | static struct clk_lookup lookups[] = { | ||
198 | /* main clocks */ | ||
199 | CLKDEV_CON_ID("rclk", &r_clk), | ||
200 | CLKDEV_CON_ID("extal", &extal_clk), | ||
201 | CLKDEV_CON_ID("dll_clk", &dll_clk), | ||
202 | CLKDEV_CON_ID("pll_clk", &pll_clk), | ||
203 | |||
204 | /* DIV4 clocks */ | ||
205 | CLKDEV_CON_ID("cpu_clk", &div4_clks[DIV4_I]), | ||
206 | CLKDEV_CON_ID("umem_clk", &div4_clks[DIV4_U]), | ||
207 | CLKDEV_CON_ID("shyway_clk", &div4_clks[DIV4_SH]), | ||
208 | CLKDEV_CON_ID("bus_clk", &div4_clks[DIV4_B]), | ||
209 | CLKDEV_CON_ID("b3_clk", &div4_clks[DIV4_B3]), | ||
210 | CLKDEV_CON_ID("peripheral_clk", &div4_clks[DIV4_P]), | ||
211 | CLKDEV_CON_ID("siua_clk", &div4_clks[DIV4_SIUA]), | ||
212 | CLKDEV_CON_ID("siub_clk", &div4_clks[DIV4_SIUB]), | ||
213 | |||
214 | /* DIV6 clocks */ | ||
215 | CLKDEV_CON_ID("video_clk", &div6_clks[DIV6_V]), | ||
216 | |||
217 | /* MSTP32 clocks */ | ||
218 | CLKDEV_CON_ID("tlb0", &mstp_clks[MSTP031]), | ||
219 | CLKDEV_CON_ID("ic0", &mstp_clks[MSTP030]), | ||
220 | CLKDEV_CON_ID("oc0", &mstp_clks[MSTP029]), | ||
221 | CLKDEV_CON_ID("rsmem0", &mstp_clks[MSTP028]), | ||
222 | CLKDEV_CON_ID("xymem0", &mstp_clks[MSTP026]), | ||
223 | CLKDEV_CON_ID("intc3", &mstp_clks[MSTP023]), | ||
224 | CLKDEV_CON_ID("intc0", &mstp_clks[MSTP022]), | ||
225 | CLKDEV_CON_ID("dmac0", &mstp_clks[MSTP021]), | ||
226 | CLKDEV_CON_ID("sh0", &mstp_clks[MSTP020]), | ||
227 | CLKDEV_CON_ID("hudi0", &mstp_clks[MSTP019]), | ||
228 | CLKDEV_CON_ID("ubc0", &mstp_clks[MSTP017]), | ||
229 | CLKDEV_CON_ID("tmu_fck", &mstp_clks[MSTP015]), | ||
230 | CLKDEV_CON_ID("cmt_fck", &mstp_clks[MSTP014]), | ||
231 | CLKDEV_CON_ID("rwdt0", &mstp_clks[MSTP013]), | ||
232 | CLKDEV_CON_ID("mfi0", &mstp_clks[MSTP011]), | ||
233 | CLKDEV_CON_ID("flctl0", &mstp_clks[MSTP010]), | ||
234 | { | ||
235 | /* SCIF0 */ | ||
236 | .dev_id = "sh-sci.0", | ||
237 | .con_id = "sci_fck", | ||
238 | .clk = &mstp_clks[MSTP007], | ||
239 | }, { | ||
240 | /* SCIF1 */ | ||
241 | .dev_id = "sh-sci.1", | ||
242 | .con_id = "sci_fck", | ||
243 | .clk = &mstp_clks[MSTP006], | ||
244 | }, { | ||
245 | /* SCIF2 */ | ||
246 | .dev_id = "sh-sci.2", | ||
247 | .con_id = "sci_fck", | ||
248 | .clk = &mstp_clks[MSTP005], | ||
249 | }, | ||
250 | CLKDEV_CON_ID("msiof0", &mstp_clks[MSTP002]), | ||
251 | CLKDEV_CON_ID("sbr0", &mstp_clks[MSTP001]), | ||
252 | CLKDEV_CON_ID("i2c0", &mstp_clks[MSTP109]), | ||
253 | CLKDEV_CON_ID("icb0", &mstp_clks[MSTP227]), | ||
254 | CLKDEV_CON_ID("meram0", &mstp_clks[MSTP226]), | ||
255 | CLKDEV_CON_ID("dacy1", &mstp_clks[MSTP224]), | ||
256 | CLKDEV_CON_ID("dacy0", &mstp_clks[MSTP223]), | ||
257 | CLKDEV_CON_ID("tsif0", &mstp_clks[MSTP222]), | ||
258 | CLKDEV_CON_ID("sdhi0", &mstp_clks[MSTP218]), | ||
259 | CLKDEV_CON_ID("mmcif0", &mstp_clks[MSTP217]), | ||
260 | CLKDEV_CON_ID("usbf0", &mstp_clks[MSTP211]), | ||
261 | CLKDEV_CON_ID("veu1", &mstp_clks[MSTP207]), | ||
262 | CLKDEV_CON_ID("vou0", &mstp_clks[MSTP205]), | ||
263 | CLKDEV_CON_ID("beu0", &mstp_clks[MSTP204]), | ||
264 | CLKDEV_CON_ID("ceu0", &mstp_clks[MSTP203]), | ||
265 | CLKDEV_CON_ID("veu0", &mstp_clks[MSTP202]), | ||
266 | CLKDEV_CON_ID("vpu0", &mstp_clks[MSTP201]), | ||
267 | CLKDEV_CON_ID("lcdc0", &mstp_clks[MSTP200]), | ||
190 | }; | 268 | }; |
191 | 269 | ||
192 | int __init arch_clk_init(void) | 270 | int __init arch_clk_init(void) |
@@ -202,14 +280,16 @@ int __init arch_clk_init(void) | |||
202 | for (k = 0; !ret && (k < ARRAY_SIZE(main_clks)); k++) | 280 | for (k = 0; !ret && (k < ARRAY_SIZE(main_clks)); k++) |
203 | ret = clk_register(main_clks[k]); | 281 | ret = clk_register(main_clks[k]); |
204 | 282 | ||
283 | clkdev_add_table(lookups, ARRAY_SIZE(lookups)); | ||
284 | |||
205 | if (!ret) | 285 | if (!ret) |
206 | ret = sh_clk_div4_register(div4_clks, DIV4_NR, &div4_table); | 286 | ret = sh_clk_div4_register(div4_clks, DIV4_NR, &div4_table); |
207 | 287 | ||
208 | if (!ret) | 288 | if (!ret) |
209 | ret = sh_clk_div6_register(div6_clks, ARRAY_SIZE(div6_clks)); | 289 | ret = sh_clk_div6_register(div6_clks, DIV6_NR); |
210 | 290 | ||
211 | if (!ret) | 291 | if (!ret) |
212 | ret = sh_clk_mstp32_register(mstp_clks, ARRAY_SIZE(mstp_clks)); | 292 | ret = sh_clk_mstp32_register(mstp_clks, MSTP_NR); |
213 | 293 | ||
214 | return ret; | 294 | return ret; |
215 | } | 295 | } |