xref: /linux/Documentation/devicetree/bindings/sound/st,sti-asoc-card.txt (revision b85d45947951d23cb22d90caecf4c1eb81342c96)
1STMicroelectronics sti ASoC cards
2
3The sti ASoC Sound Card can be used, for all sti SoCs using internal sti-sas
4codec or external codecs.
5
6sti sound drivers allows to expose sti SoC audio interface through the
7generic ASoC simple card. For details about sound card declaration please refer to
8Documentation/devicetree/bindings/sound/simple-card.txt.
9
101) sti-uniperiph-dai: audio dai device.
11---------------------------------------
12
13Required properties:
14  - compatible: "st,sti-uni-player" or "st,sti-uni-reader"
15
16  - st,syscfg: phandle to boot-device system configuration registers
17
18  - clock-names: name of the clocks listed in clocks property in the same order
19
20  - reg: CPU DAI IP Base address and size entries, listed  in same
21	 order than the CPU_DAI properties.
22
23  - reg-names: names of the mapped memory regions listed in regs property in
24	       the same order.
25
26  - interrupts: CPU_DAI interrupt line, listed in the same order than the
27		CPU_DAI properties.
28
29  - dma: CPU_DAI DMA controller phandle and DMA request line, listed in the same
30	 order than the CPU_DAI properties.
31
32  - dma-names: identifier string for each DMA request line in the dmas property.
33	"tx" for "st,sti-uni-player" compatibility
34	"rx" for "st,sti-uni-reader" compatibility
35
36  - version: IP version integrated in SOC.
37
38  - dai-name: DAI name that describes the IP.
39
40Required properties ("st,sti-uni-player" compatibility only):
41  - clocks: CPU_DAI IP clock source, listed in the same order than the
42	    CPU_DAI properties.
43
44  - uniperiph-id: internal SOC IP instance ID.
45
46  - IP mode: IP working mode depending on associated codec.
47	"HDMI" connected to HDMI codec IP and IEC HDMI formats.
48	"SPDIF"connected to SPDIF codec and support SPDIF formats.
49	"PCM"  PCM standard mode for I2S or TDM bus.
50
51Optional properties:
52  - pinctrl-0: defined for CPU_DAI@1 and CPU_DAI@4 to describe I2S PIOs for
53	       external codecs connection.
54
55  - pinctrl-names: should contain only one value - "default".
56
57Example:
58
59	sti_uni_player2: sti-uni-player@2 {
60		compatible = "st,sti-uni-player";
61		status = "okay";
62		#sound-dai-cells = <0>;
63		st,syscfg = <&syscfg_core>;
64		clocks = <&clk_s_d0_flexgen CLK_PCM_2>;
65		reg = <0x8D82000 0x158>;
66		interrupts = <GIC_SPI 86 IRQ_TYPE_NONE>;
67		dmas = <&fdma0 4 0 1>;
68		dai-name = "Uni Player #1 (DAC)";
69		dma-names = "tx";
70		uniperiph-id = <2>;
71		version = <5>;
72		mode = "PCM";
73	};
74
75	sti_uni_player3: sti-uni-player@3 {
76		compatible = "st,sti-uni-player";
77		status = "okay";
78		#sound-dai-cells = <0>;
79		st,syscfg = <&syscfg_core>;
80		clocks = <&clk_s_d0_flexgen CLK_SPDIFF>;
81		reg = <0x8D85000 0x158>;
82		interrupts = <GIC_SPI 89 IRQ_TYPE_NONE>;
83		dmas = <&fdma0 7 0 1>;
84		dma-names = "tx";
85		dai-name = "Uni Player #1 (PIO)";
86		uniperiph-id = <3>;
87		version = <5>;
88		mode = "SPDIF";
89	};
90
91	sti_uni_reader1: sti-uni-reader@1 {
92		compatible = "st,sti-uni-reader";
93		status = "disabled";
94		#sound-dai-cells = <0>;
95		st,syscfg = <&syscfg_core>;
96		reg = <0x8D84000 0x158>;
97		interrupts = <GIC_SPI 88 IRQ_TYPE_NONE>;
98		dmas = <&fdma0 6 0 1>;
99		dma-names = "rx";
100		dai-name = "Uni Reader #1 (HDMI RX)";
101		version = <3>;
102	};
103
1042) sti-sas-codec: internal audio codec IPs driver
105-------------------------------------------------
106
107Required properties:
108  - compatible: "st,sti<chip>-sas-codec" .
109	Should be chip "st,stih416-sas-codec" or "st,stih407-sas-codec"
110
111  - st,syscfg: phandle to boot-device system configuration registers.
112
113  - pinctrl-0: SPDIF PIO description.
114
115  - pinctrl-names: should contain only one value - "default".
116
117Example:
118	sti_sas_codec: sti-sas-codec {
119		compatible = "st,stih407-sas-codec";
120		#sound-dai-cells = <1>;
121		st,reg_audio = <&syscfg_core>;
122		pinctrl-names = "default";
123		pinctrl-0 = <&pinctrl_spdif_out >;
124	};
125
126Example of audio card declaration:
127	sound {
128		compatible = "simple-audio-card";
129		simple-audio-card,name = "sti audio card";
130		status = "okay";
131
132		simple-audio-card,dai-link@0 {
133			/* DAC */
134			format = "i2s";
135			dai-tdm-slot-width = <32>;
136			cpu {
137				sound-dai = <&sti_uni_player2>;
138			};
139
140			codec {
141				sound-dai = <&sti_sasg_codec 1>;
142			};
143		};
144		simple-audio-card,dai-link@1 {
145			/* SPDIF */
146			format = "left_j";
147			cpu {
148				sound-dai = <&sti_uni_player3>;
149			};
150
151			codec {
152				sound-dai = <&sti_sasg_codec 0>;
153			};
154		};
155	};
156