mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 04:04:43 +01:00
dt-bindings: input: convert dlg,da7280.txt to dt-schema
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>
This commit is contained in:
parent
5d511d93c0
commit
88bd9cc181
2 changed files with 248 additions and 108 deletions
|
|
@ -1,108 +0,0 @@
|
|||
Dialog Semiconductor DA7280 Haptics bindings
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be "dlg,da7280".
|
||||
- reg: Specifies the I2C slave address.
|
||||
|
||||
- interrupt-parent : Specifies the phandle of the interrupt controller to
|
||||
which the IRQs from DA7280 are delivered to.
|
||||
|
||||
- dlg,actuator-type: Set Actuator type. it should be one of:
|
||||
"LRA" - Linear Resonance Actuator type.
|
||||
"ERM-bar" - Bar type Eccentric Rotating Mass.
|
||||
"ERM-coin" - Coin type Eccentric Rotating Mass.
|
||||
|
||||
- dlg,const-op-mode: Haptic operation mode for FF_CONSTANT.
|
||||
Possible values:
|
||||
1 - Direct register override(DRO) mode triggered by i2c(default),
|
||||
2 - PWM data source mode controlled by PWM duty,
|
||||
- dlg,periodic-op-mode: Haptic operation mode for FF_PERIODIC.
|
||||
Possible values:
|
||||
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.
|
||||
The default value is 1 for both of the operation modes.
|
||||
For more details, please see the datasheet.
|
||||
|
||||
- dlg,nom-microvolt: Nominal actuator voltage rating.
|
||||
Valid values: 0 - 6000000.
|
||||
- dlg,abs-max-microvolt: Absolute actuator maximum voltage rating.
|
||||
Valid values: 0 - 6000000.
|
||||
- dlg,imax-microamp: Actuator max current rating.
|
||||
Valid values: 0 - 252000.
|
||||
Default: 130000.
|
||||
- dlg,impd-micro-ohms: the impedance of the actuator in micro ohms.
|
||||
Valid values: 0 - 1500000000.
|
||||
|
||||
Optional properties:
|
||||
- pwms : phandle to the physical PWM(Pulse Width Modulation) device.
|
||||
PWM properties should be named "pwms". And number of cell is different
|
||||
for each pwm device.
|
||||
(See Documentation/devicetree/bindings/pwm/pwm.txt
|
||||
for further information relating to pwm properties)
|
||||
|
||||
- dlg,ps-seq-id: the PS_SEQ_ID(pattern ID in waveform memory inside chip)
|
||||
to play back when RTWM-MODE is enabled.
|
||||
Valid range: 0 - 15.
|
||||
- dlg,ps-seq-loop: the PS_SEQ_LOOP, Number of times the pre-stored sequence
|
||||
pointed to by PS_SEQ_ID or GPI(N)_SEQUENCE_ID is repeated.
|
||||
Valid range: 0 - 15.
|
||||
- dlg,gpiN-seq-id: the GPI(N)_SEQUENCE_ID, pattern to play
|
||||
when gpi0 is triggered, 'N' must be 0 - 2.
|
||||
Valid range: 0 - 15.
|
||||
- dlg,gpiN-mode: the pattern mode which can select either
|
||||
"Single-pattern" or "Multi-pattern", 'N' must be 0 - 2.
|
||||
- dlg,gpiN-polarity: gpiN polarity which can be chosen among
|
||||
"Rising-edge", "Falling-edge" and "Both-edge",
|
||||
'N' must be 0 - 2
|
||||
Haptic will work by this edge option in case of ETWM mode.
|
||||
|
||||
- dlg,resonant-freq-hz: use in case of LRA.
|
||||
the frequency range: 50 - 300.
|
||||
Default: 205.
|
||||
|
||||
- dlg,bemf-sens-enable: Enable for internal loop computations.
|
||||
- dlg,freq-track-enable: Enable for resonant frequency tracking.
|
||||
- dlg,acc-enable: Enable for active acceleration.
|
||||
- dlg,rapid-stop-enable: Enable for rapid stop.
|
||||
- dlg,amp-pid-enable: Enable for the amplitude PID.
|
||||
- dlg,mem-array: Customized waveform memory(patterns) data downloaded to
|
||||
the device during initialization. This is an array of 100 values(u8).
|
||||
|
||||
For further information, see device datasheet.
|
||||
|
||||
======
|
||||
|
||||
Example:
|
||||
|
||||
haptics: da7280-haptics@4a {
|
||||
compatible = "dlg,da7280";
|
||||
reg = <0x4a>;
|
||||
interrupt-parent = <&gpio6>;
|
||||
interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
|
||||
dlg,actuator-type = "LRA";
|
||||
dlg,dlg,const-op-mode = <1>;
|
||||
dlg,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
|
||||
>;
|
||||
};
|
||||
248
Documentation/devicetree/bindings/input/dlg,da7280.yaml
Normal file
248
Documentation/devicetree/bindings/input/dlg,da7280.yaml
Normal file
|
|
@ -0,0 +1,248 @@
|
|||
# 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>;
|
||||
};
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue