[PATCH 02/12] rockchip: puma-rk3399: use gpio-hog instead of fixed-regulator for enabling eMMC/SPI-NOR
Kever Yang
kever.yang at rock-chips.com
Thu Sep 1 15:04:25 CEST 2022
On 2022/7/23 00:06, Quentin Schulz wrote:
> From: Quentin Schulz <quentin.schulz at theobroma-systems.com>
>
> On Haikou devkit, it is possible to disable eMMC and SPI-NOR to force
> booting from SD card or USB via rkdeveloptool by toggling a switch. This
> switch needs to be overridden in software to be able to access eMMC and
> SPI-NOR once the device has booted from SD Card. Puma SoM can override
> this pin via gpio3_d5.
>
> Until now, fixed regulator device was abused to model this, but since
> there's now support for GPIO hogs, let's use it.
>
> Since we want to be able to boot the SPL from SD Card but give it the
> ability to load U-Boot proper from a fallback medium such as eMMC and
> SPI-NOR, SPL support for GPIO hogs needs to be enabled too. Support for
> other kinds of regulators are not needed anymore, so let's disable them.
>
> Cc: Quentin Schulz <foss+uboot at 0leil.net>
> Signed-off-by: Quentin Schulz <quentin.schulz at theobroma-systems.com>
Reviewed-by: Kever Yang <kever.yang at rock-chips.com>
Thanks,
- Kever
> ---
>
> Depends on
> https://lore.kernel.org/u-boot/20220712154422.265925-2-foss+uboot@0leil.net/
>
> arch/arm/dts/rk3399-puma-haikou-u-boot.dtsi | 32 +++++++++------------
> configs/puma-rk3399_defconfig | 5 ++--
> 2 files changed, 16 insertions(+), 21 deletions(-)
>
> diff --git a/arch/arm/dts/rk3399-puma-haikou-u-boot.dtsi b/arch/arm/dts/rk3399-puma-haikou-u-boot.dtsi
> index e0476ab25c..b9b6ac3f6c 100644
> --- a/arch/arm/dts/rk3399-puma-haikou-u-boot.dtsi
> +++ b/arch/arm/dts/rk3399-puma-haikou-u-boot.dtsi
> @@ -31,24 +31,6 @@
> spi5 = &spi5;
> };
>
> - /*
> - * The Qseven BIOS_DISABLE signal on the RK3399-Q7 keeps the on-module
> - * eMMC and SPI flash powered-down initially (in fact it keeps the
> - * reset signal asserted). Even though it is an enable signal, we
> - * model this as a regulator.
> - */
> - bios_enable: bios_enable {
> - compatible = "regulator-fixed";
> - u-boot,dm-pre-reloc;
> - regulator-name = "bios_enable";
> - enable-active-high;
> - gpio = <&gpio3 RK_PD5 GPIO_ACTIVE_LOW>;
> - regulator-always-on;
> - regulator-boot-on;
> - regulator-min-microvolt = <1800000>;
> - regulator-max-microvolt = <1800000>;
> - };
> -
> vdd_log: vdd-log {
> compatible = "pwm-regulator";
> pwms = <&pwm2 0 25000 1>;
> @@ -68,6 +50,20 @@
>
> &gpio3 {
> u-boot,dm-pre-reloc;
> +
> + /*
> + * The Qseven BIOS_DISABLE signal on the RK3399-Q7 keeps the on-module
> + * eMMC and SPI flash powered-down initially (in fact it keeps the
> + * reset signal asserted). BIOS_DISABLE_OVERRIDE pin allows to re-enable
> + * eMMC and SPI after the SPL has been booted from SD Card.
> + */
> + bios_disable_override {
> + u-boot,dm-pre-reloc;
> + gpios = <RK_PD5 GPIO_ACTIVE_LOW>;
> + output-high;
> + line-name = "bios_disable_override";
> + gpio-hog;
> + };
> };
>
> &norflash {
> diff --git a/configs/puma-rk3399_defconfig b/configs/puma-rk3399_defconfig
> index 7ce2dc0719..6093943ee8 100644
> --- a/configs/puma-rk3399_defconfig
> +++ b/configs/puma-rk3399_defconfig
> @@ -49,6 +49,8 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
> CONFIG_SYS_MMC_ENV_DEV=1
> CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
> CONFIG_SPL_DM_SEQ_ALIAS=y
> +CONFIG_GPIO_HOG=y
> +CONFIG_SPL_GPIO_HOG=y
> CONFIG_ROCKCHIP_GPIO=y
> CONFIG_SYS_I2C_ROCKCHIP=y
> CONFIG_MISC=y
> @@ -72,10 +74,7 @@ CONFIG_PHY_ROCKCHIP_TYPEC=y
> CONFIG_DM_PMIC_FAN53555=y
> CONFIG_PMIC_RK8XX=y
> CONFIG_SPL_PMIC_RK8XX=y
> -CONFIG_SPL_DM_REGULATOR=y
> CONFIG_REGULATOR_PWM=y
> -CONFIG_SPL_DM_REGULATOR_FIXED=y
> -CONFIG_DM_REGULATOR_GPIO=y
> CONFIG_REGULATOR_RK8XX=y
> CONFIG_PWM_ROCKCHIP=y
> CONFIG_DM_RESET=y
More information about the U-Boot
mailing list