da7280: haptic driver submission
Subsystems (4)
v2 cover da7280: haptic driver submission
From: Roy Im <[email protected]>
This patch adds support for the Dialog DA7280 Haptic driver IC.
In this patch set the following is provided:
[PATCH V2 1/3] MAINTAINERS file update for DA7280
[PATCH V2 2/3] DA7280 DT Binding
[PATCH V2 3/3] DA7280 Driver
This patch applies against linux-next and v4.18
Thank you,
Roy Im, Dialog Semiconductor Ltd.
Roy Im (3):
MAINTAINERS: da7280 updates to the Dialog Semiconductor search terms
Documentation: devicetree: input: new binding for da7280
Input: new da7280 haptic driver
.../devicetree/bindings/input/dlg,da7280.txt | 91 ++ MAINTAINERS | 2 + drivers/input/misc/Kconfig | 12 + drivers/input/misc/Makefile | 1 + drivers/input/misc/da7280.c | 1451 ++++++++++++++++++++ drivers/input/misc/da7280.h | 412 ++++++ 6 files changed, 1969 insertions(+) create mode 100644 Documentation/devicetree/bindings/input/dlg,da7280.txt create mode 100644 drivers/input/misc/da7280.c create mode 100644 drivers/input/misc/da7280.h
Signature · 1 line
end-of-patch for PATCH V2
PATCH v2 1/3 MAINTAINERS: da7280 updates to the Dialog Semiconductor search terms
From: Roy Im <[email protected]>
This patch adds the da7280 bindings doc and driver to the Dialog Semiconductor support list.
---
v2: No changes
MAINTAINERS | 2 ++ 1 file changed, 2 insertions(+)
MAINTAINERS +2 -0
@@ -4221,6 +4221,7 @@ S: Supported F: Documentation/hwmon/da90?? F: Documentation/devicetree/bindings/mfd/da90*.txt F: Documentation/devicetree/bindings/input/da90??-onkey.txt +F: Documentation/devicetree/bindings/input/dlg,da72??.txt F: Documentation/devicetree/bindings/thermal/da90??-thermal.txt F: Documentation/devicetree/bindings/regulator/da92*.txt F: Documentation/devicetree/bindings/watchdog/da90??-wdt.txt
@@ -4229,6 +4230,7 @@ F: drivers/gpio/gpio-da90??.c F: drivers/hwmon/da90??-hwmon.c F: drivers/iio/adc/da91??-*.c F: drivers/input/misc/da90??_onkey.c +F: drivers/input/misc/da72??.[ch] F: drivers/input/touchscreen/da9052_tsi.c F: drivers/leds/leds-da90??.c F: drivers/mfd/da903x.c
Signature · 1 line
end-of-patch for PATCH V2
PATCH v2 2/3 Documentation: devicetree: input: new binding for da7280
In reply to Roy Imfrom: Roy Im <[email protected]>
Add device tree binding information for DA7280 haptic driver. Example bindings for DA7280 are added.
---
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
Documentation/devicetree/bindings/input/dlg,da7280.txt new file +91 -0
@@ -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. +- 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. +- 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. +- 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 { + 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; + };
Signature · 1 line
end-of-patch for PATCH V2
Rob Herring
maintainerRe: [PATCH V2 2/3] Documentation: devicetree: input: new binding for da7280
Hi, this email is from Rob's (experimental) review bot. I found a couple of common problems with your patch. Please see below.
Quoted 8 lines · Roy Im
from: Roy Im <[email protected]>
Add device tree binding information for DA7280 haptic driver. Example bindings for DA7280 are added.
Signed-off-by Roy Im <[email protected]>
The preferred subject prefix is "dt-bindings: <binding dir>: ...".
Quoted 8 lines
---
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
PATCH v2 3/3 Input: new da7280 haptic driver
In reply to Roy Imfrom: Roy Im <[email protected]>
Adds support for the Dialog DA7280 LRA/ERM Haptic Driver with multiple mode and integrated waveform memory and wideband support. It communicates via an I2C bus to the device.
---
v2: Fixed kbuild error/warning
drivers/input/misc/Kconfig | 12 + drivers/input/misc/Makefile | 1 + drivers/input/misc/da7280.c | 1451 +++++++++++++++++++++++++++++++++++++++++++ drivers/input/misc/da7280.h | 412 ++++++++++++ 4 files changed, 1876 insertions(+) create mode 100644 drivers/input/misc/da7280.c create mode 100644 drivers/input/misc/da7280.h
drivers/input/misc/Kconfig +12 -0
@@ -851,4 +851,16 @@ config INPUT_SC27XX_VIBRA To compile this driver as a module, choose M here. The module will be called sc27xx_vibra. +config INPUT_DA7280_HAPTICS + tristate "Dialog Semiconductor DA7280 haptics support" + depends on (INPUT && I2C && SYSFS) || PWM + select INPUT_FF_MEMLESS + select REGMAP_I2C + help + Say Y to enable support for the haptics controller on + Dialog DA7280 chip. + + To compile this driver as a module, choose M here: the + module will be called da7280-haptic. + endif
drivers/input/misc/Makefile +1 -0
@@ -25,6 +25,7 @@ obj-$(CONFIG_INPUT_CMA3000) += cma3000_d0x.o obj-$(CONFIG_INPUT_CMA3000_I2C) += cma3000_d0x_i2c.o obj-$(CONFIG_INPUT_COBALT_BTNS) += cobalt_btns.o obj-$(CONFIG_INPUT_CPCAP_PWRBUTTON) += cpcap-pwrbutton.o +obj-$(CONFIG_INPUT_DA7280_HAPTICS) += da7280.o obj-$(CONFIG_INPUT_DA9052_ONKEY) += da9052_onkey.o obj-$(CONFIG_INPUT_DA9055_ONKEY) += da9055_onkey.o obj-$(CONFIG_INPUT_DA9063_ONKEY) += da9063_onkey.o
drivers/input/misc/da7280.c new file +1451 -0
1,451 lines not on this page · raw message
drivers/input/misc/da7280.h new file +412 -0
412 lines not on this page · raw message
Signature · 1 line
end-of-patch for PATCH V2