This set of patches provides support for using the Cirrus Logic Lochnagar audio development platform plus Cirrus Logic Madera/Arizona codecs with the simple-card machine driver and a Raspberry Pi4. The ultimate aim is to provide the dts file but some updates are needed to the simple-card machine driver.
Patches are needed to simple-card to enable support for setting the component sysclks and plls. The codec sysclks and plls cannot be placed under the clock framwork because they are I2C/SPI-connected peripherals and access to the registers would cause a nested get of the I2C/SPI bus clock. The clock framework does not support this and it would result in a deadlock.
Richard Fitzgerald (7): of: base: Add of_count_phandle_with_fixed_args() ASoC: simple-card: Add plls and sysclks DT schema ASoC: simple-card: Support setting component plls and sysclks ASoC: arizona: Allow codecs to be selected from kernel config ASoC: madera: Allow codecs to be selected from kernel config ARM: dts: Add dts for Raspberry Pi 4 + Cirrus Logic Lochnagar2 MAINTAINERS: Add dts for Cirrus Logic Lochnagar on RPi4
.../bindings/sound/simple-card.yaml | 56 + MAINTAINERS | 1 + arch/arm/boot/dts/Makefile | 1 + .../dts/bcm2711-rpi4b-cirrus-lochnagar.dts | 1296 +++++++++++++++++ drivers/of/base.c | 42 + include/linux/of.h | 9 + include/sound/simple_card_utils.h | 24 + sound/soc/codecs/Kconfig | 18 +- sound/soc/generic/simple-card-utils.c | 184 +++ sound/soc/generic/simple-card.c | 14 +- 10 files changed, 1635 insertions(+), 10 deletions(-) create mode 100644 arch/arm/boot/dts/bcm2711-rpi4b-cirrus-lochnagar.dts