diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml index 0ae8c0824e7cf7..2b2de2068e4c2b 100644 --- a/Documentation/devicetree/bindings/arm/qcom.yaml +++ b/Documentation/devicetree/bindings/arm/qcom.yaml @@ -905,6 +905,7 @@ properties: - xiaomi,jasmine - xiaomi,lavender - xiaomi,lavender-boe + - xiaomi,lavender-shenchao - xiaomi,lavender-tianma - xiaomi,platina - const: qcom,sdm660 diff --git a/Documentation/devicetree/bindings/display/panel/novatek,nt36672a.yaml b/Documentation/devicetree/bindings/display/panel/novatek,nt36672a.yaml index 800a2f0a4dad98..bc5ea793db661e 100644 --- a/Documentation/devicetree/bindings/display/panel/novatek,nt36672a.yaml +++ b/Documentation/devicetree/bindings/display/panel/novatek,nt36672a.yaml @@ -23,6 +23,12 @@ properties: items: - enum: - tianma,fhd-video + - novatek,nt36672a-shenchao-lavender + - novatek,nt36672a-tianma-beryllium + - novatek,nt36672a-tianma-lavender + - novatek,nt36672a-tianma-jasmine + - novatek,nt36672a-tianma-tulip + - novatek,nt36672-txd-x00td - const: novatek,nt36672a description: This indicates the panel manufacturer of the panel that is in turn using the NT36672A panel driver. This compatible string diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile index fb8605219d6a0f..19c8d7b5d0eb4f 100644 --- a/arch/arm64/boot/dts/qcom/Makefile +++ b/arch/arm64/boot/dts/qcom/Makefile @@ -223,6 +223,7 @@ dtb-$(CONFIG_ARCH_QCOM) += sdm636-xiaomi-tulip.dtb dtb-$(CONFIG_ARCH_QCOM) += sdm636-xiaomi-whyred.dtb dtb-$(CONFIG_ARCH_QCOM) += sdm660-xiaomi-clover-plus.dtb dtb-$(CONFIG_ARCH_QCOM) += sdm660-xiaomi-jasmine.dtb +dtb-$(CONFIG_ARCH_QCOM) += sdm660-xiaomi-lavender-shenchao.dtb dtb-$(CONFIG_ARCH_QCOM) += sdm660-xiaomi-lavender-tianma.dtb dtb-$(CONFIG_ARCH_QCOM) += sdm660-xiaomi-lavender-boe.dtb dtb-$(CONFIG_ARCH_QCOM) += sdm660-xiaomi-platina.dtb diff --git a/arch/arm64/boot/dts/qcom/sdm636-asus-x00td.dts b/arch/arm64/boot/dts/qcom/sdm636-asus-x00td.dts index 2e2488c899929e..5b837388a23c76 100644 --- a/arch/arm64/boot/dts/qcom/sdm636-asus-x00td.dts +++ b/arch/arm64/boot/dts/qcom/sdm636-asus-x00td.dts @@ -211,16 +211,15 @@ status = "okay"; - touchscreen@62 { - compatible = "novatek,nt36525"; - reg = <0x62>; - vdd-supply = <&vreg_l11a_1p8>; - interrupt-parent = <&tlmm>; - interrupts = <67 IRQ_TYPE_EDGE_RISING>; + touchscreen@1 { + compatible = "novatek,nt36672a-ts"; + reg = <0x1>; + iovcc-supply = <&vreg_l11a_1p8>; + interrupts-extended = <&tlmm 67 IRQ_TYPE_EDGE_RISING>; pinctrl-names = "default", "sleep"; pinctrl-0 = <&ts_pins_active>; pinctrl-1 = <&ts_int_sleep &ts_rst_sleep>; - reset-gpios = <&tlmm 66 GPIO_ACTIVE_HIGH>; + reset-gpios = <&tlmm 66 GPIO_ACTIVE_LOW>; touchscreen-size-x = <1080>; touchscreen-size-y = <2160>; }; @@ -251,8 +250,9 @@ panel: panel@0 { reg = <0>; - compatible = "mdss,novatek-nt36672-txd"; + compatible = "novatek,nt36672-txd-x00td", "novatek,nt36672a"; + vddio-supply = <&vreg_l11a_1p8>; backlight = <&pm660l_wled>; reset-gpios = <&tlmm 53 GPIO_ACTIVE_LOW>; diff --git a/arch/arm64/boot/dts/qcom/sdm636-xiaomi-tulip.dts b/arch/arm64/boot/dts/qcom/sdm636-xiaomi-tulip.dts index 94ad772ac95fe5..a5824566b4fd1a 100644 --- a/arch/arm64/boot/dts/qcom/sdm636-xiaomi-tulip.dts +++ b/arch/arm64/boot/dts/qcom/sdm636-xiaomi-tulip.dts @@ -119,18 +119,15 @@ &blsp_i2c1 { status = "okay"; - /* Novatek NT36672A touchscreen */ - touchscreen@62 { - compatible = "novatek,nt36525"; - reg = <0x62>; - interrupt-parent = <&tlmm>; - vdd-supply = <&vreg_l11a_1p8>; - vio-supply = <&vreg_l11a_1p8>; - interrupts = <67 IRQ_TYPE_EDGE_RISING>; + touchscreen@1 { + compatible = "novatek,nt36672a-ts"; + reg = <0x1>; + iovcc-supply = <&vreg_l11a_1p8>; + interrupts-extended = <&tlmm 67 IRQ_TYPE_EDGE_RISING>; pinctrl-names = "default", "sleep"; pinctrl-0 = <&ts_pins_active>; pinctrl-1 = <&ts_int_sleep &ts_rst_sleep>; - reset-gpios = <&tlmm 66 GPIO_ACTIVE_HIGH>; + reset-gpios = <&tlmm 66 GPIO_ACTIVE_LOW>; touchscreen-size-x = <1080>; touchscreen-size-y = <2280>; }; @@ -179,11 +176,11 @@ vdda-supply = <&vreg_l1a_1p225>; panel: panel@0 { - compatible = "tianma,nt36672a-xiaomi-tulip-simple"; + compatible = "novatek,nt36672a-tianma-tulip", "novatek,nt36672a"; reg = <0>; reset-gpios = <&tlmm 53 GPIO_ACTIVE_LOW>; - + vddio-supply = <&vreg_l11a_1p8>; backlight = <&pm660l_wled>; pinctrl-names = "default"; diff --git a/arch/arm64/boot/dts/qcom/sdm660-xiaomi-jasmine.dts b/arch/arm64/boot/dts/qcom/sdm660-xiaomi-jasmine.dts index 9f9bc91a8d10cb..7cb02f0234a91a 100644 --- a/arch/arm64/boot/dts/qcom/sdm660-xiaomi-jasmine.dts +++ b/arch/arm64/boot/dts/qcom/sdm660-xiaomi-jasmine.dts @@ -148,17 +148,16 @@ &blsp_i2c1 { status = "okay"; - /* Novatek NT36672A touchscreen */ - touchscreen@62 { - compatible = "novatek,nt36525"; - reg = <0x62>; - vdd-supply = <&vreg_l11a_1p8>; - interrupt-parent = <&tlmm>; - interrupts = <67 IRQ_TYPE_EDGE_RISING>; + touchscreen@1 { + compatible = "novatek,nt36672a-ts"; + reg = <0x1>; + iovcc-supply = <&vreg_l11a_1p8>; + interrupts-extended = <&tlmm 67 IRQ_TYPE_EDGE_RISING>; + panel = <&panel>; pinctrl-names = "default", "sleep"; pinctrl-0 = <&ts_pins_active>; pinctrl-1 = <&ts_int_sleep &ts_rst_sleep>; - reset-gpios = <&tlmm 66 GPIO_ACTIVE_HIGH>; + reset-gpios = <&tlmm 66 GPIO_ACTIVE_LOW>; touchscreen-size-x = <1080>; touchscreen-size-y = <2160>; }; @@ -177,13 +176,12 @@ vdd-supply = <&vreg_l1b_0p925>; vdda-supply = <&vreg_l1a_1p225>; - panel@0 { - compatible = "mdss,nt36672-tianma"; + panel: panel@0 { + compatible = "novatek,nt36672a-tianma-jasmine", "novatek,nt36672a"; reg = <0>; reset-gpios = <&tlmm 53 GPIO_ACTIVE_LOW>; - disp-te-gpios = <&tlmm 59 GPIO_ACTIVE_HIGH>; - + vddio-supply = <&vreg_l11a_1p8>; backlight = <&pm660l_wled>; pinctrl-names = "default"; diff --git a/arch/arm64/boot/dts/qcom/sdm660-xiaomi-lavender-shenchao.dts b/arch/arm64/boot/dts/qcom/sdm660-xiaomi-lavender-shenchao.dts new file mode 100644 index 00000000000000..7fbd82e206cb83 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/sdm660-xiaomi-lavender-shenchao.dts @@ -0,0 +1,64 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Copyright (c) 2024, Barnabas Czeman + */ + +/dts-v1/; + +#include "sdm660-xiaomi-lavender-common.dtsi" + +/ { + model = "Xiaomi Redmi Note 7 (Shenchao)"; + compatible = "xiaomi,lavender-shenchao", "qcom,sdm660"; +}; + +&blsp_i2c1 { + status = "okay"; + + touchscreen@1 { + compatible = "novatek,nt36672a-ts"; + reg = <0x1>; + + iovcc-supply = <&vreg_l11a_1p8>; + interrupts-extended = <&tlmm 67 IRQ_TYPE_EDGE_RISING>; + + panel = <&panel>; + + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&ts_pins_active>; + pinctrl-1 = <&ts_int_sleep &ts_rst_sleep>; + + reset-gpios = <&tlmm 66 GPIO_ACTIVE_LOW>; + + touchscreen-size-x = <1080>; + touchscreen-size-y = <2340>; + }; +}; + +&panel { + compatible = "novatek,nt36672a-shenchao-lavender", "novatek,nt36672a"; + vddio-supply = <&vreg_l11a_1p8>; +}; + +&tlmm { + ts_pins_active: ts-pins-active-state { + pins = "gpio66", "gpio67"; + function = "gpio"; + drive-strength = <16>; + bias-pull-up; + }; + + ts_rst_sleep: ts-rst-sleep-state { + pins = "gpio66"; + function = "gpio"; + drive-strength = <2>; + bias-pull-down; + }; + + ts_int_sleep: ts-int-sleep-state { + pins = "gpio67"; + function = "gpio"; + drive-strength = <2>; + bias-disable; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/sdm660-xiaomi-lavender-tianma.dts b/arch/arm64/boot/dts/qcom/sdm660-xiaomi-lavender-tianma.dts index f14e214921b46b..6f50901f9c891a 100644 --- a/arch/arm64/boot/dts/qcom/sdm660-xiaomi-lavender-tianma.dts +++ b/arch/arm64/boot/dts/qcom/sdm660-xiaomi-lavender-tianma.dts @@ -15,24 +15,29 @@ &blsp_i2c1 { status = "okay"; - /* Novatek NT36672A touchscreen */ - touchscreen@62 { - compatible = "novatek,nt36525"; - reg = <0x62>; - vdd-supply = <&vreg_l11a_1p8>; - interrupt-parent = <&tlmm>; - interrupts = <67 IRQ_TYPE_EDGE_RISING>; + touchscreen@1 { + compatible = "novatek,nt36672a-ts"; + reg = <0x1>; + + iovcc-supply = <&vreg_l11a_1p8>; + interrupts-extended = <&tlmm 67 IRQ_TYPE_EDGE_RISING>; + + panel = <&panel>; + pinctrl-names = "default", "sleep"; pinctrl-0 = <&ts_pins_active>; pinctrl-1 = <&ts_int_sleep &ts_rst_sleep>; - reset-gpios = <&tlmm 66 GPIO_ACTIVE_HIGH>; + + reset-gpios = <&tlmm 66 GPIO_ACTIVE_LOW>; + touchscreen-size-x = <1080>; touchscreen-size-y = <2340>; }; }; &panel { - compatible = "tianma,nt36672a-xiaomi-lavender-simple"; + compatible = "novatek,nt36672a-tianma-lavender", "novatek,nt36672a"; + vddio-supply = <&vreg_l11a_1p8>; }; &tlmm { diff --git a/drivers/gpu/drm/panel/panel-novatek-nt36672a.c b/drivers/gpu/drm/panel/panel-novatek-nt36672a.c index c2abd20e0734bd..483595f05a55a6 100644 --- a/drivers/gpu/drm/panel/panel-novatek-nt36672a.c +++ b/drivers/gpu/drm/panel/panel-novatek-nt36672a.c @@ -28,10 +28,6 @@ #include