[PATCH 00/10] riscv: spacemit: enable SD card support with UHS modes for OrangePi RV2

Iker Pedrosa posted 10 patches 1 month, 1 week ago
There is a newer version of this series
.../devicetree/bindings/mmc/spacemit,sdhci.yaml    |  15 +
arch/riscv/boot/dts/spacemit/k1-orangepi-rv2.dts   |  69 +++++
arch/riscv/boot/dts/spacemit/k1-pinctrl.dtsi       |  40 +++
arch/riscv/boot/dts/spacemit/k1.dtsi               |  13 +
drivers/mmc/host/sdhci-of-k1.c                     | 320 +++++++++++++++++++++
5 files changed, 457 insertions(+)
[PATCH 00/10] riscv: spacemit: enable SD card support with UHS modes for OrangePi RV2
Posted by Iker Pedrosa 1 month, 1 week ago
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.

Signed-off-by: Iker Pedrosa <ikerpedrosam@gmail.com>
---
Iker Pedrosa (10):
      dt-bindings: mmc: spacemit,sdhci: add AIB voltage switching registers
      mmc: sdhci-of-k1: enable essential clock infrastructure for SD operation
      mmc: sdhci-of-k1: add regulator framework support
      mmc: sdhci-of-k1: add pinctrl state switching for voltage changes
      mmc: sdhci-of-k1: add AIB register support for voltage switching
      mmc: sdhci-of-k1: add SDR tuning infrastructure
      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

 .../devicetree/bindings/mmc/spacemit,sdhci.yaml    |  15 +
 arch/riscv/boot/dts/spacemit/k1-orangepi-rv2.dts   |  69 +++++
 arch/riscv/boot/dts/spacemit/k1-pinctrl.dtsi       |  40 +++
 arch/riscv/boot/dts/spacemit/k1.dtsi               |  13 +
 drivers/mmc/host/sdhci-of-k1.c                     | 320 +++++++++++++++++++++
 5 files changed, 457 insertions(+)
---
base-commit: 5f499bb7a07fcdcf8877acaa8f413a5dc1fcfacc
change-id: 20260226-orangepi-sd-card-uhs-0ecb05839b0c

Best regards,
-- 
Iker Pedrosa <ikerpedrosam@gmail.com>
Re: [PATCH 00/10] riscv: spacemit: enable SD card support with UHS modes for OrangePi RV2
Posted by Michael Opdenacker 1 month ago
Hi Iker,

Thanks a lot for these patches!

On 3/2/26 4:13 PM, Iker Pedrosa 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.
>
> Signed-off-by: Iker Pedrosa <ikerpedrosam@gmail.com>
> ---
> Iker Pedrosa (10):
>        dt-bindings: mmc: spacemit,sdhci: add AIB voltage switching registers
>        mmc: sdhci-of-k1: enable essential clock infrastructure for SD operation
>        mmc: sdhci-of-k1: add regulator framework support
>        mmc: sdhci-of-k1: add pinctrl state switching for voltage changes
>        mmc: sdhci-of-k1: add AIB register support for voltage switching
>        mmc: sdhci-of-k1: add SDR tuning infrastructure
>        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
>
>   .../devicetree/bindings/mmc/spacemit,sdhci.yaml    |  15 +
>   arch/riscv/boot/dts/spacemit/k1-orangepi-rv2.dts   |  69 +++++
>   arch/riscv/boot/dts/spacemit/k1-pinctrl.dtsi       |  40 +++
>   arch/riscv/boot/dts/spacemit/k1.dtsi               |  13 +
>   drivers/mmc/host/sdhci-of-k1.c                     | 320 +++++++++++++++++++++
>   5 files changed, 457 insertions(+)
> ---
> base-commit: 5f499bb7a07fcdcf8877acaa8f413a5dc1fcfacc
> change-id: 20260226-orangepi-sd-card-uhs-0ecb05839b0c
>
> Best regards,

Things look all right according to my first tests. First time I'm able 
to boot a Yocto build root filesystem from SD card with the mainline 
kernel on the OrangePi RV2 board!
Tomorrow, I should have time to run tests on BananaPi PF3 too. Fingers 
crossed for eMMC support...

I'll be happy to test your further iterations. That would be awesone to 
have SD support merged in 7.1 :)
Thanks again
Michael.

-- 
Root Commit
Embedded Linux Training and Consulting
https://rootcommit.com