mbox series

[RESEND,0/7] Initial Support for CS40L26

Message ID 20250204231835.2000457-1-ftreven@opensource.cirrus.com
Headers show
Series Initial Support for CS40L26 | expand

Message

Fredrik Treven Feb. 4, 2025, 11:18 p.m. UTC
Introduce driver for Cirrus Logic Device CS40L26:
A boosted haptics driver with integrated DSP and
waveform memory with advanced closed loop algorithms
and LRA protection.

The core CS40L26 driver is in MFD and touches the
Input Force Feedback subsystem for haptics and
the ASoC subsystem for audio to haptics streaming.

This patchset includes changes to the CS DSP firmware
driver which fixes two bugs and introduces support for
multiple coefficient files.

Fred Treven (7):
  firmware: cs_dsp: Fix error checking in wseq_write()
  firmware: cs_dsp: Check for valid num_regs in
    cs_dsp_wseq_multi_write()
  firmware: cs_dsp: Add ability to load multiple coefficient files
  dt-bindings: mfd: cirrus,cs40l26: Support for CS40L26
  mfd: cs40l26: Add support for CS40L26 core driver
  ASoC: cs40l26: Support I2S streaming to CS40L26
  Input: cs40l26 - Add support for CS40L26 haptic driver

 .../bindings/mfd/cirrus,cs40l26.yaml          |   81 +
 MAINTAINERS                                   |    4 +-
 drivers/firmware/cirrus/cs_dsp.c              |   70 +-
 drivers/input/misc/Kconfig                    |   10 +
 drivers/input/misc/Makefile                   |    1 +
 drivers/input/misc/cs40l26-vibra.c            |  669 ++++++++
 drivers/mfd/Kconfig                           |   29 +
 drivers/mfd/Makefile                          |    4 +
 drivers/mfd/cs40l26-core.c                    | 1412 +++++++++++++++++
 drivers/mfd/cs40l26-i2c.c                     |   63 +
 drivers/mfd/cs40l26-spi.c                     |   63 +
 include/linux/firmware/cirrus/cs_dsp.h        |   14 +
 include/linux/mfd/cs40l26.h                   |  341 ++++
 sound/soc/codecs/Kconfig                      |   12 +
 sound/soc/codecs/Makefile                     |    2 +
 sound/soc/codecs/cs40l26-codec.c              |  523 ++++++
 16 files changed, 3281 insertions(+), 17 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/mfd/cirrus,cs40l26.yaml
 create mode 100644 drivers/input/misc/cs40l26-vibra.c
 create mode 100644 drivers/mfd/cs40l26-core.c
 create mode 100644 drivers/mfd/cs40l26-i2c.c
 create mode 100644 drivers/mfd/cs40l26-spi.c
 create mode 100644 include/linux/mfd/cs40l26.h
 create mode 100644 sound/soc/codecs/cs40l26-codec.c