[PATCH v9 7/8] riscv: dts: spacemit: k1-bananapi-f3: add SD card support with UHS modes
Yixun Lan
dlan at kernel.org
Mon May 11 22:43:58 PDT 2026
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 at gmail.com>
> Tested-by: Anand Moon <linux.amoon at gmail.com>
> Tested-by: Margherita Milani <margherita.milani at amarulasolutions.com>
> Signed-off-by: Iker Pedrosa <ikerpedrosam at gmail.com>
> ---
> 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 at 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)
More information about the linux-riscv
mailing list