You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge tag 'sound-4.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound updates from Takashi Iwai:
"We have touched quite a lot of files but with fewer changes at this
cycle; as you can see, most of changes are trivial fixes, especially
constification patches.
Among the massive attacks by constification gangs, we had a few core
changes (mostly for ASoC core), as well the fixes and the updates by
major vendors.
Some highlights:
ALSA core:
- Fix possible races in control API user-TLV codes
- Small cleanup of PCM core
ASoC:
- Continued work for componentization; still half-baked, but we're
certainly progressing
- Use of devres for jack detection GPIOs, rather as a cleanup
- Jack detection support for Qualcomm MSM8916
- Support for Allwinner H3, Cirrus Logic CS43130, Intel Kabylake
systems with RT5663, Realtek RT274, TI TLV320AIC32x6 and Wolfson
WM8523"
* tag 'sound-4.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (512 commits)
ALSA: hda/ca0132 - Fix memory leak at error path
ALSA: hda: Fix forget to free resource in error handling code path in hda_codec_driver_probe
ASoC: cs43130: Fix unused compiler warnings for PM runtime
ASoC: cs43130: Fix possible Oops with invalid dev_id
ASoC: cs43130: fix spelling mistake: "irq_occurrance" -> "irq_occurrence"
ALSA: atmel: Remove leftovers of AVR32 removal
ALSA: atmel: convert AC97c driver to GPIO descriptor API
ALSA: hda/realtek - Enable jack detection function for Intel ALC700
ALSA: hda: Fix regression of hdmi eld control created based on invalid pcm
ASoC: Intel: Skylake: Add IPC to configure the copier secondary pins
ASoC: add missing compile rule for max98371
ASoC: add missing compile rule for sirf-audio-codec
ASoC: add missing compile rule for max98371
ASoC: cs43130: Add devicetree bindings for CS43130
ASoC: cs43130: Add support for CS43130 codec
ASoC: make clock direction configurable in asoc-simple
ALSA: ctxfi: Remove null check before kfree
ASoC: max98927: Changed device property read function
ASoC: max98927: Modified DAPM widget and map to enable/disable VI sense path
ASoC: max98927: Added PM suspend and resume function
...
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
CS43130 DAC
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : "cirrus,cs43130", "cirrus,cs4399", "cirrus,cs43131",
|
||||
"cirrus,cs43198"
|
||||
|
||||
- reg : the I2C address of the device for I2C
|
||||
|
||||
- VA-supply, VP-supply, VL-supply, VCP-supply, VD-supply:
|
||||
power supplies for the device, as covered in
|
||||
Documentation/devicetree/bindings/regulator/regulator.txt.
|
||||
|
||||
|
||||
Optional properties:
|
||||
|
||||
- reset-gpios : Active low GPIO used to reset the device
|
||||
|
||||
- cirrus,xtal-ibias:
|
||||
When external MCLK is generated by external crystal
|
||||
oscillator, CS43130 can be used to provide bias current
|
||||
for external crystal. Amount of bias current sent is
|
||||
set as:
|
||||
1 = 7.5uA
|
||||
2 = 12.5uA
|
||||
3 = 15uA
|
||||
|
||||
- cirrus,dc-measure:
|
||||
Boolean, define to enable headphone DC impedance measurement.
|
||||
|
||||
- cirrus,ac-measure:
|
||||
Boolean, define to enable headphone AC impedance measurement.
|
||||
DC impedance must also be enabled for AC impedance measurement.
|
||||
|
||||
- cirrus,dc-threshold:
|
||||
Define 2 DC impedance thresholds in ohms for HP output control.
|
||||
Default values are 50 and 120 Ohms.
|
||||
|
||||
- cirrus,ac-freq:
|
||||
Define the frequencies at which to measure HP AC impedance.
|
||||
Only used if "cirrus,dc-measure" is defined.
|
||||
Exactly 10 frequencies must be defined.
|
||||
If this properties is undefined, by default,
|
||||
following frequencies are used:
|
||||
<24 43 93 200 431 928 2000 4309 9283 20000>
|
||||
The above frequencies are logarithmically equally spaced.
|
||||
Log base is 10.
|
||||
|
||||
Example:
|
||||
|
||||
cs43130: audio-codec@30 {
|
||||
compatible = "cirrus,cs43130";
|
||||
reg = <0x30>;
|
||||
reset-gpios = <&axi_gpio 54 0>;
|
||||
VA-supply = <&dummy_vreg>;
|
||||
VP-supply = <&dummy_vreg>;
|
||||
VL-supply = <&dummy_vreg>;
|
||||
VCP-supply = <&dummy_vreg>;
|
||||
VD-supply = <&dummy_vreg>;
|
||||
cirrus,xtal-ibias = <2>;
|
||||
interrupt-parent = <&gpio0>;
|
||||
interrupts = <55 8>;
|
||||
cirrus,dc-measure;
|
||||
cirrus,ac-measure;
|
||||
cirrus,dc-threshold = /bits/ 16 <20 100>;
|
||||
cirrus,ac-freq = /bits/ 16 <24 43 93 200 431 928 2000 4309 9283 20000>;
|
||||
};
|
||||
@@ -0,0 +1,16 @@
|
||||
Device-Tree bindings for Digital microphone (DMIC) codec
|
||||
|
||||
This device support generic PDM digital microphone.
|
||||
|
||||
Required properties:
|
||||
- compatible: should be "dmic-codec".
|
||||
|
||||
Optional properties:
|
||||
- dmicen-gpios: GPIO specifier for dmic to control start and stop
|
||||
|
||||
Example node:
|
||||
|
||||
dmic_codec: dmic@0 {
|
||||
compatible = "dmic-codec";
|
||||
dmicen-gpios = <&gpio4 3 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
@@ -3,7 +3,8 @@ Mediatek AFE PCM controller for mt2701
|
||||
Required properties:
|
||||
- compatible = "mediatek,mt2701-audio";
|
||||
- reg: register location and size
|
||||
- interrupts: Should contain AFE interrupt
|
||||
- interrupts: should contain AFE and ASYS interrupts
|
||||
- interrupt-names: should be "afe" and "asys"
|
||||
- power-domains: should define the power domain
|
||||
- clock-names: should have these clock names:
|
||||
"infra_sys_audio_clk",
|
||||
@@ -59,6 +60,7 @@ Example:
|
||||
<0 0x112A0000 0 0x20000>;
|
||||
interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_LOW>,
|
||||
<GIC_SPI 132 IRQ_TYPE_LEVEL_LOW>;
|
||||
interrupt-names = "afe", "asys";
|
||||
power-domains = <&scpsys MT2701_POWER_DOMAIN_IFR_MSC>;
|
||||
clocks = <&infracfg CLK_INFRA_AUDIO>,
|
||||
<&topckgen CLK_TOP_AUD_MUX1_SEL>,
|
||||
|
||||
@@ -31,8 +31,22 @@ Required properties
|
||||
- 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,mbhc-vthreshold-low: Array of 5 threshold voltages in mV for 5 buttons
|
||||
detection on headset when the mbhc is powered up
|
||||
by internal current source, this is a low power.
|
||||
- qcom,mbhc-vthreshold-high: Array of 5 thresold voltages in mV for 5 buttons
|
||||
detection on headset when mbhc is powered up
|
||||
from micbias.
|
||||
- qcom,micbias-lvl: Voltage (mV) for Mic Bias
|
||||
- qcom,hphl-jack-type-normally-open: boolean, present if hphl pin on jack is a
|
||||
NO (Normally Open). If not specified, then
|
||||
its assumed that hphl pin on jack is NC
|
||||
(Normally Closed).
|
||||
- qcom,gnd-jack-type-normally-open: boolean, present if gnd pin on jack is
|
||||
NO (Normally Open). If not specified, then
|
||||
its assumed that gnd pin on jack is NC
|
||||
(Normally Closed).
|
||||
- qcom,micbias1-ext-cap: boolean, present if micbias1 has external capacitor
|
||||
connected.
|
||||
- qcom,micbias2-ext-cap: boolean, present if micbias2 has external capacitor
|
||||
@@ -48,6 +62,8 @@ spmi_bus {
|
||||
reg-names = "pmic-codec-core";
|
||||
clocks = <&gcc GCC_CODEC_DIGCODEC_CLK>;
|
||||
clock-names = "mclk";
|
||||
qcom,mbhc-vthreshold-low = <75 150 237 450 500>;
|
||||
qcom,mbhc-vthreshold-high = <75 150 237 450 500>;
|
||||
interrupt-parent = <&spmi_bus>;
|
||||
interrupts = <0x1 0xf0 0x0 IRQ_TYPE_NONE>,
|
||||
<0x1 0xf0 0x1 IRQ_TYPE_NONE>,
|
||||
|
||||
@@ -199,10 +199,10 @@ Ex)
|
||||
sound {
|
||||
compatible = "simple-scu-audio-card";
|
||||
...
|
||||
simple-audio-card,cpu@0 {
|
||||
simple-audio-card,cpu-0 {
|
||||
sound-dai = <&rcar_sound 0>;
|
||||
};
|
||||
simple-audio-card,cpu@1 {
|
||||
simple-audio-card,cpu-1 {
|
||||
sound-dai = <&rcar_sound 1>;
|
||||
};
|
||||
simple-audio-card,codec {
|
||||
@@ -441,79 +441,79 @@ rcar_sound: sound@ec500000 {
|
||||
"clk_a", "clk_b", "clk_c", "clk_i";
|
||||
|
||||
rcar_sound,dvc {
|
||||
dvc0: dvc@0 {
|
||||
dvc0: dvc-0 {
|
||||
dmas = <&audma0 0xbc>;
|
||||
dma-names = "tx";
|
||||
};
|
||||
dvc1: dvc@1 {
|
||||
dvc1: dvc-1 {
|
||||
dmas = <&audma0 0xbe>;
|
||||
dma-names = "tx";
|
||||
};
|
||||
};
|
||||
|
||||
rcar_sound,mix {
|
||||
mix0: mix@0 { };
|
||||
mix1: mix@1 { };
|
||||
mix0: mix-0 { };
|
||||
mix1: mix-1 { };
|
||||
};
|
||||
|
||||
rcar_sound,ctu {
|
||||
ctu00: ctu@0 { };
|
||||
ctu01: ctu@1 { };
|
||||
ctu02: ctu@2 { };
|
||||
ctu03: ctu@3 { };
|
||||
ctu10: ctu@4 { };
|
||||
ctu11: ctu@5 { };
|
||||
ctu12: ctu@6 { };
|
||||
ctu13: ctu@7 { };
|
||||
ctu00: ctu-0 { };
|
||||
ctu01: ctu-1 { };
|
||||
ctu02: ctu-2 { };
|
||||
ctu03: ctu-3 { };
|
||||
ctu10: ctu-4 { };
|
||||
ctu11: ctu-5 { };
|
||||
ctu12: ctu-6 { };
|
||||
ctu13: ctu-7 { };
|
||||
};
|
||||
|
||||
rcar_sound,src {
|
||||
src0: src@0 {
|
||||
src0: src-0 {
|
||||
interrupts = <0 352 IRQ_TYPE_LEVEL_HIGH>;
|
||||
dmas = <&audma0 0x85>, <&audma1 0x9a>;
|
||||
dma-names = "rx", "tx";
|
||||
};
|
||||
src1: src@1 {
|
||||
src1: src-1 {
|
||||
interrupts = <0 353 IRQ_TYPE_LEVEL_HIGH>;
|
||||
dmas = <&audma0 0x87>, <&audma1 0x9c>;
|
||||
dma-names = "rx", "tx";
|
||||
};
|
||||
src2: src@2 {
|
||||
src2: src-2 {
|
||||
interrupts = <0 354 IRQ_TYPE_LEVEL_HIGH>;
|
||||
dmas = <&audma0 0x89>, <&audma1 0x9e>;
|
||||
dma-names = "rx", "tx";
|
||||
};
|
||||
src3: src@3 {
|
||||
src3: src-3 {
|
||||
interrupts = <0 355 IRQ_TYPE_LEVEL_HIGH>;
|
||||
dmas = <&audma0 0x8b>, <&audma1 0xa0>;
|
||||
dma-names = "rx", "tx";
|
||||
};
|
||||
src4: src@4 {
|
||||
src4: src-4 {
|
||||
interrupts = <0 356 IRQ_TYPE_LEVEL_HIGH>;
|
||||
dmas = <&audma0 0x8d>, <&audma1 0xb0>;
|
||||
dma-names = "rx", "tx";
|
||||
};
|
||||
src5: src@5 {
|
||||
src5: src-5 {
|
||||
interrupts = <0 357 IRQ_TYPE_LEVEL_HIGH>;
|
||||
dmas = <&audma0 0x8f>, <&audma1 0xb2>;
|
||||
dma-names = "rx", "tx";
|
||||
};
|
||||
src6: src@6 {
|
||||
src6: src-6 {
|
||||
interrupts = <0 358 IRQ_TYPE_LEVEL_HIGH>;
|
||||
dmas = <&audma0 0x91>, <&audma1 0xb4>;
|
||||
dma-names = "rx", "tx";
|
||||
};
|
||||
src7: src@7 {
|
||||
src7: src-7 {
|
||||
interrupts = <0 359 IRQ_TYPE_LEVEL_HIGH>;
|
||||
dmas = <&audma0 0x93>, <&audma1 0xb6>;
|
||||
dma-names = "rx", "tx";
|
||||
};
|
||||
src8: src@8 {
|
||||
src8: src-8 {
|
||||
interrupts = <0 360 IRQ_TYPE_LEVEL_HIGH>;
|
||||
dmas = <&audma0 0x95>, <&audma1 0xb8>;
|
||||
dma-names = "rx", "tx";
|
||||
};
|
||||
src9: src@9 {
|
||||
src9: src-9 {
|
||||
interrupts = <0 361 IRQ_TYPE_LEVEL_HIGH>;
|
||||
dmas = <&audma0 0x97>, <&audma1 0xba>;
|
||||
dma-names = "rx", "tx";
|
||||
@@ -521,52 +521,52 @@ rcar_sound: sound@ec500000 {
|
||||
};
|
||||
|
||||
rcar_sound,ssi {
|
||||
ssi0: ssi@0 {
|
||||
ssi0: ssi-0 {
|
||||
interrupts = <0 370 IRQ_TYPE_LEVEL_HIGH>;
|
||||
dmas = <&audma0 0x01>, <&audma1 0x02>, <&audma0 0x15>, <&audma1 0x16>;
|
||||
dma-names = "rx", "tx", "rxu", "txu";
|
||||
};
|
||||
ssi1: ssi@1 {
|
||||
ssi1: ssi-1 {
|
||||
interrupts = <0 371 IRQ_TYPE_LEVEL_HIGH>;
|
||||
dmas = <&audma0 0x03>, <&audma1 0x04>, <&audma0 0x49>, <&audma1 0x4a>;
|
||||
dma-names = "rx", "tx", "rxu", "txu";
|
||||
};
|
||||
ssi2: ssi@2 {
|
||||
ssi2: ssi-2 {
|
||||
interrupts = <0 372 IRQ_TYPE_LEVEL_HIGH>;
|
||||
dmas = <&audma0 0x05>, <&audma1 0x06>, <&audma0 0x63>, <&audma1 0x64>;
|
||||
dma-names = "rx", "tx", "rxu", "txu";
|
||||
};
|
||||
ssi3: ssi@3 {
|
||||
ssi3: ssi-3 {
|
||||
interrupts = <0 373 IRQ_TYPE_LEVEL_HIGH>;
|
||||
dmas = <&audma0 0x07>, <&audma1 0x08>, <&audma0 0x6f>, <&audma1 0x70>;
|
||||
dma-names = "rx", "tx", "rxu", "txu";
|
||||
};
|
||||
ssi4: ssi@4 {
|
||||
ssi4: ssi-4 {
|
||||
interrupts = <0 374 IRQ_TYPE_LEVEL_HIGH>;
|
||||
dmas = <&audma0 0x09>, <&audma1 0x0a>, <&audma0 0x71>, <&audma1 0x72>;
|
||||
dma-names = "rx", "tx", "rxu", "txu";
|
||||
};
|
||||
ssi5: ssi@5 {
|
||||
ssi5: ssi-5 {
|
||||
interrupts = <0 375 IRQ_TYPE_LEVEL_HIGH>;
|
||||
dmas = <&audma0 0x0b>, <&audma1 0x0c>, <&audma0 0x73>, <&audma1 0x74>;
|
||||
dma-names = "rx", "tx", "rxu", "txu";
|
||||
};
|
||||
ssi6: ssi@6 {
|
||||
ssi6: ssi-6 {
|
||||
interrupts = <0 376 IRQ_TYPE_LEVEL_HIGH>;
|
||||
dmas = <&audma0 0x0d>, <&audma1 0x0e>, <&audma0 0x75>, <&audma1 0x76>;
|
||||
dma-names = "rx", "tx", "rxu", "txu";
|
||||
};
|
||||
ssi7: ssi@7 {
|
||||
ssi7: ssi-7 {
|
||||
interrupts = <0 377 IRQ_TYPE_LEVEL_HIGH>;
|
||||
dmas = <&audma0 0x0f>, <&audma1 0x10>, <&audma0 0x79>, <&audma1 0x7a>;
|
||||
dma-names = "rx", "tx", "rxu", "txu";
|
||||
};
|
||||
ssi8: ssi@8 {
|
||||
ssi8: ssi-8 {
|
||||
interrupts = <0 378 IRQ_TYPE_LEVEL_HIGH>;
|
||||
dmas = <&audma0 0x11>, <&audma1 0x12>, <&audma0 0x7b>, <&audma1 0x7c>;
|
||||
dma-names = "rx", "tx", "rxu", "txu";
|
||||
};
|
||||
ssi9: ssi@9 {
|
||||
ssi9: ssi-9 {
|
||||
interrupts = <0 379 IRQ_TYPE_LEVEL_HIGH>;
|
||||
dmas = <&audma0 0x13>, <&audma1 0x14>, <&audma0 0x7d>, <&audma1 0x7e>;
|
||||
dma-names = "rx", "tx", "rxu", "txu";
|
||||
|
||||
@@ -29,11 +29,14 @@ pdm: pdm@ff040000 {
|
||||
dma-names = "rx";
|
||||
pinctrl-names = "default", "sleep";
|
||||
pinctrl-0 = <&pdmm0_clk
|
||||
&pdmm0_fsync
|
||||
&pdmm0_sdi0
|
||||
&pdmm0_sdi1
|
||||
&pdmm0_sdi2
|
||||
&pdmm0_sdi3>;
|
||||
pinctrl-1 = <&pdmm0_sleep>;
|
||||
pinctrl-1 = <&pdmm0_clk_sleep
|
||||
&pdmm0_sdi0_sleep
|
||||
&pdmm0_sdi1_sleep
|
||||
&pdmm0_sdi2_sleep
|
||||
&pdmm0_sdi3_sleep>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
@@ -4,7 +4,7 @@ Required properties:
|
||||
- compatible: "rockchip,rk3399-gru-sound"
|
||||
- rockchip,cpu: The phandle of the Rockchip I2S controller that's
|
||||
connected to the codecs
|
||||
- rockchip,codec: The phandle of the MAX98357A/RT5514/DA7219 codecs
|
||||
- rockchip,codec: The phandle of the audio codecs
|
||||
|
||||
Optional properties:
|
||||
- dmic-wakeup-delay-ms : specify delay time (ms) for DMIC ready.
|
||||
|
||||
@@ -7,8 +7,12 @@ Required properties:
|
||||
|
||||
- compatible: should be one of the following:
|
||||
- "rockchip,rk3066-i2s": for rk3066
|
||||
- "rockchip,rk3036-i2s", "rockchip,rk3066-i2s": for rk3036
|
||||
- "rockchip,rk3188-i2s", "rockchip,rk3066-i2s": for rk3188
|
||||
- "rockchip,rk3228-i2s", "rockchip,rk3066-i2s": for rk3228
|
||||
- "rockchip,rk3288-i2s", "rockchip,rk3066-i2s": for rk3288
|
||||
- "rockchip,rk3328-i2s", "rockchip,rk3066-i2s": for rk3328
|
||||
- "rockchip,rk3366-i2s", "rockchip,rk3066-i2s": for rk3366
|
||||
- "rockchip,rk3368-i2s", "rockchip,rk3066-i2s": for rk3368
|
||||
- "rockchip,rk3399-i2s", "rockchip,rk3066-i2s": for rk3399
|
||||
- reg: physical base address of the controller and length of memory mapped
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
RT274 audio CODEC
|
||||
|
||||
This device supports I2C only.
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : "realtek,rt274".
|
||||
|
||||
- reg : The I2C address of the device.
|
||||
|
||||
Optional properties:
|
||||
|
||||
- interrupts : The CODEC's interrupt output.
|
||||
|
||||
|
||||
Pins on the device (for linking into audio routes) for RT274:
|
||||
|
||||
* DMIC1 Pin
|
||||
* DMIC2 Pin
|
||||
* MIC
|
||||
* LINE1
|
||||
* LINE2
|
||||
* HPO Pin
|
||||
* SPDIF
|
||||
* LINE3
|
||||
|
||||
Example:
|
||||
|
||||
codec: rt274@1c {
|
||||
compatible = "realtek,rt274";
|
||||
reg = <0x1c>;
|
||||
interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
|
||||
};
|
||||
@@ -12,6 +12,14 @@ Required properties:
|
||||
|
||||
Optional properties:
|
||||
|
||||
- "realtek,dc_offset_l_manual"
|
||||
- "realtek,dc_offset_r_manual"
|
||||
- "realtek,dc_offset_l_manual_mic"
|
||||
- "realtek,dc_offset_r_manual_mic"
|
||||
Based on the different PCB layout, add the manual offset value to
|
||||
compensate the DC offset for each L and R channel, and they are different
|
||||
between headphone and headset.
|
||||
|
||||
Pins on the device (for linking into audio routes) for RT5663:
|
||||
|
||||
* IN1P
|
||||
|
||||
@@ -7,9 +7,6 @@ Required properties:
|
||||
- model - the user-visible name of this sound complex
|
||||
- clocks - should contain entries matching clock names in the clock-names
|
||||
property
|
||||
- clock-names - should contain following entries:
|
||||
- "epll" - indicating the EPLL output clock
|
||||
- "i2s_rclk" - indicating the RCLK (root) clock of the I2S0 controller
|
||||
- samsung,audio-widgets - this property specifies off-codec audio elements
|
||||
like headphones or speakers, for details see widgets.txt
|
||||
- samsung,audio-routing - a list of the connections between audio
|
||||
@@ -46,9 +43,6 @@ sound {
|
||||
"IN1", "Mic Jack",
|
||||
"Mic Jack", "MICBIAS";
|
||||
|
||||
clocks = <&clock CLK_FOUT_EPLL>, <&i2s0 CLK_I2S_RCLK_SRC>;
|
||||
clock-names = "epll", "sclk_i2s";
|
||||
|
||||
cpu {
|
||||
sound-dai = <&i2s0 0>;
|
||||
};
|
||||
|
||||
@@ -86,6 +86,9 @@ Optional CPU/CODEC subnodes properties:
|
||||
in dai startup() and disabled with
|
||||
clk_disable_unprepare() in dai
|
||||
shutdown().
|
||||
- system-clock-direction-out : specifies clock direction as 'out' on
|
||||
initialization. It is useful for some aCPUs with
|
||||
fixed clocks.
|
||||
|
||||
Example 1 - single DAI link:
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@ Optional subnode properties:
|
||||
- simple-audio-card,convert-rate : platform specified sampling rate convert
|
||||
- simple-audio-card,convert-channels : platform specified converted channel size (2 - 8 ch)
|
||||
- simple-audio-card,prefix : see routing
|
||||
- simple-audio-card,widgets : Please refer to widgets.txt.
|
||||
- simple-audio-card,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.
|
||||
|
||||
@@ -8,6 +8,7 @@ Required properties:
|
||||
- compatible: should be one of the following:
|
||||
- "allwinner,sun4i-a10-i2s"
|
||||
- "allwinner,sun6i-a31-i2s"
|
||||
- "allwinner,sun8i-h3-i2s"
|
||||
- reg: physical base address of the controller and length of memory mapped
|
||||
region.
|
||||
- interrupts: should contain the I2S interrupt.
|
||||
@@ -22,6 +23,7 @@ Required properties:
|
||||
|
||||
Required properties for the following compatibles:
|
||||
- "allwinner,sun6i-a31-i2s"
|
||||
- "allwinner,sun8i-h3-i2s"
|
||||
- resets: phandle to the reset line for this codec
|
||||
|
||||
Example:
|
||||
|
||||
@@ -3,7 +3,9 @@ Texas Instruments - tlv320aic32x4 Codec module
|
||||
The tlv320aic32x4 serial control bus communicates through I2C protocols
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be "ti,tlv320aic32x4"
|
||||
- compatible - "string" - One of:
|
||||
"ti,tlv320aic32x4" TLV320AIC3204
|
||||
"ti,tlv320aic32x6" TLV320AIC3206, TLV320AIC3256
|
||||
- reg: I2C slave address
|
||||
- supply-*: Required supply regulators are:
|
||||
"iov" - digital IO power supply
|
||||
@@ -18,6 +20,8 @@ Optional properties:
|
||||
- reset-gpios: Reset-GPIO phandle with args as described in gpio/gpio.txt
|
||||
- clocks/clock-names: Clock named 'mclk' for the master clock of the codec.
|
||||
See clock/clock-bindings.txt for information about the detailed format.
|
||||
- aic32x4-gpio-func - <array of 5 int>
|
||||
- Types are defined in include/sound/tlv320aic32x4.h
|
||||
|
||||
|
||||
Example:
|
||||
@@ -27,4 +31,11 @@ codec: tlv320aic32x4@18 {
|
||||
reg = <0x18>;
|
||||
clocks = <&clks 201>;
|
||||
clock-names = "mclk";
|
||||
aic32x4-gpio-func= <
|
||||
0xff /* AIC32X4_MFPX_DEFAULT_VALUE */
|
||||
0xff /* AIC32X4_MFPX_DEFAULT_VALUE */
|
||||
0x04 /* MFP3 AIC32X4_MFP3_GPIO_ENABLED */
|
||||
0xff /* AIC32X4_MFPX_DEFAULT_VALUE */
|
||||
0x08 /* MFP5 AIC32X4_MFP5_GPIO_INPUT */
|
||||
>;
|
||||
};
|
||||
|
||||
@@ -26,6 +26,11 @@ Optional properties:
|
||||
3 - MICBIAS output is connected to AVDD,
|
||||
If this node is not mentioned or if the value is incorrect, then MicBias
|
||||
is powered down.
|
||||
- ai3x-ocmv - Output Common-Mode Voltage selection:
|
||||
0 - 1.35V,
|
||||
1 - 1.5V,
|
||||
2 - 1.65V,
|
||||
3 - 1.8V
|
||||
- AVDD-supply, IOVDD-supply, DRVDD-supply, DVDD-supply : power supplies for the
|
||||
device as covered in Documentation/devicetree/bindings/regulator/regulator.txt
|
||||
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
WM8524 audio CODEC
|
||||
|
||||
This device does not use I2C or SPI but a simple Hardware Control Interface.
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : "wlf,wm8524"
|
||||
|
||||
- wlf,mute-gpios: a GPIO spec for the MUTE pin.
|
||||
|
||||
Example:
|
||||
|
||||
codec: wm8524@0 {
|
||||
compatible = "wlf,wm8524";
|
||||
wlf,mute-gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
@@ -1,23 +0,0 @@
|
||||
/*
|
||||
* Driver for the Atmel Audio Bitstream DAC (ABDAC)
|
||||
*
|
||||
* Copyright (C) 2009 Atmel Corporation
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 as published
|
||||
* by the Free Software Foundation.
|
||||
*/
|
||||
#ifndef __INCLUDE_SOUND_ATMEL_ABDAC_H
|
||||
#define __INCLUDE_SOUND_ATMEL_ABDAC_H
|
||||
|
||||
#include <linux/platform_data/dma-dw.h>
|
||||
|
||||
/**
|
||||
* struct atmel_abdac_pdata - board specific ABDAC configuration
|
||||
* @dws: DMA slave interface to use for sound playback.
|
||||
*/
|
||||
struct atmel_abdac_pdata {
|
||||
struct dw_dma_slave dws;
|
||||
};
|
||||
|
||||
#endif /* __INCLUDE_SOUND_ATMEL_ABDAC_H */
|
||||
@@ -1,38 +0,0 @@
|
||||
/*
|
||||
* Driver for the Atmel AC97C controller
|
||||
*
|
||||
* Copyright (C) 2005-2009 Atmel Corporation
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 as published
|
||||
* by the Free Software Foundation.
|
||||
*/
|
||||
#ifndef __INCLUDE_SOUND_ATMEL_AC97C_H
|
||||
#define __INCLUDE_SOUND_ATMEL_AC97C_H
|
||||
|
||||
#include <linux/platform_data/dma-dw.h>
|
||||
|
||||
#define AC97C_CAPTURE 0x01
|
||||
#define AC97C_PLAYBACK 0x02
|
||||
#define AC97C_BOTH (AC97C_CAPTURE | AC97C_PLAYBACK)
|
||||
|
||||
/**
|
||||
* struct atmel_ac97c_pdata - board specific AC97C configuration
|
||||
* @rx_dws: DMA slave interface to use for sound capture.
|
||||
* @tx_dws: DMA slave interface to use for sound playback.
|
||||
* @reset_pin: GPIO pin wired to the reset input on the external AC97 codec,
|
||||
* optional to use, set to -ENODEV if not in use. AC97 layer will
|
||||
* try to do a software reset of the external codec anyway.
|
||||
*
|
||||
* If the user do not want to use a DMA channel for playback or capture, i.e.
|
||||
* only one feature is required on the board. The slave for playback or capture
|
||||
* can be set to NULL. The AC97C driver will take use of this when setting up
|
||||
* the sound streams.
|
||||
*/
|
||||
struct ac97c_platform_data {
|
||||
struct dw_dma_slave rx_dws;
|
||||
struct dw_dma_slave tx_dws;
|
||||
int reset_pin;
|
||||
};
|
||||
|
||||
#endif /* __INCLUDE_SOUND_ATMEL_AC97C_H */
|
||||
@@ -118,8 +118,6 @@ struct snd_card {
|
||||
int user_ctl_count; /* count of all user controls */
|
||||
struct list_head controls; /* all controls for this card */
|
||||
struct list_head ctl_files; /* active control files */
|
||||
struct mutex user_ctl_lock; /* protects user controls against
|
||||
concurrent access */
|
||||
|
||||
struct snd_info_entry *proc_root; /* root for soundcard specific files */
|
||||
struct snd_info_entry *proc_id; /* the card id */
|
||||
@@ -138,7 +136,6 @@ struct snd_card {
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
unsigned int power_state; /* power state */
|
||||
struct mutex power_lock; /* power lock */
|
||||
wait_queue_head_t power_sleep;
|
||||
#endif
|
||||
|
||||
@@ -151,16 +148,6 @@ struct snd_card {
|
||||
#define dev_to_snd_card(p) container_of(p, struct snd_card, card_dev)
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
static inline void snd_power_lock(struct snd_card *card)
|
||||
{
|
||||
mutex_lock(&card->power_lock);
|
||||
}
|
||||
|
||||
static inline void snd_power_unlock(struct snd_card *card)
|
||||
{
|
||||
mutex_unlock(&card->power_lock);
|
||||
}
|
||||
|
||||
static inline unsigned int snd_power_get_state(struct snd_card *card)
|
||||
{
|
||||
return card->power_state;
|
||||
@@ -177,8 +164,6 @@ int snd_power_wait(struct snd_card *card, unsigned int power_state);
|
||||
|
||||
#else /* ! CONFIG_PM */
|
||||
|
||||
#define snd_power_lock(card) do { (void)(card); } while (0)
|
||||
#define snd_power_unlock(card) do { (void)(card); } while (0)
|
||||
static inline int snd_power_wait(struct snd_card *card, unsigned int state) { return 0; }
|
||||
#define snd_power_get_state(card) ({ (void)(card); SNDRV_CTL_POWER_D0; })
|
||||
#define snd_power_change_state(card, state) do { (void)(card); } while (0)
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user