GNU Linux-libre 6.8.9-gnu
[releases.git] / Documentation / devicetree / bindings / input / ti,drv260x.yaml
1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/input/ti,drv260x.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Texas Instruments - drv260x Haptics driver family
8
9 maintainers:
10   - Andrew Davis <afd@ti.com>
11
12 properties:
13   compatible:
14     enum:
15       - ti,drv2604
16       - ti,drv2605
17       - ti,drv2605l
18
19   reg:
20     maxItems: 1
21
22   vbat-supply:
23     description: Power supply to the haptic motor
24
25   # TODO: Deprecate 'mode' in favor of differently named property
26   mode:
27     $ref: /schemas/types.yaml#/definitions/uint32
28     description: |
29       Power up mode of the chip
30       (defined in include/dt-bindings/input/ti-drv260x.h)
31
32       DRV260X_LRA_MODE
33         Linear Resonance Actuator mode (Piezoelectric)
34
35       DRV260X_LRA_NO_CAL_MODE
36         This is a LRA Mode but there is no calibration sequence during init.
37         And the device is configured for real time playback mode (RTP mode).
38
39       DRV260X_ERM_MODE
40         Eccentric Rotating Mass mode (Rotary vibrator)
41     enum: [ 0, 1, 2 ]
42
43   library-sel:
44     $ref: /schemas/types.yaml#/definitions/uint32
45     description: |
46       These are ROM based waveforms pre-programmed into the IC.
47       This should be set to set the library to use at power up.
48       (defined in include/dt-bindings/input/ti-drv260x.h)
49
50       DRV260X_LIB_EMPTY - Do not use a pre-programmed library
51       DRV260X_ERM_LIB_A - Pre-programmed Library
52       DRV260X_ERM_LIB_B - Pre-programmed Library
53       DRV260X_ERM_LIB_C - Pre-programmed Library
54       DRV260X_ERM_LIB_D - Pre-programmed Library
55       DRV260X_ERM_LIB_E - Pre-programmed Library
56       DRV260X_ERM_LIB_F - Pre-programmed Library
57       DRV260X_LIB_LRA - Pre-programmed LRA Library
58     enum: [ 0, 1, 2, 3, 4, 5, 6, 7 ]
59
60   enable-gpio:
61     maxItems: 1
62     deprecated: true
63
64   enable-gpios:
65     maxItems: 1
66
67   vib-rated-mv:
68     $ref: /schemas/types.yaml#/definitions/uint32
69     description: |
70       The rated voltage of the actuator in millivolts.
71       If this is not set then the value will be defaulted to 3200 mV.
72     default: 3200
73
74   vib-overdrive-mv:
75     $ref: /schemas/types.yaml#/definitions/uint32
76     description: |
77       The overdrive voltage of the actuator in millivolts.
78       If this is not set then the value will be defaulted to 3200 mV.
79     default: 3200
80
81 required:
82   - compatible
83   - reg
84   - enable-gpios
85   - mode
86   - library-sel
87
88 additionalProperties: false
89
90 examples:
91   - |
92     #include <dt-bindings/gpio/gpio.h>
93     #include <dt-bindings/input/ti-drv260x.h>
94
95     i2c {
96         #address-cells = <1>;
97         #size-cells = <0>;
98
99         haptics@5a {
100             compatible = "ti,drv2605l";
101             reg = <0x5a>;
102             vbat-supply = <&vbat>;
103             enable-gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>;
104             mode = <DRV260X_LRA_MODE>;
105             library-sel = <DRV260X_LIB_LRA>;
106             vib-rated-mv = <3200>;
107             vib-overdrive-mv = <3200>;
108         };
109     };