Hi Rob, On Mon, May 08, 2017 at 12:31:21PM -0500, Rob Herring wrote: > On Fri, May 05, 2017 at 11:28:22AM +0200, Sebastian Reichel wrote: > > Provide a simple driver for PWM controllable vibrators. It > > will be used by Motorola Droid 4. > > > > Tested-by: Tony Lindgren <tony@xxxxxxxxxxx> > > Signed-off-by: Sebastian Reichel <sebastian.reichel@xxxxxxxxxxxxxxx> > > --- > > Changes since PATCHv1: > > - move driver removal code to input->close function > > - mark PM functions __maybe_unused and drop #ifdef CONFIG_PM_SLEEP > > - remove duplicate NULL check for vibrator in probe function > > - cancel work in suspend function > > Changes since PATCHv2: > > - Add Kconfig dependency on INPUT_FF_MEMLESS > > - Add Tested-by from Tiny Lindgren > > --- > > .../devicetree/bindings/input/pwm-vibrator.txt | 60 ++++ > > drivers/input/misc/Kconfig | 12 + > > drivers/input/misc/Makefile | 1 + > > drivers/input/misc/pwm-vibra.c | 343 +++++++++++++++++++++ > > 4 files changed, 416 insertions(+) > > create mode 100644 Documentation/devicetree/bindings/input/pwm-vibrator.txt > > create mode 100644 drivers/input/misc/pwm-vibra.c > > > > diff --git a/Documentation/devicetree/bindings/input/pwm-vibrator.txt b/Documentation/devicetree/bindings/input/pwm-vibrator.txt > > new file mode 100644 > > index 000000000000..c35be4691366 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/input/pwm-vibrator.txt > > @@ -0,0 +1,60 @@ > > +* PWM vibrator device tree bindings > > + > > +Registers a PWM device as vibrator. > > + > > +Required properties: > > +- compatible: should be > > + * "pwm-vibrator" > > + For vibrators controlled using the PWM channel's duty cycle (higher duty means > > + the vibrator becomes stronger). > > + * "motorola,mapphone-pwm-vibrator" > > + For vibrator found in Motorola Droid 4. This vibrator generates a pulse for > > + every rising edge, so its controlled using a duty cycle of 50% and changing > > s/its/it's/ > > > + the period time. > > What does "controlled" mean? strength? Shorter period is stronger? well it controls pulses / second. Basically more pulses / second result in smother vibration effect, but reduced strength. > > +- pwm-names: Should contain "enable" and optionally "direction" > > What does direction mean? Does that apply to both compatibles. I don't know for sure (I took over the names from stock kernel), but I assume, that the rotation direction of the vibrator is changed. > > +- pwms: Should contain a PWM handle for each entry in pwm-names -- Sebastian > > + > > +Example from Motorola Droid 4: > > + > > +&omap4_pmx_core { > > + vibrator_direction_pin: pinmux_vibrator_direction_pin { > > + pinctrl-single,pins = < > > + OMAP4_IOPAD(0x1ce, PIN_OUTPUT | MUX_MODE1) /* dmtimer8_pwm_evt (gpio_27) */ > > + >; > > + }; > > + > > + vibrator_enable_pin: pinmux_vibrator_enable_pin { > > + pinctrl-single,pins = < > > + OMAP4_IOPAD(0X1d0, PIN_OUTPUT | MUX_MODE1) /* dmtimer9_pwm_evt (gpio_28) */ > > + >; > > + }; > > +}; > > + > > +/ { > > + pwm8: dmtimer-pwm { > > + pinctrl-names = "default"; > > + pinctrl-0 = <&vibrator_direction_pin>; > > + > > + compatible = "ti,omap-dmtimer-pwm"; > > + #pwm-cells = <3>; > > + ti,timers = <&timer8>; > > + ti,clock-source = <0x01>; > > + }; > > + > > + pwm9: dmtimer-pwm { > > + pinctrl-names = "default"; > > + pinctrl-0 = <&vibrator_enable_pin>; > > + > > + compatible = "ti,omap-dmtimer-pwm"; > > + #pwm-cells = <3>; > > + ti,timers = <&timer9>; > > + ti,clock-source = <0x01>; > > + }; > > + > > + vibrator { > > + compatible = "pwm-vibrator"; > > + pwms = <&pwm8 0 1000000000 0>, > > + <&pwm9 0 1000000000 0>; > > + pwm-names = "enable", "direction"; > > + }; > > +};
Attachment:
signature.asc
Description: PGP signature