| # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/input/dlg,da7280.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: Dialog Semiconductor DA7280 Low Power High-Definition Haptic Driver |
| |
| maintainers: |
| - Roy Im <roy.im.opensource@diasemi.com> |
| |
| properties: |
| compatible: |
| const: dlg,da7280 |
| |
| reg: |
| maxItems: 1 |
| description: I2C address of the device. |
| |
| interrupts: |
| maxItems: 1 |
| |
| dlg,actuator-type: |
| enum: |
| - LRA # Linear Resonance Actuator type |
| - ERM-bar # Bar type Eccentric Rotating Mass |
| - ERM-coin # Coin type Eccentric Rotating Mass |
| |
| dlg,const-op-mode: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| enum: |
| - 1 # Direct register override (DRO) mode triggered by i2c (default) |
| - 2 # PWM data source mode controlled by PWM duty |
| description: |
| Haptic operation mode for FF_CONSTANT |
| |
| dlg,periodic-op-mode: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| enum: |
| - 1 # Register triggered waveform memory(RTWM) mode, the pattern |
| # assigned to the PS_SEQ_ID played as much times as PS_SEQ_LOOP |
| - 2 # Edge triggered waveform memory(ETWM) mode, external GPI(N) |
| # control are required to enable/disable and it needs to keep |
| # device enabled by sending magnitude (X > 0), |
| # the pattern is assigned to the GPI(N)_SEQUENCE_ID below |
| default: 1 |
| description: |
| Haptic operation mode for FF_PERIODIC. |
| The default value is 1 for both of the operation modes. |
| For more details, please see the datasheet |
| |
| dlg,nom-microvolt: |
| minimum: 0 |
| maximum: 6000000 |
| description: |
| Nominal actuator voltage rating |
| |
| dlg,abs-max-microvolt: |
| minimum: 0 |
| maximum: 6000000 |
| description: |
| Absolute actuator maximum voltage rating |
| |
| dlg,imax-microamp: |
| minimum: 0 |
| maximum: 252000 |
| default: 130000 |
| description: |
| Actuator max current rating |
| |
| dlg,impd-micro-ohms: |
| minimum: 0 |
| maximum: 1500000000 |
| description: |
| Impedance of the actuator |
| |
| pwms: |
| maxItems: 1 |
| |
| dlg,ps-seq-id: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| minimum: 0 |
| maximum: 15 |
| description: |
| The PS_SEQ_ID(pattern ID in waveform memory inside chip) |
| to play back when RTWM-MODE is enabled |
| |
| dlg,ps-seq-loop: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| minimum: 0 |
| maximum: 15 |
| description: |
| The PS_SEQ_LOOP, Number of times the pre-stored sequence pointed to by |
| PS_SEQ_ID or GPI(N)_SEQUENCE_ID is repeated |
| |
| dlg,gpi0-seq-id: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| minimum: 0 |
| maximum: 15 |
| description: |
| the GPI0_SEQUENCE_ID, pattern to play when gpi0 is triggered |
| |
| dlg,gpi1-seq-id: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| minimum: 0 |
| maximum: 15 |
| description: |
| the GPI1_SEQUENCE_ID, pattern to play when gpi1 is triggered |
| |
| dlg,gpi2-seq-id: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| minimum: 0 |
| maximum: 15 |
| description: |
| the GPI2_SEQUENCE_ID, pattern to play when gpi2 is triggered |
| |
| dlg,gpi0-mode: |
| enum: |
| - Single-pattern |
| - Multi-pattern |
| description: |
| Pattern mode for gpi0 |
| |
| dlg,gpi1-mode: |
| enum: |
| - Single-pattern |
| - Multi-pattern |
| description: |
| Pattern mode for gpi1 |
| |
| dlg,gpi2-mode: |
| enum: |
| - Single-pattern |
| - Multi-pattern |
| description: |
| Pattern mode for gpi2 |
| |
| dlg,gpi0-polarity: |
| enum: |
| - Rising-edge |
| - Falling-edge |
| - Both-edge |
| description: |
| gpi0 polarity, Haptic will work by this edge option in case of ETWM mode |
| |
| dlg,gpi1-polarity: |
| enum: |
| - Rising-edge |
| - Falling-edge |
| - Both-edge |
| description: |
| gpi1 polarity, Haptic will work by this edge option in case of ETWM mode |
| |
| dlg,gpi2-polarity: |
| enum: |
| - Rising-edge |
| - Falling-edge |
| - Both-edge |
| description: |
| gpi2 polarity, Haptic will work by this edge option in case of ETWM mode |
| |
| dlg,resonant-freq-hz: |
| minimum: 50 |
| maximum: 300 |
| default: 205 |
| |
| dlg,bemf-sens-enable: |
| $ref: /schemas/types.yaml#/definitions/flag |
| description: |
| Enable for internal loop computations |
| |
| dlg,freq-track-enable: |
| $ref: /schemas/types.yaml#/definitions/flag |
| description: |
| Enable for resonant frequency tracking |
| |
| dlg,acc-enable: |
| $ref: /schemas/types.yaml#/definitions/flag |
| description: |
| Enable for active acceleration |
| |
| dlg,rapid-stop-enable: |
| $ref: /schemas/types.yaml#/definitions/flag |
| description: |
| Enable for rapid stop |
| |
| dlg,amp-pid-enable: |
| $ref: /schemas/types.yaml#/definitions/flag |
| description: |
| Enable for the amplitude PID |
| |
| dlg,mem-array: |
| $ref: /schemas/types.yaml#/definitions/uint32-array |
| minItems: 100 |
| description: |
| Customized waveform memory (patterns) data downloaded to the device during initialization. |
| Each entry value must be included between 0 and 255. |
| |
| required: |
| - compatible |
| - reg |
| - interrupts |
| - dlg,actuator-type |
| - dlg,const-op-mode |
| - dlg,periodic-op-mode |
| - dlg,nom-microvolt |
| - dlg,abs-max-microvolt |
| - dlg,imax-microamp |
| - dlg,impd-micro-ohms |
| |
| additionalProperties: false |
| |
| examples: |
| - | |
| #include <dt-bindings/gpio/gpio.h> |
| #include <dt-bindings/interrupt-controller/irq.h> |
| |
| i2c { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| haptics@4a { |
| compatible = "dlg,da7280"; |
| reg = <0x4a>; |
| interrupt-parent = <&gpio6>; |
| interrupts = <11 IRQ_TYPE_LEVEL_LOW>; |
| dlg,actuator-type = "LRA"; |
| dlg,const-op-mode = <1>; |
| dlg,periodic-op-mode = <1>; |
| dlg,nom-microvolt = <2000000>; |
| dlg,abs-max-microvolt = <2000000>; |
| dlg,imax-microamp = <170000>; |
| dlg,resonant-freq-hz = <180>; |
| dlg,impd-micro-ohms = <10500000>; |
| dlg,freq-track-enable; |
| dlg,rapid-stop-enable; |
| dlg,mem-array = <0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 |
| 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 |
| 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 |
| 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 |
| 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 |
| 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 |
| 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 |
| 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 |
| 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 |
| 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00>; |
| }; |
| }; |