Skip to content

Commit 8e61e7b

Browse files
committed
Merge tag 'sound-4.21-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound updates from Takashi Iwai: "There are no intensive changes in both ALSA and ASoC core parts while rather most of changes are a bunch of driver fixes and updates. A large diff pattern appears in ASoC TI part which now merges both OMAP and DaVinci stuff, but the rest spreads allover the places. Note that this pull request includes also some updates for LED trigger and platform drivers for mute LEDs, appearing in the diffstat as well. Some highlights: ASoC: - Preparatory work for merging the audio-graph and audio-graph-scu cards - A merge of TI OMAP and DaVinci directories, as both product lines get merged together. Also including a few architecture changes as well. - Major cleanups of the Maxim MAX9867 driver - Small fixes for tablets & co with Intel BYT/CHT chips - Lots of rsnd updates as usual - Support for Asahi Kaesi AKM4118, AMD ACP3x, Intel platforms with RT5660, Meson AXG S/PDIF inputs, several Qualcomm IPs and Xilinx I2S controllers HD-audio: - Introduce audio-mute LED trigger for replacing the former hackish dynamic binding - Huawei WMI hotkey and mute LED support - Refactoring of PM code and display power controls - Headset button support in the generic jack code - A few updates for Tegra - Fixups for HP EliteBook and ASUS UX391UA - Lots of updates for Intel ASoC HD-audio, including the improved DSP detection and the fallback binding from ASoC SST to legacy HD-audio controller drivers Others: - Updates for FireWire TASCAM and Fireface devices, some other fixes - A few potential Spectre v1 fixes that are all trivial" * tag 'sound-4.21-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (280 commits) ALSA: HD-Audio: SKL+: force HDaudio legacy or SKL+ driver selection ALSA: HD-Audio: SKL+: abort probe if DSP is present and Skylake driver selected ALSA: HDA: export process_unsol_events() ALSA: hda/realtek: Enable audio jacks of ASUS UX391UA with ALC294 ALSA: bebob: fix model-id of unit for Apogee Ensemble ALSA: emu10k1: Fix potential Spectre v1 vulnerabilities ALSA: rme9652: Fix potential Spectre v1 vulnerability ASoC: ti: Kconfig: Remove the deprecated options ARM: davinci_all_defconfig: Update the audio options ARM: omap1_defconfig: Do not select ASoC by default ARM: omap2plus_defconfig: Update the audio options ARM: davinci: dm365-evm: Update for the new ASoC Kcofnig options ARM: OMAP2: Update for new MCBSP Kconfig option ARM: OMAP1: Makefile: Update for new MCBSP Kconfig option MAINTAINERS: Add entry for sound/soc/ti and update the OMAP audio support ASoC: ti: Merge davinci and omap directories ALSA: hda: add mute LED support for HP EliteBook 840 G4 ALSA: fireface: code refactoring to handle model-specific registers ALSA: fireface: add support for packet streaming on Fireface 800 ALSA: fireface: allocate isochronous resources in mode-specific implementation ...
2 parents 996680d + d82b51c commit 8e61e7b

File tree

254 files changed

+11685
-5080
lines changed

Some content is hidden

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

254 files changed

+11685
-5080
lines changed

Documentation/devicetree/bindings/sound/ak4104.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ Required properties:
1212

1313
Optional properties:
1414

15-
- reset-gpio : a GPIO spec for the reset pin. If specified, it will be
16-
deasserted before communication to the device starts.
15+
- reset-gpios : a GPIO spec for the reset pin. If specified, it will be
16+
deasserted before communication to the device starts.
1717

1818
Example:
1919

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
AK4118 S/PDIF transceiver
2+
3+
This device supports I2C mode.
4+
5+
Required properties:
6+
7+
- compatible : "asahi-kasei,ak4118"
8+
- reg : The I2C address of the device for I2C
9+
- reset-gpios: A GPIO specifier for the reset pin
10+
- irq-gpios: A GPIO specifier for the IRQ pin
11+
12+
Example:
13+
14+
&i2c {
15+
ak4118: ak4118@13 {
16+
#sound-dai-cells = <0>;
17+
compatible = "asahi-kasei,ak4118";
18+
reg = <0x13>;
19+
reset-gpios = <&gpio 0 GPIO_ACTIVE_LOW>
20+
irq-gpios = <&gpio 1 GPIO_ACTIVE_HIGH>;
21+
};
22+
};
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
* Amlogic Audio SPDIF Input
2+
3+
Required properties:
4+
- compatible: 'amlogic,axg-spdifin'
5+
- interrupts: interrupt specifier for the spdif input.
6+
- clocks: list of clock phandle, one for each entry clock-names.
7+
- clock-names: should contain the following:
8+
* "pclk" : peripheral clock.
9+
* "refclk" : spdif input reference clock
10+
- #sound-dai-cells: must be 0.
11+
12+
Example on the A113 SoC:
13+
14+
spdifin: audio-controller@400 {
15+
compatible = "amlogic,axg-spdifin";
16+
reg = <0x0 0x400 0x0 0x30>;
17+
#sound-dai-cells = <0>;
18+
interrupts = <GIC_SPI 87 IRQ_TYPE_EDGE_RISING>;
19+
clocks = <&clkc_audio AUD_CLKID_SPDIFIN>,
20+
<&clkc_audio AUD_CLKID_SPDIFIN_CLK>;
21+
clock-names = "pclk", "refclk";
22+
};

Documentation/devicetree/bindings/sound/audio-graph-card.txt

Lines changed: 205 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,9 @@ Required properties:
3232
Optional properties:
3333
- pa-gpios: GPIO used to control external amplifier.
3434

35+
-----------------------
3536
Example: Single DAI case
37+
-----------------------
3638

3739
sound_card {
3840
compatible = "audio-graph-card";
@@ -61,7 +63,9 @@ Example: Single DAI case
6163
};
6264
};
6365

66+
-----------------------
6467
Example: Multi DAI case
68+
-----------------------
6569

6670
sound-card {
6771
compatible = "audio-graph-card";
@@ -130,3 +134,204 @@ Example: Multi DAI case
130134
};
131135
};
132136

137+
138+
-----------------------
139+
Example: Sampling Rate Conversion
140+
-----------------------
141+
142+
sound_card {
143+
compatible = "audio-graph-card";
144+
145+
label = "sound-card";
146+
prefix = "codec";
147+
routing = "codec Playback", "DAI0 Playback",
148+
"DAI0 Capture", "codec Capture";
149+
convert-rate = <48000>;
150+
151+
dais = <&cpu_port>;
152+
};
153+
154+
audio-codec {
155+
...
156+
port {
157+
codec_endpoint: endpoint {
158+
remote-endpoint = <&cpu_endpoint>;
159+
};
160+
};
161+
};
162+
163+
dai-controller {
164+
...
165+
cpu_port: port {
166+
cpu_endpoint: endpoint {
167+
remote-endpoint = <&codec_endpoint>;
168+
169+
dai-format = "left_j";
170+
...
171+
};
172+
};
173+
};
174+
175+
-----------------------
176+
Example: 2 CPU 1 Codec (Mixing)
177+
-----------------------
178+
179+
sound_card {
180+
compatible = "audio-graph-card";
181+
182+
label = "sound-card";
183+
routing = "codec Playback", "DAI0 Playback",
184+
"codec Playback", "DAI1 Playback",
185+
"DAI0 Capture", "codec Capture";
186+
187+
dais = <&cpu_port>;
188+
};
189+
190+
audio-codec {
191+
...
192+
193+
audio-graph-card,prefix = "codec";
194+
audio-graph-card,convert-rate = <48000>;
195+
port {
196+
reg = <0>;
197+
codec_endpoint0: endpoint@0 {
198+
remote-endpoint = <&cpu_endpoint0>;
199+
};
200+
codec_endpoint1: endpoint@1 {
201+
remote-endpoint = <&cpu_endpoint1>;
202+
};
203+
};
204+
};
205+
206+
dai-controller {
207+
...
208+
cpu_port: port {
209+
cpu_endpoint0: endpoint@0 {
210+
remote-endpoint = <&codec_endpoint0>;
211+
212+
dai-format = "left_j";
213+
...
214+
};
215+
cpu_endpoint1: endpoint@1 {
216+
remote-endpoint = <&codec_endpoint1>;
217+
218+
dai-format = "left_j";
219+
...
220+
};
221+
};
222+
};
223+
224+
-----------------------
225+
Example: Multi DAI with DPCM
226+
-----------------------
227+
228+
CPU0 ------ ak4613
229+
CPU1 ------ HDMI
230+
CPU2 ------ PCM3168A-p /* DPCM 1ch/2ch */
231+
CPU3 --/ /* DPCM 3ch/4ch */
232+
CPU4 --/ /* DPCM 5ch/6ch */
233+
CPU5 --/ /* DPCM 7ch/8ch */
234+
CPU6 ------ PCM3168A-c
235+
236+
sound_card: sound {
237+
compatible = "audio-graph-card";
238+
239+
label = "sound-card";
240+
241+
routing = "pcm3168a Playback", "DAI2 Playback",
242+
"pcm3168a Playback", "DAI3 Playback",
243+
"pcm3168a Playback", "DAI4 Playback",
244+
"pcm3168a Playback", "DAI5 Playback";
245+
246+
dais = <&snd_port0 /* ak4613 */
247+
&snd_port1 /* HDMI0 */
248+
&snd_port2 /* pcm3168a playback */
249+
&snd_port3 /* pcm3168a capture */
250+
>;
251+
};
252+
253+
ak4613: codec@10 {
254+
...
255+
port {
256+
ak4613_endpoint: endpoint {
257+
remote-endpoint = <&rsnd_endpoint0>;
258+
};
259+
};
260+
};
261+
262+
pcm3168a: audio-codec@44 {
263+
...
264+
audio-graph-card,prefix = "pcm3168a";
265+
audio-graph-card,convert-channels = <8>; /* TDM Split */
266+
ports {
267+
port@0 {
268+
reg = <0>;
269+
pcm3168a_endpoint_p1: endpoint@1 {
270+
remote-endpoint = <&rsnd_endpoint2>;
271+
...
272+
};
273+
pcm3168a_endpoint_p2: endpoint@2 {
274+
remote-endpoint = <&rsnd_endpoint3>;
275+
...
276+
};
277+
pcm3168a_endpoint_p3: endpoint@3 {
278+
remote-endpoint = <&rsnd_endpoint4>;
279+
...
280+
};
281+
pcm3168a_endpoint_p4: endpoint@4 {
282+
remote-endpoint = <&rsnd_endpoint5>;
283+
...
284+
};
285+
};
286+
port@1 {
287+
reg = <1>;
288+
pcm3168a_endpoint_c: endpoint {
289+
remote-endpoint = <&rsnd_endpoint6>;
290+
...
291+
};
292+
};
293+
};
294+
};
295+
296+
&sound {
297+
ports {
298+
snd_port0: port@0 {
299+
rsnd_endpoint0: endpoint {
300+
remote-endpoint = <&ak4613_endpoint>;
301+
...
302+
};
303+
};
304+
snd_port1: port@1 {
305+
rsnd_endpoint1: endpoint {
306+
remote-endpoint = <&dw_hdmi0_snd_in>;
307+
...
308+
};
309+
};
310+
snd_port2: port@2 {
311+
#address-cells = <1>;
312+
#size-cells = <0>;
313+
rsnd_endpoint2: endpoint@2 {
314+
remote-endpoint = <&pcm3168a_endpoint_p1>;
315+
...
316+
};
317+
rsnd_endpoint3: endpoint@3 {
318+
remote-endpoint = <&pcm3168a_endpoint_p2>;
319+
...
320+
};
321+
rsnd_endpoint4: endpoint@4 {
322+
remote-endpoint = <&pcm3168a_endpoint_p3>;
323+
...
324+
};
325+
rsnd_endpoint5: endpoint@5 {
326+
remote-endpoint = <&pcm3168a_endpoint_p4>;
327+
...
328+
};
329+
};
330+
snd_port3: port@6 {
331+
rsnd_endpoint6: endpoint {
332+
remote-endpoint = <&pcm3168a_endpoint_c>;
333+
...
334+
};
335+
};
336+
};
337+
};

Documentation/devicetree/bindings/sound/audio-graph-scu-card.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,11 +77,9 @@ Example 2. 2 CPU 1 Codec (Mixing)
7777
compatible = "audio-graph-scu-card";
7878

7979
label = "sound-card";
80-
prefix = "codec";
8180
routing = "codec Playback", "DAI0 Playback",
8281
"codec Playback", "DAI1 Playback",
8382
"DAI0 Capture", "codec Capture";
84-
convert-rate = <48000>;
8583

8684
dais = <&cpu_port0
8785
&cpu_port1>;
@@ -90,6 +88,8 @@ Example 2. 2 CPU 1 Codec (Mixing)
9088
audio-codec {
9189
...
9290

91+
audio-graph-card,prefix = "codec";
92+
audio-graph-card,convert-rate = <48000>;
9393
port {
9494
codec_endpoint0: endpoint {
9595
remote-endpoint = <&cpu_endpoint0>;

Documentation/devicetree/bindings/sound/cs4270.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ Required properties:
1010

1111
Optional properties:
1212

13-
- reset-gpio : a GPIO spec for the reset pin. If specified, it will be
14-
deasserted before communication to the codec starts.
13+
- reset-gpios : a GPIO spec for the reset pin. If specified, it will be
14+
deasserted before communication to the codec starts.
1515

1616
Example:
1717

Documentation/devicetree/bindings/sound/davinci-mcasp-audio.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@ Optional properties:
3030
- ti,hwmods : Must be "mcasp<n>", n is controller instance starting 0
3131
- tx-num-evt : FIFO levels.
3232
- rx-num-evt : FIFO levels.
33+
- dismod : Specify the drive on TX pin during inactive slots
34+
0 : 3-state
35+
2 : logic low
36+
3 : logic high
37+
Defaults to 'logic low' when the property is not present
3338
- sram-size-playback : size of sram to be allocated during playback
3439
- sram-size-capture : size of sram to be allocated during capture
3540
- interrupts : Interrupt numbers for McASP

Documentation/devicetree/bindings/sound/dmic.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ Optional properties:
99
- dmicen-gpios: GPIO specifier for dmic to control start and stop
1010
- num-channels: Number of microphones on this DAI
1111
- wakeup-delay-ms: Delay (in ms) after enabling the DMIC
12+
- modeswitch-delay-ms: Delay (in ms) to complete DMIC mode switch
1213

1314
Example node:
1415

@@ -17,4 +18,5 @@ Example node:
1718
dmicen-gpios = <&gpio4 3 GPIO_ACTIVE_HIGH>;
1819
num-channels = <1>;
1920
wakeup-delay-ms <50>;
21+
modeswitch-delay-ms <35>;
2022
};

Documentation/devicetree/bindings/sound/fsl-sai.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,13 @@ Required properties:
3535

3636
- fsl,sai-synchronous-rx: This is a boolean property. If present, indicating
3737
that SAI will work in the synchronous mode (sync Tx
38-
with Rx) which means both the transimitter and the
38+
with Rx) which means both the transmitter and the
3939
receiver will send and receive data by following
4040
receiver's bit clocks and frame sync clocks.
4141

4242
- fsl,sai-asynchronous: This is a boolean property. If present, indicating
4343
that SAI will work in the asynchronous mode, which
44-
means both transimitter and receiver will send and
44+
means both transmitter and receiver will send and
4545
receive data by following their own bit clocks and
4646
frame sync clocks separately.
4747

@@ -58,8 +58,8 @@ Optional properties (for mx6ul):
5858
Note:
5959
- If both fsl,sai-asynchronous and fsl,sai-synchronous-rx are absent, the
6060
default synchronous mode (sync Rx with Tx) will be used, which means both
61-
transimitter and receiver will send and receive data by following clocks
62-
of transimitter.
61+
transmitter and receiver will send and receive data by following clocks
62+
of transmitter.
6363
- fsl,sai-asynchronous and fsl,sai-synchronous-rx are exclusive.
6464

6565
Example:

Documentation/devicetree/bindings/sound/omap-mcpdm.txt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ Required properties:
77
<L3 interconnect address, size>;
88
- interrupts: Interrupt number for McPDM
99
- ti,hwmods: Name of the hwmod associated to the McPDM
10+
- clocks: phandle for the pdmclk provider, likely <&twl6040>
11+
- clock-names: Must be "pdmclk"
1012

1113
Example:
1214

@@ -18,3 +20,11 @@ mcpdm: mcpdm@40132000 {
1820
interrupt-parent = <&gic>;
1921
ti,hwmods = "mcpdm";
2022
};
23+
24+
In board DTS file the pdmclk needs to be added:
25+
26+
&mcpdm {
27+
clocks = <&twl6040>;
28+
clock-names = "pdmclk";
29+
status = "okay";
30+
};

0 commit comments

Comments
 (0)