Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

arm64: dts: rockchip: override BIOS_DISABLE signal via GPIO hog on RK3399 Puma

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 override that signal so
that eMMC and SPI can be used regardless of the state of the signal.

Let's make this GPIO a hog so that it's reserved and locked in the
proper state.

At the same time, make sure the pin is reserved for the hog and cannot
be requested by another node.

Cc: stable@vger.kernel.org
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Link: https://lore.kernel.org/r/20240731-puma-emmc-6-v1-2-4e28eadf32d0@cherry.de
Signed-off-by: Heiko Stuebner <heiko@sntech.de>

authored by

Quentin Schulz and committed by
Heiko Stuebner
741f5ba7 bb94a157

+22 -1
+22 -1
arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi
··· 154 154 }; 155 155 }; 156 156 157 + &gpio3 { 158 + /* 159 + * The Qseven BIOS_DISABLE signal on the RK3399-Q7 keeps the on-module 160 + * eMMC and SPI flash powered-down initially (in fact it keeps the 161 + * reset signal asserted). BIOS_DISABLE_OVERRIDE pin allows to override 162 + * that signal so that eMMC and SPI can be used regardless of the state 163 + * of the signal. 164 + */ 165 + bios-disable-override-hog { 166 + gpios = <RK_PD5 GPIO_ACTIVE_LOW>; 167 + gpio-hog; 168 + line-name = "bios_disable_override"; 169 + output-high; 170 + }; 171 + }; 172 + 157 173 &gmac { 158 174 assigned-clocks = <&cru SCLK_RMII_SRC>; 159 175 assigned-clock-parents = <&clkin_gmac>; ··· 474 458 475 459 &pinctrl { 476 460 pinctrl-names = "default"; 477 - pinctrl-0 = <&q7_thermal_pin>; 461 + pinctrl-0 = <&q7_thermal_pin &bios_disable_override_hog_pin>; 478 462 479 463 gpios { 464 + bios_disable_override_hog_pin: bios-disable-override-hog-pin { 465 + rockchip,pins = 466 + <3 RK_PD5 RK_FUNC_GPIO &pcfg_pull_down>; 467 + }; 468 + 480 469 q7_thermal_pin: q7-thermal-pin { 481 470 rockchip,pins = 482 471 <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;