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 ...
This commit is contained in:
@@ -0,0 +1,88 @@
|
||||
Devicetree bindings for the Axentia TSE-850 audio complex
|
||||
|
||||
Required properties:
|
||||
- compatible: "axentia,tse850-pcm5142"
|
||||
- axentia,ssc-controller: The phandle of the atmel SSC controller used as
|
||||
cpu dai.
|
||||
- axentia,audio-codec: The phandle of the PCM5142 codec.
|
||||
- axentia,add-gpios: gpio specifier that controls the mixer.
|
||||
- axentia,loop1-gpios: gpio specifier that controls loop relays on channel 1.
|
||||
- axentia,loop2-gpios: gpio specifier that controls loop relays on channel 2.
|
||||
- axentia,ana-supply: Regulator that supplies the output amplifier. Must
|
||||
support voltages in the 2V - 20V range, in 1V steps.
|
||||
|
||||
The schematics explaining the gpios are as follows:
|
||||
|
||||
loop1 relays
|
||||
IN1 +---o +------------+ o---+ OUT1
|
||||
\ /
|
||||
+ +
|
||||
| / |
|
||||
+--o +--. |
|
||||
| add | |
|
||||
| V |
|
||||
| .---. |
|
||||
DAC +----------->|Sum|---+
|
||||
| '---' |
|
||||
| |
|
||||
+ +
|
||||
|
||||
IN2 +---o--+------------+--o---+ OUT2
|
||||
loop2 relays
|
||||
|
||||
The 'loop1' gpio pin controlls two relays, which are either in loop position,
|
||||
meaning that input and output are directly connected, or they are in mixer
|
||||
position, meaning that the signal is passed through the 'Sum' mixer. Similarly
|
||||
for 'loop2'.
|
||||
|
||||
In the above, the 'loop1' relays are inactive, thus feeding IN1 to the mixer
|
||||
(if 'add' is active) and feeding the mixer output to OUT1. The 'loop2' relays
|
||||
are active, short-cutting the TSE-850 from channel 2. IN1, IN2, OUT1 and OUT2
|
||||
are TSE-850 connectors and DAC is the PCB name of the (filtered) output from
|
||||
the PCM5142 codec.
|
||||
|
||||
Example:
|
||||
|
||||
&i2c {
|
||||
codec: pcm5142@4c {
|
||||
compatible = "ti,pcm5142";
|
||||
|
||||
reg = <0x4c>;
|
||||
|
||||
AVDD-supply = <®_3v3>;
|
||||
DVDD-supply = <®_3v3>;
|
||||
CPVDD-supply = <®_3v3>;
|
||||
|
||||
clocks = <&sck>;
|
||||
|
||||
pll-in = <3>;
|
||||
pll-out = <6>;
|
||||
};
|
||||
};
|
||||
|
||||
ana: ana-reg {
|
||||
compatible = "pwm-regulator";
|
||||
|
||||
regulator-name = "ANA";
|
||||
|
||||
pwms = <&pwm0 2 1000 PWM_POLARITY_INVERTED>;
|
||||
pwm-dutycycle-unit = <1000>;
|
||||
pwm-dutycycle-range = <100 1000>;
|
||||
|
||||
regulator-min-microvolt = <2000000>;
|
||||
regulator-max-microvolt = <20000000>;
|
||||
regulator-ramp-delay = <1000>;
|
||||
};
|
||||
|
||||
sound {
|
||||
compatible = "axentia,tse850-pcm5142";
|
||||
|
||||
axentia,ssc-controller = <&ssc0>;
|
||||
axentia,audio-codec = <&codec>;
|
||||
|
||||
axentia,add-gpios = <&pioA 8 GPIO_ACTIVE_LOW>;
|
||||
axentia,loop1-gpios = <&pioA 10 GPIO_ACTIVE_LOW>;
|
||||
axentia,loop2-gpios = <&pioA 11 GPIO_ACTIVE_LOW>;
|
||||
|
||||
axentia,ana-supply = <&ana>;
|
||||
};
|
64
Documentation/devicetree/bindings/sound/cs35l34.txt
Normal file
64
Documentation/devicetree/bindings/sound/cs35l34.txt
Normal file
@@ -0,0 +1,64 @@
|
||||
CS35L34 Speaker Amplifier
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : "cirrus,cs35l34"
|
||||
|
||||
- reg : the I2C address of the device for I2C.
|
||||
|
||||
- VA-supply, VP-supply : power supplies for the device,
|
||||
as covered in
|
||||
Documentation/devicetree/bindings/regulator/regulator.txt.
|
||||
|
||||
- cirrus,boost-vtge-millivolt : Boost Voltage Value. Configures the boost
|
||||
converter's output voltage in mV. The range is from VP to 8V with
|
||||
increments of 100mV.
|
||||
|
||||
- cirrus,boost-nanohenry: Inductor value for boost converter. The value is
|
||||
in nH and they can be values of 1000nH, 1100nH, 1200nH, 1500nH, and 2200nH.
|
||||
|
||||
Optional properties:
|
||||
|
||||
- reset-gpios: GPIO used to reset the amplifier.
|
||||
|
||||
- interrupt-parent : Specifies the phandle of the interrupt controller to
|
||||
which the IRQs from CS35L34 are delivered to.
|
||||
- interrupts : IRQ line info CS35L34.
|
||||
(See Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
|
||||
for further information relating to interrupt properties)
|
||||
|
||||
- cirrus,boost-peak-milliamp : Boost converter peak current limit in mA. The
|
||||
range starts at 1200mA and goes to a maximum of 3840mA with increments of
|
||||
80mA. The default value is 2480mA.
|
||||
|
||||
- cirrus,i2s-sdinloc : ADSP SDIN I2S channel location. Indicates whether the
|
||||
received mono data is in the left or right portion of the I2S frame
|
||||
according to the AD0 pin or directly via this configuration.
|
||||
0x0 (Default) = Selected by AD0 input (if AD0 = LOW, use left channel),
|
||||
0x2 = Left,
|
||||
0x1 = Selected by the inversion of the AD0 input (if AD0 = LOW, use right
|
||||
channel),
|
||||
0x3 = Right.
|
||||
|
||||
- cirrus,gain-zc-disable: Boolean property. If set, the gain change will take
|
||||
effect without waiting for a zero cross.
|
||||
|
||||
- cirrus,tdm-rising-edge: Boolean property. If set, data is on the rising edge of
|
||||
SCLK. Otherwise, data is on the falling edge of SCLK.
|
||||
|
||||
|
||||
Example:
|
||||
|
||||
cs35l34: cs35l34@40 {
|
||||
compatible = "cirrus,cs35l34";
|
||||
reg = <0x40>;
|
||||
|
||||
interrupt-parent = <&gpio8>;
|
||||
interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
|
||||
|
||||
reset-gpios = <&gpio 10 0>;
|
||||
|
||||
cirrus,boost-vtge-milltvolt = <8000>; /* 8V */
|
||||
cirrus,boost-ind-nanohenry = <1000>; /* 1uH */
|
||||
cirrus,boost-peak-milliamp = <3000>; /* 3A */
|
||||
};
|
110
Documentation/devicetree/bindings/sound/cs42l42.txt
Normal file
110
Documentation/devicetree/bindings/sound/cs42l42.txt
Normal file
@@ -0,0 +1,110 @@
|
||||
CS42L42 audio CODEC
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : "cirrus,cs42l42"
|
||||
|
||||
- reg : the I2C address of the device for I2C.
|
||||
|
||||
- VP-supply, VCP-supply, VD_FILT-supply, VL-supply, VA-supply :
|
||||
power supplies for the device, as covered in
|
||||
Documentation/devicetree/bindings/regulator/regulator.txt.
|
||||
|
||||
Optional properties:
|
||||
|
||||
- reset-gpios : a GPIO spec for the reset pin. If specified, it will be
|
||||
deasserted before communication to the codec starts.
|
||||
|
||||
- interrupt-parent : Specifies the phandle of the interrupt controller to
|
||||
which the IRQs from CS42L42 are delivered to.
|
||||
|
||||
- interrupts : IRQ line info CS42L42.
|
||||
(See Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
|
||||
for further information relating to interrupt properties)
|
||||
|
||||
- cirrus,ts-inv : Boolean property. For jacks that invert the tip sense
|
||||
polarity. Normal jacks will short tip sense pin to HS1 when headphones are
|
||||
plugged in and leave tip sense floating when not plugged in. Inverting jacks
|
||||
short tip sense when unplugged and float when plugged in.
|
||||
|
||||
0 = (Default) Non-inverted
|
||||
1 = Inverted
|
||||
|
||||
- cirrus,ts-dbnc-rise : Debounce the rising edge of TIP_SENSE_PLUG. With no
|
||||
debounce, the tip sense pin might be noisy on a plug event.
|
||||
|
||||
0 - 0ms,
|
||||
1 - 125ms,
|
||||
2 - 250ms,
|
||||
3 - 500ms,
|
||||
4 - 750ms,
|
||||
5 - (Default) 1s,
|
||||
6 - 1.25s,
|
||||
7 - 1.5s,
|
||||
|
||||
- cirrus,ts-dbnc-fall : Debounce the falling edge of TIP_SENSE_UNPLUG.
|
||||
With no debounce, the tip sense pin might be noisy on an unplug event.
|
||||
|
||||
0 - 0ms,
|
||||
1 - 125ms,
|
||||
2 - 250ms,
|
||||
3 - 500ms,
|
||||
4 - 750ms,
|
||||
5 - (Default) 1s,
|
||||
6 - 1.25s,
|
||||
7 - 1.5s,
|
||||
|
||||
- cirrus,btn-det-init-dbnce : This sets how long the driver sleeps after
|
||||
enabling button detection interrupts. After auto-detection and before
|
||||
servicing button interrupts, the HS bias needs time to settle. If you
|
||||
don't wait, there is possibility for erroneous button interrupt.
|
||||
|
||||
0ms - 200ms,
|
||||
Default = 100ms
|
||||
|
||||
- cirrus,btn-det-event-dbnce : This sets how long the driver delays after
|
||||
receiving a button press interrupt. With level detect interrupts, you want
|
||||
to wait a small amount of time to make sure the button press is making a
|
||||
clean connection with the bias resistors.
|
||||
|
||||
0ms - 20ms,
|
||||
Default = 10ms
|
||||
|
||||
- cirrus,bias-lvls : For a level-detect headset button scheme, each button
|
||||
will bias the mic pin to a certain voltage. To determine which button was
|
||||
pressed, the driver will compare this biased voltage to sequential,
|
||||
decreasing voltages and will stop when a comparator is tripped,
|
||||
indicating a comparator voltage < bias voltage. This value represents a
|
||||
percentage of the internally generated HS bias voltage. For different
|
||||
hardware setups, a designer might want to tweak this. This is an array of
|
||||
descending values for the comparator voltage.
|
||||
|
||||
Array of 4 values
|
||||
Each 0-63
|
||||
< x1 x2 x3 x4 >
|
||||
Default = < 15 8 4 1>
|
||||
|
||||
|
||||
Example:
|
||||
|
||||
cs42l42: cs42l42@48 {
|
||||
compatible = "cirrus,cs42l42";
|
||||
reg = <0x48>;
|
||||
VA-supply = <&dummy_vreg>;
|
||||
VP-supply = <&dummy_vreg>;
|
||||
VCP-supply = <&dummy_vreg>;
|
||||
VD_FILT-supply = <&dummy_vreg>;
|
||||
VL-supply = <&dummy_vreg>;
|
||||
|
||||
reset-gpios = <&axi_gpio_0 1 0>;
|
||||
interrupt-parent = <&gpio0>;
|
||||
interrupts = <55 8>
|
||||
|
||||
cirrus,ts-inv = <0x00>;
|
||||
cirrus,ts-dbnc-rise = <0x05>;
|
||||
cirrus,ts-dbnc-fall = <0x00>;
|
||||
cirrus,btn-det-init-dbnce = <100>;
|
||||
cirrus,btn-det-event-dbnce = <10>;
|
||||
cirrus,bias-lvls = <0x0F 0x08 0x04 0x01>;
|
||||
cirrus,hs-bias-ramp-rate = <0x02>;
|
||||
};
|
@@ -43,7 +43,7 @@ mcbsp0: mcbsp@1d10000 {
|
||||
<0x00310000 0x1000>;
|
||||
reg-names = "mpu", "dat";
|
||||
interrupts = <97 98>;
|
||||
interrupts-names = "rx", "tx";
|
||||
interrupt-names = "rx", "tx";
|
||||
dmas = <&edma0 3 1
|
||||
&edma0 2 1>;
|
||||
dma-names = "tx", "rx";
|
||||
|
@@ -44,8 +44,7 @@ Required dai-link subnodes:
|
||||
Required CPU/CODEC subnodes properties:
|
||||
|
||||
-link-name : Name of the dai link.
|
||||
-sound-dai : phandle and port of CPU/CODEC
|
||||
-capture-dai : phandle and port of CPU/CODEC
|
||||
-sound-dai : phandle/s and port of CPU/CODEC
|
||||
|
||||
Example:
|
||||
|
||||
@@ -73,7 +72,7 @@ sound: sound {
|
||||
sound-dai = <&lpass MI2S_PRIMARY>;
|
||||
};
|
||||
codec {
|
||||
sound-dai = <&wcd_codec 0>;
|
||||
sound-dai = <&lpass_codec 0>, <&wcd_codec 0>;
|
||||
};
|
||||
};
|
||||
|
||||
|
@@ -0,0 +1,85 @@
|
||||
msm8916 analog audio CODEC
|
||||
|
||||
Bindings for codec Analog IP which is integrated in pmic pm8916,
|
||||
|
||||
## Bindings for codec core on pmic:
|
||||
|
||||
Required properties
|
||||
- compatible = "qcom,pm8916-wcd-analog-codec";
|
||||
- reg: represents the slave base address provided to the peripheral.
|
||||
- interrupt-parent : The parent interrupt controller.
|
||||
- interrupts: List of interrupts in given SPMI peripheral.
|
||||
- interrupt-names: Names specified to above list of interrupts in same
|
||||
order. List of supported interrupt names are:
|
||||
"cdc_spk_cnp_int" - Speaker click and pop interrupt.
|
||||
"cdc_spk_clip_int" - Speaker clip interrupt.
|
||||
"cdc_spk_ocp_int" - Speaker over current protect interrupt.
|
||||
"mbhc_ins_rem_det1" - jack insert removal detect interrupt 1.
|
||||
"mbhc_but_rel_det" - button release interrupt.
|
||||
"mbhc_but_press_det" - button press event
|
||||
"mbhc_ins_rem_det" - jack insert removal detect interrupt.
|
||||
"mbhc_switch_int" - multi button headset interrupt.
|
||||
"cdc_ear_ocp_int" - Earphone over current protect interrupt.
|
||||
"cdc_hphr_ocp_int" - Headphone R over current protect interrupt.
|
||||
"cdc_hphl_ocp_det" - Headphone L over current protect interrupt.
|
||||
"cdc_ear_cnp_int" - earphone cnp interrupt.
|
||||
"cdc_hphr_cnp_int" - hphr click and pop interrupt.
|
||||
"cdc_hphl_cnp_int" - hphl click and pop interrupt.
|
||||
|
||||
- clocks: Handle to mclk.
|
||||
- clock-names: should be "mclk"
|
||||
- vdd-cdc-io-supply: phandle to VDD_CDC_IO regulator DT node.
|
||||
- vdd-cdc-tx-rx-cx-supply: phandle to VDD_CDC_TX/RX/CX regulator DT node.
|
||||
- vdd-micbias-supply: phandle of VDD_MICBIAS supply's regulator DT node.
|
||||
|
||||
Optional Properties:
|
||||
- qcom,micbias1-ext-cap: boolean, present if micbias1 has external capacitor
|
||||
connected.
|
||||
- qcom,micbias2-ext-cap: boolean, present if micbias2 has external capacitor
|
||||
connected.
|
||||
|
||||
Example:
|
||||
|
||||
spmi_bus {
|
||||
...
|
||||
audio-codec@f000{
|
||||
compatible = "qcom,pm8916-wcd-analog-codec";
|
||||
reg = <0xf000 0x200>;
|
||||
reg-names = "pmic-codec-core";
|
||||
clocks = <&gcc GCC_CODEC_DIGCODEC_CLK>;
|
||||
clock-names = "mclk";
|
||||
interrupt-parent = <&spmi_bus>;
|
||||
interrupts = <0x1 0xf0 0x0 IRQ_TYPE_NONE>,
|
||||
<0x1 0xf0 0x1 IRQ_TYPE_NONE>,
|
||||
<0x1 0xf0 0x2 IRQ_TYPE_NONE>,
|
||||
<0x1 0xf0 0x3 IRQ_TYPE_NONE>,
|
||||
<0x1 0xf0 0x4 IRQ_TYPE_NONE>,
|
||||
<0x1 0xf0 0x5 IRQ_TYPE_NONE>,
|
||||
<0x1 0xf0 0x6 IRQ_TYPE_NONE>,
|
||||
<0x1 0xf0 0x7 IRQ_TYPE_NONE>,
|
||||
<0x1 0xf1 0x0 IRQ_TYPE_NONE>,
|
||||
<0x1 0xf1 0x1 IRQ_TYPE_NONE>,
|
||||
<0x1 0xf1 0x2 IRQ_TYPE_NONE>,
|
||||
<0x1 0xf1 0x3 IRQ_TYPE_NONE>,
|
||||
<0x1 0xf1 0x4 IRQ_TYPE_NONE>,
|
||||
<0x1 0xf1 0x5 IRQ_TYPE_NONE>;
|
||||
interrupt-names = "cdc_spk_cnp_int",
|
||||
"cdc_spk_clip_int",
|
||||
"cdc_spk_ocp_int",
|
||||
"mbhc_ins_rem_det1",
|
||||
"mbhc_but_rel_det",
|
||||
"mbhc_but_press_det",
|
||||
"mbhc_ins_rem_det",
|
||||
"mbhc_switch_int",
|
||||
"cdc_ear_ocp_int",
|
||||
"cdc_hphr_ocp_int",
|
||||
"cdc_hphl_ocp_det",
|
||||
"cdc_ear_cnp_int",
|
||||
"cdc_hphr_cnp_int",
|
||||
"cdc_hphl_cnp_int";
|
||||
VDD-CDC-IO-supply = <&pm8916_l5>;
|
||||
VDD-CDC-TX-RX-CX-supply = <&pm8916_l5>;
|
||||
VDD-MICBIAS-supply = <&pm8916_l13>;
|
||||
#sound-dai-cells = <1>;
|
||||
};
|
||||
};
|
@@ -0,0 +1,20 @@
|
||||
msm8916 digital audio CODEC
|
||||
|
||||
## Bindings for codec core in lpass:
|
||||
|
||||
Required properties
|
||||
- compatible = "qcom,msm8916-wcd-digital-codec";
|
||||
- reg: address space for lpass codec.
|
||||
- clocks: Handle to mclk and ahbclk
|
||||
- clock-names: should be "mclk", "ahbix-clk".
|
||||
|
||||
Example:
|
||||
|
||||
audio-codec@771c000{
|
||||
compatible = "qcom,msm8916-wcd-digital-codec";
|
||||
reg = <0x0771c000 0x400>;
|
||||
clocks = <&gcc GCC_ULTAUDIO_AHBFABRIC_IXFABRIC_CLK>,
|
||||
<&gcc GCC_CODEC_DIGCODEC_CLK>;
|
||||
clock-names = "ahbix-clk", "mclk";
|
||||
#sound-dai-cells = <1>;
|
||||
};
|
@@ -13,6 +13,9 @@ Optional properties:
|
||||
- clocks: The phandle of the master clock to the CODEC
|
||||
- clock-names: Should be "mclk"
|
||||
|
||||
- realtek,dmic-init-delay-ms
|
||||
Set the DMIC initial delay (ms) to wait it ready.
|
||||
|
||||
Pins on the device (for linking into audio routes) for RT5514:
|
||||
|
||||
* DMIC1L
|
||||
|
@@ -1,10 +1,10 @@
|
||||
RT5663/RT5668 audio CODEC
|
||||
RT5663 audio CODEC
|
||||
|
||||
This device supports I2C only.
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : One of "realtek,rt5663" or "realtek,rt5668".
|
||||
- compatible : "realtek,rt5663".
|
||||
|
||||
- reg : The I2C address of the device.
|
||||
|
||||
@@ -12,7 +12,7 @@ Required properties:
|
||||
|
||||
Optional properties:
|
||||
|
||||
Pins on the device (for linking into audio routes) for RT5663/RT5668:
|
||||
Pins on the device (for linking into audio routes) for RT5663:
|
||||
|
||||
* IN1P
|
||||
* IN1N
|
||||
|
68
Documentation/devicetree/bindings/sound/rt5665.txt
Executable file
68
Documentation/devicetree/bindings/sound/rt5665.txt
Executable file
@@ -0,0 +1,68 @@
|
||||
RT5665/RT5666/RT5668 audio CODEC
|
||||
|
||||
This device supports I2C only.
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : One of "realtek,rt5665", "realtek,rt5666" or "realtek,rt5668".
|
||||
|
||||
- reg : The I2C address of the device.
|
||||
|
||||
- interrupts : The CODEC's interrupt output.
|
||||
|
||||
Optional properties:
|
||||
|
||||
- realtek,in1-differential
|
||||
- realtek,in2-differential
|
||||
- realtek,in3-differential
|
||||
- realtek,in4-differential
|
||||
Boolean. Indicate MIC1/2/3/4 input are differential, rather than single-ended.
|
||||
|
||||
- realtek,dmic1-data-pin
|
||||
0: dmic1 is not used
|
||||
1: using GPIO4 pin as dmic1 data pin
|
||||
2: using IN2N pin as dmic2 data pin
|
||||
|
||||
- realtek,dmic2-data-pin
|
||||
0: dmic2 is not used
|
||||
1: using GPIO5 pin as dmic2 data pin
|
||||
2: using IN2P pin as dmic2 data pin
|
||||
|
||||
- realtek,jd-src
|
||||
0: No JD is used
|
||||
1: using JD1 as JD source
|
||||
|
||||
- realtek,ldo1-en-gpios : The GPIO that controls the CODEC's LDO1_EN pin.
|
||||
|
||||
Pins on the device (for linking into audio routes) for RT5659/RT5658:
|
||||
|
||||
* DMIC L1
|
||||
* DMIC R1
|
||||
* DMIC L2
|
||||
* DMIC R2
|
||||
* IN1P
|
||||
* IN1N
|
||||
* IN2P
|
||||
* IN2N
|
||||
* IN3P
|
||||
* IN3N
|
||||
* IN4P
|
||||
* IN4N
|
||||
* HPOL
|
||||
* HPOR
|
||||
* LOUTL
|
||||
* LOUTR
|
||||
* MONOOUT
|
||||
* PDML
|
||||
* PDMR
|
||||
|
||||
Example:
|
||||
|
||||
rt5659 {
|
||||
compatible = "realtek,rt5665";
|
||||
reg = <0x1b>;
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = <TEGRA_GPIO(W, 3) GPIO_ACTIVE_HIGH>;
|
||||
realtek,ldo1-en-gpios =
|
||||
<&gpio TEGRA_GPIO(V, 3) GPIO_ACTIVE_HIGH>;
|
||||
};
|
@@ -0,0 +1,38 @@
|
||||
Samsung Exynos5433 TM2(E) audio complex with WM5110 codec
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : "samsung,tm2-audio"
|
||||
- model : the user-visible name of this sound complex
|
||||
- audio-codec : the phandle of the wm5110 audio codec node,
|
||||
as described in ../mfd/arizona.txt
|
||||
- i2s-controller : the phandle of the I2S controller
|
||||
- audio-amplifier : the phandle of the MAX98504 amplifier
|
||||
- samsung,audio-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; valid names for sources and sinks are the
|
||||
WM5110's and MAX98504's pins and the jacks on the
|
||||
board: HP, SPK, Main Mic, Sub Mic, Third Mic,
|
||||
Headset Mic
|
||||
- mic-bias-gpios : GPIO pin that enables the Main Mic bias regulator
|
||||
|
||||
|
||||
Example:
|
||||
|
||||
sound {
|
||||
compatible = "samsung,tm2-audio";
|
||||
audio-codec = <&wm5110>;
|
||||
i2s-controller = <&i2s0>;
|
||||
audio-amplifier = <&max98504>;
|
||||
mic-bias-gpios = <&gpr3 2 0>;
|
||||
model = "wm5110";
|
||||
samsung,audio-routing =
|
||||
"HP", "HPOUT1L",
|
||||
"HP", "HPOUT1R",
|
||||
"SPK", "SPKOUT",
|
||||
"SPKOUT", "HPOUT2L",
|
||||
"SPKOUT", "HPOUT2R",
|
||||
"Main Mic", "MICBIAS2",
|
||||
"IN1R", "Main Mic";
|
||||
};
|
@@ -1,8 +1,12 @@
|
||||
* Allwinner A10 Codec
|
||||
|
||||
Required properties:
|
||||
- compatible: must be either "allwinner,sun4i-a10-codec" or
|
||||
"allwinner,sun7i-a20-codec"
|
||||
- compatible: must be one of the following compatibles:
|
||||
- "allwinner,sun4i-a10-codec"
|
||||
- "allwinner,sun6i-a31-codec"
|
||||
- "allwinner,sun7i-a20-codec"
|
||||
- "allwinner,sun8i-a23-codec"
|
||||
- "allwinner,sun8i-h3-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,
|
||||
@@ -17,6 +21,43 @@ Required properties:
|
||||
Optional properties:
|
||||
- allwinner,pa-gpios: gpio to enable external amplifier
|
||||
|
||||
Required properties for the following compatibles:
|
||||
- "allwinner,sun6i-a31-codec"
|
||||
- "allwinner,sun8i-a23-codec"
|
||||
- "allwinner,sun8i-h3-codec"
|
||||
- resets: phandle to the reset control for this device
|
||||
- allwinner,audio-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. Valid names include:
|
||||
|
||||
Audio pins on the SoC:
|
||||
"HP"
|
||||
"HPCOM"
|
||||
"LINEIN"
|
||||
"LINEOUT" (not on sun8i-a23)
|
||||
"MIC1"
|
||||
"MIC2"
|
||||
"MIC3" (sun6i-a31 only)
|
||||
|
||||
Microphone biases from the SoC:
|
||||
"HBIAS"
|
||||
"MBIAS"
|
||||
|
||||
Board connectors:
|
||||
"Headphone"
|
||||
"Headset Mic"
|
||||
"Line In"
|
||||
"Line Out"
|
||||
"Mic"
|
||||
"Speaker"
|
||||
|
||||
Required properties for the following compatibles:
|
||||
- "allwinner,sun8i-a23-codec"
|
||||
- "allwinner,sun8i-h3-codec"
|
||||
- allwinner,codec-analog-controls: A phandle to the codec analog controls
|
||||
block in the PRCM.
|
||||
|
||||
Example:
|
||||
codec: codec@01c22c00 {
|
||||
#sound-dai-cells = <0>;
|
||||
@@ -28,3 +69,23 @@ codec: codec@01c22c00 {
|
||||
dmas = <&dma 0 19>, <&dma 0 19>;
|
||||
dma-names = "rx", "tx";
|
||||
};
|
||||
|
||||
codec: codec@01c22c00 {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "allwinner,sun6i-a31-codec";
|
||||
reg = <0x01c22c00 0x98>;
|
||||
interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&ccu CLK_APB1_CODEC>, <&ccu CLK_CODEC>;
|
||||
clock-names = "apb", "codec";
|
||||
resets = <&ccu RST_APB1_CODEC>;
|
||||
dmas = <&dma 15>, <&dma 15>;
|
||||
dma-names = "rx", "tx";
|
||||
allwinner,audio-routing =
|
||||
"Headphone", "HP",
|
||||
"Speaker", "LINEOUT",
|
||||
"LINEIN", "Line In",
|
||||
"MIC1", "MBIAS",
|
||||
"MIC1", "Mic",
|
||||
"MIC2", "HBIAS",
|
||||
"MIC2", "Headset Mic";
|
||||
};
|
||||
|
@@ -0,0 +1,16 @@
|
||||
* Allwinner Codec Analog Controls
|
||||
|
||||
Required properties:
|
||||
- compatible: must be one of the following compatibles:
|
||||
- "allwinner,sun8i-a23-codec-analog"
|
||||
- "allwinner,sun8i-h3-codec-analog"
|
||||
|
||||
Required properties if not a sub-node of the PRCM node:
|
||||
- reg: must contain the registers location and length
|
||||
|
||||
Example:
|
||||
prcm: prcm@01f01400 {
|
||||
codec_analog: codec-analog {
|
||||
compatible = "allwinner,sun8i-a23-codec-analog";
|
||||
};
|
||||
};
|
@@ -12,6 +12,7 @@ Required properties:
|
||||
"ti,tlv320aic3120" - TLV320AIC3120 (mono speaker amp, MiniDSP)
|
||||
"ti,tlv320aic3111" - TLV320AIC3111 (stereo speaker amp, MiniDSP)
|
||||
"ti,tlv320dac3100" - TLV320DAC3100 (no ADC, mono speaker amp, no MiniDSP)
|
||||
"ti,tlv320dac3101" - TLV320DAC3101 (no ADC, stereo speaker amp, no MiniDSP)
|
||||
|
||||
- reg - <int> - I2C slave address
|
||||
- HPVDD-supply, SPRVDD-supply, SPLVDD-supply, AVDD-supply, IOVDD-supply,
|
||||
|
@@ -1,10 +1,10 @@
|
||||
WM8580 audio CODEC
|
||||
WM8580 and WM8581 audio CODEC
|
||||
|
||||
This device supports I2C only.
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : "wlf,wm8580"
|
||||
- compatible : "wlf,wm8580", "wlf,wm8581"
|
||||
|
||||
- reg : the I2C address of the device.
|
||||
|
||||
|
Reference in New Issue
Block a user