]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
arm64: dts: qcom: x1e80100-crd: Fix backlight
authorStephan Gerhold <stephan.gerhold@linaro.org>
Mon, 15 Jul 2024 12:15:39 +0000 (14:15 +0200)
committerBjorn Andersson <andersson@kernel.org>
Tue, 30 Jul 2024 13:53:04 +0000 (08:53 -0500)
The backlight does not work correctly with the current display panel
configuration: It works after boot, but once the display gets disabled it
is not possible to get it back on. It turns out that the ATNA45AF01 panel
needs exactly the same non-standard power sequence as implemented by the
panel-samsung-atna33xc20 driver for sc7180-trogdor-homestar.

Switch the panel in the DT to the new compatible and make two more changes
to make it work correctly:

 1. Add the missing GPIO for the panel EL_ON3 line (EDP_BL_EN on CRD and
    enable-gpios in the DT).
 2. Drop the regulator-always-on for the panel regulator. The panel does
    not seem to power off properly if the regulator stays on.

Fixes: d7e03cce0400 ("arm64: dts: qcom: x1e80100-crd: Enable more support")
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Stephan Gerhold <stephan.gerhold@linaro.org>
Reviewed-by: Johan Hovold <johan+linaro@kernel.org>
Tested-by: Johan Hovold <johan+linaro@kernel.org>
Link: https://lore.kernel.org/r/20240715-x1e80100-crd-backlight-v2-3-31b7f2f658a3@linaro.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
arch/arm64/boot/dts/qcom/x1e80100-crd.dts

index d65a22172006bb3929ad29e588dc3c3248930be7..82f34dfe409057a6c30601bfe3ff229f5838b06c 100644 (file)
                pinctrl-0 = <&edp_reg_en>;
                pinctrl-names = "default";
 
-               regulator-always-on;
                regulator-boot-on;
        };
 
 
        aux-bus {
                panel {
-                       compatible = "edp-panel";
+                       compatible = "samsung,atna45af01", "samsung,atna33xc20";
+                       enable-gpios = <&pmc8380_3_gpios 4 GPIO_ACTIVE_HIGH>;
                        power-supply = <&vreg_edp_3p3>;
 
+                       pinctrl-0 = <&edp_bl_en>;
+                       pinctrl-names = "default";
+
                        port {
                                edp_panel_in: endpoint {
                                        remote-endpoint = <&mdss_dp3_out>;
        status = "okay";
 };
 
+&pmc8380_3_gpios {
+       edp_bl_en: edp-bl-en-state {
+               pins = "gpio4";
+               function = "normal";
+               power-source = <1>; /* 1.8V */
+               input-disable;
+               output-enable;
+       };
+};
+
 &qupv3_0 {
        status = "okay";
 };