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

Commit f5a246ea authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull sound updates from Takashi Iwai:
 "This contains pretty many small commits covering fairly large range of
  files in sound/ directory.  Partly because of additional API support
  and partly because of constantly developed ASoC and ARM stuff.

  Some highlights:

   - Introduced the helper function and documentation for exposing the
     channel map via control API, as discussed in Plumbers; most of PCI
     drivers are covered, will follow more drivers later

   - Most of drivers have been replaced with the new PM callbacks (if
     the bus is supported)

   - HD-audio controller got the support of runtime PM and the support
     of D3 clock-stop.  Also changing the power_save option in sysfs
     kicks off immediately to enable / disable the power-save mode.

   - Another significant code change in HD-audio is the rewrite of
     firmware loading code.  Other than that, most of changes in
     HD-audio are continued cleanups and standardization for the generic
     auto parser and bug fixes (HBR, device-specific fixups), in
     addition to the support of channel-map API.

   - Addition of ASoC bindings for the compressed API, used by the
     mid-x86 drivers.

   - Lots of cleanups and API refreshes for ASoC codec drivers and
     DaVinci.

   - Conversion of OMAP to dmaengine.

   - New machine driver for Wolfson Microelectronics Bells.

   - New CODEC driver for Wolfson Microelectronics WM0010.

   - Enhancements to the ux500 and wm2000 drivers

   - A new driver for DA9055 and the support for regulator bypass mode."

Fix up various arm soc header file reorg conflicts.

* tag 'sound-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (339 commits)
  ALSA: hda - Add new codec ALC283 ALC290 support
  ALSA: hda - avoid unneccesary indices on "Headphone Jack" controls
  ALSA: hda - fix indices on boost volume on Conexant
  ALSA: aloop - add locking to timer access
  ALSA: hda - Fix hang caused by race during suspend.
  sound: Remove unnecessary semicolon
  ALSA: hda/realtek - Fix detection of ALC271X codec
  ALSA: hda - Add inverted internal mic quirk for Lenovo IdeaPad U310
  ALSA: hda - make Realtek/Sigmatel/Conexant use the generic unsol event
  ALSA: hda - make a generic unsol event handler
  ASoC: codecs: Add DA9055 codec driver
  ASoC: eukrea-tlv320: Convert it to platform driver
  ALSA: ASoC: add DT bindings for CS4271
  ASoC: wm_hubs: Ensure volume updates are handled during class W startup
  ASoC: wm5110: Adding missing volume update bits
  ASoC: wm5110: Add OUT3R support
  ASoC: wm5110: Add AEC loopback support
  ASoC: wm5110: Rename EPOUT to HPOUT3
  ASoC: arizona: Add more clock rates
  ASoC: arizona: Add more DSP options for mixer input muxes
  ...
parents d5bbd43d 7ff34ad8
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
CS4270 audio CODEC

The driver for this device currently only supports I2C.

Required properties:

  - compatible : "cirrus,cs4270"

  - reg : the I2C address of the device for I2C

Optional properties:

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

Example:

codec: cs4270@48 {
	compatible = "cirrus,cs4270";
	reg = <0x48>;
};
+36 −0
Original line number Diff line number Diff line
Cirrus Logic CS4271 DT bindings

This driver supports both the I2C and the SPI bus.

Required properties:

 - compatible: "cirrus,cs4271"

For required properties on SPI, please consult
Documentation/devicetree/bindings/spi/spi-bus.txt

Required properties on I2C:

 - reg: the i2c address


Optional properties:

 - reset-gpio: 	a GPIO spec to define which pin is connected to the chip's
		!RESET pin

Examples:

	codec_i2c: cs4271@10 {
		compatible = "cirrus,cs4271";
		reg = <0x10>;
		reset-gpio = <&gpio 23 0>;
	};

	codec_spi: cs4271@0 {
		compatible = "cirrus,cs4271";
		reg = <0x0>;
		reset-gpio = <&gpio 23 0>;
		spi-max-frequency = <6000000>;
	};
+45 −0
Original line number Diff line number Diff line
Texas Instruments McASP controller

Required properties:
- compatible :
	"ti,dm646x-mcasp-audio"	: for DM646x platforms
	"ti,da830-mcasp-audio"	: for both DA830 & DA850 platforms
	"ti,omap2-mcasp-audio"	: for OMAP2 platforms (TI81xx, AM33xx)

- reg : Should contain McASP registers offset and length
- interrupts : Interrupt number for McASP
- op-mode : I2S/DIT ops mode.
- tdm-slots : Slots for TDM operation.
- num-serializer : Serializers used by McASP.
- serial-dir : A list of serializer pin mode. The list number should be equal
		to "num-serializer" parameter. Each entry is a number indication
		serializer pin direction. (0 - INACTIVE, 1 - TX, 2 - RX)


Optional properties:

- ti,hwmods : Must be "mcasp<n>", n is controller instance starting 0
- tx-num-evt : FIFO levels.
- rx-num-evt : FIFO levels.
- sram-size-playback : size of sram to be allocated during playback
- sram-size-capture  : size of sram to be allocated during capture

Example:

mcasp0: mcasp0@1d00000 {
	compatible = "ti,da830-mcasp-audio";
	#address-cells = <1>;
	#size-cells = <0>;
	reg = <0x100000 0x3000>;
	interrupts = <82 83>;
	op-mode = <0>;		/* MCASP_IIS_MODE */
	tdm-slots = <2>;
	num-serializer = <16>;
	serial-dir = <
			0 0 0 0	/* 0: INACTIVE, 1: TX, 2: RX */
			0 0 0 0
			0 0 0 1
			2 0 0 0 >;
	tx-num-evt = <1>;
	rx-num-evt = <1>;
};
+91 −0
Original line number Diff line number Diff line
* Texas Instruments OMAP4+ and twl6040 based audio setups

Required properties:
- compatible: "ti,abe-twl6040"
- ti,model: Name of the sound card ( for example "SDP4430")
- ti,mclk-freq: MCLK frequency for HPPLL operation
- ti,mcpdm: phandle for the McPDM node
- ti,twl6040: phandle for the twl6040 core node
- ti,audio-routing: List of 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.

Optional properties:
- ti,dmic: phandle for the OMAP dmic node if the machine have it connected
- ti,jack_detection: Need to be set to <1> if the board capable to detect jack
  insertion, removal.

Available audio endpoints for the audio-routing table:

Board connectors:
 * Headset Stereophone
 * Earphone Spk
 * Ext Spk
 * Line Out
 * Vibrator
 * Headset Mic
 * Main Handset Mic
 * Sub Handset Mic
 * Line In
 * Digital Mic

twl6040 pins:
 * HSOL
 * HSOR
 * EP
 * HFL
 * HFR
 * AUXL
 * AUXR
 * VIBRAL
 * VIBRAR
 * HSMIC
 * MAINMIC
 * SUBMIC
 * AFML
 * AFMR

 * Headset Mic Bias
 * Main Mic Bias
 * Digital Mic1 Bias
 * Digital Mic2 Bias

Digital mic pins:
 * DMic

Example:

sound {
	compatible = "ti,abe-twl6040";
	ti,model = "SDP4430";

	ti,jack-detection = <1>;
	ti,mclk-freq = <38400000>;

	ti,mcpdm = <&mcpdm>;
	ti,dmic = <&dmic>;

	ti,twl6040 = <&twl6040>;

	/* Audio routing */
	ti,audio-routing =
		"Headset Stereophone", "HSOL",
		"Headset Stereophone", "HSOR",
		"Earphone Spk", "EP",
		"Ext Spk", "HFL",
		"Ext Spk", "HFR",
		"Line Out", "AUXL",
		"Line Out", "AUXR",
		"Vibrator", "VIBRAL",
		"Vibrator", "VIBRAR",
		"HSMIC", "Headset Mic",
		"Headset Mic", "Headset Mic Bias",
		"MAINMIC", "Main Handset Mic",
		"Main Handset Mic", "Main Mic Bias",
		"SUBMIC", "Sub Handset Mic",
		"Sub Handset Mic", "Main Mic Bias",
		"AFML", "Line In",
		"AFMR", "Line In",
		"DMic", "Digital Mic",
		"Digital Mic", "Digital Mic1 Bias";
};
+37 −0
Original line number Diff line number Diff line
* Texas Instruments OMAP2+ McBSP module

Required properties:
- compatible: "ti,omap2420-mcbsp" for McBSP on OMAP2420
	      "ti,omap2430-mcbsp" for McBSP on OMAP2430
	      "ti,omap3-mcbsp" for McBSP on OMAP3
	      "ti,omap4-mcbsp" for McBSP on OMAP4 and newer SoC
- reg: Register location and size, for OMAP4+ as an array:
       <MPU access base address, size>,
       <L3 interconnect address, size>;
- reg-names: Array of strings associated with the address space
- interrupts: Interrupt numbers for the McBSP port, as an array in case the
	      McBSP IP have more interrupt lines:
	<OCP compliant irq>,
	<TX irq>,
	<RX irq>;
- interrupt-names: Array of strings associated with the interrupt numbers
- interrupt-parent: The parent interrupt controller
- ti,buffer-size: Size of the FIFO on the port (OMAP2430 and newer SoC)
- ti,hwmods: Name of the hwmod associated to the McBSP port

Example:

mcbsp2: mcbsp@49022000 {
	compatible = "ti,omap3-mcbsp";
	reg = <0x49022000 0xff>,
	      <0x49028000 0xff>;
	reg-names = "mpu", "sidetone";
	interrupts = <0 17 0x4>, /* OCP compliant interrupt */
		     <0 62 0x4>, /* TX interrupt */
		     <0 63 0x4>, /* RX interrupt */
		     <0 4 0x4>;  /* Sidetone */
	interrupt-names = "common", "tx", "rx", "sidetone";
	interrupt-parent = <&intc>;
	ti,buffer-size = <1280>;
	ti,hwmods = "mcbsp2";
};
Loading