Skip to content

Commit 0a1801e

Browse files
committed
Merge tag 'asoc-v3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-next
ASoC: Updates for v3.11 Not a big release subsystem wise, the main changes have been some nice improvements on the driver side: - Lots of cleanups and fixes for Blackfin, SGTL5000 and UX500. - Generalisation of the Bluetooth and HDMI stub drivers. - New CODEC drivers for SSM2518 and RT5640. - New machine driver for Tegra CPUs with RT5640.
2 parents 0af49ff + 84bbc4a commit 0a1801e

File tree

157 files changed

+8786
-3053
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

157 files changed

+8786
-3053
lines changed
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
Wolfson Arizona class audio SoCs
2+
3+
These devices are audio SoCs with extensive digital capabilites and a range
4+
of analogue I/O.
5+
6+
Required properties:
7+
8+
- compatible : one of the following chip-specific strings:
9+
"wlf,wm5102"
10+
"wlf,wm5110"
11+
- reg : I2C slave address when connected using I2C, chip select number when
12+
using SPI.
13+
14+
- interrupts : The interrupt line the /IRQ signal for the device is
15+
connected to.
16+
- interrupt-controller : Arizona class devices contain interrupt controllers
17+
and may provide interrupt services to other devices.
18+
- interrupt-parent : The parent interrupt controller.
19+
- #interrupt-cells: the number of cells to describe an IRQ, this should be 2.
20+
The first cell is the IRQ number.
21+
The second cell is the flags, encoded as the trigger masks from
22+
Documentation/devicetree/bindings/interrupts.txt
23+
24+
- gpio-controller : Indicates this device is a GPIO controller.
25+
- #gpio-cells : Must be 2. The first cell is the pin number and the
26+
second cell is used to specify optional parameters (currently unused).
27+
28+
- AVDD1-supply, DBVDD1-supply, DBVDD2-supply, DBVDD3-supply, CPVDD-supply,
29+
SPKVDDL-supply, SPKVDDR-supply : power supplies for the device, as covered
30+
in Documentation/devicetree/bindings/regulator/regulator.txt
31+
32+
Optional properties:
33+
34+
- wlf,reset : GPIO specifier for the GPIO controlling /RESET
35+
- wlf,ldoena : GPIO specifier for the GPIO controlling LDOENA
36+
37+
- wlf,gpio-defaults : A list of GPIO configuration register values. If
38+
absent, no configuration of these registers is performed. If any
39+
entry has a value that is out of range for a 16 bit register then
40+
the chip default will be used. If present exactly five values must
41+
be specified.
42+
43+
Example:
44+
45+
codec: wm5102@1a {
46+
compatible = "wlf,wm5102";
47+
reg = <0x1a>;
48+
interrupts = <347>;
49+
#interrupt-cells = <2>;
50+
interrupt-parent = <&gic>;
51+
52+
gpio-controller;
53+
#gpio-cells = <2>;
54+
55+
wlf,gpio-defaults = <
56+
0x00000000, /* AIF1TXLRCLK */
57+
0xffffffff,
58+
0xffffffff,
59+
0xffffffff,
60+
0xffffffff,
61+
>;
62+
};
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
Analog Devices ADAU1701
2+
3+
Required properties:
4+
5+
- compatible: Should contain "adi,adau1701"
6+
- reg: The i2c address. Value depends on the state of ADDR0
7+
and ADDR1, as wired in hardware.
8+
9+
Optional properties:
10+
11+
- reset-gpio: A GPIO spec to define which pin is connected to the
12+
chip's !RESET pin. If specified, the driver will
13+
assert a hardware reset at probe time.
14+
15+
Examples:
16+
17+
i2c_bus {
18+
adau1701@34 {
19+
compatible = "adi,adau1701";
20+
reg = <0x34>;
21+
reset-gpio = <&gpio 23 0>;
22+
};
23+
};
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
Freescale i.MX audio complex with WM8962 codec
2+
3+
Required properties:
4+
- compatible : "fsl,imx-audio-wm8962"
5+
- model : The user-visible name of this sound complex
6+
- ssi-controller : The phandle of the i.MX SSI controller
7+
- audio-codec : The phandle of the WM8962 audio codec
8+
- audio-routing : A list of the connections between audio components.
9+
Each entry is a pair of strings, the first being the connection's sink,
10+
the second being the connection's source. Valid names could be power
11+
supplies, WM8962 pins, and the jacks on the board:
12+
13+
Power supplies:
14+
* Mic Bias
15+
16+
Board connectors:
17+
* Mic Jack
18+
* Headphone Jack
19+
* Ext Spk
20+
21+
- mux-int-port : The internal port of the i.MX audio muxer (AUDMUX)
22+
- mux-ext-port : The external port of the i.MX audio muxer
23+
24+
Note: The AUDMUX port numbering should start at 1, which is consistent with
25+
hardware manual.
26+
27+
Example:
28+
29+
sound {
30+
compatible = "fsl,imx6q-sabresd-wm8962",
31+
"fsl,imx-audio-wm8962";
32+
model = "wm8962-audio";
33+
ssi-controller = <&ssi2>;
34+
audio-codec = <&codec>;
35+
audio-routing =
36+
"Headphone Jack", "HPOUTL",
37+
"Headphone Jack", "HPOUTR",
38+
"Ext Spk", "SPKOUTL",
39+
"Ext Spk", "SPKOUTR",
40+
"MICBIAS", "AMIC",
41+
"IN3R", "MICBIAS",
42+
"DMIC", "MICBIAS",
43+
"DMICDAT", "DMIC";
44+
mux-int-port = <2>;
45+
mux-ext-port = <3>;
46+
};

Documentation/devicetree/bindings/sound/mxs-saif.txt

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,11 @@
33
Required properties:
44
- compatible: Should be "fsl,<chip>-saif"
55
- reg: Should contain registers location and length
6-
- interrupts: Should contain ERROR and DMA interrupts
7-
- fsl,saif-dma-channel: APBX DMA channel for the SAIF
6+
- interrupts: Should contain ERROR interrupt number
7+
- dmas: DMA specifier, consisting of a phandle to DMA controller node
8+
and SAIF DMA channel ID.
9+
Refer to dma.txt and fsl-mxs-dma.txt for details.
10+
- dma-names: Must be "rx-tx".
811

912
Optional properties:
1013
- fsl,saif-master: phandle to the master SAIF. It's only required for
@@ -23,14 +26,16 @@ aliases {
2326
saif0: saif@80042000 {
2427
compatible = "fsl,imx28-saif";
2528
reg = <0x80042000 2000>;
26-
interrupts = <59 80>;
27-
fsl,saif-dma-channel = <4>;
29+
interrupts = <59>;
30+
dmas = <&dma_apbx 4>;
31+
dma-names = "rx-tx";
2832
};
2933

3034
saif1: saif@80046000 {
3135
compatible = "fsl,imx28-saif";
3236
reg = <0x80046000 2000>;
33-
interrupts = <58 81>;
34-
fsl,saif-dma-channel = <5>;
37+
interrupts = <58>;
38+
dmas = <&dma_apbx 5>;
39+
dma-names = "rx-tx";
3540
fsl,saif-master = <&saif0>;
3641
};
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
NVIDIA Tegra audio complex, with RT5640 CODEC
2+
3+
Required properties:
4+
- compatible : "nvidia,tegra-audio-rt5640"
5+
- clocks : Must contain an entry for each entry in clock-names.
6+
- clock-names : Must include the following entries:
7+
"pll_a" (The Tegra clock of that name),
8+
"pll_a_out0" (The Tegra clock of that name),
9+
"mclk" (The Tegra cdev1/extern1 clock, which feeds the CODEC's mclk)
10+
- nvidia,model : The user-visible name of this sound complex.
11+
- nvidia,audio-routing : A list of the connections between audio components.
12+
Each entry is a pair of strings, the first being the connection's sink,
13+
the second being the connection's source. Valid names for sources and
14+
sinks are the RT5640's pins, and the jacks on the board:
15+
16+
RT5640 pins:
17+
18+
* DMIC1
19+
* DMIC2
20+
* MICBIAS1
21+
* IN1P
22+
* IN1R
23+
* IN2P
24+
* IN2R
25+
* HPOL
26+
* HPOR
27+
* LOUTL
28+
* LOUTR
29+
* MONOP
30+
* MONON
31+
* SPOLP
32+
* SPOLN
33+
* SPORP
34+
* SPORN
35+
36+
Board connectors:
37+
38+
* Headphones
39+
* Speakers
40+
41+
- nvidia,i2s-controller : The phandle of the Tegra I2S controller that's
42+
connected to the CODEC.
43+
- nvidia,audio-codec : The phandle of the RT5640 audio codec. This binding
44+
assumes that AIF1 on the CODEC is connected to Tegra.
45+
46+
Optional properties:
47+
- nvidia,hp-det-gpios : The GPIO that detects headphones are plugged in
48+
49+
Example:
50+
51+
sound {
52+
compatible = "nvidia,tegra-audio-rt5640-dalmore",
53+
"nvidia,tegra-audio-rt5640";
54+
nvidia,model = "NVIDIA Tegra Dalmore";
55+
56+
nvidia,audio-routing =
57+
"Headphones", "HPOR",
58+
"Headphones", "HPOL",
59+
"Speakers", "SPORP",
60+
"Speakers", "SPORN",
61+
"Speakers", "SPOLP",
62+
"Speakers", "SPOLN";
63+
64+
nvidia,i2s-controller = <&tegra_i2s1>;
65+
nvidia,audio-codec = <&rt5640>;
66+
67+
nvidia,hp-det-gpios = <&gpio 143 0>; /* GPIO PR7 */
68+
69+
clocks = <&tegra_car 216>, <&tegra_car 217>, <&tegra_car 120>;
70+
clock-names = "pll_a", "pll_a_out0", "mclk";
71+
};
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
RT5640 audio CODEC
2+
3+
This device supports I2C only.
4+
5+
Required properties:
6+
7+
- compatible : "realtek,rt5640".
8+
9+
- reg : The I2C address of the device.
10+
11+
- interrupts : The CODEC's interrupt output.
12+
13+
Optional properties:
14+
15+
- realtek,in1-differential
16+
- realtek,in2-differential
17+
Boolean. Indicate MIC1/2 input are differential, rather than single-ended.
18+
19+
- realtek,ldo1-en-gpios : The GPIO that controls the CODEC's LDO1_EN pin.
20+
21+
Example:
22+
23+
rt5640 {
24+
compatible = "realtek,rt5640";
25+
reg = <0x1c>;
26+
interrupt-parent = <&gpio>;
27+
interrupts = <TEGRA_GPIO(W, 3) GPIO_ACTIVE_HIGH>;
28+
realtek,ldo1-en-gpios =
29+
<&gpio TEGRA_GPIO(V, 3) GPIO_ACTIVE_HIGH>;
30+
};

Documentation/devicetree/bindings/sound/sgtl5000.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,12 @@ Required properties:
55

66
- reg : the I2C address of the device
77

8+
- clocks : the clock provider of SYS_MCLK
9+
810
Example:
911

1012
codec: sgtl5000@0a {
1113
compatible = "fsl,sgtl5000";
1214
reg = <0x0a>;
15+
clocks = <&clks 150>;
1316
};
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
Device-Tree bindings for dummy spdif receiver
2+
3+
Required properties:
4+
- compatible: should be "linux,spdif-dir".
5+
6+
Example node:
7+
8+
codec: spdif-receiver {
9+
compatible = "linux,spdif-dir";
10+
};
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
Device-Tree bindings for dummy spdif transmitter
2+
3+
Required properties:
4+
- compatible: should be "linux,spdif-dit".
5+
6+
Example node:
7+
8+
codec: spdif-transmitter {
9+
compatible = "linux,spdif-dit";
10+
};
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
SSM2518 audio amplifier
2+
3+
This device supports I2C only.
4+
5+
Required properties:
6+
- compatible : Must be "adi,ssm2518"
7+
- reg : the I2C address of the device. This will either be 0x34 (ADDR pin low)
8+
or 0x35 (ADDR pin high)
9+
10+
Optional properties:
11+
- gpios : GPIO connected to the nSD pin. If the property is not present it is
12+
assumed that the nSD pin is hardwired to always on.
13+
14+
Example:
15+
16+
ssm2518: ssm2518@34 {
17+
compatible = "adi,ssm2518";
18+
reg = <0x34>;
19+
gpios = <&gpio 5 0>;
20+
};

Documentation/devicetree/bindings/sound/wm8962.txt

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,32 @@ Required properties:
88

99
- reg : the I2C address of the device.
1010

11+
Optional properties:
12+
- spk-mono: This is a boolean property. If present, the SPK_MONO bit
13+
of R51 (Class D Control 2) gets set, indicating that the speaker is
14+
in mono mode.
15+
16+
- mic-cfg : Default register value for R48 (Additional Control 4).
17+
If absent, the default should be the register default.
18+
19+
- gpio-cfg : A list of GPIO configuration register values. The list must
20+
be 6 entries long. If absent, no configuration of these registers is
21+
performed. And note that only the value within [0x0, 0xffff] is valid.
22+
Any other value is regarded as setting the GPIO register by its reset
23+
value 0x0.
24+
1125
Example:
1226

1327
codec: wm8962@1a {
1428
compatible = "wlf,wm8962";
1529
reg = <0x1a>;
30+
31+
gpio-cfg = <
32+
0x0000 /* 0:Default */
33+
0x0000 /* 1:Default */
34+
0x0013 /* 2:FN_DMICCLK */
35+
0x0000 /* 3:Default */
36+
0x8014 /* 4:FN_DMICCDAT */
37+
0x0000 /* 5:Default */
38+
>;
1639
};

arch/blackfin/mach-bf527/boards/ad7160eval.c

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -283,14 +283,6 @@ static struct platform_device bfin_i2s = {
283283
};
284284
#endif
285285

286-
#if defined(CONFIG_SND_BF5XX_TDM) || defined(CONFIG_SND_BF5XX_TDM_MODULE)
287-
static struct platform_device bfin_tdm = {
288-
.name = "bfin-tdm",
289-
.id = CONFIG_SND_BF5XX_SPORT_NUM,
290-
/* TODO: add platform data here */
291-
};
292-
#endif
293-
294286
static struct spi_board_info bfin_spi_board_info[] __initdata = {
295287
#if defined(CONFIG_MTD_M25P80) \
296288
|| defined(CONFIG_MTD_M25P80_MODULE)
@@ -800,10 +792,6 @@ static struct platform_device *stamp_devices[] __initdata = {
800792
#if defined(CONFIG_SND_BF5XX_I2S) || defined(CONFIG_SND_BF5XX_I2S_MODULE)
801793
&bfin_i2s,
802794
#endif
803-
804-
#if defined(CONFIG_SND_BF5XX_TDM) || defined(CONFIG_SND_BF5XX_TDM_MODULE)
805-
&bfin_tdm,
806-
#endif
807795
};
808796

809797
static int __init ad7160eval_init(void)

0 commit comments

Comments
 (0)