Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e7177999 authored by Mark Brown's avatar Mark Brown
Browse files

Merge remote-tracking branches 'asoc/topic/fsl', 'asoc/topic/fsl-asrc',...

Merge remote-tracking branches 'asoc/topic/fsl', 'asoc/topic/fsl-asrc', 'asoc/topic/fsl-spdif' and 'asoc/topic/imx-audmux' into asoc-next
Loading
Loading
Loading
Loading
+60 −0
Original line number Original line Diff line number Diff line
Freescale Asynchronous Sample Rate Converter (ASRC) Controller

The Asynchronous Sample Rate Converter (ASRC) converts the sampling rate of a
signal associated with an input clock into a signal associated with a different
output clock. The driver currently works as a Front End of DPCM with other Back
Ends Audio controller such as ESAI, SSI and SAI. It has three pairs to support
three substreams within totally 10 channels.

Required properties:

  - compatible		: Contains "fsl,imx35-asrc" or "fsl,imx53-asrc".

  - reg			: Offset and length of the register set for the device.

  - interrupts		: Contains the spdif interrupt.

  - dmas		: Generic dma devicetree binding as described in
			  Documentation/devicetree/bindings/dma/dma.txt.

  - dma-names		: Contains "rxa", "rxb", "rxc", "txa", "txb" and "txc".

  - clocks		: Contains an entry for each entry in clock-names.

  - clock-names		: Contains the following entries
	"mem"		  Peripheral access clock to access registers.
	"ipg"		  Peripheral clock to driver module.
	"asrck_<0-f>"	  Clock sources for input and output clock.

   - big-endian		: If this property is absent, the little endian mode
			  will be in use as default. Otherwise, the big endian
			  mode will be in use for all the device registers.

   - fsl,asrc-rate	: Defines a mutual sample rate used by DPCM Back Ends.

   - fsl,asrc-width	: Defines a mutual sample width used by DPCM Back Ends.

Example:

asrc: asrc@02034000 {
	compatible = "fsl,imx53-asrc";
	reg = <0x02034000 0x4000>;
	interrupts = <0 50 IRQ_TYPE_LEVEL_HIGH>;
	clocks = <&clks 107>, <&clks 107>, <&clks 0>,
	       <&clks 0>, <&clks 0>, <&clks 0>, <&clks 0>,
	       <&clks 0>, <&clks 0>, <&clks 0>, <&clks 0>,
	       <&clks 0>, <&clks 0>, <&clks 0>, <&clks 0>,
	       <&clks 107>, <&clks 0>, <&clks 0>;
	clock-names = "mem", "ipg", "asrck0",
		"asrck_1", "asrck_2", "asrck_3", "asrck_4",
		"asrck_5", "asrck_6", "asrck_7", "asrck_8",
		"asrck_9", "asrck_a", "asrck_b", "asrck_c",
		"asrck_d", "asrck_e", "asrck_f";
	dmas = <&sdma 17 23 1>, <&sdma 18 23 1>, <&sdma 19 23 1>,
	     <&sdma 20 23 1>, <&sdma 21 23 1>, <&sdma 22 23 1>;
	dma-names = "rxa", "rxb", "rxc",
		"txa", "txb", "txc";
	fsl,asrc-rate  = <48000>;
	fsl,asrc-width = <16>;
	status = "okay";
};
+1 −0
Original line number Original line Diff line number Diff line
@@ -50,6 +50,7 @@ enum imx_dma_prio {


struct imx_dma_data {
struct imx_dma_data {
	int dma_request; /* DMA request line */
	int dma_request; /* DMA request line */
	int dma_request2; /* secondary DMA request line */
	enum sdma_peripheral_type peripheral_type;
	enum sdma_peripheral_type peripheral_type;
	int priority;
	int priority;
};
};
+14 −2
Original line number Original line Diff line number Diff line
@@ -2,9 +2,20 @@ menu "SoC Audio for Freescale CPUs"


comment "Common SoC Audio options for Freescale CPUs:"
comment "Common SoC Audio options for Freescale CPUs:"


config SND_SOC_FSL_ASRC
	tristate "Asynchronous Sample Rate Converter (ASRC) module support"
	select REGMAP_MMIO
	select SND_SOC_GENERIC_DMAENGINE_PCM
	help
	  Say Y if you want to add Asynchronous Sample Rate Converter (ASRC)
	  support for the Freescale CPUs.
	  This option is only useful for out-of-tree drivers since
	  in-tree drivers select it automatically.

config SND_SOC_FSL_SAI
config SND_SOC_FSL_SAI
	tristate "Synchronous Audio Interface (SAI) module support"
	tristate "Synchronous Audio Interface (SAI) module support"
	select REGMAP_MMIO
	select REGMAP_MMIO
	select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
	select SND_SOC_GENERIC_DMAENGINE_PCM
	select SND_SOC_GENERIC_DMAENGINE_PCM
	help
	help
	  Say Y if you want to add Synchronous Audio Interface (SAI)
	  Say Y if you want to add Synchronous Audio Interface (SAI)
@@ -15,7 +26,7 @@ config SND_SOC_FSL_SAI
config SND_SOC_FSL_SSI
config SND_SOC_FSL_SSI
	tristate "Synchronous Serial Interface module support"
	tristate "Synchronous Serial Interface module support"
	select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
	select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
	select SND_SOC_IMX_PCM_FIQ if SND_IMX_SOC != n && ARCH_MXC
	select SND_SOC_IMX_PCM_FIQ if SND_IMX_SOC != n && (MXC_TZIC || MXC_AVIC)
	select REGMAP_MMIO
	select REGMAP_MMIO
	help
	help
	  Say Y if you want to add Synchronous Serial Interface (SSI)
	  Say Y if you want to add Synchronous Serial Interface (SSI)
@@ -27,7 +38,7 @@ config SND_SOC_FSL_SPDIF
	tristate "Sony/Philips Digital Interface module support"
	tristate "Sony/Philips Digital Interface module support"
	select REGMAP_MMIO
	select REGMAP_MMIO
	select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
	select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
	select SND_SOC_IMX_PCM_FIQ if SND_IMX_SOC != n && ARCH_MXC
	select SND_SOC_IMX_PCM_FIQ if SND_IMX_SOC != n && (MXC_TZIC || MXC_AVIC)
	help
	help
	  Say Y if you want to add Sony/Philips Digital Interface (SPDIF)
	  Say Y if you want to add Sony/Philips Digital Interface (SPDIF)
	  support for the Freescale CPUs.
	  support for the Freescale CPUs.
@@ -37,6 +48,7 @@ config SND_SOC_FSL_SPDIF
config SND_SOC_FSL_ESAI
config SND_SOC_FSL_ESAI
	tristate "Enhanced Serial Audio Interface (ESAI) module support"
	tristate "Enhanced Serial Audio Interface (ESAI) module support"
	select REGMAP_MMIO
	select REGMAP_MMIO
	select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
	select SND_SOC_FSL_UTILS
	select SND_SOC_FSL_UTILS
	help
	help
	  Say Y if you want to add Enhanced Synchronous Audio Interface
	  Say Y if you want to add Enhanced Synchronous Audio Interface
+2 −0
Original line number Original line Diff line number Diff line
@@ -11,6 +11,7 @@ snd-soc-p1022-rdk-objs := p1022_rdk.o
obj-$(CONFIG_SND_SOC_P1022_RDK) += snd-soc-p1022-rdk.o
obj-$(CONFIG_SND_SOC_P1022_RDK) += snd-soc-p1022-rdk.o


# Freescale SSI/DMA/SAI/SPDIF Support
# Freescale SSI/DMA/SAI/SPDIF Support
snd-soc-fsl-asrc-objs := fsl_asrc.o fsl_asrc_dma.o
snd-soc-fsl-sai-objs := fsl_sai.o
snd-soc-fsl-sai-objs := fsl_sai.o
snd-soc-fsl-ssi-y := fsl_ssi.o
snd-soc-fsl-ssi-y := fsl_ssi.o
snd-soc-fsl-ssi-$(CONFIG_DEBUG_FS) += fsl_ssi_dbg.o
snd-soc-fsl-ssi-$(CONFIG_DEBUG_FS) += fsl_ssi_dbg.o
@@ -18,6 +19,7 @@ snd-soc-fsl-spdif-objs := fsl_spdif.o
snd-soc-fsl-esai-objs := fsl_esai.o
snd-soc-fsl-esai-objs := fsl_esai.o
snd-soc-fsl-utils-objs := fsl_utils.o
snd-soc-fsl-utils-objs := fsl_utils.o
snd-soc-fsl-dma-objs := fsl_dma.o
snd-soc-fsl-dma-objs := fsl_dma.o
obj-$(CONFIG_SND_SOC_FSL_ASRC) += snd-soc-fsl-asrc.o
obj-$(CONFIG_SND_SOC_FSL_SAI) += snd-soc-fsl-sai.o
obj-$(CONFIG_SND_SOC_FSL_SAI) += snd-soc-fsl-sai.o
obj-$(CONFIG_SND_SOC_FSL_SSI) += snd-soc-fsl-ssi.o
obj-$(CONFIG_SND_SOC_FSL_SSI) += snd-soc-fsl-ssi.o
obj-$(CONFIG_SND_SOC_FSL_SPDIF) += snd-soc-fsl-spdif.o
obj-$(CONFIG_SND_SOC_FSL_SPDIF) += snd-soc-fsl-spdif.o
+995 −0

File added.

Preview size limit exceeded, changes collapsed.

Loading