[PATCH v8 0/9] riscv: spacemit: enable SD card support with UHS modes for OrangePi RV2

Iker Pedrosa ikerpedrosam at gmail.com
Thu May 7 02:57:47 PDT 2026


Hi everyone,

Now that the merge window has settled, I’d like to bring this series
back to your attention.

The series has been stable and tested across the OrangePi RV2, Banana
Pi F3, and Muse Pi Pro. Is there anything else needed on my end to get
this ready?

El jue, 23 abr 2026 a las 14:42, Anand Moon (<linux.amoon at gmail.com>) escribió:
>
> Hi All,
>
> On Mon, 13 Apr 2026 at 13:32, Iker Pedrosa <ikerpedrosam at gmail.com> wrote:
> >
> > This series enables complete SD card support for the Spacemit K1-based
> > OrangePi RV2 board, including UHS (Ultra High Speed) modes for
> > high-performance SD card operation.
> >
> > Background
> >
> > The Spacemit K1 SoC includes an SDHCI controller capable of supporting
> > SD cards up to UHS-I speeds (SDR104 at 208MHz). However, mainline
> > currently lacks basic SD controller configuration, SDHCI driver
> > enhancements for voltage switching and tuning, and power management
> > infrastructure.
> >
> > Implementation
> >
> > The series enables SD card support through coordinated layers:
> >
> > - Hardware infrastructure (patches 1-2): Device tree bindings for voltage
> > switching hardware and essential clock infrastructure.
> > - SDHCI driver enhancements (patches 3-7): Regulator framework
> > integration, pinctrl state switching for voltage domains, AIB register
> > programming, and comprehensive SDR tuning support for reliable UHS
> > operation.
> > - SoC and board integration (patches 8-10): Complete K1 SoC controller
> > definitions, PMIC power infrastructure, and OrangePi RV2 board enablement
> > with full UHS support.
> >
> > This transforms the OrangePi RV2 from having no SD card support to full
> > UHS-I capability, enabling high-performance storage up to 208MHz.
> >
> > Tested-by: Michael Opdenacker <michael.opdenacker at rootcommit.com>
> > Signed-off-by: Iker Pedrosa <ikerpedrosam at gmail.com>
>
> I'm just checking the status of this series. Since it hasn't been
> applied to linux-next,
> Will it be included in the next kernel release cycle?
>
> Thanks
> -Anand
> > ---
> > Changes in v8:
> > - Resending the series as v8. The v7 submission failed due to an SMTP
> >   error during transit, which resulted in a broken thread on the mailing
> >   list.
> > - No functional changes from v7.
> > - Link to v7: https://lore.kernel.org/r/20260413-orangepi-sd-card-uhs-v7-1-16650f49c022@gmail.com
> >
> > Changes in v7:
> > - Remove sdhci-common.yaml reference from DT binding.
> > - Link to v6: https://lore.kernel.org/r/20260407-orangepi-sd-card-uhs-v6-0-b5b8a1b2bfc8@gmail.com
> >
> > Changes in v6:
> > - Add pinctrl support for voltage switching. Document optional
> >   pinctrl-names property supporting "default" and "uhs" pinctrl states
> >   for coordinating pin configuration changes during UHS-I voltage
> >   switching.
> > - Update pinctrl state naming from "state_uhs" to "uhs" to match DT
> >   binding naming convention.
> > - Fix MMC drive strength values based on vendor kernel investigation.
> >   Correct 3.3V operation from 7mA to 19mA and 1.8V UHS operation from
> >   13mA to 42mA to match proven vendor implementation.
> > - Link to v5: https://lore.kernel.org/r/20260330-orangepi-sd-card-uhs-v5-0-bd853604322d@gmail.com
> >
> > Changes in v5:
> > - Document optional pinctrl-names property supporting "default" and
> >   "state_uhs" pinctrl states for coordinating pin configuration changes
> >   during UHS-I voltage switching.
> > - Link to v4: https://lore.kernel.org/r/20260323-orangepi-sd-card-uhs-v4-0-567c9775fd0e@gmail.com
> >
> > Changes in v4:
> > - Revert to start_signal_voltage_switch() approach for bidirectional
> >   voltage switching: replace voltage_switch() callback with
> >   start_signal_voltage_switch() to properly handle both 3.3V and 1.8V
> >   signal voltage directions.
> > - Fix DC input voltage specification: corrected the main power supply
> >   from 12V to 5V to match the OrangePi RV2 board specifications. The
> >   board uses a 5V USB-C input connector, not a 12V rail as previously
> >   specified in the device tree.
> > - k1-bananapi-f3.dts: add `broken-cd` property to work around card
> >   detection. Using `broken-cd` disables hotplug detection but keeps SD
> >   card functionality working without additional dependencies.
> > - Add SD card support for Muse Pi Pro board (contributed by Trevor
> >   Gamblin): enable SD card support with UHS-I capabilities following the
> >   same pattern as OrangePi RV2, including dual pinctrl states, PMIC
> >   power supplies, and card detection.
> > - Link to v3: https://lore.kernel.org/r/20260316-orangepi-sd-card-uhs-v3-0-aefd3b7832df@gmail.com
> >
> > Changes in v3:
> > - Rebase on mmc.git/next to resolve conflicts with "mmc: sdhci-of-k1:
> >   add reset support" patch.
> > - Squash tuning infrastructure and implementation patches (3 and 4)
> >   together to form complete functionality and avoid unused function
> >   warnings.
> > - Reduce code nesting: implemented an early return sanity check in
> >   spacemit_sdhci_voltage_switch() to reduce indentation and improve
> >   logic flow.
> > - Refactor pinctrl initialization: moved pinctrl resource acquisition
> >   and state lookup into a dedicated helper function,
> >   spacemit_sdhci_get_pins().
> > - Use generic regulator node names (buck4, aldo1) instead of
> >   device-specific aliases (sd_vmmc, sd_vqmmc) to better reflect that
> >   these PMIC outputs serve multiple devices.
> > - Remove dead code handling 3.3V voltage switching from
> >   spacemit_sdhci_voltage_switch().
> > - Optimize tuning algorithm to use single-pass window detection instead
> >   of storing results in array, reducing memory usage and complexity.
> > - Remove unnecessary card detect check in execute_tuning() - rely on MMC
> >   core.
> > - Clarify commit message to mention both SD (UHS-I) and eMMC (HS200)
> >   tuning support.
> > - Add SD card support for Banana Pi BPI-F3 board with UHS-I capabilities
> >   following the same pattern as OrangePi RV2.
> > - Link to v2: https://lore.kernel.org/r/20260309-orangepi-sd-card-uhs-v2-0-5bb2b574df5d@gmail.com
> >
> > Changes in v2:
> > - Removed custom AIB voltage switching code per maintainer feedback. The
> >   existing pinctrl driver already handles AIB voltage switching
> >   automatically via power-source property changes during UHS mode
> >   transitions. This eliminates code duplication.
> > - Squashed regulator and pinctrl commits into single voltage switching
> >   implementation.
> > - Moved voltage switching callback from dynamic probe assignment to
> >   static sdhci_ops declaration. Removed redundant SDHCI core call since
> >   the framework handles standard voltage switching automatically.
> > - Made clock override (SDHC_OVRRD_CLK_OEN | SDHC_FORCE_CLK_ON)
> >   conditional for SD/SDIO cards only. This follows vendor driver pattern
> >   of differentiating SD and eMMC card handling.
> > - Include no-mmc property for SD card.
> > - Link to v1: https://lore.kernel.org/r/20260302-orangepi-sd-card-uhs-v1-0-89c219973c0c@gmail.com
> >
> > ---
> > Iker Pedrosa (8):
> >       dt-bindings: mmc: spacemit,sdhci: add pinctrl support for voltage switching
> >       mmc: sdhci-of-k1: enable essential clock infrastructure for SD operation
> >       mmc: sdhci-of-k1: add regulator and pinctrl voltage switching support
> >       mmc: sdhci-of-k1: add comprehensive SDR tuning support
> >       riscv: dts: spacemit: k1: add SD card controller and pinctrl support
> >       riscv: dts: spacemit: k1-orangepi-rv2: add PMIC and power infrastructure
> >       riscv: dts: spacemit: k1-orangepi-rv2: add SD card support with UHS modes
> >       riscv: dts: spacemit: k1-bananapi-f3: add SD card support with UHS modes
> >
> > Trevor Gamblin (1):
> >       riscv: dts: spacemit: k1-musepi-pro: add SD card support with UHS modes
> >
> >  .../devicetree/bindings/mmc/spacemit,sdhci.yaml    |  15 ++
> >  arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts    |  24 +-
> >  arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts     |  66 ++++++
> >  arch/riscv/boot/dts/spacemit/k1-orangepi-rv2.dts   |  67 ++++++
> >  arch/riscv/boot/dts/spacemit/k1-pinctrl.dtsi       |  40 ++++
> >  arch/riscv/boot/dts/spacemit/k1.dtsi               |  13 ++
> >  drivers/mmc/host/sdhci-of-k1.c                     | 257 +++++++++++++++++++++
> >  7 files changed, 480 insertions(+), 2 deletions(-)
> > ---
> > base-commit: 4c3b07bf68391122266dfb01126484daf352cf70
> > change-id: 20260226-orangepi-sd-card-uhs-0ecb05839b0c
> >
> > Best regards,
> > --
> > Iker Pedrosa <ikerpedrosam at gmail.com>
> >



More information about the linux-riscv mailing list