[PATCH RFC 10/10] arm64: dts: qcom: sm6125-xiaomi-ginkgo: enable display, backlight and touchscreen

From: YİĞİTCAN KAVAKLI via B4 Relay

Date: Fri Sep 11 2026 - 05:20:02 EST


From: YİĞİTCAN KAVAKLI <kavakliyigitcan@xxxxxxxxx>

Enable the display subsystem (MDSS/MDP/DSI0), Kinetic KTD3136 backlight,
and Novatek NT36672A SPI touchscreen on the Xiaomi Redmi Note 8 (ginkgo).

Hardware nodes added:
- Fixed LCDB regulators (lcdb_lab and lcdb_ibb at +/- 5.5V)
- MDSS and DSI0 with Tianma 1080x2340 FHD+ video panel
- I2C1 backlight node at 0x36 with PMI632 GPIO 6 hardware enable
- SPI2 touchscreen node at CS0 with GPIO 88 interrupt and panel follower
reference
- Touchscreen active pinctrl definition on GPIO 88

Signed-off-by: YİĞİTCAN KAVAKLI <kavakliyigitcan@xxxxxxxxx>
---
.../boot/dts/qcom/sm6125-xiaomi-ginkgo-common.dtsi | 100 +++++++++++++++++++++
1 file changed, 100 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sm6125-xiaomi-ginkgo-common.dtsi b/arch/arm64/boot/dts/qcom/sm6125-xiaomi-ginkgo-common.dtsi
index 59042a5937535c4acda064fa0f865f4f5a52d01b..f4b9e2092a814e56cdc23218025cb4166dec110a 100644
--- a/arch/arm64/boot/dts/qcom/sm6125-xiaomi-ginkgo-common.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm6125-xiaomi-ginkgo-common.dtsi
@@ -26,11 +26,30 @@ / {
chassis-type = "handset";

qcom,msm-id = <QCOM_ID_SM6125 0x10000>;
+ qcom,board-id = <34 0>, <34 1>, <34 2>, <34 3>, <34 4>, <0 0>;

aliases {
serial0 = &uart4;
};

+ lcdb_lab: regulator-lcdb-lab {
+ compatible = "regulator-fixed";
+ regulator-name = "lcdb_lab";
+ regulator-min-microvolt = <5500000>;
+ regulator-max-microvolt = <5500000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ lcdb_ibb: regulator-lcdb-ibb {
+ compatible = "regulator-fixed";
+ regulator-name = "lcdb_ibb";
+ regulator-min-microvolt = <5500000>;
+ regulator-max-microvolt = <5500000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
chosen {
#address-cells = <2>;
#size-cells = <2>;
@@ -356,6 +375,13 @@ irled@1 {

&tlmm {
gpio-reserved-ranges = <0 4>, <30 4>;
+
+ ts_int_active: ts-int-active-state {
+ pins = "gpio88";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-pull-up;
+ };
};

&uart4 {
@@ -369,3 +395,77 @@ &usb3 {
&usb_dwc3_hs {
remote-endpoint = <&pmi632_hs_in>;
};
+
+&mdss {
+ status = "okay";
+};
+
+&mdss_mdp {
+ status = "okay";
+};
+
+&mdss_dsi0_phy {
+ vdds-supply = <&vreg_l7a>;
+ status = "okay";
+};
+
+&mdss_dsi0 {
+ vdda-supply = <&vreg_l18a>;
+ status = "okay";
+
+ panel: panel@0 {
+ compatible = "tianma,fhd-video-ginkgo", "novatek,nt36672a";
+ reg = <0>;
+
+ reset-gpios = <&tlmm 90 GPIO_ACTIVE_LOW>;
+ vddio-supply = <&vreg_l9a>;
+ vddpos-supply = <&lcdb_lab>;
+ vddneg-supply = <&lcdb_ibb>;
+ backlight = <&backlight>;
+
+ port {
+ panel_in: endpoint {
+ remote-endpoint = <&mdss_dsi0_out>;
+ };
+ };
+ };
+};
+
+&mdss_dsi0_out {
+ remote-endpoint = <&panel_in>;
+ data-lanes = <0 1 2 3>;
+};
+
+&qupv3_id_0 {
+ status = "okay";
+};
+
+&i2c1 {
+ clock-frequency = <400000>;
+ status = "okay";
+
+ backlight: backlight@36 {
+ compatible = "kinetic,ktd3136";
+ reg = <0x36>;
+ enable-gpios = <&pmi632_gpios 6 GPIO_ACTIVE_HIGH>;
+ default-brightness = <2047>;
+ max-brightness = <2047>;
+ };
+};
+
+&spi2 {
+ status = "okay";
+
+ touchscreen@0 {
+ compatible = "novatek,nt36672a-spi", "novatek,nt36672a-ts";
+ reg = <0>;
+ spi-max-frequency = <4000000>;
+ interrupt-parent = <&tlmm>;
+ interrupts = <88 IRQ_TYPE_EDGE_RISING>;
+ pinctrl-0 = <&ts_int_active>;
+ pinctrl-names = "default";
+ panel = <&panel>;
+ touchscreen-size-x = <1080>;
+ touchscreen-size-y = <2340>;
+ };
+};

--
2.47.3