# 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>;
        };
    };
