diff options
-rw-r--r-- | arch/arm/boot/dts/exynos5420.dtsi | 17 | ||||
-rw-r--r-- | drivers/clk/samsung/clk-exynos5420.c | 23 | ||||
-rw-r--r-- | include/dt-bindings/clock/exynos5420.h | 6 |
3 files changed, 35 insertions, 11 deletions
diff --git a/arch/arm/boot/dts/exynos5420.dtsi b/arch/arm/boot/dts/exynos5420.dtsi index 03ef2481c640..a0a3b2829208 100644 --- a/arch/arm/boot/dts/exynos5420.dtsi +++ b/arch/arm/boot/dts/exynos5420.dtsi | |||
@@ -274,6 +274,20 @@ | |||
274 | #power-domain-cells = <0>; | 274 | #power-domain-cells = <0>; |
275 | }; | 275 | }; |
276 | 276 | ||
277 | disp_pd: power-domain@100440C0 { | ||
278 | compatible = "samsung,exynos4210-pd"; | ||
279 | reg = <0x100440C0 0x20>; | ||
280 | #power-domain-cells = <0>; | ||
281 | clocks = <&clock CLK_FIN_PLL>, <&clock CLK_MOUT_SW_ACLK200>, | ||
282 | <&clock CLK_MOUT_USER_ACLK200_DISP1>, | ||
283 | <&clock CLK_MOUT_SW_ACLK300>, | ||
284 | <&clock CLK_MOUT_USER_ACLK300_DISP1>, | ||
285 | <&clock CLK_MOUT_SW_ACLK400>, | ||
286 | <&clock CLK_MOUT_USER_ACLK400_DISP1>; | ||
287 | clock-names = "oscclk", "pclk0", "clk0", | ||
288 | "pclk1", "clk1", "pclk2", "clk2"; | ||
289 | }; | ||
290 | |||
277 | pinctrl_0: pinctrl@13400000 { | 291 | pinctrl_0: pinctrl@13400000 { |
278 | compatible = "samsung,exynos5420-pinctrl"; | 292 | compatible = "samsung,exynos5420-pinctrl"; |
279 | reg = <0x13400000 0x1000>; | 293 | reg = <0x13400000 0x1000>; |
@@ -541,6 +555,7 @@ | |||
541 | fimd: fimd@14400000 { | 555 | fimd: fimd@14400000 { |
542 | clocks = <&clock CLK_SCLK_FIMD1>, <&clock CLK_FIMD1>; | 556 | clocks = <&clock CLK_SCLK_FIMD1>, <&clock CLK_FIMD1>; |
543 | clock-names = "sclk_fimd", "fimd"; | 557 | clock-names = "sclk_fimd", "fimd"; |
558 | power-domains = <&disp_pd>; | ||
544 | }; | 559 | }; |
545 | 560 | ||
546 | adc: adc@12D10000 { | 561 | adc: adc@12D10000 { |
@@ -714,6 +729,7 @@ | |||
714 | phy = <&hdmiphy>; | 729 | phy = <&hdmiphy>; |
715 | samsung,syscon-phandle = <&pmu_system_controller>; | 730 | samsung,syscon-phandle = <&pmu_system_controller>; |
716 | status = "disabled"; | 731 | status = "disabled"; |
732 | power-domains = <&disp_pd>; | ||
717 | }; | 733 | }; |
718 | 734 | ||
719 | hdmiphy: hdmiphy@145D0000 { | 735 | hdmiphy: hdmiphy@145D0000 { |
@@ -726,6 +742,7 @@ | |||
726 | interrupts = <0 94 0>; | 742 | interrupts = <0 94 0>; |
727 | clocks = <&clock CLK_MIXER>, <&clock CLK_SCLK_HDMI>; | 743 | clocks = <&clock CLK_MIXER>, <&clock CLK_SCLK_HDMI>; |
728 | clock-names = "mixer", "sclk_hdmi"; | 744 | clock-names = "mixer", "sclk_hdmi"; |
745 | power-domains = <&disp_pd>; | ||
729 | }; | 746 | }; |
730 | 747 | ||
731 | gsc_0: video-scaler@13e00000 { | 748 | gsc_0: video-scaler@13e00000 { |
diff --git a/drivers/clk/samsung/clk-exynos5420.c b/drivers/clk/samsung/clk-exynos5420.c index 848d602efc06..07d666cc6a29 100644 --- a/drivers/clk/samsung/clk-exynos5420.c +++ b/drivers/clk/samsung/clk-exynos5420.c | |||
@@ -635,8 +635,8 @@ static struct samsung_mux_clock exynos5x_mux_clks[] __initdata = { | |||
635 | SRC_TOP3, 0, 1), | 635 | SRC_TOP3, 0, 1), |
636 | MUX(0, "mout_user_aclk400_mscl", mout_user_aclk400_mscl_p, | 636 | MUX(0, "mout_user_aclk400_mscl", mout_user_aclk400_mscl_p, |
637 | SRC_TOP3, 4, 1), | 637 | SRC_TOP3, 4, 1), |
638 | MUX(0, "mout_user_aclk200_disp1", mout_user_aclk200_disp1_p, | 638 | MUX(CLK_MOUT_USER_ACLK200_DISP1, "mout_user_aclk200_disp1", |
639 | SRC_TOP3, 8, 1), | 639 | mout_user_aclk200_disp1_p, SRC_TOP3, 8, 1), |
640 | MUX(0, "mout_user_aclk200_fsys2", mout_user_aclk200_fsys2_p, | 640 | MUX(0, "mout_user_aclk200_fsys2", mout_user_aclk200_fsys2_p, |
641 | SRC_TOP3, 12, 1), | 641 | SRC_TOP3, 12, 1), |
642 | MUX(0, "mout_user_aclk400_wcore", mout_user_aclk400_wcore_p, | 642 | MUX(0, "mout_user_aclk400_wcore", mout_user_aclk400_wcore_p, |
@@ -663,8 +663,8 @@ static struct samsung_mux_clock exynos5x_mux_clks[] __initdata = { | |||
663 | MUX(CLK_MOUT_USER_ACLK333, "mout_user_aclk333", mout_user_aclk333_p, | 663 | MUX(CLK_MOUT_USER_ACLK333, "mout_user_aclk333", mout_user_aclk333_p, |
664 | SRC_TOP4, 28, 1), | 664 | SRC_TOP4, 28, 1), |
665 | 665 | ||
666 | MUX(0, "mout_user_aclk400_disp1", mout_user_aclk400_disp1_p, | 666 | MUX(CLK_MOUT_USER_ACLK400_DISP1, "mout_user_aclk400_disp1", |
667 | SRC_TOP5, 0, 1), | 667 | mout_user_aclk400_disp1_p, SRC_TOP5, 0, 1), |
668 | MUX(0, "mout_user_aclk66_psgen", mout_user_aclk66_peric_p, | 668 | MUX(0, "mout_user_aclk66_psgen", mout_user_aclk66_peric_p, |
669 | SRC_TOP5, 4, 1), | 669 | SRC_TOP5, 4, 1), |
670 | MUX(0, "mout_user_aclk333_g2d", mout_user_aclk333_g2d_p, | 670 | MUX(0, "mout_user_aclk333_g2d", mout_user_aclk333_g2d_p, |
@@ -675,8 +675,8 @@ static struct samsung_mux_clock exynos5x_mux_clks[] __initdata = { | |||
675 | SRC_TOP5, 16, 1), | 675 | SRC_TOP5, 16, 1), |
676 | MUX(0, "mout_user_aclk300_jpeg", mout_user_aclk300_jpeg_p, | 676 | MUX(0, "mout_user_aclk300_jpeg", mout_user_aclk300_jpeg_p, |
677 | SRC_TOP5, 20, 1), | 677 | SRC_TOP5, 20, 1), |
678 | MUX(0, "mout_user_aclk300_disp1", mout_user_aclk300_disp1_p, | 678 | MUX(CLK_MOUT_USER_ACLK300_DISP1, "mout_user_aclk300_disp1", |
679 | SRC_TOP5, 24, 1), | 679 | mout_user_aclk300_disp1_p, SRC_TOP5, 24, 1), |
680 | MUX(0, "mout_user_aclk300_gscl", mout_user_aclk300_gscl_p, | 680 | MUX(0, "mout_user_aclk300_gscl", mout_user_aclk300_gscl_p, |
681 | SRC_TOP5, 28, 1), | 681 | SRC_TOP5, 28, 1), |
682 | 682 | ||
@@ -693,7 +693,8 @@ static struct samsung_mux_clock exynos5x_mux_clks[] __initdata = { | |||
693 | SRC_TOP10, 0, 1), | 693 | SRC_TOP10, 0, 1), |
694 | MUX(0, "mout_sw_aclk400_mscl", mout_sw_aclk400_mscl_p, | 694 | MUX(0, "mout_sw_aclk400_mscl", mout_sw_aclk400_mscl_p, |
695 | SRC_TOP10, 4, 1), | 695 | SRC_TOP10, 4, 1), |
696 | MUX(0, "mout_sw_aclk200", mout_sw_aclk200_p, SRC_TOP10, 8, 1), | 696 | MUX(CLK_MOUT_SW_ACLK200, "mout_sw_aclk200", mout_sw_aclk200_p, |
697 | SRC_TOP10, 8, 1), | ||
697 | MUX(0, "mout_sw_aclk200_fsys2", mout_sw_aclk200_fsys2_p, | 698 | MUX(0, "mout_sw_aclk200_fsys2", mout_sw_aclk200_fsys2_p, |
698 | SRC_TOP10, 12, 1), | 699 | SRC_TOP10, 12, 1), |
699 | MUX(0, "mout_sw_aclk400_wcore", mout_sw_aclk400_wcore_p, | 700 | MUX(0, "mout_sw_aclk400_wcore", mout_sw_aclk400_wcore_p, |
@@ -717,8 +718,8 @@ static struct samsung_mux_clock exynos5x_mux_clks[] __initdata = { | |||
717 | MUX(CLK_MOUT_SW_ACLK333, "mout_sw_aclk333", mout_sw_aclk333_p, | 718 | MUX(CLK_MOUT_SW_ACLK333, "mout_sw_aclk333", mout_sw_aclk333_p, |
718 | SRC_TOP11, 28, 1), | 719 | SRC_TOP11, 28, 1), |
719 | 720 | ||
720 | MUX(0, "mout_sw_aclk400_disp1", mout_sw_aclk400_disp1_p, | 721 | MUX(CLK_MOUT_SW_ACLK400, "mout_sw_aclk400_disp1", |
721 | SRC_TOP12, 4, 1), | 722 | mout_sw_aclk400_disp1_p, SRC_TOP12, 4, 1), |
722 | MUX(0, "mout_sw_aclk333_g2d", mout_sw_aclk333_g2d_p, | 723 | MUX(0, "mout_sw_aclk333_g2d", mout_sw_aclk333_g2d_p, |
723 | SRC_TOP12, 8, 1), | 724 | SRC_TOP12, 8, 1), |
724 | MUX(0, "mout_sw_aclk266_g2d", mout_sw_aclk266_g2d_p, | 725 | MUX(0, "mout_sw_aclk266_g2d", mout_sw_aclk266_g2d_p, |
@@ -726,8 +727,8 @@ static struct samsung_mux_clock exynos5x_mux_clks[] __initdata = { | |||
726 | MUX(0, "mout_sw_aclk_g3d", mout_sw_aclk_g3d_p, SRC_TOP12, 16, 1), | 727 | MUX(0, "mout_sw_aclk_g3d", mout_sw_aclk_g3d_p, SRC_TOP12, 16, 1), |
727 | MUX(0, "mout_sw_aclk300_jpeg", mout_sw_aclk300_jpeg_p, | 728 | MUX(0, "mout_sw_aclk300_jpeg", mout_sw_aclk300_jpeg_p, |
728 | SRC_TOP12, 20, 1), | 729 | SRC_TOP12, 20, 1), |
729 | MUX(0, "mout_sw_aclk300_disp1", mout_sw_aclk300_disp1_p, | 730 | MUX(CLK_MOUT_SW_ACLK300, "mout_sw_aclk300_disp1", |
730 | SRC_TOP12, 24, 1), | 731 | mout_sw_aclk300_disp1_p, SRC_TOP12, 24, 1), |
731 | MUX(0, "mout_sw_aclk300_gscl", mout_sw_aclk300_gscl_p, | 732 | MUX(0, "mout_sw_aclk300_gscl", mout_sw_aclk300_gscl_p, |
732 | SRC_TOP12, 28, 1), | 733 | SRC_TOP12, 28, 1), |
733 | 734 | ||
diff --git a/include/dt-bindings/clock/exynos5420.h b/include/dt-bindings/clock/exynos5420.h index 8dc0913f1775..99da0d117a7d 100644 --- a/include/dt-bindings/clock/exynos5420.h +++ b/include/dt-bindings/clock/exynos5420.h | |||
@@ -204,6 +204,12 @@ | |||
204 | #define CLK_MOUT_MAUDIO0 643 | 204 | #define CLK_MOUT_MAUDIO0 643 |
205 | #define CLK_MOUT_USER_ACLK333 644 | 205 | #define CLK_MOUT_USER_ACLK333 644 |
206 | #define CLK_MOUT_SW_ACLK333 645 | 206 | #define CLK_MOUT_SW_ACLK333 645 |
207 | #define CLK_MOUT_USER_ACLK200_DISP1 646 | ||
208 | #define CLK_MOUT_SW_ACLK200 647 | ||
209 | #define CLK_MOUT_USER_ACLK300_DISP1 648 | ||
210 | #define CLK_MOUT_SW_ACLK300 649 | ||
211 | #define CLK_MOUT_USER_ACLK400_DISP1 650 | ||
212 | #define CLK_MOUT_SW_ACLK400 651 | ||
207 | 213 | ||
208 | /* divider clocks */ | 214 | /* divider clocks */ |
209 | #define CLK_DOUT_PIXEL 768 | 215 | #define CLK_DOUT_PIXEL 768 |