From: Damon Ding <damon.ding@rock-chips.com>
To: Krzysztof Kozlowski <krzk@kernel.org>
Cc: heiko@sntech.de, dri-devel@lists.freedesktop.org,
dianders@chromium.org, Laurent.pinchart@ideasonboard.com,
andrzej.hajda@intel.com, airlied@gmail.com,
m.szyprowski@samsung.com, simona@ffwll.ch, robh@kernel.org,
rfoss@kernel.org, sebastian.reichel@collabora.com,
jernej.skrabec@gmail.com, linux-rockchip@lists.infradead.org,
luca.ceresoli@bootlin.com, devicetree@vger.kernel.org,
conor+dt@kernel.org, jonas@kwiboo.se,
maarten.lankhorst@linux.intel.com, mripard@kernel.org,
linux-arm-kernel@lists.infradead.org,
dmitry.baryshkov@oss.qualcomm.com, neil.armstrong@linaro.org,
hjc@rock-chips.com, linux-kernel@vger.kernel.org,
tzimmermann@suse.de, andy.yan@rock-chips.com, krzk+dt@kernel.org,
nicolas.frattaroli@collabora.com
Subject: Re: [PATCH v5 01/10] dt-bindings: display: rockchip: analogix-dp: Fix hclk as third clock for RK3588
Date: Fri, 15 May 2026 10:36:32 +0800 [thread overview]
Message-ID: <f290b425-d5e1-46dd-a63e-0fac53067ca0@rock-chips.com> (raw)
In-Reply-To: <20260514-elegant-agate-pug-449ec2@quoll>
Hi Krzysztof,
On 5/14/2026 6:03 PM, Krzysztof Kozlowski wrote:
> On Wed, May 13, 2026 at 03:44:05PM +0800, Damon Ding wrote:
>> RK3588 eDP controller requires HCLK_VO1 (video output bus clock)
>> to access the VO1 GRF registers and enable the video datapath.
>
> To access GRF? Then it is the same clock input.
Not the same as RK3399 case.
(The same as the descriptions in [0])
RK3588 hclk_vo1 related NOC design:
PD_VO1
hclk_vo1
└─ pclk_vo1_root
Then the clock tree design:
hclk_vo1 (200M)
├─ hclk_vo1_niu_en
│ └─ hclk_vo1_niu (200M)
├─ hclk_hdcp1_en
│ └─ hclk_hdcp1 (200M)
├─ hclk_i2s5_8ch_en
│ └─ hclk_i2s5_8ch (200M)
├─ hclk_spdif4_en
│ └─ hclk_spdif4 (200M)
├─ hclk_spdifrx1_en
│ └─ hclk_spdifrx1 (200M)
├─ hclk_i2s9_8ch_en
│ └─ hclk_i2s9_8ch (200M)
└─ hclk_i2s6_8ch_en
└─ hclk_i2s6_8ch (200M)
pclk_vo1_root (150M)
├─ pclk_edp0_en
│ └─ pclk_edp0 (150M)
├─ pclk_edp1_en
│ └─ pclk_edp1 (150M)
├─ pclk_hdmitx1_en
│ └─ pclk_hdmitx1 (150M)
├─ pclk_vo1grf_en
│ └─ pclk_vo1grf (150M)
├─ pclk_hdcp1_en
│ └─ pclk_hdcp1 (150M)
├─ pclk_hdmitx0_en
│ └─ pclk_hdmitx0 (150M)
└─ pclk_trng1_en
└─ pclk_trng1 (150M)
On RK3399, the 'grf' clock is only used exclusively for GRF register access.
But on RK3576/RK3588, the 'hclk' (HCLK_VO1) acts as the parent clock for
pclk_vo1_root in NOC design. Meanwhile pclk_vo1_root is further the
parent of pclk_vo1grf and pclk_edp0/pclk_edp1 in clock tree. So this
hclk affects both GRF register access and the overall APB clock domain
of the eDP controller, which makes it necessary to be listed independently.
>
> AGAIN (reiterated soooo many times by me): you describe here clock
> input, NOT OUTPUT.
>
You're absolutely right, thank you for the repeated clarification.
I used "video output bus clock" as a shorthand to refer to HCLK_VO1,
which clocks the entire video output domain including eDP and HDMI
interfaces.
I will rephrase the commit message more precisely in the next version.
>>
>> Previously, the clock was enabled implicitly via the 'rockchip,vo-grf'
>> phandle reference, which allowed the eDP to work without explicitly
>> managing the hclk_vo1 clock. However, this is not safe or explicit.
>>
>> Enforce the correct third clock name on a per-compatible basis to
>> standardize clock requirements per SoC. This makes the clock
>> dependency clear and removes reliance on implicit clock enablement
>> from GRF phandle.
>>
>> Fixes: f855146263b1 ("dt-bindings: display: rockchip: analogix-dp: Add support for RK3588")
>> Signed-off-by: Damon Ding <damon.ding@rock-chips.com>
>>
>> ---
>>
>> Changes in v4:
>> - Modify the commit msg.
>>
>> Changes in v5:
>> - Enforce the correct third clock name on a per-compatible basis.
>> - Modify the commit msg simultaneously.
>> ---
>> .../rockchip/rockchip,analogix-dp.yaml | 37 +++++++++++++++++--
>> 1 file changed, 33 insertions(+), 4 deletions(-)
>>
>> diff --git a/Documentation/devicetree/bindings/display/rockchip/rockchip,analogix-dp.yaml b/Documentation/devicetree/bindings/display/rockchip/rockchip,analogix-dp.yaml
>> index d99b23b88cc5..8001c1facf98 100644
>> --- a/Documentation/devicetree/bindings/display/rockchip/rockchip,analogix-dp.yaml
>> +++ b/Documentation/devicetree/bindings/display/rockchip/rockchip,analogix-dp.yaml
>> @@ -23,10 +23,7 @@ properties:
>>
>> clock-names:
>> minItems: 2
>> - items:
>> - - const: dp
>> - - const: pclk
>> - - const: grf
>
> What is 'grf' clock in such case?
>
The 'grf' clock here was specifically for RK3399, which is only used for
GRF register access.
Moreover, the control logic for the new 'hclk' clock is different from
'grf' clock:
- The 'grf' clock was gated dynamically before/after GRF register access;
- The 'hclk' needs to be enabled during probe and kept running
continuously [1].
Best regards,
Damon
[0]
https://lore.kernel.org/all/c349eaf2-5852-4bb6-9dac-f7240e1c8098@rock-chips.com/
[1]
https://lore.kernel.org/all/20260513074414.2053435-6-damon.ding@rock-chips.com/
_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip
WARNING: multiple messages have this Message-ID (diff)
From: Damon Ding <damon.ding@rock-chips.com>
To: Krzysztof Kozlowski <krzk@kernel.org>
Cc: hjc@rock-chips.com, heiko@sntech.de, andy.yan@rock-chips.com,
maarten.lankhorst@linux.intel.com, mripard@kernel.org,
tzimmermann@suse.de, airlied@gmail.com, simona@ffwll.ch,
robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org,
andrzej.hajda@intel.com, neil.armstrong@linaro.org,
rfoss@kernel.org, Laurent.pinchart@ideasonboard.com,
jonas@kwiboo.se, jernej.skrabec@gmail.com,
nicolas.frattaroli@collabora.com,
cristian.ciocaltea@collabora.com,
sebastian.reichel@collabora.com,
dmitry.baryshkov@oss.qualcomm.com, luca.ceresoli@bootlin.com,
dianders@chromium.org, m.szyprowski@samsung.com,
dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v5 01/10] dt-bindings: display: rockchip: analogix-dp: Fix hclk as third clock for RK3588
Date: Fri, 15 May 2026 10:36:32 +0800 [thread overview]
Message-ID: <f290b425-d5e1-46dd-a63e-0fac53067ca0@rock-chips.com> (raw)
In-Reply-To: <20260514-elegant-agate-pug-449ec2@quoll>
Hi Krzysztof,
On 5/14/2026 6:03 PM, Krzysztof Kozlowski wrote:
> On Wed, May 13, 2026 at 03:44:05PM +0800, Damon Ding wrote:
>> RK3588 eDP controller requires HCLK_VO1 (video output bus clock)
>> to access the VO1 GRF registers and enable the video datapath.
>
> To access GRF? Then it is the same clock input.
Not the same as RK3399 case.
(The same as the descriptions in [0])
RK3588 hclk_vo1 related NOC design:
PD_VO1
hclk_vo1
└─ pclk_vo1_root
Then the clock tree design:
hclk_vo1 (200M)
├─ hclk_vo1_niu_en
│ └─ hclk_vo1_niu (200M)
├─ hclk_hdcp1_en
│ └─ hclk_hdcp1 (200M)
├─ hclk_i2s5_8ch_en
│ └─ hclk_i2s5_8ch (200M)
├─ hclk_spdif4_en
│ └─ hclk_spdif4 (200M)
├─ hclk_spdifrx1_en
│ └─ hclk_spdifrx1 (200M)
├─ hclk_i2s9_8ch_en
│ └─ hclk_i2s9_8ch (200M)
└─ hclk_i2s6_8ch_en
└─ hclk_i2s6_8ch (200M)
pclk_vo1_root (150M)
├─ pclk_edp0_en
│ └─ pclk_edp0 (150M)
├─ pclk_edp1_en
│ └─ pclk_edp1 (150M)
├─ pclk_hdmitx1_en
│ └─ pclk_hdmitx1 (150M)
├─ pclk_vo1grf_en
│ └─ pclk_vo1grf (150M)
├─ pclk_hdcp1_en
│ └─ pclk_hdcp1 (150M)
├─ pclk_hdmitx0_en
│ └─ pclk_hdmitx0 (150M)
└─ pclk_trng1_en
└─ pclk_trng1 (150M)
On RK3399, the 'grf' clock is only used exclusively for GRF register access.
But on RK3576/RK3588, the 'hclk' (HCLK_VO1) acts as the parent clock for
pclk_vo1_root in NOC design. Meanwhile pclk_vo1_root is further the
parent of pclk_vo1grf and pclk_edp0/pclk_edp1 in clock tree. So this
hclk affects both GRF register access and the overall APB clock domain
of the eDP controller, which makes it necessary to be listed independently.
>
> AGAIN (reiterated soooo many times by me): you describe here clock
> input, NOT OUTPUT.
>
You're absolutely right, thank you for the repeated clarification.
I used "video output bus clock" as a shorthand to refer to HCLK_VO1,
which clocks the entire video output domain including eDP and HDMI
interfaces.
I will rephrase the commit message more precisely in the next version.
>>
>> Previously, the clock was enabled implicitly via the 'rockchip,vo-grf'
>> phandle reference, which allowed the eDP to work without explicitly
>> managing the hclk_vo1 clock. However, this is not safe or explicit.
>>
>> Enforce the correct third clock name on a per-compatible basis to
>> standardize clock requirements per SoC. This makes the clock
>> dependency clear and removes reliance on implicit clock enablement
>> from GRF phandle.
>>
>> Fixes: f855146263b1 ("dt-bindings: display: rockchip: analogix-dp: Add support for RK3588")
>> Signed-off-by: Damon Ding <damon.ding@rock-chips.com>
>>
>> ---
>>
>> Changes in v4:
>> - Modify the commit msg.
>>
>> Changes in v5:
>> - Enforce the correct third clock name on a per-compatible basis.
>> - Modify the commit msg simultaneously.
>> ---
>> .../rockchip/rockchip,analogix-dp.yaml | 37 +++++++++++++++++--
>> 1 file changed, 33 insertions(+), 4 deletions(-)
>>
>> diff --git a/Documentation/devicetree/bindings/display/rockchip/rockchip,analogix-dp.yaml b/Documentation/devicetree/bindings/display/rockchip/rockchip,analogix-dp.yaml
>> index d99b23b88cc5..8001c1facf98 100644
>> --- a/Documentation/devicetree/bindings/display/rockchip/rockchip,analogix-dp.yaml
>> +++ b/Documentation/devicetree/bindings/display/rockchip/rockchip,analogix-dp.yaml
>> @@ -23,10 +23,7 @@ properties:
>>
>> clock-names:
>> minItems: 2
>> - items:
>> - - const: dp
>> - - const: pclk
>> - - const: grf
>
> What is 'grf' clock in such case?
>
The 'grf' clock here was specifically for RK3399, which is only used for
GRF register access.
Moreover, the control logic for the new 'hclk' clock is different from
'grf' clock:
- The 'grf' clock was gated dynamically before/after GRF register access;
- The 'hclk' needs to be enabled during probe and kept running
continuously [1].
Best regards,
Damon
[0]
https://lore.kernel.org/all/c349eaf2-5852-4bb6-9dac-f7240e1c8098@rock-chips.com/
[1]
https://lore.kernel.org/all/20260513074414.2053435-6-damon.ding@rock-chips.com/
next prev parent reply other threads:[~2026-05-15 2:37 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-13 7:44 [PATCH v5 00/10] Add eDP support for RK3576 Damon Ding
2026-05-13 7:44 ` Damon Ding
2026-05-13 7:44 ` [PATCH v5 01/10] dt-bindings: display: rockchip: analogix-dp: Fix hclk as third clock for RK3588 Damon Ding
2026-05-13 7:44 ` Damon Ding
2026-05-14 2:51 ` sashiko-bot
2026-05-14 7:38 ` Damon Ding
2026-05-14 10:03 ` Krzysztof Kozlowski
2026-05-14 10:03 ` Krzysztof Kozlowski
2026-05-15 2:36 ` Damon Ding [this message]
2026-05-15 2:36 ` Damon Ding
2026-05-13 7:44 ` [PATCH v5 02/10] dt-bindings: display: rockchip: analogix-dp: Add per-clock descriptions Damon Ding
2026-05-13 7:44 ` Damon Ding
2026-05-13 7:44 ` [PATCH v5 03/10] arm64: dts: rockchip: Add missing hclk for RK3588 eDP0 Damon Ding
2026-05-13 7:44 ` Damon Ding
2026-05-13 7:44 ` [PATCH v5 04/10] arm64: dts: rockchip: Add missing hclk for RK3588 eDP1 Damon Ding
2026-05-13 7:44 ` Damon Ding
2026-05-13 7:44 ` [PATCH v5 05/10] drm/rockchip: analogix_dp: Enable hclk for RK3588 Damon Ding
2026-05-13 7:44 ` Damon Ding
2026-05-13 7:44 ` [PATCH v5 06/10] dt-bindings: display: rockchip: analogix-dp: Add support for RK3576 Damon Ding
2026-05-13 7:44 ` Damon Ding
2026-05-13 7:44 ` [PATCH v5 07/10] arm64: dts: rockchip: Add eDP node " Damon Ding
2026-05-13 7:44 ` Damon Ding
2026-05-13 7:44 ` [PATCH v5 08/10] drm/bridge: analogix_dp: Rename and simplify is_rockchip() Damon Ding
2026-05-13 7:44 ` Damon Ding
2026-05-13 7:44 ` [PATCH v5 09/10] drm/bridge: analogix_dp: Add support for RK3576 Damon Ding
2026-05-13 7:44 ` Damon Ding
2026-05-13 7:44 ` [PATCH v5 10/10] drm/rockchip: " Damon Ding
2026-05-13 7:44 ` Damon Ding
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=f290b425-d5e1-46dd-a63e-0fac53067ca0@rock-chips.com \
--to=damon.ding@rock-chips.com \
--cc=Laurent.pinchart@ideasonboard.com \
--cc=airlied@gmail.com \
--cc=andrzej.hajda@intel.com \
--cc=andy.yan@rock-chips.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dianders@chromium.org \
--cc=dmitry.baryshkov@oss.qualcomm.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=heiko@sntech.de \
--cc=hjc@rock-chips.com \
--cc=jernej.skrabec@gmail.com \
--cc=jonas@kwiboo.se \
--cc=krzk+dt@kernel.org \
--cc=krzk@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=luca.ceresoli@bootlin.com \
--cc=m.szyprowski@samsung.com \
--cc=maarten.lankhorst@linux.intel.com \
--cc=mripard@kernel.org \
--cc=neil.armstrong@linaro.org \
--cc=nicolas.frattaroli@collabora.com \
--cc=rfoss@kernel.org \
--cc=robh@kernel.org \
--cc=sebastian.reichel@collabora.com \
--cc=simona@ffwll.ch \
--cc=tzimmermann@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.