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

Commit 025b78b8 authored by Mark Brown's avatar Mark Brown
Browse files

Merge branch 'topic/fsl' of...

Merge branch 'topic/fsl' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-fsl-sai
parents 855675f6 014fd22e
Loading
Loading
Loading
Loading
+47 −0
Original line number Original line Diff line number Diff line
Device-Tree binding for regmap

The endianness mode of CPU & Device scenarios:
Index     Device     Endianness properties
---------------------------------------------------
1         BE         'big-endian'
2         LE         'little-endian'

For one device driver, which will run in different scenarios above
on different SoCs using the devicetree, we need one way to simplify
this.

Required properties:
- {big,little}-endian: these are boolean properties, if absent
  meaning that the CPU and the Device are in the same endianness mode,
  these properties are for register values and all the buffers only.

Examples:
Scenario 1 : CPU in LE mode & device in LE mode.
dev: dev@40031000 {
	      compatible = "name";
	      reg = <0x40031000 0x1000>;
	      ...
};

Scenario 2 : CPU in LE mode & device in BE mode.
dev: dev@40031000 {
	      compatible = "name";
	      reg = <0x40031000 0x1000>;
	      ...
	      big-endian;
};

Scenario 3 : CPU in BE mode & device in BE mode.
dev: dev@40031000 {
	      compatible = "name";
	      reg = <0x40031000 0x1000>;
	      ...
};

Scenario 4 : CPU in BE mode & device in LE mode.
dev: dev@40031000 {
	      compatible = "name";
	      reg = <0x40031000 0x1000>;
	      ...
	      little-endian;
};
+38 −0
Original line number Original line Diff line number Diff line
Everest ES8328 audio CODEC

This device supports both I2C and SPI.

Required properties:

  - compatible : "everest,es8328"
  - DVDD-supply : Regulator providing digital core supply voltage 1.8 - 3.6V
  - AVDD-supply : Regulator providing analog supply voltage 3.3V
  - PVDD-supply : Regulator providing digital IO supply voltage 1.8 - 3.6V
  - IPVDD-supply : Regulator providing analog output voltage 3.3V
  - clocks : A 22.5792 or 11.2896 MHz clock
  - reg : the I2C address of the device for I2C, the chip select number for SPI

Pins on the device (for linking into audio routes):

  * LOUT1
  * LOUT2
  * ROUT1
  * ROUT2
  * LINPUT1
  * RINPUT1
  * LINPUT2
  * RINPUT2
  * Mic Bias


Example:

codec: es8328@11 {
	compatible = "everest,es8328";
	DVDD-supply = <&reg_3p3v>;
	AVDD-supply = <&reg_3p3v>;
	PVDD-supply = <&reg_3p3v>;
	HPVDD-supply = <&reg_3p3v>;
	clocks = <&clks 169>;
	reg = <0x11>;
};
+82 −0
Original line number Original line Diff line number Diff line
Freescale Generic ASoC Sound Card with ASRC support

The Freescale Generic ASoC Sound Card can be used, ideally, for all Freescale
SoCs connecting with external CODECs.

The idea of this generic sound card is a bit like ASoC Simple Card. However,
for Freescale SoCs (especially those released in recent years), most of them
have ASRC (Documentation/devicetree/bindings/sound/fsl,asrc.txt) inside. And
this is a specific feature that might be painstakingly controlled and merged
into the Simple Card.

So having this generic sound card allows all Freescale SoC users to benefit
from the simplification of a new card support and the capability of the wide
sample rates support through ASRC.

Note: The card is initially designed for those sound cards who use I2S and
      PCM DAI formats. However, it'll be also possible to support those non
      I2S/PCM type sound cards, such as S/PDIF audio and HDMI audio, as long
      as the driver has been properly upgraded.


The compatible list for this generic sound card currently:
 "fsl,imx-audio-cs42888"

 "fsl,imx-audio-wm8962"
 (compatible with Documentation/devicetree/bindings/sound/imx-audio-wm8962.txt)

 "fsl,imx-audio-sgtl5000"
 (compatible with Documentation/devicetree/bindings/sound/imx-audio-sgtl5000.txt)

Required properties:

  - compatible		: Contains one of entries in the compatible list.

  - model		: The user-visible name of this sound complex

  - audio-cpu		: The phandle of an CPU DAI controller

  - audio-codec		: The phandle of an audio codec

  - 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. There're a few pre-designed board connectors:
			   * Line Out Jack
			   * Line In Jack
			   * Headphone Jack
			   * Mic Jack
			   * Ext Spk
			   * AMIC (stands for Analog Microphone Jack)
			   * DMIC (stands for Digital Microphone Jack)

			  Note: The "Mic Jack" and "AMIC" are redundant while
			        coexsiting in order to support the old bindings
				of wm8962 and sgtl5000.

Optional properties:

  - audio-asrc		: The phandle of ASRC. It can be absent if there's no
			  need to add ASRC support via DPCM.

Example:
sound-cs42888 {
	compatible = "fsl,imx-audio-cs42888";
	model = "cs42888-audio";
	audio-cpu = <&esai>;
	audio-asrc = <&asrc>;
	audio-codec = <&cs42888>;
	audio-routing =
		"Line Out Jack", "AOUT1L",
		"Line Out Jack", "AOUT1R",
		"Line Out Jack", "AOUT2L",
		"Line Out Jack", "AOUT2R",
		"Line Out Jack", "AOUT3L",
		"Line Out Jack", "AOUT3R",
		"Line Out Jack", "AOUT4L",
		"Line Out Jack", "AOUT4R",
		"AIN1L", "Line In Jack",
		"AIN1R", "Line In Jack",
		"AIN2L", "Line In Jack",
		"AIN2R", "Line In Jack";
};
+3 −4
Original line number Original line Diff line number Diff line
@@ -18,9 +18,8 @@ Required properties:
- pinctrl-names: Must contain a "default" entry.
- pinctrl-names: Must contain a "default" entry.
- pinctrl-NNN: One property must exist for each entry in pinctrl-names.
- pinctrl-NNN: One property must exist for each entry in pinctrl-names.
  See ../pinctrl/pinctrl-bindings.txt for details of the property values.
  See ../pinctrl/pinctrl-bindings.txt for details of the property values.
- big-endian-regs: If this property is absent, the little endian mode will
- big-endian: Boolean property, required if all the FTM_PWM registers
  be in use as default, or the big endian mode will be in use for all the
  are big-endian rather than little-endian.
  device registers.
- big-endian-data: If this property is absent, the little endian mode will
- big-endian-data: If this property is absent, the little endian mode will
  be in use as default, or the big endian mode will be in use for all the
  be in use as default, or the big endian mode will be in use for all the
  fifo data.
  fifo data.
@@ -53,6 +52,6 @@ sai2: sai@40031000 {
	      dma-names = "tx", "rx";
	      dma-names = "tx", "rx";
	      dmas = <&edma0 0 VF610_EDMA_MUXID0_SAI2_TX>,
	      dmas = <&edma0 0 VF610_EDMA_MUXID0_SAI2_TX>,
		   <&edma0 0 VF610_EDMA_MUXID0_SAI2_RX>;
		   <&edma0 0 VF610_EDMA_MUXID0_SAI2_RX>;
	      big-endian-regs;
	      big-endian;
	      big-endian-data;
	      big-endian-data;
};
};
+60 −0
Original line number Original line Diff line number Diff line
Freescale i.MX audio complex with ES8328 codec

Required properties:
- compatible       : "fsl,imx-audio-es8328"
- model            : The user-visible name of this sound complex
- ssi-controller   : The phandle of the i.MX SSI controller
- jack-gpio        : Optional GPIO for headphone jack
- audio-amp-supply : Power regulator for speaker amps
- audio-codec      : The phandle of the ES8328 audio codec
- 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 could be power supplies, ES8328
		     pins, and the jacks on the board:

			Power supplies:
			   * audio-amp

			ES8328 pins:
			   * LOUT1
			   * LOUT2
			   * ROUT1
			   * ROUT2
			   * LINPUT1
			   * LINPUT2
			   * RINPUT1
			   * RINPUT2
			   * Mic PGA

			Board connectors:
			   * Headphone
			   * Speaker
			   * Mic Jack
- mux-int-port     : The internal port of the i.MX audio muxer (AUDMUX)
- mux-ext-port     : The external port of the i.MX audio muxer (AUDMIX)

Note: The AUDMUX port numbering should start at 1, which is consistent with
hardware manual.

Example:

sound {
	compatible = "fsl,imx-audio-es8328";
	model = "imx-audio-es8328";
	ssi-controller = <&ssi1>;
	audio-codec = <&codec>;
	jack-gpio = <&gpio5 15 0>;
	audio-amp-supply = <&reg_audio_amp>;
	audio-routing =
		"Speaker", "LOUT2",
		"Speaker", "ROUT2",
		"Speaker", "audio-amp",
		"Headphone", "ROUT1",
		"Headphone", "LOUT1",
		"LINPUT1", "Mic Jack",
		"RINPUT1", "Mic Jack",
		"Mic Jack", "Mic Bias";
	mux-int-port = <1>;
	mux-ext-port = <3>;
};
Loading