[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