Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: EXYNOS: Add clock support for G-Scaler

Add required clock support for G-Scaler for exynos5

Signed-off-by: Abhilash Kesavan <a.kesavan@samsung.com>
Signed-off-by: Leela Krishna Amudala <l.krishna@samsung.com>
Signed-off-by: Prathyush K <prathyush.k@samsung.com>
Signed-off-by: Shaik Ameer Basha <shaik.ameer@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>

authored by

Shaik Ameer Basha and committed by
Kukjin Kim
2822d318 4cbe5a55

+86
+86
arch/arm/mach-exynos/clock-exynos5.c
··· 552 552 .reg_div = { .reg = EXYNOS5_CLKDIV_TOP0, .shift = 0, .size = 3 }, 553 553 }; 554 554 555 + static struct clksrc_clk exynos5_clk_mout_aclk_300_gscl_mid = { 556 + .clk = { 557 + .name = "mout_aclk_300_gscl_mid", 558 + }, 559 + .sources = &exynos5_clkset_aclk, 560 + .reg_src = { .reg = EXYNOS5_CLKSRC_TOP0, .shift = 24, .size = 1 }, 561 + }; 562 + 563 + static struct clk *exynos5_clkset_aclk_300_mid1_list[] = { 564 + [0] = &exynos5_clk_sclk_vpll.clk, 565 + [1] = &exynos5_clk_mout_cpll.clk, 566 + }; 567 + 568 + static struct clksrc_sources exynos5_clkset_aclk_300_gscl_mid1 = { 569 + .sources = exynos5_clkset_aclk_300_mid1_list, 570 + .nr_sources = ARRAY_SIZE(exynos5_clkset_aclk_300_mid1_list), 571 + }; 572 + 573 + static struct clksrc_clk exynos5_clk_mout_aclk_300_gscl_mid1 = { 574 + .clk = { 575 + .name = "mout_aclk_300_gscl_mid1", 576 + }, 577 + .sources = &exynos5_clkset_aclk_300_gscl_mid1, 578 + .reg_src = { .reg = EXYNOS5_CLKSRC_TOP1, .shift = 12, .size = 1 }, 579 + }; 580 + 581 + static struct clk *exynos5_clkset_aclk_300_gscl_list[] = { 582 + [0] = &exynos5_clk_mout_aclk_300_gscl_mid.clk, 583 + [1] = &exynos5_clk_mout_aclk_300_gscl_mid1.clk, 584 + }; 585 + 586 + static struct clksrc_sources exynos5_clkset_aclk_300_gscl = { 587 + .sources = exynos5_clkset_aclk_300_gscl_list, 588 + .nr_sources = ARRAY_SIZE(exynos5_clkset_aclk_300_gscl_list), 589 + }; 590 + 591 + static struct clksrc_clk exynos5_clk_mout_aclk_300_gscl = { 592 + .clk = { 593 + .name = "mout_aclk_300_gscl", 594 + }, 595 + .sources = &exynos5_clkset_aclk_300_gscl, 596 + .reg_src = { .reg = EXYNOS5_CLKSRC_TOP0, .shift = 25, .size = 1 }, 597 + }; 598 + 599 + static struct clk *exynos5_clk_src_gscl_300_list[] = { 600 + [0] = &clk_ext_xtal_mux, 601 + [1] = &exynos5_clk_mout_aclk_300_gscl.clk, 602 + }; 603 + 604 + static struct clksrc_sources exynos5_clk_src_gscl_300 = { 605 + .sources = exynos5_clk_src_gscl_300_list, 606 + .nr_sources = ARRAY_SIZE(exynos5_clk_src_gscl_300_list), 607 + }; 608 + 609 + static struct clksrc_clk exynos5_clk_aclk_300_gscl = { 610 + .clk = { 611 + .name = "aclk_300_gscl", 612 + }, 613 + .sources = &exynos5_clk_src_gscl_300, 614 + .reg_src = { .reg = EXYNOS5_CLKSRC_TOP3, .shift = 10, .size = 1 }, 615 + }; 616 + 555 617 static struct clk exynos5_init_clocks_off[] = { 556 618 { 557 619 .name = "timers", ··· 825 763 .parent = &exynos5_clk_aclk_66.clk, 826 764 .enable = exynos5_clk_ip_peric_ctrl, 827 765 .ctrlbit = (1 << 18), 766 + }, { 767 + .name = "gscl", 768 + .devname = "exynos-gsc.0", 769 + .enable = exynos5_clk_ip_gscl_ctrl, 770 + .ctrlbit = (1 << 0), 771 + }, { 772 + .name = "gscl", 773 + .devname = "exynos-gsc.1", 774 + .enable = exynos5_clk_ip_gscl_ctrl, 775 + .ctrlbit = (1 << 1), 776 + }, { 777 + .name = "gscl", 778 + .devname = "exynos-gsc.2", 779 + .enable = exynos5_clk_ip_gscl_ctrl, 780 + .ctrlbit = (1 << 2), 781 + }, { 782 + .name = "gscl", 783 + .devname = "exynos-gsc.3", 784 + .enable = exynos5_clk_ip_gscl_ctrl, 785 + .ctrlbit = (1 << 3), 828 786 }, { 829 787 .name = SYSMMU_CLOCK_NAME, 830 788 .devname = SYSMMU_CLOCK_DEVNAME(mfc_l, 0), ··· 1307 1225 &exynos5_clk_aclk_266, 1308 1226 &exynos5_clk_aclk_200, 1309 1227 &exynos5_clk_aclk_166, 1228 + &exynos5_clk_aclk_300_gscl, 1229 + &exynos5_clk_mout_aclk_300_gscl, 1230 + &exynos5_clk_mout_aclk_300_gscl_mid, 1231 + &exynos5_clk_mout_aclk_300_gscl_mid1, 1310 1232 &exynos5_clk_aclk_66_pre, 1311 1233 &exynos5_clk_aclk_66, 1312 1234 &exynos5_clk_dout_mmc0,