All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v6 00/10] Add support for CS35L41 in HDA systems
@ 2021-12-17 11:56 ` Lucas Tanure
  0 siblings, 0 replies; 58+ messages in thread
From: Lucas Tanure @ 2021-12-17 11:56 UTC (permalink / raw)
  To: Rafael J . Wysocki, Len Brown, Hans de Goede, Mark Gross,
	Liam Girdwood, Jaroslav Kysela, Mark Brown, Takashi Iwai
  Cc: alsa-devel, linux-acpi, patches, platform-driver-x86,
	linux-kernel, Lucas Tanure

Add support for laptops that have CS35L41 connected to an HDA
codec by I2S and direct I2C connection to the CPU.

Laptops that use CS35L41 and are SPI will be added in the future,
after the support for it is resolved at i2c-multi-instantiate driver.
i2c-multi-instantiate thread: https://lkml.org/lkml/2021/12/10/557

Hardware:
 - Some laptops have two CS35L41 amplifiers, connected to Realtek ALC287
   by an I2S bus and by and direct I2C to the CPU.
 - The ALC287 codec is connected to the CPU by an HDA bus.
 - The CS35L41 has a DSP which will require firmware to be loaded.

Architecture:
 - Creation of a library of shared functions for CS35L41 ASoC and HDA
 - HDA codec driver (RealTek) and CS35L41 HDA driver are combined
 by using component binding, where it uses device names to find the
 components and bind to the master
 - The HDA CS35L41 driver applies pre-defined registers sequences
 for each action in playback for HDA Sound card

Changes from V5:
 - Fix build issues reported by Intel Test Bot
 - Check devm_kasprintf return
 - Add ACPI dependency to HDA drivers
V5: https://lkml.org/lkml/2021/12/16/430

Changes from V4:
 - Save index received from ACPI for latter use in DSP Support
 - Move CS35L41_DSP1_CCM_CORE_CTRL to regmap_write so doesn't
affect DSP hibernation feature
V4: https://lkml.org/lkml/2021/12/14/487

Changes from V3:
 - SPI bus driver starter added
 - Use separate modules approach instead of liking library
 - Add CSC3551 ACPI _HID for more I2C laptops
 - Removed regulators from HDA driver
 - Add note about Non-conforming _HID
V3: https://lkml.org/lkml/2021/11/23/723

Changes from V2:
 - Not an RFC
 - Create a new HDA driver for CS35L41 instead of using the ASoC one
 - Use component binding and device names to find the CS35L41 driver
 - Create a shared library for ASoC and HDA CS35L41 drivers
v2: https://lkml.org/lkml/2021/10/8/344

Lucas Tanure (9):
  ASoC: cs35l41: Convert tables to shared source code
  ASoC: cs35l41: Move cs35l41_otp_unpack to shared code
  ASoC: cs35l41: Move power initializations to reg_sequence
  ASoC: cs35l41: Create shared function for errata patches
  ASoC: cs35l41: Create shared function for setting channels
  ASoC: cs35l41: Create shared function for boost configuration
  hda: cs35l41: Add support for CS35L41 in HDA systems
  ACPI / scan: Create platform device for CLSA0100 and CSC3551 ACPI
    nodes
  ALSA: hda/realtek: Add support for Legion 7 16ACHg6 laptop

Stefan Binding (1):
  ALSA: hda/realtek: Add CS35L41 support for Thinkpad laptops

 MAINTAINERS                                   |   2 +
 drivers/acpi/scan.c                           |   3 +
 drivers/platform/x86/i2c-multi-instantiate.c  |  11 +
 include/sound/cs35l41.h                       | 739 ++++++++++++++++++
 sound/pci/hda/Kconfig                         |  29 +
 sound/pci/hda/Makefile                        |  10 +
 sound/pci/hda/cs35l41_hda.c                   | 527 +++++++++++++
 sound/pci/hda/cs35l41_hda.h                   |  69 ++
 sound/pci/hda/cs35l41_hda_i2c.c               |  66 ++
 sound/pci/hda/cs35l41_hda_spi.c               |  63 ++
 sound/pci/hda/hda_component.h                 |  20 +
 sound/pci/hda/patch_realtek.c                 | 146 ++++
 sound/soc/codecs/Kconfig                      |  11 +-
 sound/soc/codecs/Makefile                     |   4 +-
 sound/soc/codecs/cs35l41-i2c.c                |   1 -
 .../{cs35l41-tables.c => cs35l41-lib.c}       | 355 ++++++++-
 sound/soc/codecs/cs35l41-spi.c                |   1 -
 sound/soc/codecs/cs35l41.c                    | 360 +--------
 sound/soc/codecs/cs35l41.h                    | 734 -----------------
 19 files changed, 2055 insertions(+), 1096 deletions(-)
 create mode 100644 sound/pci/hda/cs35l41_hda.c
 create mode 100644 sound/pci/hda/cs35l41_hda.h
 create mode 100644 sound/pci/hda/cs35l41_hda_i2c.c
 create mode 100644 sound/pci/hda/cs35l41_hda_spi.c
 create mode 100644 sound/pci/hda/hda_component.h
 rename sound/soc/codecs/{cs35l41-tables.c => cs35l41-lib.c} (71%)

-- 
2.34.1


^ permalink raw reply	[flat|nested] 58+ messages in thread

end of thread, other threads:[~2022-10-31 14:35 UTC | newest]

Thread overview: 58+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-17 11:56 [PATCH v6 00/10] Add support for CS35L41 in HDA systems Lucas Tanure
2021-12-17 11:56 ` Lucas Tanure
2021-12-17 11:56 ` [PATCH v6 01/10] ASoC: cs35l41: Convert tables to shared source code Lucas Tanure
2021-12-17 11:56   ` Lucas Tanure
2021-12-17 11:57 ` [PATCH v6 02/10] ASoC: cs35l41: Move cs35l41_otp_unpack to shared code Lucas Tanure
2021-12-17 11:57   ` Lucas Tanure
2021-12-17 11:57 ` [PATCH v6 03/10] ASoC: cs35l41: Move power initializations to reg_sequence Lucas Tanure
2021-12-17 11:57   ` Lucas Tanure
2021-12-17 11:57 ` [PATCH v6 04/10] ASoC: cs35l41: Create shared function for errata patches Lucas Tanure
2021-12-17 11:57   ` Lucas Tanure
2021-12-17 11:57 ` [PATCH v6 05/10] ASoC: cs35l41: Create shared function for setting channels Lucas Tanure
2021-12-17 11:57   ` Lucas Tanure
2021-12-17 11:57 ` [PATCH v6 06/10] ASoC: cs35l41: Create shared function for boost configuration Lucas Tanure
2021-12-17 11:57   ` Lucas Tanure
2021-12-17 11:57 ` [PATCH v6 07/10] hda: cs35l41: Add support for CS35L41 in HDA systems Lucas Tanure
2021-12-17 11:57   ` Lucas Tanure
2022-01-05  9:58   ` Charles Keepax
2022-01-05  9:58     ` Charles Keepax
2022-01-06 12:29   ` Andy Shevchenko
2022-01-06 12:29     ` Andy Shevchenko
2022-01-10 10:19     ` Andy Shevchenko
2022-01-10 10:19       ` Andy Shevchenko
2022-01-13 16:53     ` Lucas tanure
2022-01-13 16:53       ` Lucas tanure
2022-01-13 18:13       ` Andy Shevchenko
2022-01-13 18:13         ` Andy Shevchenko
2022-01-13 18:19         ` Andy Shevchenko
2022-01-13 18:19           ` Andy Shevchenko
2022-10-31  5:38     ` Dmitry Torokhov
2022-10-31  5:38       ` Dmitry Torokhov
2022-10-31 14:34       ` Andy Shevchenko
2022-10-31 14:34         ` Andy Shevchenko
2021-12-17 11:57 ` [PATCH v6 08/10] ACPI / scan: Create platform device for CLSA0100 and CSC3551 ACPI nodes Lucas Tanure
2021-12-17 11:57   ` Lucas Tanure
2021-12-17 17:19   ` Rafael J. Wysocki
2021-12-17 17:19     ` Rafael J. Wysocki
2021-12-17 18:26     ` Hans de Goede
2021-12-17 18:26       ` Hans de Goede
2021-12-20 13:01       ` Mark Brown
2021-12-20 13:01         ` Mark Brown
2021-12-20 17:24       ` Stefan Binding
2021-12-20 17:24         ` Stefan Binding
2022-01-12 13:05         ` Lucas tanure
2022-01-12 13:05           ` Lucas tanure
2022-01-12 20:00           ` Cameron Berkenpas
2022-01-12 20:00             ` Cameron Berkenpas
2022-01-13 15:52             ` tanureal
2022-01-13 15:52               ` tanureal
2021-12-17 11:57 ` [PATCH v6 09/10] ALSA: hda/realtek: Add support for Legion 7 16ACHg6 laptop Lucas Tanure
2021-12-17 11:57   ` Lucas Tanure
2021-12-17 11:57 ` [PATCH v6 10/10] ALSA: hda/realtek: Add CS35L41 support for Thinkpad laptops Lucas Tanure
2021-12-17 11:57   ` Lucas Tanure
2021-12-31 14:39 ` (subset) [PATCH v6 00/10] Add support for CS35L41 in HDA systems Mark Brown
2021-12-31 14:39   ` Mark Brown
2022-01-04 13:07   ` Takashi Iwai
2022-01-04 13:07     ` Takashi Iwai
2022-01-05 16:32     ` Takashi Iwai
2022-01-05 16:32       ` Takashi Iwai

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.