53 lines
2.2 KiB
Diff
53 lines
2.2 KiB
Diff
|
|
From 6e69052f01d9131388cfcfaee929120118a267f4 Mon Sep 17 00:00:00 2001
|
|||
|
|
From: Sascha Hauer <s.hauer@pengutronix.de>
|
|||
|
|
Date: Wed, 26 Jan 2022 15:55:47 +0100
|
|||
|
|
Subject: [PATCH] clk: rockchip: Add CLK_SET_RATE_PARENT to the HDMI reference
|
|||
|
|
clock on rk3568
|
|||
|
|
MIME-Version: 1.0
|
|||
|
|
Content-Type: text/plain; charset=UTF-8
|
|||
|
|
Content-Transfer-Encoding: 8bit
|
|||
|
|
|
|||
|
|
On the rk3568 we have this (simplified) situation:
|
|||
|
|
|
|||
|
|
.--------. .-----. .---------.
|
|||
|
|
-| hpll |--.--| /n |----|dclk_vop0|-
|
|||
|
|
`--------´ | `-----´ `---------´
|
|||
|
|
| .-----. .---------.
|
|||
|
|
`--| /m |----|dclk_vop1|-
|
|||
|
|
| `-----´ `---------´
|
|||
|
|
| .---------.
|
|||
|
|
`-------------|hdmi_ref |-
|
|||
|
|
`---------´
|
|||
|
|
|
|||
|
|
For the HDMI to work the HDMI reference clock needs to be the same as the
|
|||
|
|
pixel clock which means the dividers have be set to one. The last patch removed
|
|||
|
|
the CLK_SET_RATE_PARENT flag from the pixel clocks which means the hpll is not
|
|||
|
|
changed on pixel clock changes. In order to allow the HDMI controller to
|
|||
|
|
set a suitable PLL rate we now add the CLK_SET_RATE_PARENT flag to the
|
|||
|
|
HDMI reference clock. With this the flow becomes:
|
|||
|
|
|
|||
|
|
1) HDMI controller driver sets the rate to its pixel clock which means
|
|||
|
|
hpll is set to the pixel clock
|
|||
|
|
2) VOP2 driver sets dclk_vop[012] to the pixel clock. As this can't change
|
|||
|
|
the hpll clock anymore this means only the divider is adjusted to the
|
|||
|
|
desired value of dividing by one.
|
|||
|
|
|
|||
|
|
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
|||
|
|
Link: https://lore.kernel.org/r/20220126145549.617165-26-s.hauer@pengutronix.de
|
|||
|
|
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
|
|||
|
|
---
|
|||
|
|
drivers/clk/rockchip/clk-rk3568.c | 2 +-
|
|||
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|||
|
|
|
|||
|
|
--- a/drivers/clk/rockchip/clk-rk3568.c
|
|||
|
|
+++ b/drivers/clk/rockchip/clk-rk3568.c
|
|||
|
|
@@ -1568,7 +1568,7 @@ static struct rockchip_clk_branch rk3568
|
|||
|
|
RK3568_PMU_CLKGATE_CON(2), 14, GFLAGS),
|
|||
|
|
GATE(XIN_OSC0_EDPPHY_G, "xin_osc0_edpphy_g", "xin24m", 0,
|
|||
|
|
RK3568_PMU_CLKGATE_CON(2), 15, GFLAGS),
|
|||
|
|
- MUX(CLK_HDMI_REF, "clk_hdmi_ref", clk_hdmi_ref_p, 0,
|
|||
|
|
+ MUX(CLK_HDMI_REF, "clk_hdmi_ref", clk_hdmi_ref_p, CLK_SET_RATE_PARENT,
|
|||
|
|
RK3568_PMU_CLKSEL_CON(8), 7, 1, MFLAGS),
|
|||
|
|
};
|
|||
|
|
|