Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/input/dlg,da7280.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Dialog Semiconductor DA7280 Low Power High-Definition Haptic Driver
8
9maintainers:
10 - Roy Im <roy.im.opensource@diasemi.com>
11
12properties:
13 compatible:
14 const: dlg,da7280
15
16 reg:
17 maxItems: 1
18 description: I2C address of the device.
19
20 interrupts:
21 maxItems: 1
22
23 dlg,actuator-type:
24 enum:
25 - LRA # Linear Resonance Actuator type
26 - ERM-bar # Bar type Eccentric Rotating Mass
27 - ERM-coin # Coin type Eccentric Rotating Mass
28
29 dlg,const-op-mode:
30 $ref: /schemas/types.yaml#/definitions/uint32
31 enum:
32 - 1 # Direct register override (DRO) mode triggered by i2c (default)
33 - 2 # PWM data source mode controlled by PWM duty
34 description:
35 Haptic operation mode for FF_CONSTANT
36
37 dlg,periodic-op-mode:
38 $ref: /schemas/types.yaml#/definitions/uint32
39 enum:
40 - 1 # Register triggered waveform memory(RTWM) mode, the pattern
41 # assigned to the PS_SEQ_ID played as much times as PS_SEQ_LOOP
42 - 2 # Edge triggered waveform memory(ETWM) mode, external GPI(N)
43 # control are required to enable/disable and it needs to keep
44 # device enabled by sending magnitude (X > 0),
45 # the pattern is assigned to the GPI(N)_SEQUENCE_ID below
46 default: 1
47 description:
48 Haptic operation mode for FF_PERIODIC.
49 The default value is 1 for both of the operation modes.
50 For more details, please see the datasheet
51
52 dlg,nom-microvolt:
53 minimum: 0
54 maximum: 6000000
55 description:
56 Nominal actuator voltage rating
57
58 dlg,abs-max-microvolt:
59 minimum: 0
60 maximum: 6000000
61 description:
62 Absolute actuator maximum voltage rating
63
64 dlg,imax-microamp:
65 minimum: 0
66 maximum: 252000
67 default: 130000
68 description:
69 Actuator max current rating
70
71 dlg,impd-micro-ohms:
72 minimum: 0
73 maximum: 1500000000
74 description:
75 Impedance of the actuator
76
77 pwms:
78 maxItems: 1
79
80 dlg,ps-seq-id:
81 $ref: /schemas/types.yaml#/definitions/uint32
82 minimum: 0
83 maximum: 15
84 description:
85 The PS_SEQ_ID(pattern ID in waveform memory inside chip)
86 to play back when RTWM-MODE is enabled
87
88 dlg,ps-seq-loop:
89 $ref: /schemas/types.yaml#/definitions/uint32
90 minimum: 0
91 maximum: 15
92 description:
93 The PS_SEQ_LOOP, Number of times the pre-stored sequence pointed to by
94 PS_SEQ_ID or GPI(N)_SEQUENCE_ID is repeated
95
96 dlg,gpi0-seq-id:
97 $ref: /schemas/types.yaml#/definitions/uint32
98 minimum: 0
99 maximum: 15
100 description:
101 the GPI0_SEQUENCE_ID, pattern to play when gpi0 is triggered
102
103 dlg,gpi1-seq-id:
104 $ref: /schemas/types.yaml#/definitions/uint32
105 minimum: 0
106 maximum: 15
107 description:
108 the GPI1_SEQUENCE_ID, pattern to play when gpi1 is triggered
109
110 dlg,gpi2-seq-id:
111 $ref: /schemas/types.yaml#/definitions/uint32
112 minimum: 0
113 maximum: 15
114 description:
115 the GPI2_SEQUENCE_ID, pattern to play when gpi2 is triggered
116
117 dlg,gpi0-mode:
118 enum:
119 - Single-pattern
120 - Multi-pattern
121 description:
122 Pattern mode for gpi0
123
124 dlg,gpi1-mode:
125 enum:
126 - Single-pattern
127 - Multi-pattern
128 description:
129 Pattern mode for gpi1
130
131 dlg,gpi2-mode:
132 enum:
133 - Single-pattern
134 - Multi-pattern
135 description:
136 Pattern mode for gpi2
137
138 dlg,gpi0-polarity:
139 enum:
140 - Rising-edge
141 - Falling-edge
142 - Both-edge
143 description:
144 gpi0 polarity, Haptic will work by this edge option in case of ETWM mode
145
146 dlg,gpi1-polarity:
147 enum:
148 - Rising-edge
149 - Falling-edge
150 - Both-edge
151 description:
152 gpi1 polarity, Haptic will work by this edge option in case of ETWM mode
153
154 dlg,gpi2-polarity:
155 enum:
156 - Rising-edge
157 - Falling-edge
158 - Both-edge
159 description:
160 gpi2 polarity, Haptic will work by this edge option in case of ETWM mode
161
162 dlg,resonant-freq-hz:
163 minimum: 50
164 maximum: 300
165 default: 205
166
167 dlg,bemf-sens-enable:
168 $ref: /schemas/types.yaml#/definitions/flag
169 description:
170 Enable for internal loop computations
171
172 dlg,freq-track-enable:
173 $ref: /schemas/types.yaml#/definitions/flag
174 description:
175 Enable for resonant frequency tracking
176
177 dlg,acc-enable:
178 $ref: /schemas/types.yaml#/definitions/flag
179 description:
180 Enable for active acceleration
181
182 dlg,rapid-stop-enable:
183 $ref: /schemas/types.yaml#/definitions/flag
184 description:
185 Enable for rapid stop
186
187 dlg,amp-pid-enable:
188 $ref: /schemas/types.yaml#/definitions/flag
189 description:
190 Enable for the amplitude PID
191
192 dlg,mem-array:
193 $ref: /schemas/types.yaml#/definitions/uint32-array
194 minItems: 100
195 description:
196 Customized waveform memory (patterns) data downloaded to the device during initialization.
197 Each entry value must be included between 0 and 255.
198
199required:
200 - compatible
201 - reg
202 - interrupts
203 - dlg,actuator-type
204 - dlg,const-op-mode
205 - dlg,periodic-op-mode
206 - dlg,nom-microvolt
207 - dlg,abs-max-microvolt
208 - dlg,imax-microamp
209 - dlg,impd-micro-ohms
210
211additionalProperties: false
212
213examples:
214 - |
215 #include <dt-bindings/gpio/gpio.h>
216 #include <dt-bindings/interrupt-controller/irq.h>
217
218 i2c {
219 #address-cells = <1>;
220 #size-cells = <0>;
221
222 haptics@4a {
223 compatible = "dlg,da7280";
224 reg = <0x4a>;
225 interrupt-parent = <&gpio6>;
226 interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
227 dlg,actuator-type = "LRA";
228 dlg,const-op-mode = <1>;
229 dlg,periodic-op-mode = <1>;
230 dlg,nom-microvolt = <2000000>;
231 dlg,abs-max-microvolt = <2000000>;
232 dlg,imax-microamp = <170000>;
233 dlg,resonant-freq-hz = <180>;
234 dlg,impd-micro-ohms = <10500000>;
235 dlg,freq-track-enable;
236 dlg,rapid-stop-enable;
237 dlg,mem-array = <0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
238 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
239 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
240 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
241 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
242 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
243 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
244 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
245 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
246 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00>;
247 };
248 };