1*4882a593Smuzhiyun* PWM vibrator device tree bindings 2*4882a593Smuzhiyun 3*4882a593SmuzhiyunRegisters a PWM device as vibrator. It is expected, that the vibrator's 4*4882a593Smuzhiyunstrength increases based on the duty cycle of the enable PWM channel 5*4882a593Smuzhiyun(100% duty cycle meaning strongest vibration, 0% meaning no vibration). 6*4882a593Smuzhiyun 7*4882a593SmuzhiyunThe binding supports an optional direction PWM channel, that can be 8*4882a593Smuzhiyundriven at fixed duty cycle. If available this is can be used to increase 9*4882a593Smuzhiyunthe vibration effect of some devices. 10*4882a593Smuzhiyun 11*4882a593SmuzhiyunRequired properties: 12*4882a593Smuzhiyun- compatible: should contain "pwm-vibrator" 13*4882a593Smuzhiyun- pwm-names: Should contain "enable" and optionally "direction" 14*4882a593Smuzhiyun- pwms: Should contain a PWM handle for each entry in pwm-names 15*4882a593Smuzhiyun 16*4882a593SmuzhiyunOptional properties: 17*4882a593Smuzhiyun- vcc-supply: Phandle for the regulator supplying power 18*4882a593Smuzhiyun- direction-duty-cycle-ns: Duty cycle of the direction PWM channel in 19*4882a593Smuzhiyun nanoseconds, defaults to 50% of the channel's 20*4882a593Smuzhiyun period. 21*4882a593Smuzhiyun 22*4882a593SmuzhiyunExample from Motorola Droid 4: 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun&omap4_pmx_core { 25*4882a593Smuzhiyun vibrator_direction_pin: pinmux_vibrator_direction_pin { 26*4882a593Smuzhiyun pinctrl-single,pins = < 27*4882a593Smuzhiyun OMAP4_IOPAD(0x1ce, PIN_OUTPUT | MUX_MODE1) /* dmtimer8_pwm_evt (gpio_27) */ 28*4882a593Smuzhiyun >; 29*4882a593Smuzhiyun }; 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun vibrator_enable_pin: pinmux_vibrator_enable_pin { 32*4882a593Smuzhiyun pinctrl-single,pins = < 33*4882a593Smuzhiyun OMAP4_IOPAD(0X1d0, PIN_OUTPUT | MUX_MODE1) /* dmtimer9_pwm_evt (gpio_28) */ 34*4882a593Smuzhiyun >; 35*4882a593Smuzhiyun }; 36*4882a593Smuzhiyun}; 37*4882a593Smuzhiyun 38*4882a593Smuzhiyun/ { 39*4882a593Smuzhiyun pwm8: dmtimer-pwm { 40*4882a593Smuzhiyun pinctrl-names = "default"; 41*4882a593Smuzhiyun pinctrl-0 = <&vibrator_direction_pin>; 42*4882a593Smuzhiyun 43*4882a593Smuzhiyun compatible = "ti,omap-dmtimer-pwm"; 44*4882a593Smuzhiyun #pwm-cells = <3>; 45*4882a593Smuzhiyun ti,timers = <&timer8>; 46*4882a593Smuzhiyun ti,clock-source = <0x01>; 47*4882a593Smuzhiyun }; 48*4882a593Smuzhiyun 49*4882a593Smuzhiyun pwm9: dmtimer-pwm { 50*4882a593Smuzhiyun pinctrl-names = "default"; 51*4882a593Smuzhiyun pinctrl-0 = <&vibrator_enable_pin>; 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun compatible = "ti,omap-dmtimer-pwm"; 54*4882a593Smuzhiyun #pwm-cells = <3>; 55*4882a593Smuzhiyun ti,timers = <&timer9>; 56*4882a593Smuzhiyun ti,clock-source = <0x01>; 57*4882a593Smuzhiyun }; 58*4882a593Smuzhiyun 59*4882a593Smuzhiyun vibrator { 60*4882a593Smuzhiyun compatible = "pwm-vibrator"; 61*4882a593Smuzhiyun pwms = <&pwm9 0 1000000000 0>, 62*4882a593Smuzhiyun <&pwm8 0 1000000000 0>; 63*4882a593Smuzhiyun pwm-names = "enable", "direction"; 64*4882a593Smuzhiyun direction-duty-cycle-ns = <1000000000>; 65*4882a593Smuzhiyun }; 66*4882a593Smuzhiyun}; 67