]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
arm64: dts: rockchip: override BIOS_DISABLE signal via GPIO hog on RK3399 Puma
authorQuentin Schulz <quentin.schulz@cherry.de>
Wed, 31 Jul 2024 11:05:29 +0000 (13:05 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 18 Sep 2024 17:24:06 +0000 (19:24 +0200)
commit 741f5ba7ccba5d7ae796dd11c320e28045524771 upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi

index 0e768f1ea04e5ca2f65a839e6a54d2cc8514855d..aba2748fe54c7717be53c81be23440500b56d6af 100644 (file)
        drive-impedance-ohm = <33>;
 };
 
+&gpio3 {
+       /*
+        * 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.
+        */
+       bios-disable-override-hog {
+               gpios = <RK_PD5 GPIO_ACTIVE_LOW>;
+               gpio-hog;
+               line-name = "bios_disable_override";
+               output-high;
+       };
+};
+
 &gmac {
        assigned-clocks = <&cru SCLK_RMII_SRC>;
        assigned-clock-parents = <&clkin_gmac>;
 
 &pinctrl {
        pinctrl-names = "default";
-       pinctrl-0 = <&q7_thermal_pin>;
+       pinctrl-0 = <&q7_thermal_pin &bios_disable_override_hog_pin>;
 
        gpios {
+               bios_disable_override_hog_pin: bios-disable-override-hog-pin {
+                       rockchip,pins =
+                               <3 RK_PD5 RK_FUNC_GPIO &pcfg_pull_down>;
+               };
+
                q7_thermal_pin: q7-thermal-pin {
                        rockchip,pins =
                                <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;