diff --git a/arch/arm64/boot/dts/qcom/qcs8550-ayaneo-pocketds.dts b/arch/arm64/boot/dts/qcom/qcs8550-ayaneo-pocketds.dts new file mode 100644 index 000000000..e8510012e --- /dev/null +++ b/arch/arm64/boot/dts/qcom/qcs8550-ayaneo-pocketds.dts @@ -0,0 +1,238 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2025, Teguh Sobirin. + * Copyright (c) 2025, ROCKNIX (https://github.com/ROCKNIX) + */ + +/dts-v1/; + +#include "qcs8550-ayaneo-pocket-common.dtsi" + +/ { + model = "AYANEO Pocket DS"; + qcom,board-id = <0x1000b 0x01>; + qcom,msm-id = <0x258 0x20000>, <0x259 0x20000>; + compatible = "ayaneo,pocketds", "qcom,qcs8550", "qcom,sm8550"; + rocknix-u-boot-dt-id = "u-boot-pocket-ds"; + + tca6424_vcc: regulator-tca6424-vcc { + compatible = "regulator-fixed"; + regulator-name = "tca6424_vcc"; + + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + + gpio = <&tlmm 168 GPIO_ACTIVE_HIGH>; + enable-active-high; + regulator-boot-on; + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vdd_ts: vdd-ts { + compatible = "regulator-fixed"; + regulator-name = "vdd_ts_en"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + gpio = <&tca6408 1 GPIO_ACTIVE_HIGH>; + enable-active-high; + }; + +}; + +&tlmm { + gpio-reserved-ranges = <32 4>; + panel_pwr_active: panel-pwr-active-state { + pins = "gpio152", "gpio153"; + function = "gpio"; + drive-strength = <8>; + bias-disable; + output-high; + }; + + sde_dsi1_active: sde-dsi1-active-state { + pins = "gpio137"; + function = "gpio"; + drive-strength = <8>; + bias-disable; + output-high; + }; + + sde_dsi1_suspend: sde-dsi1-suspend-state { + pins = "gpio137"; + function = "gpio"; + drive-strength = <2>; + bias-pull-down; + }; + + ts_rst_default: ts-rst-default-state { + pins = "gpio24"; + function = "gpio"; + bias-pull-up; + drive-strength = <8>; + }; + + ts_rst_sleep: ts-rst-sleep-state { + pins = "gpio24"; + function = "gpio"; + bias-pull-down; + drive-strength = <2>; + }; + + ts_int_default: ts-int-default-state { + pins = "gpio25"; + function = "gpio"; + bias-pull-up; + drive-strength = <8>; + }; + + ts_int_sleep: ts-int-sleep-state { + pins = "gpio25"; + function = "gpio"; + bias-pull-down; + drive-strength = <2>; + }; + + ts2_irq: ts2-irq-state { + pins = "gpio39"; + function = "gpio"; + drive-strength = <8>; + bias-disable; + input-enable; + }; + + ts2_reset: ts2-reset-state { + pins = "gpio38"; + function = "gpio"; + drive-strength = <8>; + input-enable; + bias-pull-down; + }; +}; + +&i2c0 { + clock-frequency = <400000>; + status = "okay"; + + /* Screen power */ + sgm3804: regulator@3e { + compatible = "sgmicro,sgm3804"; + reg = <0x3e>; + pinctrl-names = "default"; + pinctrl-0 = <&panel_pwr_active>; + regulator-name = "panel-avdd"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + reset-gpios = <&tlmm 152 GPIO_ACTIVE_HIGH>, <&tlmm 153 GPIO_ACTIVE_HIGH>; + }; + + /* Backlight */ + backlight: backlight@2e { + compatible = "silergy,sy7758"; + reg = <0x2e>; + status = "okay"; + }; + + tca6408: tca64_20@20 { + gpio-controller; + compatible = "ti,tca6408"; + status = "okay"; + reg = <0x20>; + #gpio-cells = <0x02>; + vcc-supply = <&tca6424_vcc>; + }; +}; + +&i2c2 { + clock-frequency = <400000>; + status = "okay"; + + touchscreen@5d { + reg = <0x5d>; + compatible = "goodix,gt911"; + + interrupt-parent = <&tlmm>; + interrupts = <39 IRQ_TYPE_EDGE_FALLING>; + + reset-gpios = <&tlmm 38 GPIO_ACTIVE_HIGH>; + irq-gpios = <&tlmm 39 GPIO_ACTIVE_HIGH>; + VDDIO-supply = <&vdd_ts>; + + touchscreen-size-x = <768>; + touchscreen-size-y = <1024>; + + pinctrl-names = "default"; + pinctrl-0 = <&ts2_reset>, <&ts2_irq>; + + }; +}; + +&i2c4 { + clock-frequency = <400000>; + status = "okay"; + touchscreen: touchscreen@38 { + compatible = "focaltech,ft5426"; + reg = <0x38>; + #address-cells = <1>; + #size-cells = <0>; + + interrupt-parent = <&tlmm>; + interrupts = <25 IRQ_TYPE_EDGE_FALLING>; + + reset-gpios = <&tlmm 24 GPIO_ACTIVE_LOW>; + + vcc-supply = <&vreg_l14b_3p2>; + iovcc-supply = <&vreg_l12b_1p8>; + + pinctrl-0 = <&ts_int_default &ts_rst_default>; + pinctrl-1 = <&ts_int_sleep &ts_rst_sleep>; + pinctrl-names = "default", "sleep"; + + touchscreen-size-x = <1080>; + touchscreen-size-y = <1920>; + }; +}; + +&display_panel { + compatible = "chipone,icna3512"; + + vci-supply = <&vreg_l13b_3p0>; + vddio-supply = <&vreg_l12b_1p8>; + reset-gpios = <&tlmm 133 GPIO_ACTIVE_LOW>; + rotation = <270>; +}; + +&mdss_dsi1 { + vdda-supply = <&vreg_l3e_1p2>; + status = "okay"; + + panel@0 { + compatible = "ayaneo,pocket-ds-secondary-panel"; + reg = <0>; + pinctrl-0 = <&sde_dsi1_active>; + pinctrl-1 = <&sde_dsi1_suspend>; + pinctrl-names = "default", "sleep"; + avdd-supply = <&sgm3804>; + enable-gpio = <&tca6408 0 GPIO_ACTIVE_HIGH>; + reset-gpios = <&tca6408 2 GPIO_ACTIVE_LOW>; + rotation = <270>; + backlight = <&backlight>; + + port { + panel1_in: endpoint { + remote-endpoint = <&mdss_dsi1_out>; + }; + }; + }; +}; + +&mdss_dsi1_out { + remote-endpoint = <&panel1_in>; + data-lanes = <0 1 2 3>; +}; + +&mdss_dsi1_phy { + vdds-supply = <&vreg_l1e_0p88>; + status = "okay"; +};