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

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

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

ASoC: Updates for v3.15

A few more updates for the merge window:

 - Fixes for the simple-card DAI format DT mess.
 - A new driver for Cirrus cs42xx8 devices.
 - DT support for a couple more devices.
 - A revert of a previous buggy fix for soc-pcm, plus a few more fixes
   and cleanups.

# gpg: Signature made Sun 23 Mar 2014 16:56:11 GMT 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 f7cf71e3 e090d5b6
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -11,14 +11,17 @@ Mandatory properties:
 * marvell,audio-controller: a phandle that points to the audio
   controller of the Armada 370 SoC.

 * marvell,audio-codec: a phandle that points to the analog audio
   codec connected to the Armada 370 SoC.
 * marvell,audio-codec: a set of three phandles that points to:

    1/ the analog audio codec connected to the Armada 370 SoC
    2/ the S/PDIF transceiver
    3/ the S/PDIF receiver

Example:

	sound {
	      compatible = "marvell,a370db-audio";
	      marvell,audio-controller = <&audio_controller>;
	      marvell,audio-codec = <&audio_codec>;
	      marvell,audio-codec = <&audio_codec &spdif_out &spdif_in>;
	      status = "okay";
	};
+28 −0
Original line number Diff line number Diff line
CS42448/CS42888 audio CODEC

Required properties:

  - compatible : must contain one of "cirrus,cs42448" and "cirrus,cs42888"

  - reg : the I2C address of the device for I2C

  - clocks : a list of phandles + clock-specifiers, one for each entry in
    clock-names

  - clock-names : must contain "mclk"

  - VA-supply, VD-supply, VLS-supply, VLC-supply: power supplies for the device,
    as covered in Documentation/devicetree/bindings/regulator/regulator.txt

Example:

codec: cs42888@48 {
	compatible = "cirrus,cs42888";
	reg = <0x48>;
	clocks = <&codec_mclk 0>;
	clock-names = "mclk";
	VA-supply = <&reg_audio>;
	VD-supply = <&reg_audio>;
	VLS-supply = <&reg_audio>;
	VLC-supply = <&reg_audio>;
};
+96 −0
Original line number Diff line number Diff line
Renesas R-Car sound

Required properties:
- compatible			: "renesas,rcar_sound-gen1" if generation1
				  "renesas,rcar_sound-gen2" if generation2
- reg				: Should contain the register physical address.
				  required register is
				   SRU/ADG/SSI      if generation1
				   SRU/ADG/SSIU/SSI if generation2
- rcar_sound,ssi		: SSI subnode
- rcar_sound,scu		: SCU subnode
- rcar_sound,dai		: DAI subnode

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

DAI subnode properties:
- playback			: list of playback modules
- capture			: list of capture  modules

Example:

rcar_sound: rcar_sound@0xffd90000 {
	#sound-dai-cells = <1>;
	compatible = "renesas,rcar_sound-gen2";
	reg =	<0 0xec500000 0 0x1000>, /* SCU */
		<0 0xec5a0000 0 0x100>,  /* ADG */
		<0 0xec540000 0 0x1000>, /* SSIU */
		<0 0xec541000 0 0x1280>; /* SSI */

	rcar_sound,src {
		src0: src@0 { };
		src1: src@1 { };
		src2: src@2 { };
		src3: src@3 { };
		src4: src@4 { };
		src5: src@5 { };
		src6: src@6 { };
		src7: src@7 { };
		src8: src@8 { };
		src9: src@9 { };
	};

	rcar_sound,ssi {
		ssi0: ssi@0 {
			interrupts = <0 370 IRQ_TYPE_LEVEL_HIGH>;
		};
		ssi1: ssi@1 {
			interrupts = <0 371 IRQ_TYPE_LEVEL_HIGH>;
		};
		ssi2: ssi@2 {
			interrupts = <0 372 IRQ_TYPE_LEVEL_HIGH>;
		};
		ssi3: ssi@3 {
			interrupts = <0 373 IRQ_TYPE_LEVEL_HIGH>;
		};
		ssi4: ssi@4 {
			interrupts = <0 374 IRQ_TYPE_LEVEL_HIGH>;
		};
		ssi5: ssi@5 {
			interrupts = <0 375 IRQ_TYPE_LEVEL_HIGH>;
		};
		ssi6: ssi@6 {
			interrupts = <0 376 IRQ_TYPE_LEVEL_HIGH>;
		};
		ssi7: ssi@7 {
			interrupts = <0 377 IRQ_TYPE_LEVEL_HIGH>;
		};
		ssi8: ssi@8 {
			interrupts = <0 378 IRQ_TYPE_LEVEL_HIGH>;
		};
		ssi9: ssi@9 {
			interrupts = <0 379 IRQ_TYPE_LEVEL_HIGH>;
		};
	};

	rcar_sound,dai {
		dai0 {
			playback = <&ssi5 &src5>;
			capture  = <&ssi6>;
		};
		dai1 {
			playback = <&ssi3>;
		};
		dai2 {
			capture  = <&ssi4>;
		};
		dai3 {
			playback = <&ssi7>;
		};
		dai4 {
			capture  = <&ssi8>;
		};
	};
};
+6 −0
Original line number Diff line number Diff line
@@ -43,6 +43,12 @@ Optional CPU/CODEC subnodes properties:
					  clock node (= common clock), or "system-clock-frequency"
					  (if system doens't support common clock)

Note:
 * For 'format', 'frame-master', 'bitclock-master', 'bitclock-inversion' and
   'frame-inversion', the simple card will use the settings of CODEC for both
   CPU and CODEC sides as we need to keep the settings identical for both ends
   of the link.

Example:

sound {
+1 −3
Original line number Diff line number Diff line
@@ -988,14 +988,12 @@ static struct asoc_simple_card_info fsi_wm8978_info = {
	.card		= "FSI2A-WM8978",
	.codec		= "wm8978.0-001a",
	.platform	= "sh_fsi2",
	.daifmt		= SND_SOC_DAIFMT_I2S,
	.daifmt		= SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBM_CFM,
	.cpu_dai = {
		.name	= "fsia-dai",
		.fmt	= SND_SOC_DAIFMT_CBS_CFS | SND_SOC_DAIFMT_IB_NF,
	},
	.codec_dai = {
		.name	= "wm8978-hifi",
		.fmt	= SND_SOC_DAIFMT_CBM_CFM | SND_SOC_DAIFMT_NB_NF,
		.sysclk	= 12288000,
	},
};
Loading