Re: [PATCH v3] arm64: dts: qcom: sm8650-ayaneo-pocket-s2: add display nodes
From: Dmitry Baryshkov
Date: Thu Jul 02 2026 - 08:48:20 EST
On Thu, Jul 02, 2026 at 11:33:16AM +0200, Neil Armstrong wrote:
> From: KancyJoe <kancy2333@xxxxxxxxxxx>
>
> Add nodes for the dual DSI panel, the SGM3804 regulator, the
> SY7758 backlight controller, the touch controller, and enable
> the GPU to enable full display support.
>
> Reviewed-by: Konrad Dybcio <konrad.dybcio@xxxxxxxxxxxxxxxx>
> Signed-off-by: KancyJoe <kancy2333@xxxxxxxxxxx>
> Signed-off-by: Neil Armstrong <neil.armstrong@xxxxxxxxxx>
> ---
> Depends on follwing bindings, all reviewed:
> - https://lore.kernel.org/all/20260522-topic-sm8650-ayaneo-pocket-s2-r63419-v7-1-16edddda9951@xxxxxxxxxx/
> - https://lore.kernel.org/all/20260521-topic-sm8650-ayaneo-pocket-s2-sy7758-v4-1-73c732615e4a@xxxxxxxxxx/
> - https://lore.kernel.org/all/20260522-topic-sm8650-ayaneo-pocket-s2-sgm3804-v5-1-bd6b1c300ecc@xxxxxxxxxx/
> ---
> Changes in v3:
> - renamed backlight label and node as "backlight"
> - reordered pinctrl properties
> - added regulator-boot-on to display regulators
> - Link to v2: https://patch.msgid.link/20260522-topic-sm8650-ayaneo-pocket-s2-display-dt-v2-1-cdd4b70e5a16@xxxxxxxxxx
>
> Changes in v2:
> - Update for bindings changes
> - Remove empty line
> - Link to v1: https://patch.msgid.link/20260428-topic-sm8650-ayaneo-pocket-s2-display-dt-v1-1-ff132c00d076@xxxxxxxxxx
> ---
> .../boot/dts/qcom/sm8650-ayaneo-pocket-s2.dts | 244 +++++++++++++++++++++
> 1 file changed, 244 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/sm8650-ayaneo-pocket-s2.dts b/arch/arm64/boot/dts/qcom/sm8650-ayaneo-pocket-s2.dts
> index 0dc994f4e48d..56818fc9edbf 100644
> --- a/arch/arm64/boot/dts/qcom/sm8650-ayaneo-pocket-s2.dts
> +++ b/arch/arm64/boot/dts/qcom/sm8650-ayaneo-pocket-s2.dts
> @@ -220,6 +220,23 @@ upd720201_vdd33_reg: upd720201-vdd33-regulator {
> pinctrl-names = "default";
> };
>
> + sy7758_vdd33_reg: sy7758-vdd33-regulator {
Heh. regulator-foo-bar would have been a preferred form, but i see that
the existing one doesn't follow the pattern already. But then your chunk
is incorrectly sorted.
> + compatible = "regulator-fixed";
> +
> + regulator-name = "sy7758_vdd33";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-boot-on;
> +
> + gpios = <&tlmm 163 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> +
> + vin-supply = <&vph_pwr>;
> +
> + pinctrl-0 = <&sy7758_vdd33>;
> + pinctrl-names = "default";
> + };
> +
> sound {
> compatible = "qcom,sm8650-sndcard", "qcom,sm8450-sndcard";
> model = "SM8650-APS2";
> @@ -986,6 +1003,14 @@ gpu7_active: trip-active {
> };
> };
>
> +&gpu {
> + status = "okay";
> +
> + zap-shader {
&gpu_zap_shader { firmware-name = ".../"; };
> + firmware-name = "qcom/sm8650/ayaneo/ps2/gen70900_zap.mbn";
> + };
> +};
> +
> &i2c3 {
> clock-frequency = <100000>;
>
> @@ -1016,6 +1041,30 @@ wcd_usbss_sbu_mux: endpoint {
> };
> };
>
> +&i2c4 {
> + clock-frequency = <400000>;
> +
> + status = "okay";
> +
> + touchscreen@5d {
> + compatible = "goodix,gt911";
> + reg = <0x5d>;
> +
> + interrupt-parent = <&tlmm>;
> + interrupts = <162 IRQ_TYPE_EDGE_FALLING>;
> +
> + reset-gpios = <&tlmm 161 GPIO_ACTIVE_HIGH>;
> + VDDIO-supply = <&vreg_l14b_3p2>;
> + AVDD28-supply = <&vreg_l14b_3p2>;
> +
> + touchscreen-size-x = <1440>;
> + touchscreen-size-y = <2560>;
> +
> + pinctrl-names = "default";
> + pinctrl-0 = <&ts_reset_default>, <&ts_irq_default>;
> + };
> +};
> +
> &i2c6 {
> clock-frequency = <100000>;
>
> @@ -1053,6 +1102,51 @@ redriver_ss_in: endpoint {
> };
> };
>
> +&i2c9 {
> + status = "okay";
> +
> + /* Screen power */
> + regulator@3e {
> + compatible = "sgmicro,sgm3804";
> + reg = <0x3e>;
> +
> + pinctrl-0 = <&sgm3804_default>;
> + pinctrl-names = "default";
> +
> + vin-supply = <&vph_pwr>;
> +
> + sgm3804_pos: pos {
> + regulator-name = "panel-avdd-pos";
> + regulator-min-microvolt = <5200000>;
> + regulator-max-microvolt = <5200000>;
> + regulator-active-discharge = <1>;
> + regulator-boot-on;
> + enable-gpios = <&tlmm 59 GPIO_ACTIVE_HIGH>;
> + };
> +
> + sgm3804_neg: neg {
> + regulator-name = "panel-avdd-neg";
> + regulator-min-microvolt = <5200000>;
> + regulator-max-microvolt = <5200000>;
> + regulator-active-discharge = <1>;
> + regulator-boot-on;
> + enable-gpios = <&tlmm 58 GPIO_ACTIVE_HIGH>;
> + };
> + };
> +
> + /* Backlight */
> + backlight: backlight@2e {
> + compatible = "silergy,sy7758";
> + reg = <0x2e>;
> +
> + pinctrl-0 = <&sy7758_default>;
> + pinctrl-names = "default";
> +
> + vdd-supply = <&sy7758_vdd33_reg>;
> + enable-gpios = <&tlmm 164 GPIO_ACTIVE_HIGH>;
> + };
> +};
> +
> &iris {
> status = "okay";
> };
> @@ -1065,6 +1159,93 @@ &mdss {
> status = "okay";
> };
>
> +&mdss_dsi0 {
> + vdda-supply = <&vreg_l3i_1p2>;
> +
> + qcom,master-dsi;
> + qcom,dual-dsi-mode;
> + qcom,sync-dual-dsi;
> +
> + status = "okay";
> +
> + panel@0 {
> + status = "okay";
> + compatible = "ayaneo,wt0630-2k", "renesas,r63419";
> + reg = <0>;
> +
> + pinctrl-0 = <&disp0_reset_n_active>;
> + pinctrl-1 = <&disp0_reset_n_suspend>;
> + pinctrl-names = "default", "sleep";
> +
> + vddio-supply = <&vreg_l12b_1p8>;
> + vdd-supply = <&vreg_l11b_1p2>;
> + vsp-supply = <&sgm3804_pos>;
> + vsn-supply = <&sgm3804_neg>;
> + vci-supply = <&vreg_l13b_3p0>;
> +
> + backlight = <&backlight>;
> +
> + reset-gpios = <&tlmm 133 GPIO_ACTIVE_LOW>;
> +
> + rotation = <90>;
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@0 {
> + reg = <0>;
> + panel0_in_0: endpoint {
> + remote-endpoint = <&mdss_dsi0_out>;
> + };
> + };
> +
> + port@1{
> + reg = <1>;
> + panel0_in_1: endpoint {
> + remote-endpoint = <&mdss_dsi1_out>;
> + };
> + };
> + };
> + };
> +};
> +
> +&mdss_dsi0_out {
> + remote-endpoint = <&panel0_in_0>;
> +
> + data-lanes = <0 1 2 3>;
> +};
> +
> +&mdss_dsi0_phy {
> + vdds-supply = <&vreg_l1i_0p88>;
> +
> + status = "okay";
> +};
> +
> +&mdss_dsi1 {
> + vdda-supply = <&vreg_l3i_1p2>;
> +
> + assigned-clock-parents = <&mdss_dsi0_phy DSI_BYTE_PLL_CLK>,
> + <&mdss_dsi0_phy DSI_PIXEL_PLL_CLK>;
> +
> + qcom,dual-dsi-mode;
> + qcom,sync-dual-dsi;
> +
> + status = "okay";
> +};
> +
> +&mdss_dsi1_out {
> + remote-endpoint = <&panel0_in_1>;
> +
> + data-lanes = <0 1 2 3>;
> +};
> +
> +&mdss_dsi1_phy {
> + vdds-supply = <&vreg_l1i_0p88>;
> +
> + status = "okay";
> +};
DSI is after DP
> +
> &mdss_dp0 {
> status = "okay";
> };
> @@ -1390,6 +1571,20 @@ sw-ctrl-pins {
> };
> };
>
> + disp0_reset_n_active: disp0-reset-n-active-state {
> + pins = "gpio133";
> + function = "gpio";
> + drive-strength = <8>;
> + bias-disable;
> + };
> +
> + disp0_reset_n_suspend: disp0-reset-n-suspend-state {
> + pins = "gpio133";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-pull-down;
> + };
> +
> fan_pwr_pins: fan-pwr-state {
> pins = "gpio125";
> function = "gpio";
> @@ -1411,6 +1606,20 @@ fan_int: fan-int-state {
> bias-pull-up;
> };
>
> + mdp_vsync_active: mdp-vsync-active-state {
> + pins = "gpio86";
> + function = "mdp_vsync";
> + drive-strength = <2>;
> + bias-pull-down;
> + };
> +
> + mdp_vsync_suspend: mdp-vsync-suspend-state {
> + pins = "gpio86";
> + function = "mdp_vsync";
> + drive-strength = <2>;
> + bias-pull-down;
> + };
> +
> upd720201_avdd33: upd720201-avdd33-state {
> pins = "gpio123";
> function = "gpio";
> @@ -1440,6 +1649,13 @@ gamepad_pwr_en: gamepad-pwr-en-active-state {
> output-high;
> };
>
> + sgm3804_default: sgm3804-default-state {
> + pins = "gpio58", "gpio59";
> + function = "gpio";
> + drive-strength = <8>;
> + bias-disable;
> + };
> +
> spkr_23_sd_n_active: spkr-23-sd-n-active-state {
> pins = "gpio77";
> function = "gpio";
> @@ -1454,6 +1670,34 @@ spkr_01_sd_n_active: spkr-01-sd-n-active-state {
> bias-disable;
> };
>
> + sy7758_default: sy7758-default-state {
> + pins = "gpio164";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-disable;
> + };
> +
> + sy7758_vdd33: sy7758-vdd33-state {
> + pins = "gpio163";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-disable;
> + };
> +
> + ts_irq_default: ts-irq-active-state {
> + pins = "gpio162";
> + function = "gpio";
> + drive-strength = <8>;
> + bias-disable;
> + };
> +
> + ts_reset_default: ts-reset-active-state {
> + pins = "gpio161";
> + function = "gpio";
> + drive-strength = <8>;
> + bias-pull-down;
> + };
> +
> wcd_default: wcd-reset-n-active-state {
> pins = "gpio107";
> function = "gpio";
>
> ---
> base-commit: b3f94b2b3f3e51ab880a51fc6510e1dafba654ed
> change-id: 20260428-topic-sm8650-ayaneo-pocket-s2-display-dt-539bb79eb709
> prerequisite-change-id: 20260428-topic-sm8650-ayaneo-pocket-s2-sgm3804-8764fbb72eb7:v5
> prerequisite-patch-id: 901a0948e1afbb03ff78a063d4f66c17665588ef
> prerequisite-patch-id: 5ca959a92d05c86ae7a77400d5c4c9bb8bb214f4
> prerequisite-change-id: 20260428-topic-sm8650-ayaneo-pocket-s2-sy7758-3081ee7f1e25:v5
> prerequisite-patch-id: dd1c5acff71bcfe0730472051c0a5c7c339e2116
> prerequisite-patch-id: 30e1bf23756ac7de0e29e4c30e7c9737366cf856
> prerequisite-change-id: 20260428-topic-sm8650-ayaneo-pocket-s2-r63419-e72467e2db0f:v8
> prerequisite-patch-id: 53130195c1df5886a953f3eb1ffea6e5b32257ec
> prerequisite-patch-id: 016545217702b15d67b3ac48392c2978fc04b000
>
> Best regards,
> --
> Neil Armstrong <neil.armstrong@xxxxxxxxxx>
>
--
With best wishes
Dmitry