From: Tomi Valkeinen <tomi.valkeinen+renesas@ideasonboard.com>
To: "Lad, Prabhakar" <prabhakar.csengg@gmail.com>
Cc: dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org,
linux-clk@vger.kernel.org,
Fabrizio Castro <fabrizio.castro.jz@renesas.com>,
Tommaso Merciai <tommaso.merciai.xr@bp.renesas.com>,
Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>,
Andrzej Hajda <andrzej.hajda@intel.com>,
Neil Armstrong <neil.armstrong@linaro.org>,
Robert Foss <rfoss@kernel.org>,
Laurent Pinchart <Laurent.pinchart@ideasonboard.com>,
Jonas Karlman <jonas@kwiboo.se>,
Jernej Skrabec <jernej.skrabec@gmail.com>,
Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
Maxime Ripard <mripard@kernel.org>,
Thomas Zimmermann <tzimmermann@suse.de>,
David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Geert Uytterhoeven <geert+renesas@glider.be>,
Michael Turquette <mturquette@baylibre.com>,
Stephen Boyd <sboyd@kernel.org>,
Biju Das <biju.das.jz@bp.renesas.com>,
Magnus Damm <magnus.damm@gmail.com>
Subject: Re: [PATCH v8 2/6] clk: renesas: rzv2h-cpg: Add support for DSI clocks
Date: Thu, 11 Sep 2025 17:26:28 +0300 [thread overview]
Message-ID: <f1e671a3-77af-4ae2-aa6e-bde93aaa54b7@ideasonboard.com> (raw)
In-Reply-To: <CA+V-a8vghwkHKWoqU8NQ3O9ZdHxB+cEvMv7Z9LQOMsZcx9vjPA@mail.gmail.com>
Hi,
On 11/09/2025 11:14, Lad, Prabhakar wrote:
> Hi Tomi,
>
> On Wed, Sep 10, 2025 at 1:30 PM Tomi Valkeinen
> <tomi.valkeinen+renesas@ideasonboard.com> wrote:
>>
>> Hi,
>>
>> On 03/09/2025 19:17, Prabhakar wrote:
>>> From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
>>>
>>> Add support for PLLDSI and PLLDSI divider clocks.
>>>
>>> Introduce the `renesas-rzv2h-cpg-pll.h` header to centralize and share
>>> PLLDSI related data structures, limits, and algorithms between the
>>> RZ/V2H(P) CPG and DSI drivers.
>>>
>>> The DSI PLL is functionally similar to the CPG's PLLDSI, but has slightly
>>> different parameter limits and omits the programmable divider present in
>>> CPG. To ensure precise frequency calculations, especially for milliHz-level
>>> accuracy needed by the DSI driver, the shared algorithm allows both drivers
>>> to compute PLL parameters consistently using the same logic and input
>>> clock.
>>
>> Can you elaborate a bit more why a new clock APIs are needed for the DSI
>> PLL? This is the first time I have heard a DSI TX (well, any IP) require
>> more precision than Hz. Is that really the case? Are there other reasons?
>>
> Im pasting the same reply from Fab
> (https://lore.kernel.org/all/TYCPR01MB12093A7D99392BC3D6B5E5864C2BC2@TYCPR01MB12093.jpnprd01.prod.outlook.com/#t)
> for the similar concern.
>
> The PLL found inside the DSI IP is very similar to the PLLDSI found in
> the CPG IP block, although the limits for some of the parameters are
Thanks. As discussed on chat, this confused me: There's a PLLDSI on CPG,
which doesn't provide a DSI clock, but a pixel clock. And then there's a
PLL in the DSI D-PHY which provides the DSI clock.
A few comments overall some for this driver but also the dsi driver:
This hardcodes the refclk rate to 24 MHz with RZ_V2H_OSC_CLK_IN_MEGA in
the header file. That doesn't feel right, shouldn't the refclk rate come
from the clock framework with clk_get_rate()?
While not v2h related, I think it would be good to have a comment in the
dsi driver about how the g2l hs clock rate is derived directly from the
pixel clock.
I still don't see why all the code here has to be in a header file.
Usually headers contain only a few lines of inline code. Is there a
reason why it's not in a .c file?
And last, we discussed the milliHz a bit on chat, you said you'll come
back to that. I don't think it's a blocker, but I'm very curious why
exactly it is needed in the DSI. +/- 12 Hz with, say 3.6GHz clock does
not sound very much to me, and there should be enough time every line
during blanking period to empty any fifos and "catch up".
In fact, if the DSI is so picky about the rate, I find the HW design
odd: in g2l the pixel clock and the DSI clock come from a single source,
which keeps them neatly in sync. If that is required, why change the
design here so that the DSI PLL is independent of the pixel clock, yet
still the DSI PLL must be programmed to be exactly matched to the pixel
clock.
The docs say v2h supports burst mode. Isn't the idea with DSI burst mode
that you run the DSI much faster than the display controller (i.e. with
much higher clock than HSFREQ = (VCLK * bpp) / num_lanes), so that the
DSI can burst the data out from its fifos and then go to sleep? The
separate PLL in v2h allows independent DSI clock config, allowing burst
mode. If the HW can support that, then there shouldn't be a strict
requirement for HSFREQ = (VCLK * bpp) / num_lanes, or hitting the
pclk-hsfreq ratio exactly to milliHz precision.
Tomi
next prev parent reply other threads:[~2025-09-11 14:26 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-03 16:17 [PATCH v8 0/6] Add support for DU/DSI clocks and DSI driver support for the Renesas RZ/V2H(P) SoC Prabhakar
2025-09-03 16:17 ` [PATCH v8 1/6] clk: renesas: rzv2h-cpg: Add instance field to struct pll Prabhakar
2025-09-03 16:17 ` [PATCH v8 2/6] clk: renesas: rzv2h-cpg: Add support for DSI clocks Prabhakar
2025-09-10 12:30 ` Tomi Valkeinen
2025-09-11 8:14 ` Lad, Prabhakar
2025-09-11 14:26 ` Tomi Valkeinen [this message]
2025-09-11 14:30 ` Biju Das
2025-09-17 16:28 ` Biju Das
2025-10-01 12:23 ` Lad, Prabhakar
2025-10-01 13:17 ` Geert Uytterhoeven
2025-09-24 13:05 ` Geert Uytterhoeven
2025-10-01 9:29 ` Lad, Prabhakar
2025-09-03 16:17 ` [PATCH v8 3/6] clk: renesas: r9a09g057: Add clock and reset entries for DSI and LCDC Prabhakar
2025-09-03 16:17 ` [PATCH v8 4/6] dt-bindings: display: bridge: renesas,dsi: Document RZ/V2H(P) and RZ/V2N Prabhakar
2025-09-03 16:17 ` [PATCH v8 5/6] drm: renesas: rz-du: mipi_dsi: Add LPCLK clock support Prabhakar
2025-09-10 7:32 ` Tomi Valkeinen
2025-09-03 16:17 ` [PATCH v8 6/6] drm: renesas: rz-du: mipi_dsi: Add support for RZ/V2H(P) SoC Prabhakar
2025-09-10 7:36 ` Tomi Valkeinen
2025-09-24 13:11 ` Geert Uytterhoeven
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=f1e671a3-77af-4ae2-aa6e-bde93aaa54b7@ideasonboard.com \
--to=tomi.valkeinen+renesas@ideasonboard.com \
--cc=Laurent.pinchart@ideasonboard.com \
--cc=airlied@gmail.com \
--cc=andrzej.hajda@intel.com \
--cc=biju.das.jz@bp.renesas.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=fabrizio.castro.jz@renesas.com \
--cc=geert+renesas@glider.be \
--cc=jernej.skrabec@gmail.com \
--cc=jonas@kwiboo.se \
--cc=krzk+dt@kernel.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-renesas-soc@vger.kernel.org \
--cc=maarten.lankhorst@linux.intel.com \
--cc=magnus.damm@gmail.com \
--cc=mripard@kernel.org \
--cc=mturquette@baylibre.com \
--cc=neil.armstrong@linaro.org \
--cc=prabhakar.csengg@gmail.com \
--cc=prabhakar.mahadev-lad.rj@bp.renesas.com \
--cc=rfoss@kernel.org \
--cc=robh@kernel.org \
--cc=sboyd@kernel.org \
--cc=simona@ffwll.ch \
--cc=tommaso.merciai.xr@bp.renesas.com \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox