diff options
Diffstat (limited to 'drivers/clk/ux500/u8500_clk.c')
-rw-r--r-- | drivers/clk/ux500/u8500_clk.c | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/drivers/clk/ux500/u8500_clk.c b/drivers/clk/ux500/u8500_clk.c index e2c17d187d98..7d0e0258f204 100644 --- a/drivers/clk/ux500/u8500_clk.c +++ b/drivers/clk/ux500/u8500_clk.c | |||
@@ -170,10 +170,11 @@ void u8500_clk_init(void) | |||
170 | clk_register_clkdev(clk, NULL, "mtu0"); | 170 | clk_register_clkdev(clk, NULL, "mtu0"); |
171 | clk_register_clkdev(clk, NULL, "mtu1"); | 171 | clk_register_clkdev(clk, NULL, "mtu1"); |
172 | 172 | ||
173 | clk = clk_reg_prcmu_gate("sdmmcclk", NULL, PRCMU_SDMMCCLK, CLK_IS_ROOT); | 173 | clk = clk_reg_prcmu_opp_volt_scalable("sdmmcclk", NULL, PRCMU_SDMMCCLK, |
174 | 100000000, | ||
175 | CLK_IS_ROOT|CLK_SET_RATE_GATE); | ||
174 | clk_register_clkdev(clk, NULL, "sdmmc"); | 176 | clk_register_clkdev(clk, NULL, "sdmmc"); |
175 | 177 | ||
176 | |||
177 | clk = clk_reg_prcmu_scalable("dsi_pll", "hdmiclk", | 178 | clk = clk_reg_prcmu_scalable("dsi_pll", "hdmiclk", |
178 | PRCMU_PLLDSI, 0, CLK_SET_RATE_GATE); | 179 | PRCMU_PLLDSI, 0, CLK_SET_RATE_GATE); |
179 | clk_register_clkdev(clk, "dsihs2", "mcde"); | 180 | clk_register_clkdev(clk, "dsihs2", "mcde"); |
@@ -205,16 +206,18 @@ void u8500_clk_init(void) | |||
205 | clk_register_clkdev(clk, "dsilp2", "dsilink.2"); | 206 | clk_register_clkdev(clk, "dsilp2", "dsilink.2"); |
206 | clk_register_clkdev(clk, "dsilp2", "mcde"); | 207 | clk_register_clkdev(clk, "dsilp2", "mcde"); |
207 | 208 | ||
208 | clk = clk_reg_prcmu_rate("smp_twd", NULL, PRCMU_ARMSS, | 209 | clk = clk_reg_prcmu_scalable_rate("armss", NULL, |
209 | CLK_IS_ROOT|CLK_GET_RATE_NOCACHE| | 210 | PRCMU_ARMSS, 0, CLK_IS_ROOT|CLK_IGNORE_UNUSED); |
210 | CLK_IGNORE_UNUSED); | 211 | clk_register_clkdev(clk, "armss", NULL); |
212 | |||
213 | clk = clk_register_fixed_factor(NULL, "smp_twd", "armss", | ||
214 | CLK_IGNORE_UNUSED, 1, 2); | ||
211 | clk_register_clkdev(clk, NULL, "smp_twd"); | 215 | clk_register_clkdev(clk, NULL, "smp_twd"); |
212 | 216 | ||
213 | /* | 217 | /* |
214 | * FIXME: Add special handled PRCMU clocks here: | 218 | * FIXME: Add special handled PRCMU clocks here: |
215 | * 1. clk_arm, use PRCMU_ARMCLK. | 219 | * 1. clkout0yuv, use PRCMU as parent + need regulator + pinctrl. |
216 | * 2. clkout0yuv, use PRCMU as parent + need regulator + pinctrl. | 220 | * 2. ab9540_clkout1yuv, see clkout0yuv |
217 | * 3. ab9540_clkout1yuv, see clkout0yuv | ||
218 | */ | 221 | */ |
219 | 222 | ||
220 | /* PRCC P-clocks */ | 223 | /* PRCC P-clocks */ |
@@ -323,7 +326,7 @@ void u8500_clk_init(void) | |||
323 | clk_register_clkdev(clk, NULL, "gpioblock1"); | 326 | clk_register_clkdev(clk, NULL, "gpioblock1"); |
324 | 327 | ||
325 | clk = clk_reg_prcc_pclk("p2_pclk12", "per2clk", U8500_CLKRST2_BASE, | 328 | clk = clk_reg_prcc_pclk("p2_pclk12", "per2clk", U8500_CLKRST2_BASE, |
326 | BIT(11), 0); | 329 | BIT(12), 0); |
327 | 330 | ||
328 | clk = clk_reg_prcc_pclk("p3_pclk0", "per3clk", U8500_CLKRST3_BASE, | 331 | clk = clk_reg_prcc_pclk("p3_pclk0", "per3clk", U8500_CLKRST3_BASE, |
329 | BIT(0), 0); | 332 | BIT(0), 0); |
@@ -347,6 +350,8 @@ void u8500_clk_init(void) | |||
347 | 350 | ||
348 | clk = clk_reg_prcc_pclk("p3_pclk5", "per3clk", U8500_CLKRST3_BASE, | 351 | clk = clk_reg_prcc_pclk("p3_pclk5", "per3clk", U8500_CLKRST3_BASE, |
349 | BIT(5), 0); | 352 | BIT(5), 0); |
353 | clk_register_clkdev(clk, "apb_pclk", "ske"); | ||
354 | clk_register_clkdev(clk, "apb_pclk", "nmk-ske-keypad"); | ||
350 | 355 | ||
351 | clk = clk_reg_prcc_pclk("p3_pclk6", "per3clk", U8500_CLKRST3_BASE, | 356 | clk = clk_reg_prcc_pclk("p3_pclk6", "per3clk", U8500_CLKRST3_BASE, |
352 | BIT(6), 0); | 357 | BIT(6), 0); |
@@ -375,6 +380,7 @@ void u8500_clk_init(void) | |||
375 | 380 | ||
376 | clk = clk_reg_prcc_pclk("p6_pclk0", "per6clk", U8500_CLKRST6_BASE, | 381 | clk = clk_reg_prcc_pclk("p6_pclk0", "per6clk", U8500_CLKRST6_BASE, |
377 | BIT(0), 0); | 382 | BIT(0), 0); |
383 | clk_register_clkdev(clk, "apb_pclk", "rng"); | ||
378 | 384 | ||
379 | clk = clk_reg_prcc_pclk("p6_pclk1", "per6clk", U8500_CLKRST6_BASE, | 385 | clk = clk_reg_prcc_pclk("p6_pclk1", "per6clk", U8500_CLKRST6_BASE, |
380 | BIT(1), 0); | 386 | BIT(1), 0); |
@@ -503,6 +509,8 @@ void u8500_clk_init(void) | |||
503 | 509 | ||
504 | clk = clk_reg_prcc_kclk("p3_ske_kclk", "rtc32k", | 510 | clk = clk_reg_prcc_kclk("p3_ske_kclk", "rtc32k", |
505 | U8500_CLKRST3_BASE, BIT(5), CLK_SET_RATE_GATE); | 511 | U8500_CLKRST3_BASE, BIT(5), CLK_SET_RATE_GATE); |
512 | clk_register_clkdev(clk, NULL, "ske"); | ||
513 | clk_register_clkdev(clk, NULL, "nmk-ske-keypad"); | ||
506 | 514 | ||
507 | clk = clk_reg_prcc_kclk("p3_uart2_kclk", "uartclk", | 515 | clk = clk_reg_prcc_kclk("p3_uart2_kclk", "uartclk", |
508 | U8500_CLKRST3_BASE, BIT(6), CLK_SET_RATE_GATE); | 516 | U8500_CLKRST3_BASE, BIT(6), CLK_SET_RATE_GATE); |
@@ -515,5 +523,5 @@ void u8500_clk_init(void) | |||
515 | /* Periph6 */ | 523 | /* Periph6 */ |
516 | clk = clk_reg_prcc_kclk("p3_rng_kclk", "rngclk", | 524 | clk = clk_reg_prcc_kclk("p3_rng_kclk", "rngclk", |
517 | U8500_CLKRST6_BASE, BIT(0), CLK_SET_RATE_GATE); | 525 | U8500_CLKRST6_BASE, BIT(0), CLK_SET_RATE_GATE); |
518 | 526 | clk_register_clkdev(clk, NULL, "rng"); | |
519 | } | 527 | } |