arm64: dts: qcom: sdm845-tama: Add display nodes
authorKonrad Dybcio <konrad.dybcio@somainline.org>
Wed, 29 Mar 2023 19:41:18 +0000 (21:41 +0200)
committerBjorn Andersson <andersson@kernel.org>
Wed, 5 Apr 2023 03:29:44 +0000 (20:29 -0700)
Add required nodes to support display on XZ2/XZ2c. XZ3 has a
different power rail setup and needs to be handled separately.

Signed-off-by: Konrad Dybcio <konrad.dybcio@somainline.org>
Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230313-topic-tama_disp-v3-1-2b1567c039d7@linaro.org
arch/arm64/boot/dts/qcom/sdm845-sony-xperia-tama-akari.dts
arch/arm64/boot/dts/qcom/sdm845-sony-xperia-tama-akatsuki.dts
arch/arm64/boot/dts/qcom/sdm845-sony-xperia-tama-apollo.dts
arch/arm64/boot/dts/qcom/sdm845-sony-xperia-tama.dtsi

index 34f84f1..d97b7f1 100644 (file)
@@ -11,3 +11,7 @@
        model = "Sony Xperia XZ2";
        compatible = "sony,akari-row", "qcom,sdm845";
 };
+
+&panel {
+       compatible = "sony,td4353-jdi-tama";
+};
index 2f5e12d..81cbf53 100644 (file)
 / {
        model = "Sony Xperia XZ3";
        compatible = "sony,akatsuki-row", "qcom,sdm845";
+
+       /* Fixed DCDC for the OLED panel */
+       ts_vddio_supply: ts-vddio-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "ts_vddio";
+
+               regulator-min-microvolt = <1840000>;
+               regulator-max-microvolt = <1840000>;
+
+               gpio = <&tlmm 133 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               regulator-boot-on;
+       };
+};
+
+&ibb {
+       status = "disabled";
+};
+
+&lab {
+       status = "disabled";
+};
+
+&panel {
+       /* Akatsuki uses an OLED panel. */
+       /delete-property/ backlight;
+       /delete-property/ vsp-supply;
+       /delete-property/ vsn-supply;
+       /delete-property/ touch-reset-gpios;
+};
+
+&pmi8998_wled {
+       status = "disabled";
+};
+
+&tlmm {
+       ts_vddio_en: ts-vddio-en-state {
+               pins = "gpio133";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+               output-high;
+       };
 };
 
-/* For the future: WLED + LAB/IBB/OLEDB are not used on Akatsuki */
 &vreg_l14a_1p8 {
        regulator-min-microvolt = <1840000>;
        regulator-max-microvolt = <1840000>;
index c9e62c7..cd056f7 100644 (file)
@@ -11,3 +11,9 @@
        model = "Sony Xperia XZ2 Compact";
        compatible = "sony,apollo-row", "qcom,sdm845";
 };
+
+&panel {
+       compatible = "sony,td4353-jdi-tama";
+       height-mm = <112>;
+       width-mm = <56>;
+};
index 4984c74..3c7d129 100644 (file)
        };
 };
 
+&dsi0 {
+       vdda-supply = <&vreg_l26a_1p2>;
+       status = "okay";
+
+       panel: panel@0 {
+               /* The compatible is assigned in device DTs. */
+               reg = <0>;
+
+               backlight = <&pmi8998_wled>;
+               vddio-supply = <&vreg_l14a_1p8>;
+               vsp-supply = <&lab>;
+               vsn-supply = <&ibb>;
+               panel-reset-gpios = <&tlmm 6 GPIO_ACTIVE_HIGH>;
+               touch-reset-gpios = <&tlmm 99 GPIO_ACTIVE_HIGH>;
+
+               pinctrl-0 = <&sde_dsi_active &sde_te_active_sleep>;
+               pinctrl-1 = <&sde_dsi_sleep &sde_te_active_sleep>;
+               pinctrl-names = "default", "sleep";
+
+               port {
+                       panel_in: endpoint {
+                               remote-endpoint = <&dsi0_out>;
+                       };
+               };
+       };
+};
+
+&dsi0_out {
+       remote-endpoint = <&panel_in>;
+       data-lanes = <0 1 2 3>;
+};
+
+&dsi0_phy {
+       vdds-supply = <&vreg_l1a_0p9>;
+       status = "okay";
+};
+
 &gcc {
        protected-clocks = <GCC_QSPI_CORE_CLK>,
                        <GCC_QSPI_CORE_CLK_SRC>,
        /* AMS TCS3490 RGB+IR color sensor @ 72 */
 };
 
+&ibb {
+       qcom,discharge-resistor-kohms = <300>;
+       regulator-min-microvolt = <5500000>;
+       regulator-max-microvolt = <5700000>;
+       regulator-min-microamp = <0>;
+       regulator-max-microamp = <800000>;
+       regulator-over-current-protection;
+       regulator-soft-start;
+       regulator-pull-down;
+};
+
+&lab {
+       regulator-min-microvolt = <5500000>;
+       regulator-max-microvolt = <5700000>;
+       regulator-min-microamp = <200000>;
+       regulator-max-microamp = <200000>;
+       regulator-over-current-protection;
+       regulator-soft-start;
+       regulator-pull-down;
+};
+
+&mdss {
+       status = "okay";
+};
+
 &pm8998_gpios {
        focus_n: focus-n-state {
                pins = "gpio2";
        };
 };
 
+&pmi8998_wled {
+       default-brightness = <800>;
+       qcom,switching-freq = <800>;
+       qcom,ovp-millivolt = <29600>;
+       qcom,current-boost-limit = <970>;
+       qcom,current-limit-microamp = <20000>;
+       qcom,enabled-strings = <0 1 2 3>;
+       status = "okay";
+};
+
 &qupv3_id_0 {
        status = "okay";
 };
                        bias-pull-up;
                };
        };
+
+       sde_dsi_active: sde-dsi-active-state {
+               pins = "gpio6";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-disable;
+       };
+
+       sde_dsi_sleep: sde-dsi-sleep-state {
+               pins = "gpio6";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-down;
+       };
+
+       sde_te_active_sleep: sde-te-active-sleep-state {
+               pins = "gpio10";
+               function = "mdp_vsync";
+               drive-strength = <2>;
+               bias-pull-down;
+       };
 };
 
 &uart6 {