Re: [PATCH V3 2/3] dt-bindings: input: Add document bindings for DA7280

From: Rob Herring
Date: Mon Aug 20 2018 - 15:36:11 EST


On Mon, Aug 20, 2018 at 02:36:20PM +0900, Roy Im wrote:
>
> from: Roy Im <roy.im.opensource@xxxxxxxxxxx>

Looks like this needs to be removed. You should only have 'From' line
show up when the sender and author emails are different.

>
> Add device tree binding information for DA7280 haptic driver.
> Example bindings for DA7280 are added.
>
> Signed-off-by: Roy Im <roy.im.opensource@xxxxxxxxxxx>
>
> ---
> v3: Fixed subject format.
>
> v2: No changes
>
>
> .../devicetree/bindings/input/dlg,da7280.txt | 91 ++++++++++++++++++++
> 1 file changed, 91 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/input/dlg,da7280.txt
>
> diff --git a/Documentation/devicetree/bindings/input/dlg,da7280.txt b/Documentation/devicetree/bindings/input/dlg,da7280.txt
> new file mode 100644
> index 0000000..759bcfe
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/input/dlg,da7280.txt
> @@ -0,0 +1,91 @@
> +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.

interrupt-parent is implied, so you don't need it here.

> +- interrupts: IRQ line info for DA7280.
> + (See Documentation/devicetree/bindings/interrupt-controller/
> + interrupts.txt for further information relating to interrupt properties)
> +- dlg,vib-mode:
> + "LRA-MODE" - Linear Resonance Actuator mode.
> + "ERM-BAR" - Bar type Eccentric Rotating Mass mode.
> + "ERM-COIN" - Coin type Eccentric Rotating Mass mode.
> +- dlg,play-mode: choose one in below five modes.
> + "DRO-MODE" - Direct register override mode.
> + "PWM-MODE" - PWM data source mode.
> + In this case, user is able to set duty to 0 ~ 0xffff(0% ~ 100%)
> + "RTWM-MODE" - Register triggered waveform memory mode.
> + In this case, when enable this mode the pattern assigned
> + to the PS_SEQ_ID will be played as much times as PS_SEQ_LOOP.
> + "ETWM-MODE" - Edge triggered waveform memory mode.
> + In this case, external GPI(N) control are required to enable/disable
> + and it needs to keep device enabled by sending magnitude (X > 0)
> + the pattern assigned to the GPI(N)_SEQUENCE_ID below.
> + For more details, please see the datasheet.

'-MODE' is redundant

If these modes correspond to a register field, then using the numerical
values would be simpler.

> +- dlg,nom-microvolt: Nominal actuator voltage rating.
> +- dlg,abs-max-microvolt: Absolute actuator maximum voltage rating.
> +- dlg,imax-microamp: Actuator max current rating.
> +- dlg,impd-micro-ohms: the impedance of the actuator in micro ohm,
> + as read from its datasheet.
> +
> +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.

What's the range of valid values?

> +- 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.
> +- dlg,gpiN-seq-id: the GPI(N)_SEQUENCE_ID, pattern to play
> + when gpi0 is triggered, 'N' must be 0~2.
> +- 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-MODE, default 205Hz.
> + the freq range: 50Hz ~ 300Hz.
> + It will be set to 205Hz if the value is out of range.
> +- 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: use in case that memory registers should be updated,
> + Please fill the whole buffers(100 bytes) to avoid any error in driver.
> + For example,
> + dlg,mem-array = <
> + 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A
> + ...
> + 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A
> + 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
> + 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
> + >;
> +
> +For further information, see device datasheet.
> +
> +======
> +
> +Example:
> +
> + haptics: da7280-haptics@4A {

Use lowercase hex for unit-address.

> + compatible = "dlg,da7280";
> + reg = <0x4A>;
> + interrupt-parent = <&gpio6>;
> + interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
> + dlg,vib-mode = "LRA-MODE";
> + dlg,play-mode = "DRO-MODE";
> + 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;
> + };
> --
> end-of-patch for PATCH V3
>