From: Yao Zi <ziyao@disroot.org>
To: Chukun Pan <amadeus@jmu.edu.cn>
Cc: conor+dt@kernel.org, cristian.ciocaltea@collabora.com,
detlev.casanova@collabora.com, devicetree@vger.kernel.org,
frank.wang@rock-chips.com, heiko@sntech.de, jonas@kwiboo.se,
krzk+dt@kernel.org, linux-arm-kernel@lists.infradead.org,
linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-mmc@vger.kernel.org, linux-rockchip@lists.infradead.org
Subject: Re: [PATCH 8/8] arm64: dts: rockchip: Enable SD-card interface on Radxa E20C
Date: Tue, 4 Mar 2025 19:49:45 +0000 [thread overview]
Message-ID: <Z8dZWYpABghRHHge@pie.lan> (raw)
In-Reply-To: <20250304121036.1453284-1-amadeus@jmu.edu.cn>
On Tue, Mar 04, 2025 at 08:10:36PM +0800, Chukun Pan wrote:
> Hi,
>
> > + aliases {
> > + mmc0 = &sdmmc;
>
> s/mmc0/mmc1
Will take it and add the missing pinctrl, as Jonas already pointed out.
> > +&sdmmc {
> > + bus-width = <4>;
> > + cap-mmc-highspeed;
> > + cap-sd-highspeed;
>
> I think for sdcard, only cap-sd-highspeed
> is needed, not cap-mmc-highspeed?
This makes sense, will remove it in the next version.
> > + disable-wp;
>
> Missing pinctrl.
>
> > + rockchip,default-sample-phase = <90>;
>
> It seems that all rk3528 devices need to set this
> default phase, so maybe this can be placed in dtsi?
Yes, since the tuned phase offset is a SoC-specific value, as pointed
out by comment in the driver,
this is _not_ a value that is dynamically tuned and is also
_not_ a value that will vary from board to board. It is a value
that could vary between different SoC models.
Will take it in the next version, thanks for finding it!
> > + sd-uhs-sdr104;
>
> The rk3528 devices uses gpio to switch IO voltage, maybe
> more modes should be added here like vendor kernel?
I cannot get the relationship between things you mentioned. For the
regulator, yes, here vqmmc-supply is missing, as already pointed out by
Jonas.
> And these devices use 3.3V IO voltage by default.
>
> sd-uhs-sdr12;
> sd-uhs-sdr25;
> sd-uhs-sdr50;
> sd-uhs-sdr104;
But I don't think it's necessary to lay out these slower modes
explicitly, since SDR104 seems to imply them, see
sd_update_bus_speed_mode() in drivers/mmc/core/sd.c[1],
if ((card->host->caps & MMC_CAP_UHS_SDR104) &&
(card->sw_caps.sd3_bus_mode & SD_MODE_UHS_SDR104)) {
card->sd_bus_speed = UHS_SDR104_BUS_SPEED;
} else if ((card->host->caps & MMC_CAP_UHS_DDR50) &&
(card->sw_caps.sd3_bus_mode & SD_MODE_UHS_DDR50)) {
card->sd_bus_speed = UHS_DDR50_BUS_SPEED;
} else if ((card->host->caps & (MMC_CAP_UHS_SDR104 |
MMC_CAP_UHS_SDR50)) && (card->sw_caps.sd3_bus_mode &
SD_MODE_UHS_SDR50)) {
card->sd_bus_speed = UHS_SDR50_BUS_SPEED;
} else if ((card->host->caps & (MMC_CAP_UHS_SDR104 |
MMC_CAP_UHS_SDR50 | MMC_CAP_UHS_SDR25)) &&
(card->sw_caps.sd3_bus_mode & SD_MODE_UHS_SDR25)) {
card->sd_bus_speed = UHS_SDR25_BUS_SPEED;
} else if ((card->host->caps & (MMC_CAP_UHS_SDR104 |
MMC_CAP_UHS_SDR50 | MMC_CAP_UHS_SDR25 |
MMC_CAP_UHS_SDR12)) && (card->sw_caps.sd3_bus_mode &
SD_MODE_UHS_SDR12)) {
card->sd_bus_speed = UHS_SDR12_BUS_SPEED;
}
> Thanks,
> Chukun
>
> --
> 2.25.1
>
Regards,
Yao Zi
[1]: https://elixir.bootlin.com/linux/v6.13.5/source/drivers/mmc/core/sd.c#L448-L479
WARNING: multiple messages have this Message-ID (diff)
From: Yao Zi <ziyao@disroot.org>
To: Chukun Pan <amadeus@jmu.edu.cn>
Cc: detlev.casanova@collabora.com, conor+dt@kernel.org,
heiko@sntech.de, devicetree@vger.kernel.org,
frank.wang@rock-chips.com, jonas@kwiboo.se,
linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-rockchip@lists.infradead.org, krzk+dt@kernel.org,
linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 8/8] arm64: dts: rockchip: Enable SD-card interface on Radxa E20C
Date: Tue, 4 Mar 2025 19:49:45 +0000 [thread overview]
Message-ID: <Z8dZWYpABghRHHge@pie.lan> (raw)
In-Reply-To: <20250304121036.1453284-1-amadeus@jmu.edu.cn>
On Tue, Mar 04, 2025 at 08:10:36PM +0800, Chukun Pan wrote:
> Hi,
>
> > + aliases {
> > + mmc0 = &sdmmc;
>
> s/mmc0/mmc1
Will take it and add the missing pinctrl, as Jonas already pointed out.
> > +&sdmmc {
> > + bus-width = <4>;
> > + cap-mmc-highspeed;
> > + cap-sd-highspeed;
>
> I think for sdcard, only cap-sd-highspeed
> is needed, not cap-mmc-highspeed?
This makes sense, will remove it in the next version.
> > + disable-wp;
>
> Missing pinctrl.
>
> > + rockchip,default-sample-phase = <90>;
>
> It seems that all rk3528 devices need to set this
> default phase, so maybe this can be placed in dtsi?
Yes, since the tuned phase offset is a SoC-specific value, as pointed
out by comment in the driver,
this is _not_ a value that is dynamically tuned and is also
_not_ a value that will vary from board to board. It is a value
that could vary between different SoC models.
Will take it in the next version, thanks for finding it!
> > + sd-uhs-sdr104;
>
> The rk3528 devices uses gpio to switch IO voltage, maybe
> more modes should be added here like vendor kernel?
I cannot get the relationship between things you mentioned. For the
regulator, yes, here vqmmc-supply is missing, as already pointed out by
Jonas.
> And these devices use 3.3V IO voltage by default.
>
> sd-uhs-sdr12;
> sd-uhs-sdr25;
> sd-uhs-sdr50;
> sd-uhs-sdr104;
But I don't think it's necessary to lay out these slower modes
explicitly, since SDR104 seems to imply them, see
sd_update_bus_speed_mode() in drivers/mmc/core/sd.c[1],
if ((card->host->caps & MMC_CAP_UHS_SDR104) &&
(card->sw_caps.sd3_bus_mode & SD_MODE_UHS_SDR104)) {
card->sd_bus_speed = UHS_SDR104_BUS_SPEED;
} else if ((card->host->caps & MMC_CAP_UHS_DDR50) &&
(card->sw_caps.sd3_bus_mode & SD_MODE_UHS_DDR50)) {
card->sd_bus_speed = UHS_DDR50_BUS_SPEED;
} else if ((card->host->caps & (MMC_CAP_UHS_SDR104 |
MMC_CAP_UHS_SDR50)) && (card->sw_caps.sd3_bus_mode &
SD_MODE_UHS_SDR50)) {
card->sd_bus_speed = UHS_SDR50_BUS_SPEED;
} else if ((card->host->caps & (MMC_CAP_UHS_SDR104 |
MMC_CAP_UHS_SDR50 | MMC_CAP_UHS_SDR25)) &&
(card->sw_caps.sd3_bus_mode & SD_MODE_UHS_SDR25)) {
card->sd_bus_speed = UHS_SDR25_BUS_SPEED;
} else if ((card->host->caps & (MMC_CAP_UHS_SDR104 |
MMC_CAP_UHS_SDR50 | MMC_CAP_UHS_SDR25 |
MMC_CAP_UHS_SDR12)) && (card->sw_caps.sd3_bus_mode &
SD_MODE_UHS_SDR12)) {
card->sd_bus_speed = UHS_SDR12_BUS_SPEED;
}
> Thanks,
> Chukun
>
> --
> 2.25.1
>
Regards,
Yao Zi
[1]: https://elixir.bootlin.com/linux/v6.13.5/source/drivers/mmc/core/sd.c#L448-L479
_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip
next prev parent reply other threads:[~2025-03-04 20:01 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-01 10:42 [PATCH 0/8] Support SD/SDIO controllers on RK3528 Yao Zi
2025-03-01 10:42 ` Yao Zi
2025-03-01 10:42 ` [PATCH 1/8] dt-bindings: soc: rockchip: Add RK3528 VO GRF syscon Yao Zi
2025-03-01 10:42 ` Yao Zi
2025-03-03 15:07 ` Rob Herring (Arm)
2025-03-03 15:07 ` Rob Herring (Arm)
2025-03-01 10:42 ` [PATCH 2/8] dt-bindings: soc: rockchip: Add RK3528 VPU " Yao Zi
2025-03-01 10:42 ` Yao Zi
2025-03-03 15:08 ` Rob Herring (Arm)
2025-03-03 15:08 ` Rob Herring (Arm)
2025-03-01 10:42 ` [PATCH 3/8] dt-bindings: mmc: rockchip-dw-mshc: Add compatible string for RK3528 Yao Zi
2025-03-01 10:42 ` Yao Zi
2025-03-03 15:08 ` Rob Herring (Arm)
2025-03-03 15:08 ` Rob Herring (Arm)
2025-03-01 10:42 ` [PATCH 4/8] dt-bindings: clock: Add GRF clock definition " Yao Zi
2025-03-01 10:42 ` Yao Zi
2025-03-01 10:46 ` [PATCH 5/8] clk: rockchip: Support MMC clocks in GRF region Yao Zi
2025-03-01 10:46 ` Yao Zi
2025-03-01 10:47 ` [PATCH 6/8] clk: rockchip: rk3528: Add SD/SDIO tuning " Yao Zi
2025-03-01 10:47 ` Yao Zi
2025-03-05 10:00 ` Chukun Pan
2025-03-05 10:00 ` Chukun Pan
2025-03-05 10:21 ` Heiko Stübner
2025-03-05 10:21 ` Heiko Stübner
2025-03-05 10:49 ` Yao Zi
2025-03-05 10:49 ` Yao Zi
2025-03-01 10:47 ` [PATCH 7/8] arm64: dts: rockchip: Add SDMMC/SDIO controllers for RK3528 Yao Zi
2025-03-01 10:47 ` Yao Zi
2025-03-01 12:47 ` Jonas Karlman
2025-03-01 12:47 ` Jonas Karlman
2025-03-01 12:55 ` Heiko Stübner
2025-03-01 12:55 ` Heiko Stübner
2025-03-02 11:01 ` Jonas Karlman
2025-03-02 11:01 ` Jonas Karlman
2025-03-01 13:33 ` Yao Zi
2025-03-01 13:33 ` Yao Zi
2025-03-02 11:33 ` Jonas Karlman
2025-03-02 11:33 ` Jonas Karlman
2025-03-01 10:48 ` [PATCH 8/8] arm64: dts: rockchip: Enable SD-card interface on Radxa E20C Yao Zi
2025-03-01 10:48 ` Yao Zi
2025-03-01 13:01 ` Jonas Karlman
2025-03-01 13:01 ` Jonas Karlman
2025-03-01 15:15 ` Yao Zi
2025-03-01 15:15 ` Yao Zi
2025-03-02 11:56 ` Jonas Karlman
2025-03-02 11:56 ` Jonas Karlman
2025-03-02 16:16 ` Yao Zi
2025-03-02 16:16 ` Yao Zi
2025-03-04 12:10 ` Chukun Pan
2025-03-04 12:10 ` Chukun Pan
2025-03-04 19:49 ` Yao Zi [this message]
2025-03-04 19:49 ` Yao Zi
2025-03-04 19:55 ` Jonas Karlman
2025-03-04 19:55 ` Jonas Karlman
2025-03-04 20:02 ` Yao Zi
2025-03-04 20: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=Z8dZWYpABghRHHge@pie.lan \
--to=ziyao@disroot.org \
--cc=amadeus@jmu.edu.cn \
--cc=conor+dt@kernel.org \
--cc=cristian.ciocaltea@collabora.com \
--cc=detlev.casanova@collabora.com \
--cc=devicetree@vger.kernel.org \
--cc=frank.wang@rock-chips.com \
--cc=heiko@sntech.de \
--cc=jonas@kwiboo.se \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mmc@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.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 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.