Commit 0d40497d authored by Douglas Anderson's avatar Douglas Anderson Committed by Bjorn Andersson

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: default avatarDouglas Anderson <dianders@chromium.org>
Reviewed-by: default avatarStephen Boyd <swboyd@chromium.org>
Reviewed-by: default avatarMatthias Kaehlcke <mka@chromium.org>
Signed-off-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
Link: https://lore.kernel.org/r/20220310130429.1.Id41fda1d7f5d9230bc45c1b85b06b0fb0ddd29af@changeid
parent 6675ac9d
...@@ -180,6 +180,13 @@ pp3300_ssd: pp3300-ssd-regulator { ...@@ -180,6 +180,13 @@ pp3300_ssd: pp3300-ssd-regulator {
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&ssd_en>; 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>; vin-supply = <&pp3300_z1>;
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment