Skip to content

Commit ce38207

Browse files
committed
Merge tag 'sound-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound updates from Takashi Iwai: "No dramatic changes are found in this development cycle, but as usual, many commits are applied in a wide range of drivers. Most of big changes are in ASoC, where a few bits of framework work and quite a lot of cleanups and improvements to existing code have been done. The rest are usual stuff, a few HD-audio and USB-audio quirks and fixes, as well as the drop of kthread usages in the whole subsystem. Below are some highlights: ASoC: - support for stereo DAPM controls - some initial work on the of-graph sound card - regmap conversions of the remaining AC'97 drivers - a new version of the topology ABI; this should be backward compatible - updates / cleanups of rsnd, sunxi, sti, nau8825, samsung, arizona, Intel skylake, atom-sst - new drivers for Cirrus Logic CS42L42, Qualcomm MSM8916-WCD, and Realtek RT5665 USB-audio: - yet another race fix at disconnection - tolerated packet size calculation for some Android devices - quirks for Axe-Fx II, QuickCam, TEAC 501/503 HD-audio: - improvement of Dell pin fixup mapping - quirks for HP Z1 Gen3, Alienware 15 R2 2016 and ALC622 headset mic Misc: - replace all kthread usages with simple works" * tag 'sound-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (296 commits) ALSA: hiface: Fix M2Tech hiFace driver sampling rate change ALSA: usb-audio: Eliminate noise at the start of DSD playback. ALSA: usb-audio: Add native DSD support for TEAC 501/503 DAC ASoC: wm_adsp: wm_adsp_buf_alloc should use kfree in error path ASoC: topology: avoid uninitialized kcontrol_type ALSA: usb-audio: Add QuickCam Communicate Deluxe/S7500 to volume_control_quirks ALSA: usb-audio: add implicit fb quirk for Axe-Fx II ASoC: zte: spdif: correct ZX_SPDIF_CLK_RAT define ASoC: zte: spdif and i2s drivers are not zx296702 specific ASoC: rsnd: setup BRGCKR/BRRA/BRRB when starting ASoC: rsnd: enable/disable ADG when suspend/resume timing ASoC: rsnd: tidyup ssi->usrcnt counter check in hw_params ALSA: cs46xx: add a new line ASoC: Intel: update bxt_da7219_max98357a to support quad ch dmic capture ASoC: nau8825: disable sinc filter for high THD of ADC ALSA: usb-audio: more tolerant packetsize ALSA: usb-audio: avoid setting of sample rate multiple times on bus ASoC: cs35l34: Simplify the logic to set CS35L34_MCLK_CTL setting ALSA: hda - Gate the mic jack on HP Z1 Gen3 AiO ALSA: hda: when comparing pin configurations, ignore assoc in addition to seq ...
2 parents a9042de + 995c6a7 commit ce38207

File tree

269 files changed

+22270
-4562
lines changed

Some content is hidden

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

269 files changed

+22270
-4562
lines changed
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
What: /sys/devices/platform/8086%x:00/firmware_version
2+
Date: November 2016
3+
KernelVersion: 4.10
4+
Contact: "Sebastien Guiriec" <sebastien.guiriec@intel.com>
5+
Description:
6+
LPE Firmware version for SST driver on all atom
7+
plaforms (BYT/CHT/Merrifield/BSW).
8+
If the FW has never been loaded it will display:
9+
"FW not yet loaded"
10+
If FW has been loaded it will display:
11+
"v01.aa.bb.cc"
12+
aa: Major version is reflecting SoC version:
13+
0d: BYT FW
14+
0b: BSW FW
15+
07: Merrifield FW
16+
bb: Minor version
17+
cc: Build version
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
Devicetree bindings for the Axentia TSE-850 audio complex
2+
3+
Required properties:
4+
- compatible: "axentia,tse850-pcm5142"
5+
- axentia,ssc-controller: The phandle of the atmel SSC controller used as
6+
cpu dai.
7+
- axentia,audio-codec: The phandle of the PCM5142 codec.
8+
- axentia,add-gpios: gpio specifier that controls the mixer.
9+
- axentia,loop1-gpios: gpio specifier that controls loop relays on channel 1.
10+
- axentia,loop2-gpios: gpio specifier that controls loop relays on channel 2.
11+
- axentia,ana-supply: Regulator that supplies the output amplifier. Must
12+
support voltages in the 2V - 20V range, in 1V steps.
13+
14+
The schematics explaining the gpios are as follows:
15+
16+
loop1 relays
17+
IN1 +---o +------------+ o---+ OUT1
18+
\ /
19+
+ +
20+
| / |
21+
+--o +--. |
22+
| add | |
23+
| V |
24+
| .---. |
25+
DAC +----------->|Sum|---+
26+
| '---' |
27+
| |
28+
+ +
29+
30+
IN2 +---o--+------------+--o---+ OUT2
31+
loop2 relays
32+
33+
The 'loop1' gpio pin controlls two relays, which are either in loop position,
34+
meaning that input and output are directly connected, or they are in mixer
35+
position, meaning that the signal is passed through the 'Sum' mixer. Similarly
36+
for 'loop2'.
37+
38+
In the above, the 'loop1' relays are inactive, thus feeding IN1 to the mixer
39+
(if 'add' is active) and feeding the mixer output to OUT1. The 'loop2' relays
40+
are active, short-cutting the TSE-850 from channel 2. IN1, IN2, OUT1 and OUT2
41+
are TSE-850 connectors and DAC is the PCB name of the (filtered) output from
42+
the PCM5142 codec.
43+
44+
Example:
45+
46+
&i2c {
47+
codec: pcm5142@4c {
48+
compatible = "ti,pcm5142";
49+
50+
reg = <0x4c>;
51+
52+
AVDD-supply = <&reg_3v3>;
53+
DVDD-supply = <&reg_3v3>;
54+
CPVDD-supply = <&reg_3v3>;
55+
56+
clocks = <&sck>;
57+
58+
pll-in = <3>;
59+
pll-out = <6>;
60+
};
61+
};
62+
63+
ana: ana-reg {
64+
compatible = "pwm-regulator";
65+
66+
regulator-name = "ANA";
67+
68+
pwms = <&pwm0 2 1000 PWM_POLARITY_INVERTED>;
69+
pwm-dutycycle-unit = <1000>;
70+
pwm-dutycycle-range = <100 1000>;
71+
72+
regulator-min-microvolt = <2000000>;
73+
regulator-max-microvolt = <20000000>;
74+
regulator-ramp-delay = <1000>;
75+
};
76+
77+
sound {
78+
compatible = "axentia,tse850-pcm5142";
79+
80+
axentia,ssc-controller = <&ssc0>;
81+
axentia,audio-codec = <&codec>;
82+
83+
axentia,add-gpios = <&pioA 8 GPIO_ACTIVE_LOW>;
84+
axentia,loop1-gpios = <&pioA 10 GPIO_ACTIVE_LOW>;
85+
axentia,loop2-gpios = <&pioA 11 GPIO_ACTIVE_LOW>;
86+
87+
axentia,ana-supply = <&ana>;
88+
};
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
CS35L34 Speaker Amplifier
2+
3+
Required properties:
4+
5+
- compatible : "cirrus,cs35l34"
6+
7+
- reg : the I2C address of the device for I2C.
8+
9+
- VA-supply, VP-supply : power supplies for the device,
10+
as covered in
11+
Documentation/devicetree/bindings/regulator/regulator.txt.
12+
13+
- cirrus,boost-vtge-millivolt : Boost Voltage Value. Configures the boost
14+
converter's output voltage in mV. The range is from VP to 8V with
15+
increments of 100mV.
16+
17+
- cirrus,boost-nanohenry: Inductor value for boost converter. The value is
18+
in nH and they can be values of 1000nH, 1100nH, 1200nH, 1500nH, and 2200nH.
19+
20+
Optional properties:
21+
22+
- reset-gpios: GPIO used to reset the amplifier.
23+
24+
- interrupt-parent : Specifies the phandle of the interrupt controller to
25+
which the IRQs from CS35L34 are delivered to.
26+
- interrupts : IRQ line info CS35L34.
27+
(See Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
28+
for further information relating to interrupt properties)
29+
30+
- cirrus,boost-peak-milliamp : Boost converter peak current limit in mA. The
31+
range starts at 1200mA and goes to a maximum of 3840mA with increments of
32+
80mA. The default value is 2480mA.
33+
34+
- cirrus,i2s-sdinloc : ADSP SDIN I2S channel location. Indicates whether the
35+
received mono data is in the left or right portion of the I2S frame
36+
according to the AD0 pin or directly via this configuration.
37+
0x0 (Default) = Selected by AD0 input (if AD0 = LOW, use left channel),
38+
0x2 = Left,
39+
0x1 = Selected by the inversion of the AD0 input (if AD0 = LOW, use right
40+
channel),
41+
0x3 = Right.
42+
43+
- cirrus,gain-zc-disable: Boolean property. If set, the gain change will take
44+
effect without waiting for a zero cross.
45+
46+
- cirrus,tdm-rising-edge: Boolean property. If set, data is on the rising edge of
47+
SCLK. Otherwise, data is on the falling edge of SCLK.
48+
49+
50+
Example:
51+
52+
cs35l34: cs35l34@40 {
53+
compatible = "cirrus,cs35l34";
54+
reg = <0x40>;
55+
56+
interrupt-parent = <&gpio8>;
57+
interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
58+
59+
reset-gpios = <&gpio 10 0>;
60+
61+
cirrus,boost-vtge-milltvolt = <8000>; /* 8V */
62+
cirrus,boost-ind-nanohenry = <1000>; /* 1uH */
63+
cirrus,boost-peak-milliamp = <3000>; /* 3A */
64+
};
Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
CS42L42 audio CODEC
2+
3+
Required properties:
4+
5+
- compatible : "cirrus,cs42l42"
6+
7+
- reg : the I2C address of the device for I2C.
8+
9+
- VP-supply, VCP-supply, VD_FILT-supply, VL-supply, VA-supply :
10+
power supplies for the device, as covered in
11+
Documentation/devicetree/bindings/regulator/regulator.txt.
12+
13+
Optional properties:
14+
15+
- reset-gpios : a GPIO spec for the reset pin. If specified, it will be
16+
deasserted before communication to the codec starts.
17+
18+
- interrupt-parent : Specifies the phandle of the interrupt controller to
19+
which the IRQs from CS42L42 are delivered to.
20+
21+
- interrupts : IRQ line info CS42L42.
22+
(See Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
23+
for further information relating to interrupt properties)
24+
25+
- cirrus,ts-inv : Boolean property. For jacks that invert the tip sense
26+
polarity. Normal jacks will short tip sense pin to HS1 when headphones are
27+
plugged in and leave tip sense floating when not plugged in. Inverting jacks
28+
short tip sense when unplugged and float when plugged in.
29+
30+
0 = (Default) Non-inverted
31+
1 = Inverted
32+
33+
- cirrus,ts-dbnc-rise : Debounce the rising edge of TIP_SENSE_PLUG. With no
34+
debounce, the tip sense pin might be noisy on a plug event.
35+
36+
0 - 0ms,
37+
1 - 125ms,
38+
2 - 250ms,
39+
3 - 500ms,
40+
4 - 750ms,
41+
5 - (Default) 1s,
42+
6 - 1.25s,
43+
7 - 1.5s,
44+
45+
- cirrus,ts-dbnc-fall : Debounce the falling edge of TIP_SENSE_UNPLUG.
46+
With no debounce, the tip sense pin might be noisy on an unplug event.
47+
48+
0 - 0ms,
49+
1 - 125ms,
50+
2 - 250ms,
51+
3 - 500ms,
52+
4 - 750ms,
53+
5 - (Default) 1s,
54+
6 - 1.25s,
55+
7 - 1.5s,
56+
57+
- cirrus,btn-det-init-dbnce : This sets how long the driver sleeps after
58+
enabling button detection interrupts. After auto-detection and before
59+
servicing button interrupts, the HS bias needs time to settle. If you
60+
don't wait, there is possibility for erroneous button interrupt.
61+
62+
0ms - 200ms,
63+
Default = 100ms
64+
65+
- cirrus,btn-det-event-dbnce : This sets how long the driver delays after
66+
receiving a button press interrupt. With level detect interrupts, you want
67+
to wait a small amount of time to make sure the button press is making a
68+
clean connection with the bias resistors.
69+
70+
0ms - 20ms,
71+
Default = 10ms
72+
73+
- cirrus,bias-lvls : For a level-detect headset button scheme, each button
74+
will bias the mic pin to a certain voltage. To determine which button was
75+
pressed, the driver will compare this biased voltage to sequential,
76+
decreasing voltages and will stop when a comparator is tripped,
77+
indicating a comparator voltage < bias voltage. This value represents a
78+
percentage of the internally generated HS bias voltage. For different
79+
hardware setups, a designer might want to tweak this. This is an array of
80+
descending values for the comparator voltage.
81+
82+
Array of 4 values
83+
Each 0-63
84+
< x1 x2 x3 x4 >
85+
Default = < 15 8 4 1>
86+
87+
88+
Example:
89+
90+
cs42l42: cs42l42@48 {
91+
compatible = "cirrus,cs42l42";
92+
reg = <0x48>;
93+
VA-supply = <&dummy_vreg>;
94+
VP-supply = <&dummy_vreg>;
95+
VCP-supply = <&dummy_vreg>;
96+
VD_FILT-supply = <&dummy_vreg>;
97+
VL-supply = <&dummy_vreg>;
98+
99+
reset-gpios = <&axi_gpio_0 1 0>;
100+
interrupt-parent = <&gpio0>;
101+
interrupts = <55 8>
102+
103+
cirrus,ts-inv = <0x00>;
104+
cirrus,ts-dbnc-rise = <0x05>;
105+
cirrus,ts-dbnc-fall = <0x00>;
106+
cirrus,btn-det-init-dbnce = <100>;
107+
cirrus,btn-det-event-dbnce = <10>;
108+
cirrus,bias-lvls = <0x0F 0x08 0x04 0x01>;
109+
cirrus,hs-bias-ramp-rate = <0x02>;
110+
};

Documentation/devicetree/bindings/sound/davinci-mcbsp.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ mcbsp0: mcbsp@1d10000 {
4343
<0x00310000 0x1000>;
4444
reg-names = "mpu", "dat";
4545
interrupts = <97 98>;
46-
interrupts-names = "rx", "tx";
46+
interrupt-names = "rx", "tx";
4747
dmas = <&edma0 3 1
4848
&edma0 2 1>;
4949
dma-names = "tx", "rx";

Documentation/devicetree/bindings/sound/qcom,apq8016-sbc.txt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,7 @@ Required dai-link subnodes:
4444
Required CPU/CODEC subnodes properties:
4545

4646
-link-name : Name of the dai link.
47-
-sound-dai : phandle and port of CPU/CODEC
48-
-capture-dai : phandle and port of CPU/CODEC
47+
-sound-dai : phandle/s and port of CPU/CODEC
4948

5049
Example:
5150

@@ -73,7 +72,7 @@ sound: sound {
7372
sound-dai = <&lpass MI2S_PRIMARY>;
7473
};
7574
codec {
76-
sound-dai = <&wcd_codec 0>;
75+
sound-dai = <&lpass_codec 0>, <&wcd_codec 0>;
7776
};
7877
};
7978

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
msm8916 analog audio CODEC
2+
3+
Bindings for codec Analog IP which is integrated in pmic pm8916,
4+
5+
## Bindings for codec core on pmic:
6+
7+
Required properties
8+
- compatible = "qcom,pm8916-wcd-analog-codec";
9+
- reg: represents the slave base address provided to the peripheral.
10+
- interrupt-parent : The parent interrupt controller.
11+
- interrupts: List of interrupts in given SPMI peripheral.
12+
- interrupt-names: Names specified to above list of interrupts in same
13+
order. List of supported interrupt names are:
14+
"cdc_spk_cnp_int" - Speaker click and pop interrupt.
15+
"cdc_spk_clip_int" - Speaker clip interrupt.
16+
"cdc_spk_ocp_int" - Speaker over current protect interrupt.
17+
"mbhc_ins_rem_det1" - jack insert removal detect interrupt 1.
18+
"mbhc_but_rel_det" - button release interrupt.
19+
"mbhc_but_press_det" - button press event
20+
"mbhc_ins_rem_det" - jack insert removal detect interrupt.
21+
"mbhc_switch_int" - multi button headset interrupt.
22+
"cdc_ear_ocp_int" - Earphone over current protect interrupt.
23+
"cdc_hphr_ocp_int" - Headphone R over current protect interrupt.
24+
"cdc_hphl_ocp_det" - Headphone L over current protect interrupt.
25+
"cdc_ear_cnp_int" - earphone cnp interrupt.
26+
"cdc_hphr_cnp_int" - hphr click and pop interrupt.
27+
"cdc_hphl_cnp_int" - hphl click and pop interrupt.
28+
29+
- clocks: Handle to mclk.
30+
- clock-names: should be "mclk"
31+
- vdd-cdc-io-supply: phandle to VDD_CDC_IO regulator DT node.
32+
- vdd-cdc-tx-rx-cx-supply: phandle to VDD_CDC_TX/RX/CX regulator DT node.
33+
- vdd-micbias-supply: phandle of VDD_MICBIAS supply's regulator DT node.
34+
35+
Optional Properties:
36+
- qcom,micbias1-ext-cap: boolean, present if micbias1 has external capacitor
37+
connected.
38+
- qcom,micbias2-ext-cap: boolean, present if micbias2 has external capacitor
39+
connected.
40+
41+
Example:
42+
43+
spmi_bus {
44+
...
45+
audio-codec@f000{
46+
compatible = "qcom,pm8916-wcd-analog-codec";
47+
reg = <0xf000 0x200>;
48+
reg-names = "pmic-codec-core";
49+
clocks = <&gcc GCC_CODEC_DIGCODEC_CLK>;
50+
clock-names = "mclk";
51+
interrupt-parent = <&spmi_bus>;
52+
interrupts = <0x1 0xf0 0x0 IRQ_TYPE_NONE>,
53+
<0x1 0xf0 0x1 IRQ_TYPE_NONE>,
54+
<0x1 0xf0 0x2 IRQ_TYPE_NONE>,
55+
<0x1 0xf0 0x3 IRQ_TYPE_NONE>,
56+
<0x1 0xf0 0x4 IRQ_TYPE_NONE>,
57+
<0x1 0xf0 0x5 IRQ_TYPE_NONE>,
58+
<0x1 0xf0 0x6 IRQ_TYPE_NONE>,
59+
<0x1 0xf0 0x7 IRQ_TYPE_NONE>,
60+
<0x1 0xf1 0x0 IRQ_TYPE_NONE>,
61+
<0x1 0xf1 0x1 IRQ_TYPE_NONE>,
62+
<0x1 0xf1 0x2 IRQ_TYPE_NONE>,
63+
<0x1 0xf1 0x3 IRQ_TYPE_NONE>,
64+
<0x1 0xf1 0x4 IRQ_TYPE_NONE>,
65+
<0x1 0xf1 0x5 IRQ_TYPE_NONE>;
66+
interrupt-names = "cdc_spk_cnp_int",
67+
"cdc_spk_clip_int",
68+
"cdc_spk_ocp_int",
69+
"mbhc_ins_rem_det1",
70+
"mbhc_but_rel_det",
71+
"mbhc_but_press_det",
72+
"mbhc_ins_rem_det",
73+
"mbhc_switch_int",
74+
"cdc_ear_ocp_int",
75+
"cdc_hphr_ocp_int",
76+
"cdc_hphl_ocp_det",
77+
"cdc_ear_cnp_int",
78+
"cdc_hphr_cnp_int",
79+
"cdc_hphl_cnp_int";
80+
VDD-CDC-IO-supply = <&pm8916_l5>;
81+
VDD-CDC-TX-RX-CX-supply = <&pm8916_l5>;
82+
VDD-MICBIAS-supply = <&pm8916_l13>;
83+
#sound-dai-cells = <1>;
84+
};
85+
};

0 commit comments

Comments
 (0)