Thread (28 messages) 28 messages, 8 authors, 2023-05-25

Re: [PATCH 4/4] ARM: dts: qcom: msm8974-hammerhead: Add vibrator

From: Luca Weiss <hidden>
Date: 2023-05-02 15:29:55
Also in: linux-arm-msm, linux-devicetree, lkml, phone-devel

On Dienstag, 2. Mai 2023 12:40:40 CEST Konrad Dybcio wrote:
On 27.04.2023 22:34, Luca Weiss wrote:
quoted
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 <redacted>
---

 .../dts/qcom-msm8974-lge-nexus5-hammerhead.dts     | 35
 ++++++++++++++++++++++ 1 file changed, 35 insertions(+)
diff --git a/arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dts
b/arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dts index
ab35f2d644c0..fea8a6be9021 100644
--- a/arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dts
+++ b/arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dts
@@ -41,6 +41,25 @@ key-volume-down {

 		};
 	
 	};

+	clk_pwm: pwm {
+		compatible = "clk-pwm";
+		clocks = <&mmcc CAMSS_GP1_CLK>;
Are you sure it's <&mmcc CAMSS_GP1_CLK> and not <&gcc GCC_GP1_CLK>?
Quite sure.

The driver uses:

	cam_gp1_clk = clk_get(&pdev->dev, "cam_gp1_clk");

and this comes from the clock-8974.c driver

	CLK_LOOKUP("cam_gp1_clk", camss_gp1_clk.c, "vibrator"),

Regards
Luca
Konrad
quoted
+
+		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";
@@ -637,6 +656,22 @@ shutdown-pins {

 			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 {


Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help