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