diff options
author | Magnus Damm <damm@opensource.se> | 2010-05-10 10:01:12 -0400 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2010-05-10 22:48:35 -0400 |
commit | e4e06697977bf6731d940ab1bd84e16cb53c3ae3 (patch) | |
tree | e686c50654ca84fbaf20ad7323760443ca37462b /arch/sh/kernel/cpu/sh4a/clock-sh7722.c | |
parent | f3d51e13fea901729fef15bf1c32ca004d45476e (diff) |
sh: scif and tmu clkdev changes
Modify sh7722/sh7723/sh7724 to use clkdev for
TMU and SCIF clock lookups.
Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/kernel/cpu/sh4a/clock-sh7722.c')
-rw-r--r-- | arch/sh/kernel/cpu/sh4a/clock-sh7722.c | 43 |
1 files changed, 40 insertions, 3 deletions
diff --git a/arch/sh/kernel/cpu/sh4a/clock-sh7722.c b/arch/sh/kernel/cpu/sh4a/clock-sh7722.c index e5b6f47ea8b0..ed57c631b09a 100644 --- a/arch/sh/kernel/cpu/sh4a/clock-sh7722.c +++ b/arch/sh/kernel/cpu/sh4a/clock-sh7722.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 | #include <asm/hwblk.h> | 26 | #include <asm/hwblk.h> |
26 | #include <cpu/sh7722.h> | 27 | #include <cpu/sh7722.h> |
@@ -164,9 +165,9 @@ static struct clk mstp_clks[HWBLK_NR] = { | |||
164 | SH_HWBLK_CLK("cmt_fck", -1, R_CLK, HWBLK_CMT, 0), | 165 | SH_HWBLK_CLK("cmt_fck", -1, R_CLK, HWBLK_CMT, 0), |
165 | SH_HWBLK_CLK("rwdt0", -1, R_CLK, HWBLK_RWDT, 0), | 166 | SH_HWBLK_CLK("rwdt0", -1, R_CLK, HWBLK_RWDT, 0), |
166 | SH_HWBLK_CLK("flctl0", -1, P_CLK, HWBLK_FLCTL, 0), | 167 | SH_HWBLK_CLK("flctl0", -1, P_CLK, HWBLK_FLCTL, 0), |
167 | SH_HWBLK_CLK("sci_fck", 0, P_CLK, HWBLK_SCIF0, 0), | 168 | SH_HWBLK_CLK("sci_fck", -1, P_CLK, HWBLK_SCIF0, 0), |
168 | SH_HWBLK_CLK("sci_fck", 1, P_CLK, HWBLK_SCIF1, 0), | 169 | SH_HWBLK_CLK("sci_fck", -1, P_CLK, HWBLK_SCIF1, 0), |
169 | SH_HWBLK_CLK("sci_fck", 2, P_CLK, HWBLK_SCIF2, 0), | 170 | SH_HWBLK_CLK("sci_fck", -1, P_CLK, HWBLK_SCIF2, 0), |
170 | 171 | ||
171 | SH_HWBLK_CLK("i2c0", -1, P_CLK, HWBLK_IIC, 0), | 172 | SH_HWBLK_CLK("i2c0", -1, P_CLK, HWBLK_IIC, 0), |
172 | SH_HWBLK_CLK("rtc0", -1, R_CLK, HWBLK_RTC, 0), | 173 | SH_HWBLK_CLK("rtc0", -1, R_CLK, HWBLK_RTC, 0), |
@@ -185,6 +186,40 @@ static struct clk mstp_clks[HWBLK_NR] = { | |||
185 | SH_HWBLK_CLK("lcdc0", -1, P_CLK, HWBLK_LCDC, 0), | 186 | SH_HWBLK_CLK("lcdc0", -1, P_CLK, HWBLK_LCDC, 0), |
186 | }; | 187 | }; |
187 | 188 | ||
189 | static struct clk_lookup lookups[] = { | ||
190 | { | ||
191 | /* TMU0 */ | ||
192 | .dev_id = "sh_tmu.0", | ||
193 | .con_id = "tmu_fck", | ||
194 | .clk = &mstp_clks[HWBLK_TMU], | ||
195 | }, { | ||
196 | /* TMU1 */ | ||
197 | .dev_id = "sh_tmu.1", | ||
198 | .con_id = "tmu_fck", | ||
199 | .clk = &mstp_clks[HWBLK_TMU], | ||
200 | }, { | ||
201 | /* TMU2 */ | ||
202 | .dev_id = "sh_tmu.2", | ||
203 | .con_id = "tmu_fck", | ||
204 | .clk = &mstp_clks[HWBLK_TMU], | ||
205 | }, { | ||
206 | /* SCIF0 */ | ||
207 | .dev_id = "sh-sci.0", | ||
208 | .con_id = "sci_fck", | ||
209 | .clk = &mstp_clks[HWBLK_SCIF0], | ||
210 | }, { | ||
211 | /* SCIF1 */ | ||
212 | .dev_id = "sh-sci.1", | ||
213 | .con_id = "sci_fck", | ||
214 | .clk = &mstp_clks[HWBLK_SCIF1], | ||
215 | }, { | ||
216 | /* SCIF2 */ | ||
217 | .dev_id = "sh-sci.2", | ||
218 | .con_id = "sci_fck", | ||
219 | .clk = &mstp_clks[HWBLK_SCIF2], | ||
220 | }, | ||
221 | }; | ||
222 | |||
188 | int __init arch_clk_init(void) | 223 | int __init arch_clk_init(void) |
189 | { | 224 | { |
190 | int k, ret = 0; | 225 | int k, ret = 0; |
@@ -198,6 +233,8 @@ int __init arch_clk_init(void) | |||
198 | for (k = 0; !ret && (k < ARRAY_SIZE(main_clks)); k++) | 233 | for (k = 0; !ret && (k < ARRAY_SIZE(main_clks)); k++) |
199 | ret = clk_register(main_clks[k]); | 234 | ret = clk_register(main_clks[k]); |
200 | 235 | ||
236 | clkdev_add_table(lookups, ARRAY_SIZE(lookups)); | ||
237 | |||
201 | if (!ret) | 238 | if (!ret) |
202 | ret = sh_clk_div4_register(div4_clks, DIV4_NR, &div4_table); | 239 | ret = sh_clk_div4_register(div4_clks, DIV4_NR, &div4_table); |
203 | 240 | ||