aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-s5pv210
diff options
context:
space:
mode:
authorThomas Abraham <thomas.ab@samsung.com>2010-05-16 20:38:57 -0400
committerBen Dooks <ben-linux@fluff.org>2010-05-16 21:37:38 -0400
commit9e20614bb9403102033b60ce7d8fceb5becdb71c (patch)
treeb22b184272a7aca8dbc25de7a745761772ab8704 /arch/arm/mach-s5pv210
parent2cf4c2e6301f19e08b7090c024b312f6e2c0f230 (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.c75
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
466static struct clk *clkset_sclk_dac_list[] = {
467 [0] = &clk_sclk_vpll.clk,
468 [1] = &clk_sclk_hdmiphy,
469};
470
471static struct clksrc_sources clkset_sclk_dac = {
472 .sources = clkset_sclk_dac_list,
473 .nr_sources = ARRAY_SIZE(clkset_sclk_dac_list),
474};
475
476static 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
487static 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
496static struct clk *clkset_sclk_hdmi_list[] = {
497 [0] = &clk_sclk_pixel.clk,
498 [1] = &clk_sclk_hdmiphy,
499};
500
501static struct clksrc_sources clkset_sclk_hdmi = {
502 .sources = clkset_sclk_hdmi_list,
503 .nr_sources = ARRAY_SIZE(clkset_sclk_hdmi_list),
504};
505
506static 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
517static struct clk *clkset_sclk_mixer_list[] = {
518 [0] = &clk_sclk_dac.clk,
519 [1] = &clk_sclk_hdmi.clk,
520};
521
522static struct clksrc_sources clkset_sclk_mixer = {
523 .sources = clkset_sclk_mixer_list,
524 .nr_sources = ARRAY_SIZE(clkset_sclk_mixer_list),
525};
526
466static struct clksrc_clk clksrcs[] = { 527static 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
513void __init_or_cpufreq s5pv210_setup_clocks(void) 586void __init_or_cpufreq s5pv210_setup_clocks(void)