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

From: Luca Weiss
Date: Tue May 02 2023 - 11:29:55 EST


On Dienstag, 2. Mai 2023 12:40:40 CEST Konrad Dybcio wrote:
> On 27.04.2023 22:34, Luca Weiss wrote:
> > 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@xxxxxxxxx>
> > ---
> >
> > .../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
>
> > +
> > + 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 {