summaryrefslogtreecommitdiff
path: root/arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi
diff options
context:
space:
mode:
authorDouglas Anderson <dianders@chromium.org>2022-03-11 00:04:34 +0300
committerBjorn Andersson <bjorn.andersson@linaro.org>2022-04-11 23:46:18 +0300
commit0d40497d054194768b3ddbf3a676d481b38b96eb (patch)
treeb06c5ada5bbc517ecddb21d6f9da5d6a10a72b0f /arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi
parent6675ac9d0046201af945c7abfe5dd794df22230b (diff)
downloadlinux-0d40497d054194768b3ddbf3a676d481b38b96eb.tar.xz
arm64: dts: qcom: sc7280-herobrine: Fix PCIe regulator glitch at bootup
While scoping signals, we found that the PCIe signals weren't compliant at bootup. Specifically, the bootloader was setting up PCIe and leaving it configured, then jumping to the kernel. The kernel was turning off the regulator while leaving the PCIe clock running, which was a violation. In the regulator bindings (and the Linux kernel driver that uses them), there's currently no way to specify that a GPIO-controlled regulator should keep its state at bootup. You've got to pick either "on" or "off". Let's switch it so that the PCIe regulator defaults to "on" instead of "off". This should be a much safer way to go and avoids the timing violation. The regulator will still be turned off later if there are no users. Signed-off-by: Douglas Anderson <dianders@chromium.org> Reviewed-by: Stephen Boyd <swboyd@chromium.org> Reviewed-by: Matthias Kaehlcke <mka@chromium.org> Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org> Link: https://lore.kernel.org/r/20220310130429.1.Id41fda1d7f5d9230bc45c1b85b06b0fb0ddd29af@changeid
Diffstat (limited to 'arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi')
-rw-r--r--arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi7
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi b/arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi
index d57ea4881fa1..3d9b870d440b 100644
--- a/arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi
+++ b/arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi
@@ -180,6 +180,13 @@
pinctrl-names = "default";
pinctrl-0 = <&ssd_en>;
+ /*
+ * The bootloaer may have left PCIe configured. Powering this
+ * off while the PCIe clocks are still running isn't great,
+ * so it's better to default to this regulator being on.
+ */
+ regulator-boot-on;
+
vin-supply = <&pp3300_z1>;
};