forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-10-12 a5969cabbb4660eab42b6ef0412cbbd1200cf14d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
* PWM vibrator device tree bindings
 
Registers a PWM device as vibrator. It is expected, that the vibrator's
strength increases based on the duty cycle of the enable PWM channel
(100% duty cycle meaning strongest vibration, 0% meaning no vibration).
 
The binding supports an optional direction PWM channel, that can be
driven at fixed duty cycle. If available this is can be used to increase
the vibration effect of some devices.
 
Required properties:
- compatible: should contain "pwm-vibrator"
- pwm-names: Should contain "enable" and optionally "direction"
- pwms: Should contain a PWM handle for each entry in pwm-names
 
Optional properties:
- vcc-supply: Phandle for the regulator supplying power
- direction-duty-cycle-ns: Duty cycle of the direction PWM channel in
                           nanoseconds, defaults to 50% of the channel's
              period.
 
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 = <&pwm9 0 1000000000 0>,
                       <&pwm8 0 1000000000 0>;
       pwm-names = "enable", "direction";
       direction-duty-cycle-ns = <1000000000>;
   };
};