[RFC PATCH v2 0/5] Apple Macs machine/platform ASoC driver

From: Martin Povišer
Date: Mon Jun 06 2022 - 15:20:03 EST


Hi all,

This is again RFC with a machine-level ASoC driver for recent Apple Macs
with the M1 line of chips. This time I attached the platform driver too
for good measure. What I am interested in the most is checking the overall
approach, especially on two points (both in some ways already discussed
in previous RFC [0]):

- The way the platform/machine driver handles the fact that multiple I2S
ports (now backend DAIs) can be driven by/connected to the same SERDES
unit (now in effect a frontend DAI). After previous discussion I have
transitioned to DPCM to model this. I took the opportunity of dynamic
backend/frontend routing to support speakers/headphones runtime
switching. More on this in comments at top of the machine and platform
driver.

- The way the machine driver deactivates some of the controls where
suitable, and limits volume on others. I added a new ASoC card method
to that end.

Kind regards,
Martin

[0] https://lore.kernel.org/linux-devicetree/20220331000449.41062-1-povik+lin@xxxxxxxxxxx/

Martin Povišer (5):
dt-bindings: sound: Add Apple MCA I2S transceiver
dt-bindings: sound: Add Apple Macs sound peripherals
ASoC: apple: Add MCA platform driver for Apple SoCs
ASoC: Introduce 'fixup_controls' card method
ASoC: apple: Add macaudio machine driver

.../bindings/sound/apple,macaudio.yaml | 157 +++
.../devicetree/bindings/sound/apple,mca.yaml | 102 ++
include/sound/soc-card.h | 1 +
include/sound/soc.h | 1 +
sound/soc/Kconfig | 1 +
sound/soc/Makefile | 1 +
sound/soc/apple/Kconfig | 25 +
sound/soc/apple/Makefile | 5 +
sound/soc/apple/macaudio.c | 1004 +++++++++++++++
sound/soc/apple/mca.c | 1122 +++++++++++++++++
sound/soc/soc-card.c | 6 +
sound/soc/soc-core.c | 1 +
12 files changed, 2426 insertions(+)
create mode 100644 Documentation/devicetree/bindings/sound/apple,macaudio.yaml
create mode 100644 Documentation/devicetree/bindings/sound/apple,mca.yaml
create mode 100644 sound/soc/apple/Kconfig
create mode 100644 sound/soc/apple/Makefile
create mode 100644 sound/soc/apple/macaudio.c
create mode 100644 sound/soc/apple/mca.c

--
2.33.0