* [PATCH v2 1/5] clk/exynos5420: add sclk_hdmiphy to the list of special clocks
2013-08-23 6:57 [PATCH v2 0/5] clk/exynos5420: add clocks for hdmi subsystem Rahul Sharma
@ 2013-08-23 6:57 ` Rahul Sharma
2013-08-23 6:57 ` [PATCH v2 2/5] clk/exynos5420: add gate clock for mixer sysmmu Rahul Sharma
` (3 subsequent siblings)
4 siblings, 0 replies; 8+ messages in thread
From: Rahul Sharma @ 2013-08-23 6:57 UTC (permalink / raw)
To: linux-arm-kernel
Add sclk_hdmiphy to the list of exposed clocks. This is required
by hdmi driver to change the parent of hdmi clock.
Signed-off-by: Rahul Sharma <rahul.sharma@samsung.com>
---
Documentation/devicetree/bindings/clock/exynos5420-clock.txt | 1 +
drivers/clk/samsung/clk-exynos5420.c | 4 ++--
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/Documentation/devicetree/bindings/clock/exynos5420-clock.txt b/Documentation/devicetree/bindings/clock/exynos5420-clock.txt
index 9bcc4b1..596a368 100644
--- a/Documentation/devicetree/bindings/clock/exynos5420-clock.txt
+++ b/Documentation/devicetree/bindings/clock/exynos5420-clock.txt
@@ -59,6 +59,7 @@ clock which they consume.
sclk_pwm 155
sclk_gscl_wa 156
sclk_gscl_wb 157
+ sclk_hdmiphy 158
[Peripheral Clock Gates]
diff --git a/drivers/clk/samsung/clk-exynos5420.c b/drivers/clk/samsung/clk-exynos5420.c
index e035fd0..a86cadc 100644
--- a/drivers/clk/samsung/clk-exynos5420.c
+++ b/drivers/clk/samsung/clk-exynos5420.c
@@ -120,7 +120,7 @@ enum exynos5420_clks {
sclk_i2s2, sclk_pcm1, sclk_pcm2, sclk_spdif, sclk_hdmi, sclk_pixel,
sclk_dp1, sclk_mipi1, sclk_fimd1, sclk_maudio0, sclk_maupcm0,
sclk_usbd300, sclk_usbd301, sclk_usbphy300, sclk_usbphy301, sclk_unipro,
- sclk_pwm, sclk_gscl_wa, sclk_gscl_wb,
+ sclk_pwm, sclk_gscl_wa, sclk_gscl_wb, sclk_hdmiphy,
/* gate clocks */
aclk66_peric = 256, uart0, uart1, uart2, uart3, i2c0, i2c1, i2c2, i2c3,
@@ -297,7 +297,7 @@ static struct samsung_fixed_rate_clock exynos5420_fixed_rate_ext_clks[] __initda
/* fixed rate clocks generated inside the soc */
static struct samsung_fixed_rate_clock exynos5420_fixed_rate_clks[] __initdata = {
- FRATE(none, "sclk_hdmiphy", NULL, CLK_IS_ROOT, 24000000),
+ FRATE(sclk_hdmiphy, "sclk_hdmiphy", NULL, CLK_IS_ROOT, 24000000),
FRATE(none, "sclk_pwi", NULL, CLK_IS_ROOT, 24000000),
FRATE(none, "sclk_usbh20", NULL, CLK_IS_ROOT, 48000000),
FRATE(none, "mphy_refclk_ixtal24", NULL, CLK_IS_ROOT, 48000000),
--
1.7.10.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 2/5] clk/exynos5420: add gate clock for mixer sysmmu
2013-08-23 6:57 [PATCH v2 0/5] clk/exynos5420: add clocks for hdmi subsystem Rahul Sharma
2013-08-23 6:57 ` [PATCH v2 1/5] clk/exynos5420: add sclk_hdmiphy to the list of special clocks Rahul Sharma
@ 2013-08-23 6:57 ` Rahul Sharma
2013-08-23 6:57 ` [PATCH v2 3/5] clk/exynos5420: fix the order of parents of hdmi mux Rahul Sharma
` (2 subsequent siblings)
4 siblings, 0 replies; 8+ messages in thread
From: Rahul Sharma @ 2013-08-23 6:57 UTC (permalink / raw)
To: linux-arm-kernel
Adding sysmmu clock for mixer for exynos5420.
Signed-off-by: Rahul Sharma <rahul.sharma@samsung.com>
---
Documentation/devicetree/bindings/clock/exynos5420-clock.txt | 1 +
drivers/clk/samsung/clk-exynos5420.c | 3 ++-
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/clock/exynos5420-clock.txt b/Documentation/devicetree/bindings/clock/exynos5420-clock.txt
index 596a368..5758a69 100644
--- a/Documentation/devicetree/bindings/clock/exynos5420-clock.txt
+++ b/Documentation/devicetree/bindings/clock/exynos5420-clock.txt
@@ -180,6 +180,7 @@ clock which they consume.
fimc_lite3 495
aclk_g3d 500
g3d 501
+ smmu_mixer 502
Example 1: An example of a clock controller node is listed below.
diff --git a/drivers/clk/samsung/clk-exynos5420.c b/drivers/clk/samsung/clk-exynos5420.c
index a86cadc..4e0c13e 100644
--- a/drivers/clk/samsung/clk-exynos5420.c
+++ b/drivers/clk/samsung/clk-exynos5420.c
@@ -138,7 +138,7 @@ enum exynos5420_clks {
aclk300_gscl = 460, smmu_gscl0, smmu_gscl1, gscl_wa, gscl_wb, gscl0,
gscl1, clk_3aa, aclk266_g2d = 470, sss, slim_sss, mdma0,
aclk333_g2d = 480, g2d, aclk333_432_gscl = 490, smmu_3aa, smmu_fimcl0,
- smmu_fimcl1, smmu_fimcl3, fimc_lite3, aclk_g3d = 500, g3d,
+ smmu_fimcl1, smmu_fimcl3, fimc_lite3, aclk_g3d = 500, g3d, smmu_mixer,
nr_clks,
};
@@ -725,6 +725,7 @@ static struct samsung_gate_clock exynos5420_gate_clks[] __initdata = {
GATE(smmu_mscl0, "smmu_mscl0", "aclk400_mscl", GATE_IP_MSCL, 8, 0, 0),
GATE(smmu_mscl1, "smmu_mscl1", "aclk400_mscl", GATE_IP_MSCL, 9, 0, 0),
GATE(smmu_mscl2, "smmu_mscl2", "aclk400_mscl", GATE_IP_MSCL, 10, 0, 0),
+ GATE(smmu_mixer, "smmu_mixer", "aclk200_disp1", GATE_IP_DISP1, 9, 0, 0),
};
static struct samsung_pll_clock exynos5420_plls[nr_plls] __initdata = {
--
1.7.10.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 3/5] clk/exynos5420: fix the order of parents of hdmi mux
2013-08-23 6:57 [PATCH v2 0/5] clk/exynos5420: add clocks for hdmi subsystem Rahul Sharma
2013-08-23 6:57 ` [PATCH v2 1/5] clk/exynos5420: add sclk_hdmiphy to the list of special clocks Rahul Sharma
2013-08-23 6:57 ` [PATCH v2 2/5] clk/exynos5420: add gate clock for mixer sysmmu Rahul Sharma
@ 2013-08-23 6:57 ` Rahul Sharma
2013-08-23 6:57 ` [PATCH v2 4/5] clk/exynos5420: add hdmi mux to change parents in hdmi driver Rahul Sharma
2013-08-23 6:57 ` [PATCH v2 5/5] clk/exynos5420: assign sclk_pixel id to pixel clock divider Rahul Sharma
4 siblings, 0 replies; 8+ messages in thread
From: Rahul Sharma @ 2013-08-23 6:57 UTC (permalink / raw)
To: linux-arm-kernel
Listing sclk_hdmiphy at 0th position in the list of parents is
causing wrong configuration in reg SRC_DISP10.
Signed-off-by: Rahul Sharma <rahul.sharma@samsung.com>
---
drivers/clk/samsung/clk-exynos5420.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/clk/samsung/clk-exynos5420.c b/drivers/clk/samsung/clk-exynos5420.c
index 4e0c13e..522c033 100644
--- a/drivers/clk/samsung/clk-exynos5420.c
+++ b/drivers/clk/samsung/clk-exynos5420.c
@@ -286,7 +286,7 @@ PNAME(audio2_p) = { "fin_pll", "cdclk2", "sclk_dpll", "sclk_mpll",
"sclk_spll", "sclk_ipll", "sclk_epll", "sclk_rpll" };
PNAME(spdif_p) = { "fin_pll", "dout_audio0", "dout_audio1", "dout_audio2",
"spdif_extclk", "sclk_ipll", "sclk_epll", "sclk_rpll" };
-PNAME(hdmi_p) = { "sclk_hdmiphy", "dout_hdmi_pixel" };
+PNAME(hdmi_p) = { "dout_hdmi_pixel", "sclk_hdmiphy" };
PNAME(maudio0_p) = { "fin_pll", "maudio_clk", "sclk_dpll", "sclk_mpll",
"sclk_spll", "sclk_ipll", "sclk_epll", "sclk_rpll" };
--
1.7.10.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 4/5] clk/exynos5420: add hdmi mux to change parents in hdmi driver
2013-08-23 6:57 [PATCH v2 0/5] clk/exynos5420: add clocks for hdmi subsystem Rahul Sharma
` (2 preceding siblings ...)
2013-08-23 6:57 ` [PATCH v2 3/5] clk/exynos5420: fix the order of parents of hdmi mux Rahul Sharma
@ 2013-08-23 6:57 ` Rahul Sharma
2013-08-23 6:57 ` [PATCH v2 5/5] clk/exynos5420: assign sclk_pixel id to pixel clock divider Rahul Sharma
4 siblings, 0 replies; 8+ messages in thread
From: Rahul Sharma @ 2013-08-23 6:57 UTC (permalink / raw)
To: linux-arm-kernel
hdmi driver needs to change the parent of hdmi clock
to pixel clock or hdmiphy clock, based on the stability
of hdmiphy. This patch is exposing the mux for changing
the parent.
Signed-off-by: Rahul Sharma <rahul.sharma@samsung.com>
---
Documentation/devicetree/bindings/clock/exynos5420-clock.txt | 5 +++++
drivers/clk/samsung/clk-exynos5420.c | 5 ++++-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/clock/exynos5420-clock.txt b/Documentation/devicetree/bindings/clock/exynos5420-clock.txt
index 5758a69..6f16aa8 100644
--- a/Documentation/devicetree/bindings/clock/exynos5420-clock.txt
+++ b/Documentation/devicetree/bindings/clock/exynos5420-clock.txt
@@ -182,6 +182,11 @@ clock which they consume.
g3d 501
smmu_mixer 502
+ Mux ID
+ ----------------------------
+
+ mout_hdmi 1024
+
Example 1: An example of a clock controller node is listed below.
clock: clock-controller at 0x10010000 {
diff --git a/drivers/clk/samsung/clk-exynos5420.c b/drivers/clk/samsung/clk-exynos5420.c
index 522c033..5f9bc63 100644
--- a/drivers/clk/samsung/clk-exynos5420.c
+++ b/drivers/clk/samsung/clk-exynos5420.c
@@ -140,6 +140,9 @@ enum exynos5420_clks {
aclk333_g2d = 480, g2d, aclk333_432_gscl = 490, smmu_3aa, smmu_fimcl0,
smmu_fimcl1, smmu_fimcl3, fimc_lite3, aclk_g3d = 500, g3d, smmu_mixer,
+ /* mux clocks */
+ mout_hdmi = 1024,
+
nr_clks,
};
@@ -400,7 +403,7 @@ static struct samsung_mux_clock exynos5420_mux_clks[] __initdata = {
MUX(none, "mout_mipi1", group2_p, SRC_DISP10, 16, 3),
MUX(none, "mout_dp1", group2_p, SRC_DISP10, 20, 3),
MUX(none, "mout_pixel", group2_p, SRC_DISP10, 24, 3),
- MUX(none, "mout_hdmi", hdmi_p, SRC_DISP10, 28, 1),
+ MUX(mout_hdmi, "mout_hdmi", hdmi_p, SRC_DISP10, 28, 1),
/* MAU Block */
MUX(none, "mout_maudio0", maudio0_p, SRC_MAU, 28, 3),
--
1.7.10.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 5/5] clk/exynos5420: assign sclk_pixel id to pixel clock divider
2013-08-23 6:57 [PATCH v2 0/5] clk/exynos5420: add clocks for hdmi subsystem Rahul Sharma
` (3 preceding siblings ...)
2013-08-23 6:57 ` [PATCH v2 4/5] clk/exynos5420: add hdmi mux to change parents in hdmi driver Rahul Sharma
@ 2013-08-23 6:57 ` Rahul Sharma
2013-08-23 20:02 ` Tomasz Figa
4 siblings, 1 reply; 8+ messages in thread
From: Rahul Sharma @ 2013-08-23 6:57 UTC (permalink / raw)
To: linux-arm-kernel
sclk_pixel is used to represent pixel clock divider on all exynos
SoCs not as a gate clock. It is queried in driver to pass as the
parent to hdmi clock while switching between parents. A new ID can
be asssigned Pixel gate clock which is currently not in use. Pixel
clock gate is default 'on'.
Signed-off-by: Rahul Sharma <rahul.sharma@samsung.com>
---
drivers/clk/samsung/clk-exynos5420.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/clk/samsung/clk-exynos5420.c b/drivers/clk/samsung/clk-exynos5420.c
index 5f9bc63..8eb3c42 100644
--- a/drivers/clk/samsung/clk-exynos5420.c
+++ b/drivers/clk/samsung/clk-exynos5420.c
@@ -463,7 +463,7 @@ static struct samsung_div_clock exynos5420_div_clks[] __initdata = {
DIV(none, "dout_fimd1", "mout_fimd1", DIV_DISP10, 0, 4),
DIV(none, "dout_mipi1", "mout_mipi1", DIV_DISP10, 16, 8),
DIV(none, "dout_dp1", "mout_dp1", DIV_DISP10, 24, 4),
- DIV(none, "dout_hdmi_pixel", "mout_pixel", DIV_DISP10, 28, 4),
+ DIV(sclk_pixel, "dout_hdmi_pixel", "mout_pixel", DIV_DISP10, 28, 4),
/* Audio Block */
DIV(none, "dout_maudio0", "mout_maudio0", DIV_MAU, 20, 4),
@@ -599,7 +599,7 @@ static struct samsung_gate_clock exynos5420_gate_clks[] __initdata = {
GATE_TOP_SCLK_DISP1, 3, CLK_SET_RATE_PARENT, 0),
GATE(sclk_hdmi, "sclk_hdmi", "mout_hdmi",
GATE_TOP_SCLK_DISP1, 9, CLK_SET_RATE_PARENT, 0),
- GATE(sclk_pixel, "sclk_pixel", "dout_hdmi_pixel",
+ GATE(none, "sclk_pixel", "dout_hdmi_pixel",
GATE_TOP_SCLK_DISP1, 10, CLK_SET_RATE_PARENT, 0),
GATE(sclk_dp1, "sclk_dp1", "dout_dp1",
GATE_TOP_SCLK_DISP1, 20, CLK_SET_RATE_PARENT, 0),
--
1.7.10.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 5/5] clk/exynos5420: assign sclk_pixel id to pixel clock divider
2013-08-23 6:57 ` [PATCH v2 5/5] clk/exynos5420: assign sclk_pixel id to pixel clock divider Rahul Sharma
@ 2013-08-23 20:02 ` Tomasz Figa
2013-08-24 6:39 ` Rahul Sharma
0 siblings, 1 reply; 8+ messages in thread
From: Tomasz Figa @ 2013-08-23 20:02 UTC (permalink / raw)
To: linux-arm-kernel
Hi Rahul,
On Friday 23 of August 2013 12:27:58 Rahul Sharma wrote:
> sclk_pixel is used to represent pixel clock divider on all exynos
> SoCs not as a gate clock. It is queried in driver to pass as the
> parent to hdmi clock while switching between parents. A new ID can
> be asssigned Pixel gate clock which is currently not in use. Pixel
> clock gate is default 'on'.
This doesn't sound like a correct assumption, especially if you recall how
common clock framework works - it disables any unclaimed clock
automatically. Also we might want to support gating from power management
reasons.
IMHO you should simply export the dout_hdmi_pixel clock, keeping the
original sclk_pixel exported as well.
Best regards,
Tomasz
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v2 5/5] clk/exynos5420: assign sclk_pixel id to pixel clock divider
2013-08-23 20:02 ` Tomasz Figa
@ 2013-08-24 6:39 ` Rahul Sharma
0 siblings, 0 replies; 8+ messages in thread
From: Rahul Sharma @ 2013-08-24 6:39 UTC (permalink / raw)
To: linux-arm-kernel
On 24 August 2013 01:32, Tomasz Figa <tomasz.figa@gmail.com> wrote:
> Hi Rahul,
>
> On Friday 23 of August 2013 12:27:58 Rahul Sharma wrote:
>> sclk_pixel is used to represent pixel clock divider on all exynos
>> SoCs not as a gate clock. It is queried in driver to pass as the
>> parent to hdmi clock while switching between parents. A new ID can
>> be asssigned Pixel gate clock which is currently not in use. Pixel
>> clock gate is default 'on'.
>
> This doesn't sound like a correct assumption, especially if you recall how
> common clock framework works - it disables any unclaimed clock
> automatically. Also we might want to support gating from power management
> reasons.
>
> IMHO you should simply export the dout_hdmi_pixel clock, keeping the
> original sclk_pixel exported as well.
>
Hi Tomasz,
Yea correct. I will export the divider clock and let hdmi driver use that
to pass as parent opf mout_pixel.
Regards,
Rahul Sharma.
> Best regards,
> Tomasz
>
^ permalink raw reply [flat|nested] 8+ messages in thread