From: Yao Zi <me@ziyao.cc>
To: Andrei Lalaev <andrey.lalaev@gmail.com>,
Leo Yu-Chi Liang <ycliang@andestech.com>,
Kongyang Liu <seashell11234455@gmail.com>,
u-boot@lists.u-boot-project.org
Cc: Peng Fan <peng.fan@nxp.com>,
Jaehoon Chung <jh80.chung@samsung.com>,
Tom Rini <trini@konsulko.com>,
Hiago De Franco <hfranco@baylibre.com>, Yao Zi <me@ziyao.cc>
Subject: Re: [PATCH] mmc: cv1800b_sdhci: configure SDHCI PHY
Date: Mon, 7 Sep 2026 18:08:37 +0000 [thread overview]
Message-ID: <ap79pdnPCUfaG5gE@pie> (raw)
In-Reply-To: <20260907-milkv-duo-sdhci-configure-v1-1-606b59eaafa0@gmail.com>
On Mon, Sep 07, 2026 at 04:54:35PM +0200, Andrei Lalaev wrote:
> Some samples of the Milk-V Duo and Duo 256M have issues with SD card
> communication. As a result, the SD card is not detected, or the correct
> mode is not selected.
>
> Configure SDHCI PHY in the same way as in downstream, to ensure
> that the PHY is initialized properly.
>
> Fixes: eb36f28ff721 ("mmc: cv1800b: Add sdhci driver support for cv1800b SoC")
> Signed-off-by: Andrei Lalaev <andrey.lalaev@gmail.com>
> Link: https://lore.kernel.org/u-boot/20260822091510.3253162-1-andrey.lalaev@gmail.com/
> ---
> drivers/mmc/cv1800b_sdhci.c | 25 +++++++++++++++++++++++++
> 1 file changed, 25 insertions(+)
>
> diff --git a/drivers/mmc/cv1800b_sdhci.c b/drivers/mmc/cv1800b_sdhci.c
> index b756649f90f3..5c129682daba 100644
> --- a/drivers/mmc/cv1800b_sdhci.c
> +++ b/drivers/mmc/cv1800b_sdhci.c
> @@ -8,11 +8,17 @@
> #include <sdhci.h>
> #include <linux/delay.h>
>
> +#define CV18XX_SDHCI_MSHC_CTRL 0x200
> +#define CV18XX_SDHCI_PHY_CONFIG 0x24c
> #define SDHCI_PHY_TX_RX_DLY 0x240
> #define MMC_MAX_CLOCK 375000000
> #define TUNE_MAX_PHCODE 128
>
> #define PHY_TX_SRC_INVERT BIT(8)
> +#define PHY_RX_SRC_INVERT BIT(24)
> +
> +#define CV18XX_LATANCY_1T BIT(1)
> +#define CV18XX_PHY_TX_BPS BIT(0)
>
> struct cv1800b_sdhci_plat {
> struct mmc_config cfg;
> @@ -64,10 +70,29 @@ static int cv1800b_execute_tuning(struct mmc *mmc, u8 opcode)
> }
> #endif
>
> +static int cv1800b_deferred_probe(struct sdhci_host *host)
> +{
> + u32 val;
> +
> + val = sdhci_readl(host, CV18XX_SDHCI_MSHC_CTRL);
> + val |= CV18XX_LATANCY_1T;
> + sdhci_writel(host, val, CV18XX_SDHCI_MSHC_CTRL);
> +
> + val = sdhci_readl(host, CV18XX_SDHCI_PHY_CONFIG);
> + val |= CV18XX_PHY_TX_BPS;
> + sdhci_writel(host, val, CV18XX_SDHCI_PHY_CONFIG);
> +
> + val = PHY_TX_SRC_INVERT | PHY_RX_SRC_INVERT;
> + sdhci_writel(host, val, SDHCI_PHY_TX_RX_DLY);
> +
> + return 0;
> +}
> +
> const struct sdhci_ops cv1800b_sdhci_sd_ops = {
> #if CONFIG_IS_ENABLED(MMC_SUPPORTS_TUNING)
> .platform_execute_tuning = cv1800b_execute_tuning,
> #endif
> + .deferred_probe = cv1800b_deferred_probe,
Is there a reason to create a new function, instead of including the
logic somewhere already existing, for example, cv1800b_sdhci_reset()?
It seems to fit in cv1800b_sdhci_reset(), too, if it's for
initialization of the PHY.
Best regards,
Yao Zi
next prev parent reply other threads:[~2026-09-07 18:09 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-07 14:54 [PATCH] mmc: cv1800b_sdhci: configure SDHCI PHY Andrei Lalaev
2026-09-07 18:08 ` Yao Zi [this message]
2026-09-07 18:44 ` Andrei Lalaev
2026-09-08 15:27 ` Andrei Lalaev
2026-09-08 21:02 ` Yao Zi
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=ap79pdnPCUfaG5gE@pie \
--to=me@ziyao.cc \
--cc=andrey.lalaev@gmail.com \
--cc=hfranco@baylibre.com \
--cc=jh80.chung@samsung.com \
--cc=peng.fan@nxp.com \
--cc=seashell11234455@gmail.com \
--cc=trini@konsulko.com \
--cc=u-boot@lists.u-boot-project.org \
--cc=ycliang@andestech.com \
/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.