diff options
author | Olof Johansson <olof@lixom.net> | 2014-05-05 17:14:24 -0400 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2014-05-05 17:14:24 -0400 |
commit | e80c9c2c2dfb45ce872aaec153ca01b40a08415e (patch) | |
tree | 9743d0dbf85cb7a0abc990d70418a9e6db57c350 /arch/arm/mach-shmobile | |
parent | f1e9637f4b49690a6c5793f1745f743506b1bfd1 (diff) | |
parent | 932616eed0308cbebbb20a079e4bed3674bf1117 (diff) |
Merge branch 'renesas/clock' into next/boards
* renesas/clock:
ARM: shmobile: r8a7790: remove old style audio clock
ARM: shmobile: r8a7778: remove old style audio clock
ARM: shmobile: r8a7791: Rename VSP1_SY clocks to VSP1_S
ARM: shmobile: r8a7790: Rename VSP1_(SY|RT) clocks to VSP1_(S|R)
ARM: shmobile: r8a7791: Fix the I2C clocks parents in legacy code
ARM: shmobile: r8a7790: Fix the I2C clocks parents in legacy code
ARM: shmobile: Introduce shmobile_clk_workaround()
ARM: shmobile: r8a7791: Use rcar_gen2_read_mode_pins() helper
Diffstat (limited to 'arch/arm/mach-shmobile')
-rw-r--r-- | arch/arm/mach-shmobile/Makefile | 2 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/clock-r8a7778.c | 22 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/clock-r8a7790.c | 32 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/clock-r8a7791.c | 23 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/clock.c | 28 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/include/mach/clock.h | 16 |
6 files changed, 76 insertions, 47 deletions
diff --git a/arch/arm/mach-shmobile/Makefile b/arch/arm/mach-shmobile/Makefile index 4caffc912a81..c12a1c50e9d2 100644 --- a/arch/arm/mach-shmobile/Makefile +++ b/arch/arm/mach-shmobile/Makefile | |||
@@ -21,8 +21,8 @@ obj-$(CONFIG_ARCH_EMEV2) += setup-emev2.o | |||
21 | obj-$(CONFIG_ARCH_R7S72100) += setup-r7s72100.o | 21 | obj-$(CONFIG_ARCH_R7S72100) += setup-r7s72100.o |
22 | 22 | ||
23 | # Clock objects | 23 | # Clock objects |
24 | ifndef CONFIG_COMMON_CLK | ||
25 | obj-y += clock.o | 24 | obj-y += clock.o |
25 | ifndef CONFIG_COMMON_CLK | ||
26 | obj-$(CONFIG_ARCH_SH7372) += clock-sh7372.o | 26 | obj-$(CONFIG_ARCH_SH7372) += clock-sh7372.o |
27 | obj-$(CONFIG_ARCH_SH73A0) += clock-sh73a0.o | 27 | obj-$(CONFIG_ARCH_SH73A0) += clock-sh73a0.o |
28 | obj-$(CONFIG_ARCH_R8A73A4) += clock-r8a73a4.o | 28 | obj-$(CONFIG_ARCH_R8A73A4) += clock-r8a73a4.o |
diff --git a/arch/arm/mach-shmobile/clock-r8a7778.c b/arch/arm/mach-shmobile/clock-r8a7778.c index 9989b1b06ffd..6609beb9b9b4 100644 --- a/arch/arm/mach-shmobile/clock-r8a7778.c +++ b/arch/arm/mach-shmobile/clock-r8a7778.c | |||
@@ -175,10 +175,6 @@ static struct clk mstp_clks[MSTP_NR] = { | |||
175 | 175 | ||
176 | static struct clk_lookup lookups[] = { | 176 | static struct clk_lookup lookups[] = { |
177 | /* main */ | 177 | /* main */ |
178 | CLKDEV_CON_ID("audio_clk_a", &audio_clk_a), | ||
179 | CLKDEV_CON_ID("audio_clk_b", &audio_clk_b), | ||
180 | CLKDEV_CON_ID("audio_clk_c", &audio_clk_c), | ||
181 | CLKDEV_CON_ID("audio_clk_internal", &s1_clk), | ||
182 | CLKDEV_CON_ID("shyway_clk", &s_clk), | 178 | CLKDEV_CON_ID("shyway_clk", &s_clk), |
183 | CLKDEV_CON_ID("peripheral_clk", &p_clk), | 179 | CLKDEV_CON_ID("peripheral_clk", &p_clk), |
184 | 180 | ||
@@ -234,15 +230,15 @@ static struct clk_lookup lookups[] = { | |||
234 | CLKDEV_ICK_ID("ssi.6", "rcar_sound", &mstp_clks[MSTP309]), | 230 | CLKDEV_ICK_ID("ssi.6", "rcar_sound", &mstp_clks[MSTP309]), |
235 | CLKDEV_ICK_ID("ssi.7", "rcar_sound", &mstp_clks[MSTP308]), | 231 | CLKDEV_ICK_ID("ssi.7", "rcar_sound", &mstp_clks[MSTP308]), |
236 | CLKDEV_ICK_ID("ssi.8", "rcar_sound", &mstp_clks[MSTP307]), | 232 | CLKDEV_ICK_ID("ssi.8", "rcar_sound", &mstp_clks[MSTP307]), |
237 | CLKDEV_ICK_ID("scu.0", "rcar_sound", &mstp_clks[MSTP531]), | 233 | CLKDEV_ICK_ID("src.0", "rcar_sound", &mstp_clks[MSTP531]), |
238 | CLKDEV_ICK_ID("scu.1", "rcar_sound", &mstp_clks[MSTP530]), | 234 | CLKDEV_ICK_ID("src.1", "rcar_sound", &mstp_clks[MSTP530]), |
239 | CLKDEV_ICK_ID("scu.2", "rcar_sound", &mstp_clks[MSTP529]), | 235 | CLKDEV_ICK_ID("src.2", "rcar_sound", &mstp_clks[MSTP529]), |
240 | CLKDEV_ICK_ID("scu.3", "rcar_sound", &mstp_clks[MSTP528]), | 236 | CLKDEV_ICK_ID("src.3", "rcar_sound", &mstp_clks[MSTP528]), |
241 | CLKDEV_ICK_ID("scu.4", "rcar_sound", &mstp_clks[MSTP527]), | 237 | CLKDEV_ICK_ID("src.4", "rcar_sound", &mstp_clks[MSTP527]), |
242 | CLKDEV_ICK_ID("scu.5", "rcar_sound", &mstp_clks[MSTP526]), | 238 | CLKDEV_ICK_ID("src.5", "rcar_sound", &mstp_clks[MSTP526]), |
243 | CLKDEV_ICK_ID("scu.6", "rcar_sound", &mstp_clks[MSTP525]), | 239 | CLKDEV_ICK_ID("src.6", "rcar_sound", &mstp_clks[MSTP525]), |
244 | CLKDEV_ICK_ID("scu.7", "rcar_sound", &mstp_clks[MSTP524]), | 240 | CLKDEV_ICK_ID("src.7", "rcar_sound", &mstp_clks[MSTP524]), |
245 | CLKDEV_ICK_ID("scu.8", "rcar_sound", &mstp_clks[MSTP523]), | 241 | CLKDEV_ICK_ID("src.8", "rcar_sound", &mstp_clks[MSTP523]), |
246 | }; | 242 | }; |
247 | 243 | ||
248 | void __init r8a7778_clock_init(void) | 244 | void __init r8a7778_clock_init(void) |
diff --git a/arch/arm/mach-shmobile/clock-r8a7790.c b/arch/arm/mach-shmobile/clock-r8a7790.c index 3f93503f5b96..a936ae7de083 100644 --- a/arch/arm/mach-shmobile/clock-r8a7790.c +++ b/arch/arm/mach-shmobile/clock-r8a7790.c | |||
@@ -249,10 +249,10 @@ static struct clk mstp_clks[MSTP_NR] = { | |||
249 | [MSTP1007] = SH_CLK_MSTP32_STS(&p_clk, SMSTPCR10, 7, MSTPSR10, 0), /* SSI8 */ | 249 | [MSTP1007] = SH_CLK_MSTP32_STS(&p_clk, SMSTPCR10, 7, MSTPSR10, 0), /* SSI8 */ |
250 | [MSTP1006] = SH_CLK_MSTP32_STS(&p_clk, SMSTPCR10, 6, MSTPSR10, 0), /* SSI9 */ | 250 | [MSTP1006] = SH_CLK_MSTP32_STS(&p_clk, SMSTPCR10, 6, MSTPSR10, 0), /* SSI9 */ |
251 | [MSTP1005] = SH_CLK_MSTP32_STS(&p_clk, SMSTPCR10, 5, MSTPSR10, 0), /* SSI ALL */ | 251 | [MSTP1005] = SH_CLK_MSTP32_STS(&p_clk, SMSTPCR10, 5, MSTPSR10, 0), /* SSI ALL */ |
252 | [MSTP931] = SH_CLK_MSTP32_STS(&p_clk, SMSTPCR9, 31, MSTPSR9, 0), /* I2C0 */ | 252 | [MSTP931] = SH_CLK_MSTP32_STS(&hp_clk, SMSTPCR9, 31, MSTPSR9, 0), /* I2C0 */ |
253 | [MSTP930] = SH_CLK_MSTP32_STS(&p_clk, SMSTPCR9, 30, MSTPSR9, 0), /* I2C1 */ | 253 | [MSTP930] = SH_CLK_MSTP32_STS(&hp_clk, SMSTPCR9, 30, MSTPSR9, 0), /* I2C1 */ |
254 | [MSTP929] = SH_CLK_MSTP32_STS(&p_clk, SMSTPCR9, 29, MSTPSR9, 0), /* I2C2 */ | 254 | [MSTP929] = SH_CLK_MSTP32_STS(&hp_clk, SMSTPCR9, 29, MSTPSR9, 0), /* I2C2 */ |
255 | [MSTP928] = SH_CLK_MSTP32_STS(&p_clk, SMSTPCR9, 28, MSTPSR9, 0), /* I2C3 */ | 255 | [MSTP928] = SH_CLK_MSTP32_STS(&hp_clk, SMSTPCR9, 28, MSTPSR9, 0), /* I2C3 */ |
256 | [MSTP917] = SH_CLK_MSTP32_STS(&qspi_clk, SMSTPCR9, 17, MSTPSR9, 0), /* QSPI */ | 256 | [MSTP917] = SH_CLK_MSTP32_STS(&qspi_clk, SMSTPCR9, 17, MSTPSR9, 0), /* QSPI */ |
257 | [MSTP815] = SH_CLK_MSTP32_STS(&zs_clk, SMSTPCR8, 15, MSTPSR8, 0), /* SATA0 */ | 257 | [MSTP815] = SH_CLK_MSTP32_STS(&zs_clk, SMSTPCR8, 15, MSTPSR8, 0), /* SATA0 */ |
258 | [MSTP814] = SH_CLK_MSTP32_STS(&zs_clk, SMSTPCR8, 14, MSTPSR8, 0), /* SATA1 */ | 258 | [MSTP814] = SH_CLK_MSTP32_STS(&zs_clk, SMSTPCR8, 14, MSTPSR8, 0), /* SATA1 */ |
@@ -294,10 +294,6 @@ static struct clk mstp_clks[MSTP_NR] = { | |||
294 | static struct clk_lookup lookups[] = { | 294 | static struct clk_lookup lookups[] = { |
295 | 295 | ||
296 | /* main clocks */ | 296 | /* main clocks */ |
297 | CLKDEV_CON_ID("audio_clk_a", &audio_clk_a), | ||
298 | CLKDEV_CON_ID("audio_clk_b", &audio_clk_b), | ||
299 | CLKDEV_CON_ID("audio_clk_c", &audio_clk_c), | ||
300 | CLKDEV_CON_ID("audio_clk_internal", &m2_clk), | ||
301 | CLKDEV_CON_ID("extal", &extal_clk), | 297 | CLKDEV_CON_ID("extal", &extal_clk), |
302 | CLKDEV_CON_ID("extal_div2", &extal_div2_clk), | 298 | CLKDEV_CON_ID("extal_div2", &extal_div2_clk), |
303 | CLKDEV_CON_ID("main", &main_clk), | 299 | CLKDEV_CON_ID("main", &main_clk), |
@@ -381,16 +377,16 @@ static struct clk_lookup lookups[] = { | |||
381 | CLKDEV_ICK_ID("clk_b", "rcar_sound", &audio_clk_b), | 377 | CLKDEV_ICK_ID("clk_b", "rcar_sound", &audio_clk_b), |
382 | CLKDEV_ICK_ID("clk_c", "rcar_sound", &audio_clk_c), | 378 | CLKDEV_ICK_ID("clk_c", "rcar_sound", &audio_clk_c), |
383 | CLKDEV_ICK_ID("clk_i", "rcar_sound", &m2_clk), | 379 | CLKDEV_ICK_ID("clk_i", "rcar_sound", &m2_clk), |
384 | CLKDEV_ICK_ID("scu.0", "rcar_sound", &mstp_clks[MSTP1031]), | 380 | CLKDEV_ICK_ID("src.0", "rcar_sound", &mstp_clks[MSTP1031]), |
385 | CLKDEV_ICK_ID("scu.1", "rcar_sound", &mstp_clks[MSTP1030]), | 381 | CLKDEV_ICK_ID("src.1", "rcar_sound", &mstp_clks[MSTP1030]), |
386 | CLKDEV_ICK_ID("scu.2", "rcar_sound", &mstp_clks[MSTP1029]), | 382 | CLKDEV_ICK_ID("src.2", "rcar_sound", &mstp_clks[MSTP1029]), |
387 | CLKDEV_ICK_ID("scu.3", "rcar_sound", &mstp_clks[MSTP1028]), | 383 | CLKDEV_ICK_ID("src.3", "rcar_sound", &mstp_clks[MSTP1028]), |
388 | CLKDEV_ICK_ID("scu.4", "rcar_sound", &mstp_clks[MSTP1027]), | 384 | CLKDEV_ICK_ID("src.4", "rcar_sound", &mstp_clks[MSTP1027]), |
389 | CLKDEV_ICK_ID("scu.5", "rcar_sound", &mstp_clks[MSTP1026]), | 385 | CLKDEV_ICK_ID("src.5", "rcar_sound", &mstp_clks[MSTP1026]), |
390 | CLKDEV_ICK_ID("scu.6", "rcar_sound", &mstp_clks[MSTP1025]), | 386 | CLKDEV_ICK_ID("src.6", "rcar_sound", &mstp_clks[MSTP1025]), |
391 | CLKDEV_ICK_ID("scu.7", "rcar_sound", &mstp_clks[MSTP1024]), | 387 | CLKDEV_ICK_ID("src.7", "rcar_sound", &mstp_clks[MSTP1024]), |
392 | CLKDEV_ICK_ID("scu.8", "rcar_sound", &mstp_clks[MSTP1023]), | 388 | CLKDEV_ICK_ID("src.8", "rcar_sound", &mstp_clks[MSTP1023]), |
393 | CLKDEV_ICK_ID("scu.9", "rcar_sound", &mstp_clks[MSTP1022]), | 389 | CLKDEV_ICK_ID("src.9", "rcar_sound", &mstp_clks[MSTP1022]), |
394 | CLKDEV_ICK_ID("ssi.0", "rcar_sound", &mstp_clks[MSTP1015]), | 390 | CLKDEV_ICK_ID("ssi.0", "rcar_sound", &mstp_clks[MSTP1015]), |
395 | CLKDEV_ICK_ID("ssi.1", "rcar_sound", &mstp_clks[MSTP1014]), | 391 | CLKDEV_ICK_ID("ssi.1", "rcar_sound", &mstp_clks[MSTP1014]), |
396 | CLKDEV_ICK_ID("ssi.2", "rcar_sound", &mstp_clks[MSTP1013]), | 392 | CLKDEV_ICK_ID("ssi.2", "rcar_sound", &mstp_clks[MSTP1013]), |
diff --git a/arch/arm/mach-shmobile/clock-r8a7791.c b/arch/arm/mach-shmobile/clock-r8a7791.c index 701383fe3267..3b26c7eee873 100644 --- a/arch/arm/mach-shmobile/clock-r8a7791.c +++ b/arch/arm/mach-shmobile/clock-r8a7791.c | |||
@@ -25,6 +25,7 @@ | |||
25 | #include <linux/clkdev.h> | 25 | #include <linux/clkdev.h> |
26 | #include <mach/clock.h> | 26 | #include <mach/clock.h> |
27 | #include <mach/common.h> | 27 | #include <mach/common.h> |
28 | #include <mach/rcar-gen2.h> | ||
28 | 29 | ||
29 | /* | 30 | /* |
30 | * MD EXTAL PLL0 PLL1 PLL3 | 31 | * MD EXTAL PLL0 PLL1 PLL3 |
@@ -43,8 +44,6 @@ | |||
43 | * see "p1 / 2" on R8A7791_CLOCK_ROOT() below | 44 | * see "p1 / 2" on R8A7791_CLOCK_ROOT() below |
44 | */ | 45 | */ |
45 | 46 | ||
46 | #define MD(nr) (1 << nr) | ||
47 | |||
48 | #define CPG_BASE 0xe6150000 | 47 | #define CPG_BASE 0xe6150000 |
49 | #define CPG_LEN 0x1000 | 48 | #define CPG_LEN 0x1000 |
50 | 49 | ||
@@ -68,7 +67,6 @@ | |||
68 | #define MSTPSR9 IOMEM(0xe61509a4) | 67 | #define MSTPSR9 IOMEM(0xe61509a4) |
69 | #define MSTPSR11 IOMEM(0xe61509ac) | 68 | #define MSTPSR11 IOMEM(0xe61509ac) |
70 | 69 | ||
71 | #define MODEMR 0xE6160060 | ||
72 | #define SDCKCR 0xE6150074 | 70 | #define SDCKCR 0xE6150074 |
73 | #define SD1CKCR 0xE6150078 | 71 | #define SD1CKCR 0xE6150078 |
74 | #define SD2CKCR 0xE615026c | 72 | #define SD2CKCR 0xE615026c |
@@ -190,12 +188,12 @@ static struct clk mstp_clks[MSTP_NR] = { | |||
190 | [MSTP1108] = SH_CLK_MSTP32_STS(&mp_clk, SMSTPCR11, 8, MSTPSR11, 0), /* SCIFA5 */ | 188 | [MSTP1108] = SH_CLK_MSTP32_STS(&mp_clk, SMSTPCR11, 8, MSTPSR11, 0), /* SCIFA5 */ |
191 | [MSTP1107] = SH_CLK_MSTP32_STS(&mp_clk, SMSTPCR11, 7, MSTPSR11, 0), /* SCIFA4 */ | 189 | [MSTP1107] = SH_CLK_MSTP32_STS(&mp_clk, SMSTPCR11, 7, MSTPSR11, 0), /* SCIFA4 */ |
192 | [MSTP1106] = SH_CLK_MSTP32_STS(&mp_clk, SMSTPCR11, 6, MSTPSR11, 0), /* SCIFA3 */ | 190 | [MSTP1106] = SH_CLK_MSTP32_STS(&mp_clk, SMSTPCR11, 6, MSTPSR11, 0), /* SCIFA3 */ |
193 | [MSTP931] = SH_CLK_MSTP32_STS(&p_clk, SMSTPCR9, 31, MSTPSR9, 0), /* I2C0 */ | 191 | [MSTP931] = SH_CLK_MSTP32_STS(&hp_clk, SMSTPCR9, 31, MSTPSR9, 0), /* I2C0 */ |
194 | [MSTP930] = SH_CLK_MSTP32_STS(&p_clk, SMSTPCR9, 30, MSTPSR9, 0), /* I2C1 */ | 192 | [MSTP930] = SH_CLK_MSTP32_STS(&hp_clk, SMSTPCR9, 30, MSTPSR9, 0), /* I2C1 */ |
195 | [MSTP929] = SH_CLK_MSTP32_STS(&p_clk, SMSTPCR9, 29, MSTPSR9, 0), /* I2C2 */ | 193 | [MSTP929] = SH_CLK_MSTP32_STS(&hp_clk, SMSTPCR9, 29, MSTPSR9, 0), /* I2C2 */ |
196 | [MSTP928] = SH_CLK_MSTP32_STS(&p_clk, SMSTPCR9, 28, MSTPSR9, 0), /* I2C3 */ | 194 | [MSTP928] = SH_CLK_MSTP32_STS(&hp_clk, SMSTPCR9, 28, MSTPSR9, 0), /* I2C3 */ |
197 | [MSTP927] = SH_CLK_MSTP32_STS(&p_clk, SMSTPCR9, 27, MSTPSR9, 0), /* I2C4 */ | 195 | [MSTP927] = SH_CLK_MSTP32_STS(&hp_clk, SMSTPCR9, 27, MSTPSR9, 0), /* I2C4 */ |
198 | [MSTP925] = SH_CLK_MSTP32_STS(&p_clk, SMSTPCR9, 25, MSTPSR9, 0), /* I2C5 */ | 196 | [MSTP925] = SH_CLK_MSTP32_STS(&hp_clk, SMSTPCR9, 25, MSTPSR9, 0), /* I2C5 */ |
199 | [MSTP917] = SH_CLK_MSTP32_STS(&qspi_clk, SMSTPCR9, 17, MSTPSR9, 0), /* QSPI */ | 197 | [MSTP917] = SH_CLK_MSTP32_STS(&qspi_clk, SMSTPCR9, 17, MSTPSR9, 0), /* QSPI */ |
200 | [MSTP815] = SH_CLK_MSTP32_STS(&zs_clk, SMSTPCR8, 15, MSTPSR8, 0), /* SATA0 */ | 198 | [MSTP815] = SH_CLK_MSTP32_STS(&zs_clk, SMSTPCR8, 15, MSTPSR8, 0), /* SATA0 */ |
201 | [MSTP814] = SH_CLK_MSTP32_STS(&zs_clk, SMSTPCR8, 14, MSTPSR8, 0), /* SATA1 */ | 199 | [MSTP814] = SH_CLK_MSTP32_STS(&zs_clk, SMSTPCR8, 14, MSTPSR8, 0), /* SATA1 */ |
@@ -295,14 +293,9 @@ static struct clk_lookup lookups[] = { | |||
295 | 293 | ||
296 | void __init r8a7791_clock_init(void) | 294 | void __init r8a7791_clock_init(void) |
297 | { | 295 | { |
298 | void __iomem *modemr = ioremap_nocache(MODEMR, PAGE_SIZE); | 296 | u32 mode = rcar_gen2_read_mode_pins(); |
299 | u32 mode; | ||
300 | int k, ret = 0; | 297 | int k, ret = 0; |
301 | 298 | ||
302 | BUG_ON(!modemr); | ||
303 | mode = ioread32(modemr); | ||
304 | iounmap(modemr); | ||
305 | |||
306 | switch (mode & (MD(14) | MD(13))) { | 299 | switch (mode & (MD(14) | MD(13))) { |
307 | case 0: | 300 | case 0: |
308 | R8A7791_CLOCK_ROOT(15, &extal_clk, 172, 208, 106, 88); | 301 | R8A7791_CLOCK_ROOT(15, &extal_clk, 172, 208, 106, 88); |
diff --git a/arch/arm/mach-shmobile/clock.c b/arch/arm/mach-shmobile/clock.c index ad7df629d995..e7232a0373b9 100644 --- a/arch/arm/mach-shmobile/clock.c +++ b/arch/arm/mach-shmobile/clock.c | |||
@@ -21,6 +21,32 @@ | |||
21 | */ | 21 | */ |
22 | #include <linux/kernel.h> | 22 | #include <linux/kernel.h> |
23 | #include <linux/init.h> | 23 | #include <linux/init.h> |
24 | |||
25 | #ifdef CONFIG_COMMON_CLK | ||
26 | #include <linux/clk.h> | ||
27 | #include <linux/clkdev.h> | ||
28 | #include <mach/clock.h> | ||
29 | |||
30 | void __init shmobile_clk_workaround(const struct clk_name *clks, | ||
31 | int nr_clks, bool enable) | ||
32 | { | ||
33 | const struct clk_name *clkn; | ||
34 | struct clk *clk; | ||
35 | unsigned int i; | ||
36 | |||
37 | for (i = 0; i < nr_clks; ++i) { | ||
38 | clkn = clks + i; | ||
39 | clk = clk_get(NULL, clkn->clk); | ||
40 | if (!IS_ERR(clk)) { | ||
41 | clk_register_clkdev(clk, clkn->con_id, clkn->dev_id); | ||
42 | if (enable) | ||
43 | clk_prepare_enable(clk); | ||
44 | clk_put(clk); | ||
45 | } | ||
46 | } | ||
47 | } | ||
48 | |||
49 | #else /* CONFIG_COMMON_CLK */ | ||
24 | #include <linux/sh_clk.h> | 50 | #include <linux/sh_clk.h> |
25 | #include <linux/export.h> | 51 | #include <linux/export.h> |
26 | #include <mach/clock.h> | 52 | #include <mach/clock.h> |
@@ -58,3 +84,5 @@ void __clk_put(struct clk *clk) | |||
58 | { | 84 | { |
59 | } | 85 | } |
60 | EXPORT_SYMBOL(__clk_put); | 86 | EXPORT_SYMBOL(__clk_put); |
87 | |||
88 | #endif /* CONFIG_COMMON_CLK */ | ||
diff --git a/arch/arm/mach-shmobile/include/mach/clock.h b/arch/arm/mach-shmobile/include/mach/clock.h index 03e56074928c..9a93cf924b9c 100644 --- a/arch/arm/mach-shmobile/include/mach/clock.h +++ b/arch/arm/mach-shmobile/include/mach/clock.h | |||
@@ -1,6 +1,21 @@ | |||
1 | #ifndef CLOCK_H | 1 | #ifndef CLOCK_H |
2 | #define CLOCK_H | 2 | #define CLOCK_H |
3 | 3 | ||
4 | #ifdef CONFIG_COMMON_CLK | ||
5 | /* temporary clock configuration helper for platform devices */ | ||
6 | |||
7 | struct clk_name { | ||
8 | const char *clk; | ||
9 | const char *con_id; | ||
10 | const char *dev_id; | ||
11 | }; | ||
12 | |||
13 | void shmobile_clk_workaround(const struct clk_name *clks, int nr_clks, | ||
14 | bool enable); | ||
15 | |||
16 | #else /* CONFIG_COMMON_CLK */ | ||
17 | /* legacy clock implementation */ | ||
18 | |||
4 | unsigned long shmobile_fixed_ratio_clk_recalc(struct clk *clk); | 19 | unsigned long shmobile_fixed_ratio_clk_recalc(struct clk *clk); |
5 | extern struct sh_clk_ops shmobile_fixed_ratio_clk_ops; | 20 | extern struct sh_clk_ops shmobile_fixed_ratio_clk_ops; |
6 | 21 | ||
@@ -36,4 +51,5 @@ do { \ | |||
36 | (p)->div = d; \ | 51 | (p)->div = d; \ |
37 | } while (0) | 52 | } while (0) |
38 | 53 | ||
54 | #endif /* CONFIG_COMMON_CLK */ | ||
39 | #endif | 55 | #endif |