[PATCH v8 8/9] riscv: dts: spacemit: k1-bananapi-f3: add SD card support with UHS modes
Iker Pedrosa
ikerpedrosam at gmail.com
Thu May 7 02:53:53 PDT 2026
Hi,
El jue, 7 may 2026 a las 10:20, Margherita Milani
(<margherita.milani at amarulasolutions.com>) escribió:
>
> Good morning Iker,
>
> > 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
>
>
> Tested-by: Margherita Milani <margherita.milani at amarulasolutions.com>
>
> However I noticed it only works when CONFIG_I2C_K1 is enabled.
> Michael Opdenacker told me it's necessary to enable the regulators
> used by the mmc controller.
> Should we add the dependency between CONFIG_MMC_SDHCI_OF_K1 and
> CONFIG_I2C_K1? (Unless some boards don't have these dependency?)
> Thank you for your patchset which was really nice!
Thank you for catching this! You're absolutely right about the dependency.
>From what I can see, all current SpacemiT K1 boards follow this design
pattern where the SD card power is provided by an I2C-controlled PMIC.
However, before adding a hard dependency, I'd like to get input from
the community, does anyone know of K1-based boards that provide SD
card power through fixed regulators or other means that don't require
I2C?
>
> --
> Margherita Milani
> Embedded Software Engineer
> M. +39 334 758 9111
> margherita.milani at amarulasolutions.com
> __________________________________
>
> Amarula Solutions SRL
> Via le Canevare 30, 31100, Treviso, Veneto, IT
> T. +39 (0)42 243 5310
> info at amarulasolutions.com
> www.amarulasolutions.com
>
> On Mon, Apr 13, 2026 at 10:05 AM Iker Pedrosa <ikerpedrosam at gmail.com> 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>
> > Signed-off-by: Iker Pedrosa <ikerpedrosam at gmail.com>
> > ---
> > arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts | 24 ++++++++++++++++++++++--
> > 1 file changed, 22 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 5790d927b93d..a7d88564630f 100644
> > --- a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts
> > +++ b/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts
> > @@ -220,7 +220,7 @@ buck3_1v8: buck3 {
> > regulator-always-on;
> > };
> >
> > - buck4 {
> > + buck4: buck4 {
> > regulator-min-microvolt = <500000>;
> > regulator-max-microvolt = <3300000>;
> > regulator-ramp-delay = <5000>;
> > @@ -241,7 +241,7 @@ buck6 {
> > regulator-always-on;
> > };
> >
> > - aldo1 {
> > + aldo1: aldo1 {
> > regulator-min-microvolt = <500000>;
> > regulator-max-microvolt = <3400000>;
> > regulator-boot-on;
> > @@ -367,3 +367,23 @@ hub_3_0: hub at 2 {
> > reset-gpios = <&gpio K1_GPIO(124) GPIO_ACTIVE_LOW>;
> > };
> > };
> > +
> > +&sdhci0 {
> > + pinctrl-names = "default", "uhs";
> > + pinctrl-0 = <&mmc1_cfg>;
> > + pinctrl-1 = <&mmc1_uhs_cfg>;
> > + bus-width = <4>;
> > + cd-gpios = <&gpio K1_GPIO(80) GPIO_ACTIVE_HIGH>;
> > + cd-inverted;
> > + broken-cd;
> > + 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.53.0
> >
> >
>
>
> --
> Margherita Milani
> Embedded Software Engineer
> M. +39 334 758 9111
> margherita.milani at amarulasolutions.com
> __________________________________
>
> Amarula Solutions SRL
> Via le Canevare 30, 31100, Treviso, Veneto, IT
> T. +39 (0)42 243 5310
> info at amarulasolutions.com
> www.amarulasolutions.com
More information about the linux-riscv
mailing list