]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
arm64: dts: qcom: sm6125-xiaomi-laurel-sprout: Add Focaltech FT3518 touchscreen
authorYedaya Katsman <yedaya.ka@gmail.com>
Sun, 8 Feb 2026 21:24:23 +0000 (23:24 +0200)
committerBjorn Andersson <andersson@kernel.org>
Thu, 26 Mar 2026 14:40:32 +0000 (09:40 -0500)
Add device tree node for the Focaltech FT3518 touchscreen on
Xiaomi Mi A3 (laurel-sprout).

Enable qupv3_id_0 and i2c2 bus that the touchscreen is on.

Downstream references:
Link: https://github.com/MiCode/Xiaomi_Kernel_OpenSource/blob/laurel-r-oss/arch/arm64/boot/dts/qcom/trinket-pinctrl.dtsi
Link: https://github.com/MiCode/Xiaomi_Kernel_OpenSource/blob/laurel-r-oss/arch/arm64/boot/dts/qcom/laurel_sprout-qrd.dtsi
Co-developed-by: Kamil Gołda <kamil.golda@protonmail.com>
Signed-off-by: Kamil Gołda <kamil.golda@protonmail.com>
Signed-off-by: Yedaya Katsman <yedaya.ka@gmail.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260208-touchscreen-patches-v5-1-5821dff9c9a2@gmail.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
arch/arm64/boot/dts/qcom/sm6125-xiaomi-laurel-sprout.dts

index 994fb0412fcbdf5466f87a325c48b697a37b514b..97f64cb5d570e018ef666612f3839c4e6759ac7b 100644 (file)
                };
        };
 
+       ts_vdd_supply: regulator-ts-vdd {
+               compatible = "regulator-fixed";
+               regulator-name = "ts_vdd_supply";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               startup-delay-us = <70000>;
+
+               enable-active-high;
+               gpio = <&tlmm 83 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&ts_vdd_en>;
+               pinctrl-names = "default";
+       };
+
        thermal-zones {
                rf-pa0-thermal {
                        thermal-sensors = <&pm6125_adc_tm 0>;
        status = "okay";
 };
 
+&i2c2 {
+       status = "okay";
+
+       touchscreen@38 {
+               compatible = "focaltech,ft3518";
+               reg = <0x38>;
+               interrupts-extended = <&tlmm 88 IRQ_TYPE_EDGE_FALLING>;
+
+               vcc-supply = <&ts_vdd_supply>;
+
+               pinctrl-0 = <&ts_int_active &ts_reset_active>;
+               pinctrl-1 = <&ts_int_suspend &ts_reset_suspend>;
+               pinctrl-names = "default","sleep";
+
+               reset-gpios = <&tlmm 87 GPIO_ACTIVE_LOW>;
+
+               touchscreen-size-x = <720>;
+               touchscreen-size-y = <1560>;
+       };
+};
+
 &pm6125_adc {
        pinctrl-names = "default";
        pinctrl-0 = <&camera_flash_therm &emmc_ufs_therm>;
        status = "okay";
 };
 
+&qupv3_id_0 {
+       status = "okay";
+};
+
 &rpm_requests {
        regulators-0 {
                compatible = "qcom,rpm-pm6125-regulators";
 
 &tlmm {
        gpio-reserved-ranges = <22 2>, <28 6>;
+
+       ts_vdd_en: ts-vdd-default-state {
+               pins = "gpio83";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       ts_reset_active: pmx-ts-reset-active-state {
+               pins = "gpio87";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-pull-up;
+       };
+
+       ts_reset_suspend: pmx-ts-reset-suspend-state {
+               pins = "gpio87";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-down;
+       };
+
+       ts_int_active: pmx-ts-int-active-state {
+               pins = "gpio88";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-pull-up;
+       };
+
+       ts_int_suspend: pmx-ts-int-suspend-state {
+               pins = "gpio88";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-down;
+       };
 };
 
 &ufs_mem_hc {