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 AC'97, I2S
      and PCM DAI formats. However, it'll be also possible to support those non
      AC'97/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-ac97"

 "fsl,imx-audio-cs42888"

 "fsl,imx-audio-cs427x"
 (compatible with CS4271 and CS4272)

 "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)

 "fsl,imx-audio-wm8960"

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
			        coexisting 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.

Optional unless SSI is selected as a CPU DAI:

  - 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

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";
};
