[PATCH v2 0/4] Add support for an external Master Clock in the Cirrus CS4271 codec

From: Herve Codina

Date: Wed Oct 29 2025 - 05:39:31 EST


The Cirrus CS4271 codec can have its Master Clock provided by an
external clock when no crystal is used.

This series adds support for this external Master clock.

The first patch in the series is not related to the clock but fixes an
issue related to module loading and MODULE_DEVICE_TABLE() due to a
driver split between i2c part and spi part.

The next patch fixes regulator handling in component_probe() error path.

The last two patches document the Master clock in the binding and
implement this clock handling in the existing driver.

Best regards,
Hervé

Changes v1 -> v2
v1: https://lore.kernel.org/lkml/20251016130340.1442090-1-herve.codina@xxxxxxxxxxx/

- Patch 1:
Add missing MODULE_DEVICE_TABLE(spi, ...) in spi part.

- Patch 2 (new in v2)
Disable regulators in component_probe() error path

- Patch 3 (2 in v1)
Add 'Reviewed-by: Krzysztof Kozlowski'

- Patch 4 (3 in v1):
Remove fsleep() call.
Disable/enable the clock at suspend/resume.
Remove the reset line assertion on errors (not needed).

Herve Codina (4):
ASoC: cs4271: Fix cs4271 I2C and SPI drivers automatic module loading
ASoC: cs4271: Disable regulators in component_probe() error path
ASoC: dt-bindings: cirrus,cs4271: Document mclk clock
ASoC: cs4271: Add support for the external mclk

.../bindings/sound/cirrus,cs4271.yaml | 10 +++++
sound/soc/codecs/cs4271-i2c.c | 6 +++
sound/soc/codecs/cs4271-spi.c | 13 ++++++
sound/soc/codecs/cs4271.c | 42 +++++++++++++------
sound/soc/codecs/cs4271.h | 1 -
5 files changed, 59 insertions(+), 13 deletions(-)

--
2.51.0