ARM: dts: qcom: msm8974-hammerhead: Add vibrator
authorLuca Weiss <luca@z3ntu.xyz>
Thu, 27 Apr 2023 20:34:29 +0000 (22:34 +0200)
committerBjorn Andersson <andersson@kernel.org>
Thu, 25 May 2023 02:37:41 +0000 (19:37 -0700)
The Nexus 5 has a vibrator connected to the clock output of GP1_CLK
which we can use with the clk-pwm driver, then we can use that pwm with
pwm-vibrator to get haptics functionality.

This patch is based on Brian Masney's previous patch with clk-vibrator.

Signed-off-by: Luca Weiss <luca@z3ntu.xyz>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Reviewed-by: Caleb Connolly <caleb.connolly@linaro.org>
Reviewed-by: Brian Masney <bmasney@redhat.com>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230427-hammerhead-vibra-v1-4-e87eeb94da51@z3ntu.xyz
arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dts

index ab35f2d..fea8a6b 100644 (file)
                };
        };
 
+       clk_pwm: pwm {
+               compatible = "clk-pwm";
+               clocks = <&mmcc CAMSS_GP1_CLK>;
+
+               pinctrl-0 = <&vibrator_pin>;
+               pinctrl-names = "default";
+
+               #pwm-cells = <2>;
+       };
+
+       vibrator {
+               compatible = "pwm-vibrator";
+               pwms = <&clk_pwm 0 100000>;
+               pwm-names = "enable";
+
+               vcc-supply = <&pm8941_l19>;
+               enable-gpios = <&tlmm 60 GPIO_ACTIVE_HIGH>;
+       };
+
        vreg_wlan: wlan-regulator {
                compatible = "regulator-fixed";
 
                        function = "gpio";
                };
        };
+
+       vibrator_pin: vibrator-state {
+               core-pins {
+                       pins = "gpio27";
+                       function = "gp1_clk";
+                       drive-strength = <6>;
+                       bias-disable;
+               };
+
+               enable-pins {
+                       pins = "gpio60";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-disable;
+               };
+       };
 };
 
 &usb {