From: wsa+renesas <wsa+renesas@sang-engineering.com>
To: Biju Das <biju.das.jz@bp.renesas.com>
Cc: "biju.das.au" <biju.das.au@gmail.com>,
Ulf Hansson <ulfh@kernel.org>,
"linux-mmc@vger.kernel.org" <linux-mmc@vger.kernel.org>,
"linux-renesas-soc@vger.kernel.org"
<linux-renesas-soc@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Geert Uytterhoeven <geert+renesas@glider.be>,
Prabhakar Mahadev Lad <prabhakar.mahadev-lad.rj@bp.renesas.com>
Subject: Re: [PATCH v24 08/15] mmc: renesas_sdhi: Add TMIO_MMC_INTERNAL_DIVIDER flag
Date: Thu, 22 Oct 2026 11:30:55 +0200 [thread overview]
Message-ID: <atnXz00Hci6R-7Ux@shikoro> (raw)
In-Reply-To: <TY3PR01MB1134610EEF7D300BA8890357A86B22@TY3PR01MB11346.jpnprd01.prod.outlook.com>
[-- Attachment #1: Type: text/plain, Size: 2419 bytes --]
Hi Biju,
> > static unsigned int renesas_sdhi_clk_get_rate(struct tmio_mmc_host *host,
> > struct clk *clk)
> > {
> > unsigned int freq = clk_get_rate(clk);
> >
> > return host->pdata->flags & TMIO_MMC_INTERNAL_DIVIDER ? freq / 2 : freq; }
> >
> > Was this AI generated?
>
> I kept 2 function as renesas_sdhi_is_internal_divider_enabled() is reused in
> renesas_sdhi_set_clock()while adding support for HS400 mode.
>
> Currently, we decided to focus only for basic RZ/G3L support. So I can merge it into
> Single function as you suggested.
Please do. And if the flag is checked later again, I think we can just
check the flag. We don't need a helper for checking each flag, or?
>
> >
> > > @@ -184,10 +205,14 @@ static unsigned int
> > > renesas_sdhi_clk_update(struct tmio_mmc_host *host,
> > >
> > > clk_set_rate(ref_clk, best_freq);
> > >
> > > - if (priv->clkh)
> > > + if (priv->clkh) {
> > > + if (host->pdata->flags & TMIO_MMC_INTERNAL_DIVIDER)
> > > + clkh_shift = 1;
> >
> > No, this needs to be handled a bit above where clkh_shift is initially set up, so we have it all in one
> > block.
>
> There is a difference here.
>
> SDx_Clock (HS clk) Figure 4.4-8 Block Diagram of the Deformed Clock System (7)
> IMCLK = SDx_Clock/2
>
> SD_Clock Figure 6.2-2 Functional Diagram of Clock Divider for SD_CLK
>
> Currently framework request a clk to set, we set HS clk first, followed by
> SD_CLK.
>
> On RZ/G3L, SD_CLK value is based on internal divider.
>
> For HS400 mode, SD_CLK = SDx_Clock(HS clk)/2
>
> For Non-HS400 mode, SD_CLK = SDx_Clock(HS clk)/4
>
> I don't find an easy way to move this logic to the above.
I get an idea what is the problem here, but I am still confused about
one thing. I'll summarize what I understood:
* as of this patch, HS400 is not supported on G3L
* so, in renesas_sdhi_clk_update(), 'clk_shift' value is 2 before clock
calculation
* as HS400 is not supported yet, the internal divider is always active
* so, you need to decrease the 'clk_shift' value from 2 to 1 after clock
calculation
So far, so good. My expectation is now that when you add HS400 mode, you
would need some extra code keeping 'clk_shift' at 2 because the internal
divider is disabled then. But I don't find such code in later patches.
What am I missing?
Thanks and happy hacking,
Wolfram
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2026-10-22 9:30 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-20 17:16 [PATCH v24 00/15] Add Renesas RZ/G3L SD/eMMC support Biju
2026-08-20 17:16 ` [PATCH v24 01/15] dt-bindings: mmc: renesas,sdhi: Document RZ/G3L (r9a08g046) SoC Biju
2026-09-02 10:45 ` Wolfram Sang
2026-08-20 17:16 ` [PATCH v24 02/15] mmc: renesas_sdhi: Clean up whitespace and add OF table sentinels Biju
2026-09-02 10:47 ` Wolfram Sang
2026-09-04 6:40 ` Biju Das
2026-09-09 18:46 ` wsa+renesas
2026-08-20 17:16 ` [PATCH v24 03/15] mmc: renesas_sdhi: Add clk_mask field to support flexible clock divider widths Biju
2026-09-02 10:51 ` Wolfram Sang
2026-09-04 10:54 ` Biju Das
2026-09-02 10:54 ` Wolfram Sang
2026-09-04 11:03 ` Biju Das
2026-09-10 21:52 ` wsa+renesas
2026-08-20 17:16 ` [PATCH v24 04/15] mmc: renesas_sdhi: Add max_divider field to support SoC-specific clock ranges Biju
2026-09-02 11:05 ` Wolfram Sang
2026-09-04 12:46 ` Biju Das
2026-09-10 21:56 ` wsa+renesas
2026-09-14 10:37 ` Biju Das
2026-08-20 17:16 ` [PATCH v24 05/15] mmc: renesas_sdhi: Add SDHI_SD_CLK_CTL_DIV1 macro for 1/1 option Biju
2026-09-02 11:06 ` Wolfram Sang
2026-08-20 17:16 ` [PATCH v24 06/15] mmc: renesas_sdhi: Make clock divider mask configurable Biju
2026-09-02 11:09 ` Wolfram Sang
2026-09-04 12:48 ` Biju Das
2026-08-20 17:16 ` [PATCH v24 07/15] mmc: renesas_sdhi: Add tuning delay support for RZ/G2L Biju
2026-09-03 9:30 ` Wolfram Sang
2026-09-04 14:47 ` Biju Das
2026-09-13 17:47 ` wsa+renesas
2026-09-14 10:37 ` Biju Das
2026-09-03 9:34 ` Wolfram Sang
2026-09-04 15:15 ` Biju Das
2026-08-20 17:16 ` [PATCH v24 08/15] mmc: renesas_sdhi: Add TMIO_MMC_INTERNAL_DIVIDER flag Biju
2026-09-03 9:37 ` Wolfram Sang
2026-09-07 6:37 ` Biju Das
2026-10-22 9:03 ` wsa+renesas
2026-09-03 9:43 ` Wolfram Sang
2026-09-07 7:19 ` Biju Das
2026-09-22 12:36 ` Biju Das
2026-10-22 9:30 ` wsa+renesas [this message]
2026-08-20 17:16 ` [PATCH v24 09/15] mmc: renesas_sdhi: Add optional axis/axim reset controls Biju
2026-09-03 9:48 ` Wolfram Sang
2026-08-20 17:16 ` [PATCH v24 10/15] mmc: renesas_sdhi: Add write32_hook for CTL_SD_CARD_CLK_CTL register writes Biju
2026-09-03 10:30 ` Wolfram Sang
2026-09-07 8:19 ` Biju Das
2026-10-22 9:58 ` wsa+renesas
2026-09-03 10:32 ` Wolfram Sang
2026-09-07 8:27 ` Biju Das
2026-10-22 10:00 ` wsa+renesas
2026-08-20 17:16 ` [PATCH v24 11/15] mmc: renesas_sdhi: Add RZ/G3L SDHI support Biju
2026-09-03 12:01 ` Wolfram Sang
2026-09-07 12:53 ` Biju Das
2026-09-22 12:35 ` Biju Das
2026-08-20 17:16 ` [PATCH v24 12/15] mmc: renesas_sdhi: Save and restore IOVS across suspend/resume Biju
2026-08-20 17:16 ` [PATCH v24 13/15] mmc: renesas_sdhi: Make HS400 OSEL bit configurable per SoC Biju
2026-08-20 17:16 ` [PATCH v24 14/15] mmc: renesas_sdhi: Add RZ/G3L HS400 support Biju
2026-08-20 17:16 ` [PATCH v24 15/15] mmc: renesas_sdhi: Add HS400 enhanced strobe support for RZ/G3L Biju
2026-09-01 14:52 ` [PATCH v24 00/15] Add Renesas RZ/G3L SD/eMMC support Wolfram Sang
2026-09-03 20:11 ` Wolfram Sang
2026-09-04 2:24 ` Biju Das
2026-09-04 8:00 ` 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=atnXz00Hci6R-7Ux@shikoro \
--to=wsa+renesas@sang-engineering.com \
--cc=biju.das.au@gmail.com \
--cc=biju.das.jz@bp.renesas.com \
--cc=geert+renesas@glider.be \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mmc@vger.kernel.org \
--cc=linux-renesas-soc@vger.kernel.org \
--cc=prabhakar.mahadev-lad.rj@bp.renesas.com \
--cc=ulfh@kernel.org \
/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
all inboxes | Powered by JetHome®