mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-09-01 06:39:05 +00:00

Convert the Dialog Semiconductor DA7280 Low Power High-Definition Haptic Driver bindings to dt-schema. Due to the implementation and usage in DT the array must be an uint32 array. Reviewed-by: Conor Dooley <conor.dooley@microchip.com> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org> Link: https://lore.kernel.org/r/20250306-topic-misc-da7280-convert-v4-1-2972c4e81cb5@linaro.org Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
249 lines
6.7 KiB
YAML
249 lines
6.7 KiB
YAML
# 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>;
|
|
};
|
|
};
|