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

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

Merge tag 'asoc-v3.15-4' into asoc-linus

ASoC: Final updates for v3.15 merge window

A few more updates from last week - use of the tdm_slot mapping from
Xiubo plus a few smaller fixes and cleanups.

# gpg: Signature made Mon 31 Mar 2014 10:49:42 BST using RSA key ID 7EA229BD
# gpg: Good signature from "Mark Brown <broonie@sirena.org.uk>"
# gpg:                 aka "Mark Brown <broonie@debian.org>"
# gpg:                 aka "Mark Brown <broonie@kernel.org>"
# gpg:                 aka "Mark Brown <broonie@tardis.ed.ac.uk>"
# gpg:                 aka "Mark Brown <broonie@linaro.org>"
# gpg:                 aka "Mark Brown <Mark.Brown@linaro.org>"
parents e9b433cf c159a850
Loading
Loading
Loading
Loading
+12 −3
Original line number Original line Diff line number Diff line
@@ -7,14 +7,23 @@ Required properties:
				  required register is
				  required register is
				   SRU/ADG/SSI      if generation1
				   SRU/ADG/SSI      if generation1
				   SRU/ADG/SSIU/SSI if generation2
				   SRU/ADG/SSIU/SSI if generation2
- rcar_sound,ssi		: SSI subnode
- rcar_sound,ssi		: Should contain SSI feature.
- rcar_sound,scu		: SCU subnode
				  The number of SSI subnode should be same as HW.
- rcar_sound,dai		: DAI subnode
				  see below for detail.
- rcar_sound,src		: Should contain SRC feature.
				  The number of SRC subnode should be same as HW.
				  see below for detail.
- rcar_sound,dai		: DAI contents.
				  The number of DAI subnode should be same as HW.
				  see below for detail.


SSI subnode properties:
SSI subnode properties:
- interrupts			: Should contain SSI interrupt for PIO transfer
- interrupts			: Should contain SSI interrupt for PIO transfer
- shared-pin			: if shared clock pin
- shared-pin			: if shared clock pin


SRC subnode properties:
no properties at this point

DAI subnode properties:
DAI subnode properties:
- playback			: list of playback modules
- playback			: list of playback modules
- capture			: list of capture  modules
- capture			: list of capture  modules
+41 −1
Original line number Original line Diff line number Diff line
@@ -23,6 +23,11 @@ Optional properties:


Required subnodes:
Required subnodes:


- simple-audio-card,dai-link		: container for the CPU and CODEC sub-nodes
					  This container may be omitted when the
					  card has only one DAI link.
					  See the examples.

- simple-audio-card,cpu			: CPU   sub-node
- simple-audio-card,cpu			: CPU   sub-node
- simple-audio-card,codec		: CODEC sub-node
- simple-audio-card,codec		: CODEC sub-node


@@ -49,7 +54,7 @@ Note:
   CPU and CODEC sides as we need to keep the settings identical for both ends
   CPU and CODEC sides as we need to keep the settings identical for both ends
   of the link.
   of the link.


Example:
Example 1 - single DAI link:


sound {
sound {
	compatible = "simple-audio-card";
	compatible = "simple-audio-card";
@@ -94,3 +99,38 @@ sh_fsi2: sh_fsi2@ec230000 {
	interrupt-parent = <&gic>;
	interrupt-parent = <&gic>;
	interrupts = <0 146 0x4>;
	interrupts = <0 146 0x4>;
};
};

Example 2 - many DAI links:

sound {
	compatible = "simple-audio-card";
	simple-audio-card,name = "Cubox Audio";
	simple-audio-card,format = "i2s";

	simple-audio-card,dai-link@0 {		/* I2S - HDMI */
		simple-audio-card,cpu {
			sound-dai = <&audio1 0>;
		};
		simple-audio-card,codec {
			sound-dai = <&tda998x 0>;
		};
	};

	simple-audio-card,dai-link@1 {		/* S/PDIF - HDMI */
		simple-audio-card,cpu {
			sound-dai = <&audio1 1>;
		};
		simple-audio-card,codec {
			sound-dai = <&tda998x 1>;
		};
	};

	simple-audio-card,dai-link@2 {		/* S/PDIF - S/PDIF */
		simple-audio-card,cpu {
			sound-dai = <&audio1 1>;
		};
		simple-audio-card,codec {
			sound-dai = <&spdif_codec>;
		};
	};
};
+5 −11
Original line number Original line Diff line number Diff line
@@ -429,14 +429,12 @@ static struct asoc_simple_card_info rsnd_card_info[] = {
		.card		= "SSI56-AK4643",
		.card		= "SSI56-AK4643",
		.codec		= "ak4642-codec.0-0012",
		.codec		= "ak4642-codec.0-0012",
		.platform	= "rcar_sound",
		.platform	= "rcar_sound",
		.daifmt		= SND_SOC_DAIFMT_LEFT_J,
		.daifmt		= SND_SOC_DAIFMT_LEFT_J | SND_SOC_DAIFMT_CBM_CFM,
		.cpu_dai = {
		.cpu_dai = {
			.name	= "rsnd-dai.0",
			.name	= "rsnd-dai.0",
			.fmt	= SND_SOC_DAIFMT_CBS_CFS,
		},
		},
		.codec_dai = {
		.codec_dai = {
			.name	= "ak4642-hifi",
			.name	= "ak4642-hifi",
			.fmt	= SND_SOC_DAIFMT_CBM_CFM,
			.sysclk	= 11289600,
			.sysclk	= 11289600,
		},
		},
	},
	},
@@ -446,10 +444,9 @@ static struct asoc_simple_card_info rsnd_card_info[] = {
		.card		= "SSI3-AK4554(playback)",
		.card		= "SSI3-AK4554(playback)",
		.codec		= "ak4554-adc-dac.0",
		.codec		= "ak4554-adc-dac.0",
		.platform	= "rcar_sound",
		.platform	= "rcar_sound",
		.daifmt		= SND_SOC_DAIFMT_CBS_CFS | SND_SOC_DAIFMT_RIGHT_J,
		.cpu_dai = {
		.cpu_dai = {
			.name	= "rsnd-dai.1",
			.name	= "rsnd-dai.1",
			.fmt	= SND_SOC_DAIFMT_CBM_CFM |
				  SND_SOC_DAIFMT_RIGHT_J,
		},
		},
		.codec_dai = {
		.codec_dai = {
			.name	= "ak4554-hifi",
			.name	= "ak4554-hifi",
@@ -461,10 +458,9 @@ static struct asoc_simple_card_info rsnd_card_info[] = {
		.card		= "SSI4-AK4554(capture)",
		.card		= "SSI4-AK4554(capture)",
		.codec		= "ak4554-adc-dac.0",
		.codec		= "ak4554-adc-dac.0",
		.platform	= "rcar_sound",
		.platform	= "rcar_sound",
		.daifmt		= SND_SOC_DAIFMT_CBS_CFS | SND_SOC_DAIFMT_LEFT_J,
		.cpu_dai = {
		.cpu_dai = {
			.name	= "rsnd-dai.2",
			.name	= "rsnd-dai.2",
			.fmt	= SND_SOC_DAIFMT_CBM_CFM |
				  SND_SOC_DAIFMT_LEFT_J,
		},
		},
		.codec_dai = {
		.codec_dai = {
			.name	= "ak4554-hifi",
			.name	= "ak4554-hifi",
@@ -476,10 +472,9 @@ static struct asoc_simple_card_info rsnd_card_info[] = {
		.card		= "SSI7-AK4554(playback)",
		.card		= "SSI7-AK4554(playback)",
		.codec		= "ak4554-adc-dac.1",
		.codec		= "ak4554-adc-dac.1",
		.platform	= "rcar_sound",
		.platform	= "rcar_sound",
		.daifmt		= SND_SOC_DAIFMT_CBS_CFS | SND_SOC_DAIFMT_RIGHT_J,
		.cpu_dai = {
		.cpu_dai = {
			.name	= "rsnd-dai.3",
			.name	= "rsnd-dai.3",
			.fmt	= SND_SOC_DAIFMT_CBM_CFM |
				  SND_SOC_DAIFMT_RIGHT_J,
		},
		},
		.codec_dai = {
		.codec_dai = {
			.name	= "ak4554-hifi",
			.name	= "ak4554-hifi",
@@ -491,10 +486,9 @@ static struct asoc_simple_card_info rsnd_card_info[] = {
		.card		= "SSI8-AK4554(capture)",
		.card		= "SSI8-AK4554(capture)",
		.codec		= "ak4554-adc-dac.1",
		.codec		= "ak4554-adc-dac.1",
		.platform	= "rcar_sound",
		.platform	= "rcar_sound",
		.daifmt		= SND_SOC_DAIFMT_CBS_CFS | SND_SOC_DAIFMT_LEFT_J,
		.cpu_dai = {
		.cpu_dai = {
			.name	= "rsnd-dai.4",
			.name	= "rsnd-dai.4",
			.fmt	= SND_SOC_DAIFMT_CBM_CFM |
				  SND_SOC_DAIFMT_LEFT_J,
		},
		},
		.codec_dai = {
		.codec_dai = {
			.name	= "ak4554-hifi",
			.name	= "ak4554-hifi",
+1 −1
Original line number Original line Diff line number Diff line
@@ -142,7 +142,7 @@ struct snd_soc_dai_ops {
	 * Called by soc_card drivers, normally in their hw_params.
	 * Called by soc_card drivers, normally in their hw_params.
	 */
	 */
	int (*set_fmt)(struct snd_soc_dai *dai, unsigned int fmt);
	int (*set_fmt)(struct snd_soc_dai *dai, unsigned int fmt);
	int (*of_xlate_tdm_slot_mask)(unsigned int slots,
	int (*xlate_tdm_slot_mask)(unsigned int slots,
		unsigned int *tx_mask, unsigned int *rx_mask);
		unsigned int *tx_mask, unsigned int *rx_mask);
	int (*set_tdm_slot)(struct snd_soc_dai *dai,
	int (*set_tdm_slot)(struct snd_soc_dai *dai,
		unsigned int tx_mask, unsigned int rx_mask,
		unsigned int tx_mask, unsigned int rx_mask,
+2 −0
Original line number Original line Diff line number Diff line
@@ -13,6 +13,7 @@ config SND_SOC_FSL_SPDIF
config SND_SOC_FSL_ESAI
config SND_SOC_FSL_ESAI
	tristate
	tristate
	select REGMAP_MMIO
	select REGMAP_MMIO
	select SND_SOC_FSL_UTILS


config SND_SOC_FSL_UTILS
config SND_SOC_FSL_UTILS
	tristate
	tristate
@@ -120,6 +121,7 @@ if SND_IMX_SOC


config SND_SOC_IMX_SSI
config SND_SOC_IMX_SSI
	tristate
	tristate
	select SND_SOC_FSL_UTILS


config SND_SOC_IMX_PCM_FIQ
config SND_SOC_IMX_PCM_FIQ
	tristate
	tristate
Loading