diff options
Diffstat (limited to 'arch/arm/mach-s5p64x0/clock-s5p6450.c')
-rw-r--r-- | arch/arm/mach-s5p64x0/clock-s5p6450.c | 32 |
1 files changed, 23 insertions, 9 deletions
diff --git a/arch/arm/mach-s5p64x0/clock-s5p6450.c b/arch/arm/mach-s5p64x0/clock-s5p6450.c index 2d04abfba12e..d132638c7b23 100644 --- a/arch/arm/mach-s5p64x0/clock-s5p6450.c +++ b/arch/arm/mach-s5p64x0/clock-s5p6450.c | |||
@@ -443,15 +443,6 @@ static struct clksrc_clk clksrcs[] = { | |||
443 | .reg_div = { .reg = S5P64X0_CLK_DIV1, .shift = 8, .size = 4 }, | 443 | .reg_div = { .reg = S5P64X0_CLK_DIV1, .shift = 8, .size = 4 }, |
444 | }, { | 444 | }, { |
445 | .clk = { | 445 | .clk = { |
446 | .name = "uclk1", | ||
447 | .ctrlbit = (1 << 5), | ||
448 | .enable = s5p64x0_sclk_ctrl, | ||
449 | }, | ||
450 | .sources = &clkset_uart, | ||
451 | .reg_src = { .reg = S5P64X0_CLK_SRC0, .shift = 13, .size = 1 }, | ||
452 | .reg_div = { .reg = S5P64X0_CLK_DIV2, .shift = 16, .size = 4 }, | ||
453 | }, { | ||
454 | .clk = { | ||
455 | .name = "sclk_spi", | 446 | .name = "sclk_spi", |
456 | .devname = "s3c64xx-spi.0", | 447 | .devname = "s3c64xx-spi.0", |
457 | .ctrlbit = (1 << 20), | 448 | .ctrlbit = (1 << 20), |
@@ -536,6 +527,26 @@ static struct clksrc_clk clksrcs[] = { | |||
536 | }, | 527 | }, |
537 | }; | 528 | }; |
538 | 529 | ||
530 | static struct clksrc_clk clk_sclk_uclk = { | ||
531 | .clk = { | ||
532 | .name = "uclk1", | ||
533 | .ctrlbit = (1 << 5), | ||
534 | .enable = s5p64x0_sclk_ctrl, | ||
535 | }, | ||
536 | .sources = &clkset_uart, | ||
537 | .reg_src = { .reg = S5P64X0_CLK_SRC0, .shift = 13, .size = 1 }, | ||
538 | .reg_div = { .reg = S5P64X0_CLK_DIV2, .shift = 16, .size = 4 }, | ||
539 | }; | ||
540 | |||
541 | static struct clksrc_clk *clksrc_cdev[] = { | ||
542 | &clk_sclk_uclk, | ||
543 | }; | ||
544 | |||
545 | static struct clk_lookup s5p6450_clk_lookup[] = { | ||
546 | CLKDEV_INIT(NULL, "clk_uart_baud2", &clk_pclk_low.clk), | ||
547 | CLKDEV_INIT(NULL, "clk_uart_baud3", &clk_sclk_uclk.clk), | ||
548 | }; | ||
549 | |||
539 | /* Clock initialization code */ | 550 | /* Clock initialization code */ |
540 | static struct clksrc_clk *sysclks[] = { | 551 | static struct clksrc_clk *sysclks[] = { |
541 | &clk_mout_apll, | 552 | &clk_mout_apll, |
@@ -634,9 +645,12 @@ void __init s5p6450_register_clocks(void) | |||
634 | 645 | ||
635 | s3c_register_clksrc(clksrcs, ARRAY_SIZE(clksrcs)); | 646 | s3c_register_clksrc(clksrcs, ARRAY_SIZE(clksrcs)); |
636 | s3c_register_clocks(init_clocks, ARRAY_SIZE(init_clocks)); | 647 | s3c_register_clocks(init_clocks, ARRAY_SIZE(init_clocks)); |
648 | for (ptr = 0; ptr < ARRAY_SIZE(clksrc_cdev); ptr++) | ||
649 | s3c_register_clksrc(clksrc_cdev[ptr], 1); | ||
637 | 650 | ||
638 | s3c_register_clocks(init_clocks_off, ARRAY_SIZE(init_clocks_off)); | 651 | s3c_register_clocks(init_clocks_off, ARRAY_SIZE(init_clocks_off)); |
639 | s3c_disable_clocks(init_clocks_off, ARRAY_SIZE(init_clocks_off)); | 652 | s3c_disable_clocks(init_clocks_off, ARRAY_SIZE(init_clocks_off)); |
653 | clkdev_add_table(s5p6450_clk_lookup, ARRAY_SIZE(s5p6450_clk_lookup)); | ||
640 | 654 | ||
641 | s3c24xx_register_clock(&dummy_apb_pclk); | 655 | s3c24xx_register_clock(&dummy_apb_pclk); |
642 | 656 | ||