Skip to content

Commit

Permalink
ASoC: meson: add tdm formatter base driver
Browse files Browse the repository at this point in the history
Add Amlogic's axg TDM core driver. On this SoC, tdm is bit more
complex than usual, mainly because the different TDM input decoders can
be attached to any of TDM pad interface, including the output pads.

For the this, TDM on this SoC is modeled like this:
- TDM interface provides the DAIs the codecs will be attached to.
  The main responsibility of this driver is to manage the pad format
  and the TDM clock rates.
- TDM Formatters: These are the entities which are actually dealing with
  the TDM signal. TDMOUT produce a TDM signal from the audio sample
  provided by FRDDR using the clocks provided the TDM interface. TDMIN
  feeds TODDR with audio sample using the clocks and TDM signal provided
  by the TDM Interface.
- TDM Streams: This provides the link between 1 DAI stream of the TDM
  interface and one (or more) TDM formatters.

This driver provides the TDM formatter and TDM stream operations.

Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
  • Loading branch information
jbrun3t authored and broonie committed Jul 20, 2018
1 parent 9e960c0 commit 1a11d88
Show file tree
Hide file tree
Showing 5 changed files with 500 additions and 0 deletions.
4 changes: 4 additions & 0 deletions sound/soc/meson/Kconfig
Expand Up @@ -19,6 +19,10 @@ config SND_MESON_AXG_TODDR
Select Y or M to add support for the frontend capture interfaces
embedded in the Amlogic AXG SoC family

config SND_MESON_AXG_TDM_FORMATTER
tristate
select REGMAP_MMIO

config SND_MESON_AXG_SPDIFOUT
tristate "Amlogic AXG SPDIF Output Support"
imply SND_SOC_SPDIF
Expand Down
2 changes: 2 additions & 0 deletions sound/soc/meson/Makefile
Expand Up @@ -3,9 +3,11 @@
snd-soc-meson-axg-fifo-objs := axg-fifo.o
snd-soc-meson-axg-frddr-objs := axg-frddr.o
snd-soc-meson-axg-toddr-objs := axg-toddr.o
snd-soc-meson-axg-tdm-formatter-objs := axg-tdm-formatter.o
snd-soc-meson-axg-spdifout-objs := axg-spdifout.o

obj-$(CONFIG_SND_MESON_AXG_FIFO) += snd-soc-meson-axg-fifo.o
obj-$(CONFIG_SND_MESON_AXG_FRDDR) += snd-soc-meson-axg-frddr.o
obj-$(CONFIG_SND_MESON_AXG_TODDR) += snd-soc-meson-axg-toddr.o
obj-$(CONFIG_SND_MESON_AXG_TDM_FORMATTER) += snd-soc-meson-axg-tdm-formatter.o
obj-$(CONFIG_SND_MESON_AXG_SPDIFOUT) += snd-soc-meson-axg-spdifout.o

0 comments on commit 1a11d88

Please sign in to comment.