[PATCH v5 6/6] arm64: dts: mediatek: mt8188-geralt-ciri: Add the touchscreen
Michał Kopeć
michal at nozomi.space
Sat Oct 3 07:27:41 PDT 2026
Ciri uses the touch function of its Himax HX83102J TDDI controller,
connected over SPI1. It shares the analog supplies and the reset with
the panel, so describe those and follow the panel for power sequencing.
The controller has no flash; the firmware is loaded from a file that
depends on the panel: himax_i2chid_1002.bin for the BOE panel and
himax_i2chid_1003.bin for the IVO panel, as on ChromeOS.
Signed-off-by: Michał Kopeć <michal at nozomi.space>
---
.../dts/mediatek/mt8188-geralt-ciri-sku1.dts | 4 +++
.../dts/mediatek/mt8188-geralt-ciri-sku3.dts | 4 +++
.../dts/mediatek/mt8188-geralt-ciri-sku5.dts | 4 +++
.../dts/mediatek/mt8188-geralt-ciri-sku7.dts | 4 +++
.../boot/dts/mediatek/mt8188-geralt-ciri.dtsi | 33 +++++++++++++++++++
5 files changed, 49 insertions(+)
diff --git a/arch/arm64/boot/dts/mediatek/mt8188-geralt-ciri-sku1.dts b/arch/arm64/boot/dts/mediatek/mt8188-geralt-ciri-sku1.dts
index ef5ea9d12b1de..6377354440d68 100644
--- a/arch/arm64/boot/dts/mediatek/mt8188-geralt-ciri-sku1.dts
+++ b/arch/arm64/boot/dts/mediatek/mt8188-geralt-ciri-sku1.dts
@@ -57,3 +57,7 @@ codec {
};
};
};
+
+&touchscreen {
+ firmware-name = "himax_i2chid_1003.bin";
+};
diff --git a/arch/arm64/boot/dts/mediatek/mt8188-geralt-ciri-sku3.dts b/arch/arm64/boot/dts/mediatek/mt8188-geralt-ciri-sku3.dts
index 524f7f0064c1a..2a51c610758f7 100644
--- a/arch/arm64/boot/dts/mediatek/mt8188-geralt-ciri-sku3.dts
+++ b/arch/arm64/boot/dts/mediatek/mt8188-geralt-ciri-sku3.dts
@@ -30,3 +30,7 @@ &sound {
"Left Spk", "Front Left BE_OUT",
"Right Spk", "Front Right BE_OUT";
};
+
+&touchscreen {
+ firmware-name = "himax_i2chid_1003.bin";
+};
diff --git a/arch/arm64/boot/dts/mediatek/mt8188-geralt-ciri-sku5.dts b/arch/arm64/boot/dts/mediatek/mt8188-geralt-ciri-sku5.dts
index bf87201ccf273..8fb0036aa14d0 100644
--- a/arch/arm64/boot/dts/mediatek/mt8188-geralt-ciri-sku5.dts
+++ b/arch/arm64/boot/dts/mediatek/mt8188-geralt-ciri-sku5.dts
@@ -70,3 +70,7 @@ codec {
};
};
};
+
+&touchscreen {
+ firmware-name = "himax_i2chid_1003.bin";
+};
diff --git a/arch/arm64/boot/dts/mediatek/mt8188-geralt-ciri-sku7.dts b/arch/arm64/boot/dts/mediatek/mt8188-geralt-ciri-sku7.dts
index 825015b452d59..2bd178116423b 100644
--- a/arch/arm64/boot/dts/mediatek/mt8188-geralt-ciri-sku7.dts
+++ b/arch/arm64/boot/dts/mediatek/mt8188-geralt-ciri-sku7.dts
@@ -46,3 +46,7 @@ codec {
};
};
};
+
+&touchscreen {
+ firmware-name = "himax_i2chid_1003.bin";
+};
diff --git a/arch/arm64/boot/dts/mediatek/mt8188-geralt-ciri.dtsi b/arch/arm64/boot/dts/mediatek/mt8188-geralt-ciri.dtsi
index 6815c435a57e1..e611fb73ddb01 100644
--- a/arch/arm64/boot/dts/mediatek/mt8188-geralt-ciri.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt8188-geralt-ciri.dtsi
@@ -121,6 +121,27 @@ codec {
};
};
+&spi1 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ touchscreen: touchscreen at 0 {
+ compatible = "himax,hx83102j";
+ reg = <0>;
+ spi-max-frequency = <12500000>;
+ interrupts-extended = <&pio 143 IRQ_TYPE_LEVEL_LOW>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&touchscreen_pins>;
+ reset-gpios = <&pio 5 GPIO_ACTIVE_LOW>;
+ display-reset-gpios = <&pio 25 GPIO_ACTIVE_LOW>;
+ vccd-supply = <&mt6359_vm18_ldo_reg>;
+ vsp-supply = <&ppvar_mipi_disp_avdd>;
+ vsn-supply = <&ppvar_mipi_disp_avee>;
+ panel = <&dsi_panel>;
+ firmware-name = "himax_i2chid_1002.bin";
+ };
+};
+
&pio {
gpio-line-names =
"GSC_AP_INT_ODL",
@@ -313,4 +334,16 @@ pins-en-spkr {
pinmux = <PINMUX_GPIO111__FUNC_B_GPIO111>;
};
};
+
+ touchscreen_pins: touchscreen-pins {
+ pins-int-odl {
+ pinmux = <PINMUX_GPIO143__FUNC_B_GPIO143>;
+ input-enable;
+ };
+
+ pins-rst-l {
+ pinmux = <PINMUX_GPIO5__FUNC_B_GPIO5>;
+ output-high;
+ };
+ };
};
--
2.55.0
More information about the Linux-mediatek
mailing list