diff options
| -rw-r--r-- | arch/sh/kernel/cpu/sh4a/clock-sh7722.c | 43 | ||||
| -rw-r--r-- | arch/sh/kernel/cpu/sh4a/clock-sh7723.c | 42 | ||||
| -rw-r--r-- | arch/sh/kernel/cpu/sh4a/clock-sh7724.c | 42 |
3 files changed, 112 insertions, 15 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 | ||
diff --git a/arch/sh/kernel/cpu/sh4a/clock-sh7723.c b/arch/sh/kernel/cpu/sh4a/clock-sh7723.c index 390bdb5cabc5..d92d7cddd099 100644 --- a/arch/sh/kernel/cpu/sh4a/clock-sh7723.c +++ b/arch/sh/kernel/cpu/sh4a/clock-sh7723.c | |||
| @@ -179,12 +179,12 @@ static struct clk mstp_clks[] = { | |||
| 179 | SH_HWBLK_CLK("dmac1", -1, B_CLK, HWBLK_DMAC1, 0), | 179 | SH_HWBLK_CLK("dmac1", -1, B_CLK, HWBLK_DMAC1, 0), |
| 180 | SH_HWBLK_CLK("tmu345_fck", -1, P_CLK, HWBLK_TMU1, 0), | 180 | SH_HWBLK_CLK("tmu345_fck", -1, P_CLK, HWBLK_TMU1, 0), |
| 181 | SH_HWBLK_CLK("flctl0", -1, P_CLK, HWBLK_FLCTL, 0), | 181 | SH_HWBLK_CLK("flctl0", -1, P_CLK, HWBLK_FLCTL, 0), |
| 182 | SH_HWBLK_CLK("sci_fck", 0, P_CLK, HWBLK_SCIF0, 0), | 182 | SH_HWBLK_CLK("sci_fck", -1, P_CLK, HWBLK_SCIF0, 0), |
| 183 | SH_HWBLK_CLK("sci_fck", 1, P_CLK, HWBLK_SCIF1, 0), | 183 | SH_HWBLK_CLK("sci_fck", -1, P_CLK, HWBLK_SCIF1, 0), |
| 184 | SH_HWBLK_CLK("sci_fck", 2, P_CLK, HWBLK_SCIF2, 0), | 184 | SH_HWBLK_CLK("sci_fck", -1, P_CLK, HWBLK_SCIF2, 0), |
| 185 | SH_HWBLK_CLK("sci_fck", 3, B_CLK, HWBLK_SCIF3, 0), | 185 | SH_HWBLK_CLK("sci_fck", -1, B_CLK, HWBLK_SCIF3, 0), |
| 186 | SH_HWBLK_CLK("sci_fck", 4, B_CLK, HWBLK_SCIF4, 0), | 186 | SH_HWBLK_CLK("sci_fck", -1, B_CLK, HWBLK_SCIF4, 0), |
| 187 | SH_HWBLK_CLK("sci_fck", 5, B_CLK, HWBLK_SCIF5, 0), | 187 | SH_HWBLK_CLK("sci_fck", -1, B_CLK, HWBLK_SCIF5, 0), |
| 188 | SH_HWBLK_CLK("msiof0", -1, B_CLK, HWBLK_MSIOF0, 0), | 188 | SH_HWBLK_CLK("msiof0", -1, B_CLK, HWBLK_MSIOF0, 0), |
| 189 | SH_HWBLK_CLK("msiof1", -1, B_CLK, HWBLK_MSIOF1, 0), | 189 | SH_HWBLK_CLK("msiof1", -1, B_CLK, HWBLK_MSIOF1, 0), |
| 190 | SH_HWBLK_CLK("meram0", -1, SH_CLK, HWBLK_MERAM, 0), | 190 | SH_HWBLK_CLK("meram0", -1, SH_CLK, HWBLK_MERAM, 0), |
| @@ -244,6 +244,36 @@ static struct clk_lookup lookups[] = { | |||
| 244 | .dev_id = "sh_tmu.5", | 244 | .dev_id = "sh_tmu.5", |
| 245 | .con_id = "tmu_fck", | 245 | .con_id = "tmu_fck", |
| 246 | .clk = &mstp_clks[HWBLK_TMU1], | 246 | .clk = &mstp_clks[HWBLK_TMU1], |
| 247 | }, { | ||
| 248 | /* SCIF0 */ | ||
| 249 | .dev_id = "sh-sci.0", | ||
| 250 | .con_id = "sci_fck", | ||
| 251 | .clk = &mstp_clks[HWBLK_SCIF0], | ||
| 252 | }, { | ||
| 253 | /* SCIF1 */ | ||
| 254 | .dev_id = "sh-sci.1", | ||
| 255 | .con_id = "sci_fck", | ||
| 256 | .clk = &mstp_clks[HWBLK_SCIF1], | ||
| 257 | }, { | ||
| 258 | /* SCIF2 */ | ||
| 259 | .dev_id = "sh-sci.2", | ||
| 260 | .con_id = "sci_fck", | ||
| 261 | .clk = &mstp_clks[HWBLK_SCIF2], | ||
| 262 | }, { | ||
| 263 | /* SCIF3 */ | ||
| 264 | .dev_id = "sh-sci.3", | ||
| 265 | .con_id = "sci_fck", | ||
| 266 | .clk = &mstp_clks[HWBLK_SCIF3], | ||
| 267 | }, { | ||
| 268 | /* SCIF4 */ | ||
| 269 | .dev_id = "sh-sci.4", | ||
| 270 | .con_id = "sci_fck", | ||
| 271 | .clk = &mstp_clks[HWBLK_SCIF4], | ||
| 272 | }, { | ||
| 273 | /* SCIF5 */ | ||
| 274 | .dev_id = "sh-sci.5", | ||
| 275 | .con_id = "sci_fck", | ||
| 276 | .clk = &mstp_clks[HWBLK_SCIF5], | ||
| 247 | }, | 277 | }, |
| 248 | }; | 278 | }; |
| 249 | 279 | ||
diff --git a/arch/sh/kernel/cpu/sh4a/clock-sh7724.c b/arch/sh/kernel/cpu/sh4a/clock-sh7724.c index c5d4891d38a4..0c2aa34c7847 100644 --- a/arch/sh/kernel/cpu/sh4a/clock-sh7724.c +++ b/arch/sh/kernel/cpu/sh4a/clock-sh7724.c | |||
| @@ -196,12 +196,12 @@ static struct clk mstp_clks[HWBLK_NR] = { | |||
| 196 | SH_HWBLK_CLK("rwdt0", -1, R_CLK, HWBLK_RWDT, 0), | 196 | SH_HWBLK_CLK("rwdt0", -1, R_CLK, HWBLK_RWDT, 0), |
| 197 | SH_HWBLK_CLK("dmac1", -1, B_CLK, HWBLK_DMAC1, 0), | 197 | SH_HWBLK_CLK("dmac1", -1, B_CLK, HWBLK_DMAC1, 0), |
| 198 | SH_HWBLK_CLK("tmu345_fck", -1, P_CLK, HWBLK_TMU1, 0), | 198 | SH_HWBLK_CLK("tmu345_fck", -1, P_CLK, HWBLK_TMU1, 0), |
| 199 | SH_HWBLK_CLK("sci_fck", 0, P_CLK, HWBLK_SCIF0, 0), | 199 | SH_HWBLK_CLK("sci_fck", -1, P_CLK, HWBLK_SCIF0, 0), |
| 200 | SH_HWBLK_CLK("sci_fck", 1, P_CLK, HWBLK_SCIF1, 0), | 200 | SH_HWBLK_CLK("sci_fck", -1, P_CLK, HWBLK_SCIF1, 0), |
| 201 | SH_HWBLK_CLK("sci_fck", 2, P_CLK, HWBLK_SCIF2, 0), | 201 | SH_HWBLK_CLK("sci_fck", -1, P_CLK, HWBLK_SCIF2, 0), |
| 202 | SH_HWBLK_CLK("sci_fck", 3, B_CLK, HWBLK_SCIF3, 0), | 202 | SH_HWBLK_CLK("sci_fck", -1, B_CLK, HWBLK_SCIF3, 0), |
| 203 | SH_HWBLK_CLK("sci_fck", 4, B_CLK, HWBLK_SCIF4, 0), | 203 | SH_HWBLK_CLK("sci_fck", -1, B_CLK, HWBLK_SCIF4, 0), |
| 204 | SH_HWBLK_CLK("sci_fck", 5, B_CLK, HWBLK_SCIF5, 0), | 204 | SH_HWBLK_CLK("sci_fck", -1, B_CLK, HWBLK_SCIF5, 0), |
| 205 | SH_HWBLK_CLK("msiof0", -1, B_CLK, HWBLK_MSIOF0, 0), | 205 | SH_HWBLK_CLK("msiof0", -1, B_CLK, HWBLK_MSIOF0, 0), |
| 206 | SH_HWBLK_CLK("msiof1", -1, B_CLK, HWBLK_MSIOF1, 0), | 206 | SH_HWBLK_CLK("msiof1", -1, B_CLK, HWBLK_MSIOF1, 0), |
| 207 | 207 | ||
| @@ -266,6 +266,36 @@ static struct clk_lookup lookups[] = { | |||
| 266 | .dev_id = "sh_tmu.5", | 266 | .dev_id = "sh_tmu.5", |
| 267 | .con_id = "tmu_fck", | 267 | .con_id = "tmu_fck", |
| 268 | .clk = &mstp_clks[HWBLK_TMU1], | 268 | .clk = &mstp_clks[HWBLK_TMU1], |
| 269 | }, { | ||
| 270 | /* SCIF0 */ | ||
| 271 | .dev_id = "sh-sci.0", | ||
| 272 | .con_id = "sci_fck", | ||
| 273 | .clk = &mstp_clks[HWBLK_SCIF0], | ||
| 274 | }, { | ||
| 275 | /* SCIF1 */ | ||
| 276 | .dev_id = "sh-sci.1", | ||
| 277 | .con_id = "sci_fck", | ||
| 278 | .clk = &mstp_clks[HWBLK_SCIF1], | ||
| 279 | }, { | ||
| 280 | /* SCIF2 */ | ||
| 281 | .dev_id = "sh-sci.2", | ||
| 282 | .con_id = "sci_fck", | ||
| 283 | .clk = &mstp_clks[HWBLK_SCIF2], | ||
| 284 | }, { | ||
| 285 | /* SCIF3 */ | ||
| 286 | .dev_id = "sh-sci.3", | ||
| 287 | .con_id = "sci_fck", | ||
| 288 | .clk = &mstp_clks[HWBLK_SCIF3], | ||
| 289 | }, { | ||
| 290 | /* SCIF4 */ | ||
| 291 | .dev_id = "sh-sci.4", | ||
| 292 | .con_id = "sci_fck", | ||
| 293 | .clk = &mstp_clks[HWBLK_SCIF4], | ||
| 294 | }, { | ||
| 295 | /* SCIF5 */ | ||
| 296 | .dev_id = "sh-sci.5", | ||
| 297 | .con_id = "sci_fck", | ||
| 298 | .clk = &mstp_clks[HWBLK_SCIF5], | ||
| 269 | }, | 299 | }, |
| 270 | }; | 300 | }; |
| 271 | 301 | ||
