Re: [PATCH v8 09/24] drm/rockchip: dw_hdmi: Add support for niu clk

Sascha Hauer
2022-03-14T08:31:39Z

On Sun, Mar 13, 2022 at 12:07:56AM +0300, Dmitry Osipenko wrote:
> On 3/11/22 11:33, Sascha Hauer wrote:
> > The rk3568 HDMI has an additional clock that needs to be enabled for the
> > HDMI controller to work. This clock is not needed for the HDMI
> > controller itself, but to make the SoC internal bus logic work. From the
> > reference manual:
> >
> >> 2.8.6 NIU Clock gating reliance
> >>
> >> A part of niu clocks have a dependence on another niu clock in order to
> >> sharing the internal bus. When these clocks are in use, another niu
> >> clock must be opened, and cannot be gated. These clocks and the special
> >> clock on which they are relied are as following:
> >>
> >> Clocks which have dependency The clock which can not be gated
> >> -----------------------------------------------------------------
> >> ...
> >> pclk_vo_niu, hclk_vo_s_niu hclk_vo_niu
> >> ...
> > The clock framework does not support turning on a clock whenever another
> > clock is turned on, so this patch adds support for the dependent clock
> > to the HDMI driver. We call it "NIU", which is for "Native Interface
> > Unit"
>
> This still doesn't make sense to me. You're saying that "pclk_vo_niu,
> hclk_vo_s_niu" depend on "hclk_vo_niu", but HDMI doesn't use pclk_vo, it
> uses pclk_hdmi.

pclk_hdmi_host is a child clock of pclk_vo:

aclk_vo 2 2 0 300000000 0 0 50000 Y
aclk_hdcp 0 0 0 300000000 0 0 50000 N
pclk_vo 2 3 0 75000000 0 0 50000 Y
pclk_edp_ctrl 0 0 0 75000000 0 0 50000 N
pclk_dsitx_1 0 0 0 75000000 0 0 50000 N
pclk_dsitx_0 1 2 0 75000000 0 0 50000 Y
pclk_hdmi_host 1 2 0 75000000 0 0 50000 Y
pclk_hdcp 0 0 0 75000000 0 0 50000 N
hclk_vo 2 5 0 150000000 0 0 50000 Y
hclk_hdcp 0 0 0 150000000 0 0 50000 N
hclk_vop 0 2 0 150000000 0 0 50000 N

Sascha

> I don't see how these "niu" clocks are related to HDMI
> from your description. The pclk_vo should remain being disabled for HDMI.
>
> I already said before that the datasheet suggests that hclk_vo needs to
> be enabled in order to ungate the AHB part of the VO module, which is
> needed for CPU accesses. Elain, could you please confirm this or clarify
> more about why hclk_vo needs to be enabled for HDMI?
>

--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |