diff options
Diffstat (limited to 'arch/arm/mach-s5p64x0/clock-s5p6440.c')
-rw-r--r-- | arch/arm/mach-s5p64x0/clock-s5p6440.c | 72 |
1 files changed, 42 insertions, 30 deletions
diff --git a/arch/arm/mach-s5p64x0/clock-s5p6440.c b/arch/arm/mach-s5p64x0/clock-s5p6440.c index 925d2daa60c7..ee1e8e7f5631 100644 --- a/arch/arm/mach-s5p64x0/clock-s5p6440.c +++ b/arch/arm/mach-s5p64x0/clock-s5p6440.c | |||
@@ -380,36 +380,6 @@ static struct clksrc_sources clkset_audio = { | |||
380 | static struct clksrc_clk clksrcs[] = { | 380 | static struct clksrc_clk clksrcs[] = { |
381 | { | 381 | { |
382 | .clk = { | 382 | .clk = { |
383 | .name = "sclk_mmc", | ||
384 | .devname = "s3c-sdhci.0", | ||
385 | .ctrlbit = (1 << 24), | ||
386 | .enable = s5p64x0_sclk_ctrl, | ||
387 | }, | ||
388 | .sources = &clkset_group1, | ||
389 | .reg_src = { .reg = S5P64X0_CLK_SRC0, .shift = 18, .size = 2 }, | ||
390 | .reg_div = { .reg = S5P64X0_CLK_DIV1, .shift = 0, .size = 4 }, | ||
391 | }, { | ||
392 | .clk = { | ||
393 | .name = "sclk_mmc", | ||
394 | .devname = "s3c-sdhci.1", | ||
395 | .ctrlbit = (1 << 25), | ||
396 | .enable = s5p64x0_sclk_ctrl, | ||
397 | }, | ||
398 | .sources = &clkset_group1, | ||
399 | .reg_src = { .reg = S5P64X0_CLK_SRC0, .shift = 20, .size = 2 }, | ||
400 | .reg_div = { .reg = S5P64X0_CLK_DIV1, .shift = 4, .size = 4 }, | ||
401 | }, { | ||
402 | .clk = { | ||
403 | .name = "sclk_mmc", | ||
404 | .devname = "s3c-sdhci.2", | ||
405 | .ctrlbit = (1 << 26), | ||
406 | .enable = s5p64x0_sclk_ctrl, | ||
407 | }, | ||
408 | .sources = &clkset_group1, | ||
409 | .reg_src = { .reg = S5P64X0_CLK_SRC0, .shift = 22, .size = 2 }, | ||
410 | .reg_div = { .reg = S5P64X0_CLK_DIV1, .shift = 8, .size = 4 }, | ||
411 | }, { | ||
412 | .clk = { | ||
413 | .name = "sclk_post", | 383 | .name = "sclk_post", |
414 | .ctrlbit = (1 << 10), | 384 | .ctrlbit = (1 << 10), |
415 | .enable = s5p64x0_sclk_ctrl, | 385 | .enable = s5p64x0_sclk_ctrl, |
@@ -447,6 +417,42 @@ static struct clksrc_clk clksrcs[] = { | |||
447 | }, | 417 | }, |
448 | }; | 418 | }; |
449 | 419 | ||
420 | static struct clksrc_clk clk_sclk_mmc0 = { | ||
421 | .clk = { | ||
422 | .name = "sclk_mmc", | ||
423 | .devname = "s3c-sdhci.0", | ||
424 | .ctrlbit = (1 << 24), | ||
425 | .enable = s5p64x0_sclk_ctrl, | ||
426 | }, | ||
427 | .sources = &clkset_group1, | ||
428 | .reg_src = { .reg = S5P64X0_CLK_SRC0, .shift = 18, .size = 2 }, | ||
429 | .reg_div = { .reg = S5P64X0_CLK_DIV1, .shift = 0, .size = 4 }, | ||
430 | }; | ||
431 | |||
432 | static struct clksrc_clk clk_sclk_mmc1 = { | ||
433 | .clk = { | ||
434 | .name = "sclk_mmc", | ||
435 | .devname = "s3c-sdhci.1", | ||
436 | .ctrlbit = (1 << 25), | ||
437 | .enable = s5p64x0_sclk_ctrl, | ||
438 | }, | ||
439 | .sources = &clkset_group1, | ||
440 | .reg_src = { .reg = S5P64X0_CLK_SRC0, .shift = 20, .size = 2 }, | ||
441 | .reg_div = { .reg = S5P64X0_CLK_DIV1, .shift = 4, .size = 4 }, | ||
442 | }; | ||
443 | |||
444 | static struct clksrc_clk clk_sclk_mmc2 = { | ||
445 | .clk = { | ||
446 | .name = "sclk_mmc", | ||
447 | .devname = "s3c-sdhci.2", | ||
448 | .ctrlbit = (1 << 26), | ||
449 | .enable = s5p64x0_sclk_ctrl, | ||
450 | }, | ||
451 | .sources = &clkset_group1, | ||
452 | .reg_src = { .reg = S5P64X0_CLK_SRC0, .shift = 22, .size = 2 }, | ||
453 | .reg_div = { .reg = S5P64X0_CLK_DIV1, .shift = 8, .size = 4 }, | ||
454 | }; | ||
455 | |||
450 | static struct clksrc_clk clk_sclk_uclk = { | 456 | static struct clksrc_clk clk_sclk_uclk = { |
451 | .clk = { | 457 | .clk = { |
452 | .name = "uclk1", | 458 | .name = "uclk1", |
@@ -504,6 +510,9 @@ static struct clksrc_clk *clksrc_cdev[] = { | |||
504 | &clk_sclk_uclk, | 510 | &clk_sclk_uclk, |
505 | &clk_sclk_spi0, | 511 | &clk_sclk_spi0, |
506 | &clk_sclk_spi1, | 512 | &clk_sclk_spi1, |
513 | &clk_sclk_mmc0, | ||
514 | &clk_sclk_mmc1, | ||
515 | &clk_sclk_mmc2 | ||
507 | }; | 516 | }; |
508 | 517 | ||
509 | static struct clk_lookup s5p6440_clk_lookup[] = { | 518 | static struct clk_lookup s5p6440_clk_lookup[] = { |
@@ -512,6 +521,9 @@ static struct clk_lookup s5p6440_clk_lookup[] = { | |||
512 | CLKDEV_INIT(NULL, "spi_busclk0", &clk_p), | 521 | CLKDEV_INIT(NULL, "spi_busclk0", &clk_p), |
513 | CLKDEV_INIT("s3c64xx-spi.0", "spi_busclk1", &clk_sclk_spi0.clk), | 522 | CLKDEV_INIT("s3c64xx-spi.0", "spi_busclk1", &clk_sclk_spi0.clk), |
514 | CLKDEV_INIT("s3c64xx-spi.1", "spi_busclk1", &clk_sclk_spi1.clk), | 523 | CLKDEV_INIT("s3c64xx-spi.1", "spi_busclk1", &clk_sclk_spi1.clk), |
524 | CLKDEV_INIT("s3c-sdhci.0", "mmc_busclk.2", &clk_sclk_mmc0.clk), | ||
525 | CLKDEV_INIT("s3c-sdhci.1", "mmc_busclk.2", &clk_sclk_mmc1.clk), | ||
526 | CLKDEV_INIT("s3c-sdhci.2", "mmc_busclk.2", &clk_sclk_mmc2.clk), | ||
515 | }; | 527 | }; |
516 | 528 | ||
517 | void __init_or_cpufreq s5p6440_setup_clocks(void) | 529 | void __init_or_cpufreq s5p6440_setup_clocks(void) |