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