Message ID | 20220722160655.3904213-3-foss+uboot@0leil.net |
---|---|
State | Superseded |
Delegated to: | Kever Yang |
Headers | show |
Series | Puma RK3399 migration to TPL and numerous fixes | expand |
On 2022/7/23 00:06, Quentin Schulz wrote: > From: Quentin Schulz <quentin.schulz@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@0leil.net> > Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com> Reviewed-by: Kever Yang <kever.yang@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
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