Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d9694430 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
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
  ...
parents 3645e6d0 ee5f38a4
Loading
Loading
Loading
Loading
+67 −0
Original line number Diff line number Diff line
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>;
};
+16 −0
Original line number Diff line number Diff line
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 −1
Original line number Diff line number Diff line
@@ -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>,
+17 −1
Original line number Diff line number Diff line
@@ -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>,
+34 −34
Original line number Diff line number Diff line
@@ -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";
Loading