STMicroelectronics sti ASoC cards

The sti ASoC Sound Card can be used, for all sti SoCs using internal sti-sas
codec or external codecs.

sti sound drivers allows to expose sti SoC audio interface through the
generic ASoC simple card. For details about sound card declaration please refer to
Documentation/devicetree/bindings/sound/simple-card.yaml.

1) sti-uniperiph-dai: audio dai device.
---------------------------------------

Required properties:
  - compatible: "st,stih407-uni-player-hdmi", "st,stih407-uni-player-pcm-out",
		"st,stih407-uni-player-dac", "st,stih407-uni-player-spdif",
		"st,stih407-uni-reader-pcm_in", "st,stih407-uni-reader-hdmi",

  - st,syscfg: phandle to boot-device system configuration registers

  - clock-names: name of the clocks listed in clocks property in the same order

  - reg: CPU DAI IP Base address and size entries, listed  in same
	 order than the CPU_DAI properties.

  - reg-names: names of the mapped memory regions listed in regs property in
	       the same order.

  - interrupts: CPU_DAI interrupt line, listed in the same order than the
		CPU_DAI properties.

  - dma: CPU_DAI DMA controller phandle and DMA request line, listed in the same
	 order than the CPU_DAI properties.

  - dma-names: identifier string for each DMA request line in the dmas property.
	"tx" for "st,sti-uni-player" compatibility
	"rx" for "st,sti-uni-reader" compatibility

Required properties ("st,sti-uni-player" compatibility only):
  - clocks: CPU_DAI IP clock source, listed in the same order than the
	    CPU_DAI properties.

Optional properties:
  - pinctrl-0: defined for CPU_DAI@1 and CPU_DAI@4 to describe I2S PIOs for
	       external codecs connection.

  - pinctrl-names: should contain only one value - "default".

  - st,tdm-mode: to declare to set TDM mode for unireader and uniplayer IPs.
	Only compartible with IPs in charge of the external I2S/TDM bus.
	Should be declared depending on associated codec.

Example:

	sti_uni_player1: sti-uni-player@8d81000 {
		compatible = "st,stih407-uni-player-hdmi";
		#sound-dai-cells = <0>;
		st,syscfg = <&syscfg_core>;
		clocks = <&clk_s_d0_flexgen CLK_PCM_1>;
		reg = <0x8D81000 0x158>;
		interrupts = <GIC_SPI 85 IRQ_TYPE_NONE>;
		dmas = <&fdma0 3 0 1>;
		dma-names = "tx";
		st,tdm-mode = <1>;
	};

	sti_uni_player2: sti-uni-player@8d82000 {
		compatible = "st,stih407-uni-player-pcm-out";
		#sound-dai-cells = <0>;
		st,syscfg = <&syscfg_core>;
		clocks = <&clk_s_d0_flexgen CLK_PCM_2>;
		reg = <0x8D82000 0x158>;
		interrupts = <GIC_SPI 86 IRQ_TYPE_NONE>;
		dmas = <&fdma0 4 0 1>;
		dma-names = "tx";
	};

	sti_uni_player3: sti-uni-player@8d85000 {
		compatible = "st,stih407-uni-player-spdif";
		#sound-dai-cells = <0>;
		st,syscfg = <&syscfg_core>;
		clocks = <&clk_s_d0_flexgen CLK_SPDIFF>;
		reg = <0x8D85000 0x158>;
		interrupts = <GIC_SPI 89 IRQ_TYPE_NONE>;
		dmas = <&fdma0 7 0 1>;
		dma-names = "tx";
	};

	sti_uni_reader1: sti-uni-reader@8d84000 {
		compatible = "st,stih407-uni-reader-hdmi";
		#sound-dai-cells = <0>;
		st,syscfg = <&syscfg_core>;
		reg = <0x8D84000 0x158>;
		interrupts = <GIC_SPI 88 IRQ_TYPE_NONE>;
		dmas = <&fdma0 6 0 1>;
		dma-names = "rx";
	};

2) sti-sas-codec: internal audio codec IPs driver
-------------------------------------------------

Required properties:
  - compatible: "st,sti<chip>-sas-codec" .
	Should be chip "st,stih416-sas-codec" or "st,stih407-sas-codec"

  - st,syscfg: phandle to boot-device system configuration registers.

  - pinctrl-0: SPDIF PIO description.

  - pinctrl-names: should contain only one value - "default".

Example:
	sti_sas_codec: sti-sas-codec {
		compatible = "st,stih407-sas-codec";
		#sound-dai-cells = <1>;
		st,reg_audio = <&syscfg_core>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_spdif_out >;
	};

Example of audio card declaration:
	sound {
		compatible = "simple-audio-card";
		simple-audio-card,name = "sti audio card";

		simple-audio-card,dai-link@0 {
			/* DAC */
			format = "i2s";
			dai-tdm-slot-width = <32>;
			cpu {
				sound-dai = <&sti_uni_player2>;
			};

			codec {
				sound-dai = <&sti_sasg_codec 1>;
			};
		};
		simple-audio-card,dai-link@1 {
			/* SPDIF */
			format = "left_j";
			cpu {
				sound-dai = <&sti_uni_player3>;
			};

			codec {
				sound-dai = <&sti_sasg_codec 0>;
			};
		};
		simple-audio-card,dai-link@2 {
			/* TDM playback  */
			format = "left_j";
			frame-inversion = <1>;
			cpu {
				sound-dai = <&sti_uni_player1>;
				dai-tdm-slot-num = <16>;
				dai-tdm-slot-width = <16>;
				dai-tdm-slot-tx-mask =
					<1 1 1 1 0 0 0 0 0 0 1 1 0 0 1 1>;
			};

			codec {
				sound-dai = <&sti_sasg_codec 3>;
			};
		};
	};
