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

Commit 7c9c29ee authored by Mark Brown's avatar Mark Brown
Browse files

Merge tag 'asoc-v4.3-rc2' into asoc-next

ASoC: Updates for v4.4

A first batch of updates targetted at v4.4.  There are no substantial
core fixes here, the biggest block of changes is updates to the rcar
drivers and the addition of a CODEC driver for the AK4613.

# gpg: Signature made Fri 25 Sep 2015 05:37:06 KST using RSA key ID 5D5487D0
# gpg: key CD7BEEBC: no public key for trusted key - skipped
# gpg: key CD7BEEBC marked as ultimately trusted
# gpg: key AF88CD16: no public key for trusted key - skipped
# gpg: key AF88CD16 marked as ultimately trusted
# gpg: key 16005C11: no public key for trusted key - skipped
# gpg: key 16005C11 marked as ultimately trusted
# gpg: key 5621E907: no public key for trusted key - skipped
# gpg: key 5621E907 marked as ultimately trusted
# gpg: key 5C6153AD: no public key for trusted key - skipped
# gpg: key 5C6153AD marked as ultimately trusted
# 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 32b88194 4922e7a1
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
AK4613 I2C transmitter

This device supports I2C mode only.

Required properties:

- compatible : "asahi-kasei,ak4613"
- reg : The chip select number on the I2C bus

Example:

&i2c {
	ak4613: ak4613@0x10 {
		compatible = "asahi-kasei,ak4613";
		reg = <0x10>;
	};
};
+21 −1
Original line number Diff line number Diff line
@@ -7,7 +7,14 @@ Required properties:
  - compatible : "asahi-kasei,ak4642" or "asahi-kasei,ak4643" or "asahi-kasei,ak4648"
  - reg : The chip select number on the I2C bus

Example:
Optional properties:

  - #clock-cells :		common clock binding; shall be set to 0
  - clocks :			common clock binding; MCKI clock
  - clock-frequency :		common clock binding; frequency of MCKO
  - clock-output-names :	common clock binding; MCKO clock name

Example 1:

&i2c {
	ak4648: ak4648@0x12 {
@@ -15,3 +22,16 @@ Example:
		reg = <0x12>;
	};
};

Example 2:

&i2c {
	ak4643: codec@12 {
		compatible = "asahi-kasei,ak4643";
		reg = <0x12>;
		#clock-cells = <0>;
		clocks = <&audio_clock>;
		clock-frequency = <12288000>;
		clock-output-names = "ak4643_mcko";
	};
};
+7 −0
Original line number Diff line number Diff line
@@ -4,10 +4,12 @@ Required properties:
- compatible			: "renesas,rcar_sound-<soctype>", fallbacks
				  "renesas,rcar_sound-gen1" if generation1, and
				  "renesas,rcar_sound-gen2" if generation2
				  "renesas,rcar_sound-gen3" if generation3
				  Examples with soctypes are:
				    - "renesas,rcar_sound-r8a7778" (R-Car M1A)
				    - "renesas,rcar_sound-r8a7790" (R-Car H2)
				    - "renesas,rcar_sound-r8a7791" (R-Car M2-W)
				    - "renesas,rcar_sound-r8a7795" (R-Car H3)
- reg				: Should contain the register physical address.
				  required register is
				   SRU/ADG/SSI      if generation1
@@ -30,6 +32,11 @@ Required properties:
- rcar_sound,dai		: DAI contents.
				  The number of DAI subnode should be same as HW.
				  see below for detail.
- #sound-dai-cells		: it must be 0 if your system is using single DAI
				  it must be 1 if your system is using multi  DAI
- #clock-cells			: it must be 0 if your system has audio_clkout
				  it must be 1 if your system has audio_clkout0/1/2/3
- clock-frequency		: for all audio_clkout0/1/2/3

SSI subnode properties:
- interrupts			: Should contain SSI interrupt for PIO transfer
+33 −0
Original line number Diff line number Diff line
* Allwinner A10 Codec

Required properties:
- compatible: must be either "allwinner,sun4i-a10-codec" or
  "allwinner,sun7i-a20-codec"
- reg: must contain the registers location and length
- interrupts: must contain the codec interrupt
- dmas: DMA channels for tx and rx dma. See the DMA client binding,
	Documentation/devicetree/bindings/dma/dma.txt
- dma-names: should include "tx" and "rx".
- clocks: a list of phandle + clock-specifer pairs, one for each entry
  in clock-names.
- clock-names: should contain followings:
   - "apb": the parent APB clock for this controller
   - "codec": the parent module clock
- routing : A list of the connections between audio components.  Each
  entry is a pair of strings, the first being the connection's sink,
  the second being the connection's source.


Example:
codec: codec@01c22c00 {
	#sound-dai-cells = <0>;
	compatible = "allwinner,sun7i-a20-codec";
	reg = <0x01c22c00 0x40>;
	interrupts = <0 30 4>;
	clocks = <&apb0_gates 0>, <&codec_clk>;
	clock-names = "apb", "codec";
	dmas = <&dma 0 19>, <&dma 0 19>;
	dma-names = "rx", "tx";
	routing = "Headphone Jack", "HP Right",
		  "Headphone Jack", "HP Left";
};
+10 −1
Original line number Diff line number Diff line
@@ -5,10 +5,14 @@ This specifies audio DAI's TDM slot.
TDM slot properties:
dai-tdm-slot-num : Number of slots in use.
dai-tdm-slot-width : Width in bits for each slot.
dai-tdm-slot-tx-mask : Transmit direction slot mask, optional
dai-tdm-slot-rx-mask : Receive direction slot mask, optional

For instance:
	dai-tdm-slot-num = <2>;
	dai-tdm-slot-width = <8>;
	dai-tdm-slot-tx-mask = <0 1>;
	dai-tdm-slot-rx-mask = <1 0>;

And for each spcified driver, there could be one .of_xlate_tdm_slot_mask()
to specify a explicit mapping of the channels and the slots. If it's absent
@@ -18,3 +22,8 @@ tx and rx masks.
For snd_soc_of_xlate_tdm_slot_mask(), the tx and rx masks will use a 1 bit
for an active slot as default, and the default active bits are at the LSB of
the masks.

The explicit masks are given as array of integers, where the first
number presents bit-0 (LSB), second presents bit-1, etc. Any non zero
number is considered 1 and 0 is 0. snd_soc_of_xlate_tdm_slot_mask()
does not do anything, if either mask is set non zero value.
Loading