linux/sound/soc/pxa
Lubomir Rintel a97e384ba7
ASoC: mmp-sspa: Add Device Tree support
This makes it possible to select CONFIG_SND_MMP_SOC_SSPA directly, as
opposed to via CONFIG_SND_MMP_SOC, and for the driver to bind to a device
tree node. That makes the driver useful on Device Tree based systems,
with audio-graph-card or simple-card.

The aforementioned card drivers control the master clock themselves and
don't call the set_dai_sysclk() or set_dai_pll(), thus the respective
handlers don't serve any purpose anymore. Instead, they return early and
the hw_params() handler sets the appropriate bitclk itself.

The register range is split into two -- for the RX block and for the TX
block. On a MMP2 there are two pairs of them; the first one has the
clock controller in the middle, while the second just has a hole:

  0xd42a0c00 - 0xd42a0c30 RX1
  0xd42a0c30 - 0xd42a0c40 Clocks
  0xd42a0c80 - 0xd42a0cb0 TX1
  0xd42a0d00 - 0xd42a0d30 RX2
  0xd42a0d80 - 0xd42a0cb0 TX2

For this reason, mmp_sspa_write_reg() and mmp_sspa_read_reg() are
replaced with direct calls to I/O routines.

Tested on a MMP2-based OLPC XO-1.75 laptop with rt5631 coded, mmp_tdma DMA
engine and MMP2 clock controller glued together with audio-graph-card.

Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
Link: https://lore.kernel.org/r/20200511210134.1224532-12-lkundrak@v3.sk
Signed-off-by: Mark Brown <broonie@kernel.org>
2020-05-19 20:52:49 +01:00
..
brownstone.c ASoC: pxa: use asoc_rtd_to_cpu() / asoc_rtd_to_codec() macro for DAI pointer 2020-03-27 14:44:43 +00:00
corgi.c ASoC: pxa: use asoc_rtd_to_cpu() / asoc_rtd_to_codec() macro for DAI pointer 2020-03-27 14:44:43 +00:00
e740_wm9705.c Linux 5.2-rc6 2019-06-26 12:39:34 +01:00
e750_wm9705.c Linux 5.2-rc6 2019-06-26 12:39:34 +01:00
e800_wm9712.c Linux 5.2-rc6 2019-06-26 12:39:34 +01:00
em-x270.c Linux 5.2-rc6 2019-06-26 12:39:34 +01:00
hx4700.c ASoC: pxa: use asoc_rtd_to_cpu() / asoc_rtd_to_codec() macro for DAI pointer 2020-03-27 14:44:43 +00:00
imote2.c ASoC: pxa: use asoc_rtd_to_cpu() / asoc_rtd_to_codec() macro for DAI pointer 2020-03-27 14:44:43 +00:00
Kconfig ASoC: mmp-sspa: Add Device Tree support 2020-05-19 20:52:49 +01:00
magician.c Merge series "ASoC: remove rtd->cpu/codec_dai{s}" from Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>: 2020-03-27 15:33:10 +00:00
Makefile ASoC: eliminate left-over from Raumfeld machine driver removal 2019-01-07 16:58:19 +00:00
mioa701_wm9713.c ASoC: pxa: use asoc_rtd_to_cpu() / asoc_rtd_to_codec() macro for DAI pointer 2020-03-27 14:44:43 +00:00
mmp-pcm.c ASoC: pxa: use asoc_rtd_to_cpu() / asoc_rtd_to_codec() macro for DAI pointer 2020-03-27 14:44:43 +00:00
mmp-sspa.c ASoC: mmp-sspa: Add Device Tree support 2020-05-19 20:52:49 +01:00
mmp-sspa.h ASoC: mmp-sspa: Add Device Tree support 2020-05-19 20:52:49 +01:00
palm27x.c Linux 5.2-rc6 2019-06-26 12:39:34 +01:00
poodle.c ASoC: pxa: use asoc_rtd_to_cpu() / asoc_rtd_to_codec() macro for DAI pointer 2020-03-27 14:44:43 +00:00
pxa2xx-ac97.c ASoC: soc-core: remove bus_control 2020-01-21 17:07:08 +00:00
pxa2xx-i2s.c ASoC: pxa: use snd_soc_xxx_active() 2020-05-18 16:15:12 +01:00
pxa2xx-i2s.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
pxa2xx-pcm.c ASoC: pxa: Drop superfluous ioctl PCM ops 2019-12-11 15:58:04 +00:00
pxa-ssp.c ASoC: pxa: use snd_soc_xxx_active() 2020-05-18 16:15:12 +01:00
pxa-ssp.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
spitz.c ASoC: pxa: use asoc_rtd_to_cpu() / asoc_rtd_to_codec() macro for DAI pointer 2020-03-27 14:44:43 +00:00
tosa.c Linux 5.2-rc6 2019-06-26 12:39:34 +01:00
ttc-dkb.c ASoC: pxa: use asoc_rtd_to_cpu() / asoc_rtd_to_codec() macro for DAI pointer 2020-03-27 14:44:43 +00:00
z2.c ASoC: pxa: use asoc_rtd_to_cpu() / asoc_rtd_to_codec() macro for DAI pointer 2020-03-27 14:44:43 +00:00
zylonite.c ASoC: pxa: use asoc_rtd_to_cpu() / asoc_rtd_to_codec() macro for DAI pointer 2020-03-27 14:44:43 +00:00