Re: [PATCHv3 1/2] Input: pwm-vibra: new driver
From: Sebastian Reichel <hidden>
Date: 2017-05-08 18:39:02
Also in:
linux-devicetree, linux-omap, lkml
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:quoted
Provide a simple driver for PWM controllable vibrators. It will be used by Motorola Droid 4. Tested-by: Tony Lindgren <redacted> Signed-off-by: Sebastian Reichel <sebastian.reichel-ZGY8ohtN/8pPYcu2f3hruQ@public.gmane.org> --- 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.cdiff --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 changings/its/it's/quoted
+ 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.
quoted
+- 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.
quoted
+- pwms: Should contain a PWM handle for each entry in pwm-names
-- Sebastian
quoted
+ +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"; + }; +};
Attachments
- signature.asc [application/pgp-signature] 833 bytes