Re: [PATCH v9 7/8] riscv: dts: spacemit: k1-bananapi-f3: add SD card support with UHS modes
From: Yixun Lan
Date: Tue May 12 2026 - 02:13:33 EST
Hi Iker,
Please note, once you are sending new patch series, please drop patch 1-4
which already picked by Ulf, but keep increase the version number
On 10:54 Mon 11 May , Iker Pedrosa wrote:
> Add complete SD card controller support with UHS high-speed modes.
>
> - Enable sdhci0 controller with 4-bit bus width
> - Configure card detect GPIO with inversion
> - Connect vmmc-supply to buck4 for 3.3V card power
> - Connect vqmmc-supply to aldo1 for 1.8V/3.3V I/O switching
> - Add dual pinctrl states for voltage-dependent pin configuration
> - Support UHS-I SDR25, SDR50, and SDR104 modes
>
> This enables full SD card functionality including high-speed UHS modes
> for improved performance.
>
> Suggested-by: Anand Moon <linux.amoon@xxxxxxxxx>
> Tested-by: Anand Moon <linux.amoon@xxxxxxxxx>
> Tested-by: Margherita Milani <margherita.milani@xxxxxxxxxxxxxxxxxxxx>
> Signed-off-by: Iker Pedrosa <ikerpedrosam@xxxxxxxxx>
> ---
> arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts | 22 ++++++++++++++++++++--
> 1 file changed, 20 insertions(+), 2 deletions(-)
>
> diff --git a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts b/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts
> index e20daa50a152..8fea6e87acec 100644
> --- a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts
> +++ b/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts
> @@ -221,7 +221,7 @@ buck3_1v8: buck3 {
> regulator-always-on;
> };
>
> - buck4 {
> + buck4: buck4 {
> regulator-min-microvolt = <500000>;
> regulator-max-microvolt = <3300000>;
> regulator-ramp-delay = <5000>;
> @@ -242,7 +242,7 @@ buck6 {
> regulator-always-on;
> };
>
> - aldo1 {
> + aldo1: aldo1 {
> regulator-min-microvolt = <500000>;
> regulator-max-microvolt = <3400000>;
> regulator-boot-on;
> @@ -374,3 +374,21 @@ hub_3_0: hub@2 {
> reset-gpios = <&gpio K1_GPIO(124) GPIO_ACTIVE_LOW>;
> };
> };
> +
> +&sdhci0 {
I'd suggest to add alias (to 'aliases' node), so we will have stable
dev node regardless whichever device probe first.. something should like
aliases {
..
mmc0 = &emmc;
mmc1 = &sdhci0;
..
}
So, how about let's make it convention here, first device is emmc, second
is SD card, third is sdio device (haven't added yet).. We introduced emmc
early before this patch, so it stays unchanged which is nice for end user
Please apply this alias idea to all boards although I only comment in this
patch..
> + pinctrl-names = "default", "uhs";
> + pinctrl-0 = <&mmc1_cfg>;
> + pinctrl-1 = <&mmc1_uhs_cfg>;
> + bus-width = <4>;
> + cd-gpios = <&gpio K1_GPIO(80) (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
> + no-mmc;
> + no-sdio;
> + disable-wp;
> + cap-sd-highspeed;
> + vmmc-supply = <&buck4>;
> + vqmmc-supply = <&aldo1>;
> + sd-uhs-sdr25;
> + sd-uhs-sdr50;
> + sd-uhs-sdr104;
> + status = "okay";
> +};
>
> --
> 2.54.0
>
--
Yixun Lan (dlan)