diff options
author | Thomas Abraham <thomas.ab@samsung.com> | 2010-05-16 20:38:57 -0400 |
---|---|---|
committer | Ben Dooks <ben-linux@fluff.org> | 2010-05-16 21:37:38 -0400 |
commit | 9e20614bb9403102033b60ce7d8fceb5becdb71c (patch) | |
tree | b22b184272a7aca8dbc25de7a745761772ab8704 /arch/arm/mach-s5pv210 | |
parent | 2cf4c2e6301f19e08b7090c024b312f6e2c0f230 (diff) |
ARM: S5PV210: Add sclk_dac, sclk_mixer and sclk_hdmi clocks
Add sclk_dac, sclk_mixer and sclk_hdmi clocks. These clocks
are of type 'struct clksrc_clk' and so have a corresponding
clock list. These clocks are also added to the list of
clocks to be registered at boot time.
Signed-off-by: Thomas Abraham <thomas.ab@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Diffstat (limited to 'arch/arm/mach-s5pv210')
-rw-r--r-- | arch/arm/mach-s5pv210/clock.c | 75 |
1 files changed, 74 insertions, 1 deletions
diff --git a/arch/arm/mach-s5pv210/clock.c b/arch/arm/mach-s5pv210/clock.c index 2c7be15b5895..c03e2880518a 100644 --- a/arch/arm/mach-s5pv210/clock.c +++ b/arch/arm/mach-s5pv210/clock.c | |||
@@ -463,6 +463,67 @@ static struct clksrc_sources clkset_sclk_onenand = { | |||
463 | .nr_sources = ARRAY_SIZE(clkset_sclk_onenand_list), | 463 | .nr_sources = ARRAY_SIZE(clkset_sclk_onenand_list), |
464 | }; | 464 | }; |
465 | 465 | ||
466 | static struct clk *clkset_sclk_dac_list[] = { | ||
467 | [0] = &clk_sclk_vpll.clk, | ||
468 | [1] = &clk_sclk_hdmiphy, | ||
469 | }; | ||
470 | |||
471 | static struct clksrc_sources clkset_sclk_dac = { | ||
472 | .sources = clkset_sclk_dac_list, | ||
473 | .nr_sources = ARRAY_SIZE(clkset_sclk_dac_list), | ||
474 | }; | ||
475 | |||
476 | static struct clksrc_clk clk_sclk_dac = { | ||
477 | .clk = { | ||
478 | .name = "sclk_dac", | ||
479 | .id = -1, | ||
480 | .ctrlbit = (1 << 10), | ||
481 | .enable = s5pv210_clk_ip1_ctrl, | ||
482 | }, | ||
483 | .sources = &clkset_sclk_dac, | ||
484 | .reg_src = { .reg = S5P_CLK_SRC1, .shift = 8, .size = 1 }, | ||
485 | }; | ||
486 | |||
487 | static struct clksrc_clk clk_sclk_pixel = { | ||
488 | .clk = { | ||
489 | .name = "sclk_pixel", | ||
490 | .id = -1, | ||
491 | .parent = &clk_sclk_vpll.clk, | ||
492 | }, | ||
493 | .reg_div = { .reg = S5P_CLK_DIV1, .shift = 0, .size = 4}, | ||
494 | }; | ||
495 | |||
496 | static struct clk *clkset_sclk_hdmi_list[] = { | ||
497 | [0] = &clk_sclk_pixel.clk, | ||
498 | [1] = &clk_sclk_hdmiphy, | ||
499 | }; | ||
500 | |||
501 | static struct clksrc_sources clkset_sclk_hdmi = { | ||
502 | .sources = clkset_sclk_hdmi_list, | ||
503 | .nr_sources = ARRAY_SIZE(clkset_sclk_hdmi_list), | ||
504 | }; | ||
505 | |||
506 | static struct clksrc_clk clk_sclk_hdmi = { | ||
507 | .clk = { | ||
508 | .name = "sclk_hdmi", | ||
509 | .id = -1, | ||
510 | .enable = s5pv210_clk_ip1_ctrl, | ||
511 | .ctrlbit = (1 << 11), | ||
512 | }, | ||
513 | .sources = &clkset_sclk_hdmi, | ||
514 | .reg_src = { .reg = S5P_CLK_SRC1, .shift = 0, .size = 1 }, | ||
515 | }; | ||
516 | |||
517 | static struct clk *clkset_sclk_mixer_list[] = { | ||
518 | [0] = &clk_sclk_dac.clk, | ||
519 | [1] = &clk_sclk_hdmi.clk, | ||
520 | }; | ||
521 | |||
522 | static struct clksrc_sources clkset_sclk_mixer = { | ||
523 | .sources = clkset_sclk_mixer_list, | ||
524 | .nr_sources = ARRAY_SIZE(clkset_sclk_mixer_list), | ||
525 | }; | ||
526 | |||
466 | static struct clksrc_clk clksrcs[] = { | 527 | static struct clksrc_clk clksrcs[] = { |
467 | { | 528 | { |
468 | .clk = { | 529 | .clk = { |
@@ -490,7 +551,16 @@ static struct clksrc_clk clksrcs[] = { | |||
490 | .sources = &clkset_uart, | 551 | .sources = &clkset_uart, |
491 | .reg_src = { .reg = S5P_CLK_SRC4, .shift = 16, .size = 4 }, | 552 | .reg_src = { .reg = S5P_CLK_SRC4, .shift = 16, .size = 4 }, |
492 | .reg_div = { .reg = S5P_CLK_DIV4, .shift = 16, .size = 4 }, | 553 | .reg_div = { .reg = S5P_CLK_DIV4, .shift = 16, .size = 4 }, |
493 | } | 554 | }, { |
555 | .clk = { | ||
556 | .name = "sclk_mixer", | ||
557 | .id = -1, | ||
558 | .enable = s5pv210_clk_ip1_ctrl, | ||
559 | .ctrlbit = (1 << 9), | ||
560 | }, | ||
561 | .sources = &clkset_sclk_mixer, | ||
562 | .reg_src = { .reg = S5P_CLK_SRC1, .shift = 4, .size = 1 }, | ||
563 | }, | ||
494 | }; | 564 | }; |
495 | 565 | ||
496 | /* Clock initialisation code */ | 566 | /* Clock initialisation code */ |
@@ -508,6 +578,9 @@ static struct clksrc_clk *sysclks[] = { | |||
508 | &clk_pclk_psys, | 578 | &clk_pclk_psys, |
509 | &clk_vpllsrc, | 579 | &clk_vpllsrc, |
510 | &clk_sclk_vpll, | 580 | &clk_sclk_vpll, |
581 | &clk_sclk_dac, | ||
582 | &clk_sclk_pixel, | ||
583 | &clk_sclk_hdmi, | ||
511 | }; | 584 | }; |
512 | 585 | ||
513 | void __init_or_cpufreq s5pv210_setup_clocks(void) | 586 | void __init_or_cpufreq s5pv210_setup_clocks(void) |