[PATCH 4/4] arm64: dts: qcom: Add PMIH0108 haptics device node

From: Fenglin Wu

Date: Tue Jun 16 2026 - 06:12:14 EST


Add haptics device node in the PMIH0108 PMIC base dtsi files, and enable
it on several boards according to the LRA (Linear Resonant Actuator)
component mounted on each of them.

Signed-off-by: Fenglin Wu <fenglin.wu@xxxxxxxxxxxxxxxx>
---
arch/arm64/boot/dts/qcom/kaanapali-mtp.dts | 7 +++++++
arch/arm64/boot/dts/qcom/kaanapali-qrd.dts | 7 +++++++
arch/arm64/boot/dts/qcom/pmih0108-kaanapali.dtsi | 9 +++++++++
arch/arm64/boot/dts/qcom/pmih0108.dtsi | 9 +++++++++
arch/arm64/boot/dts/qcom/sm8750-mtp.dts | 7 +++++++
arch/arm64/boot/dts/qcom/sm8750-qrd.dts | 7 +++++++
6 files changed, 46 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/kaanapali-mtp.dts b/arch/arm64/boot/dts/qcom/kaanapali-mtp.dts
index 07247dc98b70..7e3f59fc008e 100644
--- a/arch/arm64/boot/dts/qcom/kaanapali-mtp.dts
+++ b/arch/arm64/boot/dts/qcom/kaanapali-mtp.dts
@@ -952,6 +952,13 @@ wifi@0 {
};
};

+&pmih0108_e1_haptics {
+ status = "okay";
+
+ qcom,lra-period-us = <6667>;
+ qcom,vmax-mv = <3600>;
+};
+
&pmh0101_flash {
status = "okay";

diff --git a/arch/arm64/boot/dts/qcom/kaanapali-qrd.dts b/arch/arm64/boot/dts/qcom/kaanapali-qrd.dts
index da0e8f9091c3..0865afec47ac 100644
--- a/arch/arm64/boot/dts/qcom/kaanapali-qrd.dts
+++ b/arch/arm64/boot/dts/qcom/kaanapali-qrd.dts
@@ -744,6 +744,13 @@ led@3 {
};
};

+&pmih0108_e1_haptics {
+ status = "okay";
+
+ qcom,lra-period-us = <7692>;
+ qcom,vmax-mv = <1850>;
+};
+
&pon_resin {
linux,code = <KEY_VOLUMEDOWN>;

diff --git a/arch/arm64/boot/dts/qcom/pmih0108-kaanapali.dtsi b/arch/arm64/boot/dts/qcom/pmih0108-kaanapali.dtsi
index b73b0e82c3d3..22c83c549ce9 100644
--- a/arch/arm64/boot/dts/qcom/pmih0108-kaanapali.dtsi
+++ b/arch/arm64/boot/dts/qcom/pmih0108-kaanapali.dtsi
@@ -59,6 +59,15 @@ pmih0108_e1_gpios: gpio@8800 {
#interrupt-cells = <2>;
};

+ pmih0108_e1_haptics: haptics@f000 {
+ compatible = "qcom,pmih010x-haptics";
+ reg = <0xf000>, <0xf100>;
+ reg-names = "hap-cfg", "hap-ptn";
+ interrupts = <0x7 0xf0 0x1 IRQ_TYPE_EDGE_RISING>;
+ interrupt-names = "fifo-empty";
+ status = "disabled";
+ };
+
pmih0108_e1_eusb2_repeater: phy@fd00 {
compatible = "qcom,pm8550b-eusb2-repeater";
reg = <0xfd00>;
diff --git a/arch/arm64/boot/dts/qcom/pmih0108.dtsi b/arch/arm64/boot/dts/qcom/pmih0108.dtsi
index 1c875995d881..d942d6c2fd03 100644
--- a/arch/arm64/boot/dts/qcom/pmih0108.dtsi
+++ b/arch/arm64/boot/dts/qcom/pmih0108.dtsi
@@ -59,6 +59,15 @@ pmih0108_gpios: gpio@8800 {
#interrupt-cells = <2>;
};

+ pmih0108_haptics: haptics@f000 {
+ compatible = "qcom,pmih010x-haptics";
+ reg = <0xf000>, <0xf100>;
+ reg-names = "hap-cfg", "hap-ptn";
+ interrupts = <0x7 0xf0 0x1 IRQ_TYPE_EDGE_RISING>;
+ interrupt-names = "fifo-empty";
+ status = "disabled";
+ };
+
pmih0108_eusb2_repeater: phy@fd00 {
compatible = "qcom,pm8550b-eusb2-repeater";
reg = <0xfd00>;
diff --git a/arch/arm64/boot/dts/qcom/sm8750-mtp.dts b/arch/arm64/boot/dts/qcom/sm8750-mtp.dts
index 3837f6785320..7a3b8c440d00 100644
--- a/arch/arm64/boot/dts/qcom/sm8750-mtp.dts
+++ b/arch/arm64/boot/dts/qcom/sm8750-mtp.dts
@@ -1138,6 +1138,13 @@ wifi@0 {
};
};

+&pmih0108_haptics {
+ status = "okay";
+
+ qcom,lra-period-us = <6667>;
+ qcom,vmax-mv = <3600>;
+};
+
&pmih0108_eusb2_repeater {
qcom,tune-usb2-preem = /bits/ 8 <0x3>;
qcom,tune-usb2-amplitude = /bits/ 8 <0xa>;
diff --git a/arch/arm64/boot/dts/qcom/sm8750-qrd.dts b/arch/arm64/boot/dts/qcom/sm8750-qrd.dts
index 801c46d55602..4a1079984307 100644
--- a/arch/arm64/boot/dts/qcom/sm8750-qrd.dts
+++ b/arch/arm64/boot/dts/qcom/sm8750-qrd.dts
@@ -933,6 +933,13 @@ &pon_resin {
status = "okay";
};

+&pmih0108_haptics {
+ status = "okay";
+
+ qcom,lra-period-us = <5880>;
+ qcom,vmax-mv = <1700>;
+};
+
&pmih0108_eusb2_repeater {
status = "okay";


--
2.43.0