mirror of
https://github.com/torvalds/linux
synced 2024-11-05 18:23:50 +00:00
a97e384ba7
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> |
||
---|---|---|
.. | ||
brownstone.c | ||
corgi.c | ||
e740_wm9705.c | ||
e750_wm9705.c | ||
e800_wm9712.c | ||
em-x270.c | ||
hx4700.c | ||
imote2.c | ||
Kconfig | ||
magician.c | ||
Makefile | ||
mioa701_wm9713.c | ||
mmp-pcm.c | ||
mmp-sspa.c | ||
mmp-sspa.h | ||
palm27x.c | ||
poodle.c | ||
pxa-ssp.c | ||
pxa-ssp.h | ||
pxa2xx-ac97.c | ||
pxa2xx-i2s.c | ||
pxa2xx-i2s.h | ||
pxa2xx-pcm.c | ||
spitz.c | ||
tosa.c | ||
ttc-dkb.c | ||
z2.c | ||
zylonite.c |