[PATCH v2 0/4] ASoC: amd: acp: Add sound support for a line of HUAWEI laptops

From: Marian Postevca
Date: Thu Aug 24 2023 - 17:02:32 EST


This series adds support for a line of HUAWEI laptops with
AMD CPUs that connect using the ACP3x module to a ES8336 CODEC.

The CODEC driver must be extended to support the S32 LE format
and the MCLK div by 2 option. MCLK div by 2 is needed for one specific
SKU, which uses a 48Mhz MCLK, which seems to be too high of a frequency
for the CODEC and must be divided by 2.

The acp legacy driver must also be extended by using callbacks so that
the more complicated handling of this specific CODEC can be moved
outside the more generic ACP code.

Changes in v2:

- Removed patch 4: "ASoC: amd: acp: Improve support for speaker
power events". May be resubmitted separately.
- Split the first commit that enabled support for S32 LE format and
the MCLK div by 2 option into two separate commits.
- Removed the MCLK div by 2 DT property that was previously enabled by
the machine driver. Now it's enabled by the CODEC driver if the MCLK
frequency is equal or greater than 48Mhz.
- Used normal conditional statements.
- Removed constraint rates from the machine driver, the CODEC should be
able to set them.
- Moved the DAI format configuration.
- Uncoupled the speaker and headphone GPIOs. Now they can be handled
independently

Marian Postevca (4):
ASoC: es8316: Enable support for S32 LE format
ASoC: es8316: Enable support for MCLK div by 2
ASoC: amd: acp: Add support for splitting the codec specific code from
the ACP driver
ASoC: amd: acp: Add machine driver that enables sound for systems with
a ES8336 codec

sound/soc/amd/acp-config.c | 70 +++
sound/soc/amd/acp/Makefile | 2 +-
sound/soc/amd/acp/acp-legacy-mach.c | 102 +++-
sound/soc/amd/acp/acp-mach-common.c | 8 +
sound/soc/amd/acp/acp-mach.h | 67 +++
sound/soc/amd/acp/acp-renoir.c | 4 +
sound/soc/amd/acp/acp3x-es83xx/acp3x-es83xx.c | 449 ++++++++++++++++++
sound/soc/amd/acp/acp3x-es83xx/acp3x-es83xx.h | 12 +
sound/soc/codecs/es8316.c | 22 +-
sound/soc/codecs/es8316.h | 3 +
10 files changed, 724 insertions(+), 15 deletions(-)
create mode 100644 sound/soc/amd/acp/acp3x-es83xx/acp3x-es83xx.c
create mode 100644 sound/soc/amd/acp/acp3x-es83xx/acp3x-es83xx.h

--
2.41.0