The NanoPi RK3399 boards support UHS-I (up to SDR104) SD cards, however using any of these 1.8v modes results in a boot failure in SPL upon soft reboot.
The issue is that the "vcc_sdio" regulator is left at 1.8v on reboot and the corresponding GPIO defaults to 3.3v. This prevents the SD card from being reinitialized and read successfully. This change series resolves this issue by allowing the proper initialization and control of the "vcc3v0_sd" (vmmc-supply) and "vcc_sdio" (vqmmc-supply) regulators and corresponding GPIO in SPL. Changes in v3: - Use dev_dbg instead of log_debug - Add depends on SPL_DM_REGULATOR Changes in v2: - Made added IO-domain driver logs verbose and consistent - Added separate patch for added CONFIG_SPL_ROCKCHIP_IODOMAIN Kconfig - Added separate patch for added CONFIG_SPL_REGULATOR_RK8XX Kconfig - Added patch to remove device-tree properties that conflicted with MMC driver initialization - Added defconfig changes for all NanoPi RK3399 boards Justin Klaassen (5): rockchip: io-domain: Add debug logging for regulators during probe rockchip: io-domain: Add CONFIG_SPL_ROCKCHIP_IODOMAIN regulator: rk8xx: Add CONFIG_SPL_REGULATOR_RK8XX rockchip: rk3399-nanopi-4: Allow MMC driver to control SD regulators rockchip: rk3399-nanopi-4: Enable IO-domain driver in SPL arch/arm/dts/rk3399-nanopi4-u-boot.dtsi | 12 ++++++++++++ configs/nanopc-t4-rk3399_defconfig | 7 +++++++ configs/nanopi-m4-2gb-rk3399_defconfig | 7 +++++++ configs/nanopi-m4-rk3399_defconfig | 7 +++++++ configs/nanopi-m4b-rk3399_defconfig | 7 +++++++ configs/nanopi-neo4-rk3399_defconfig | 7 +++++++ configs/nanopi-r4s-rk3399_defconfig | 7 +++++++ drivers/misc/Kconfig | 8 ++++++++ drivers/misc/rockchip-io-domain.c | 5 ++++- drivers/power/regulator/Kconfig | 9 +++++++++ drivers/power/regulator/rk8xx.c | 8 ++------ 11 files changed, 77 insertions(+), 7 deletions(-) -- 2.45.3