1Simple-Card:
2
3Simple-Card specifies audio DAI connections of SoC <-> codec.
4
5Required properties:
6
7- compatible				: "simple-audio-card"
8
9Optional properties:
10
11- simple-audio-card,name		: User specified audio sound card name, one string
12					  property.
13- simple-audio-card,widgets		: Please refer to widgets.txt.
14- simple-audio-card,routing		: A list of the connections between audio components.
15					  Each entry is a pair of strings, the first being the
16					  connection's sink, the second being the connection's
17					  source.
18- simple-audio-card,mclk-fs             : Multiplication factor between stream rate and codec
19  					  mclk.
20- simple-audio-card,hp-det-gpio		: Reference to GPIO that signals when
21					  headphones are attached.
22- simple-audio-card,mic-det-gpio	: Reference to GPIO that signals when
23					  a microphone is attached.
24
25Optional subnodes:
26
27- simple-audio-card,dai-link		: Container for dai-link level
28					  properties and the CPU and CODEC
29					  sub-nodes. This container may be
30					  omitted when the card has only one
31					  DAI link. See the examples and the
32					  section bellow.
33
34Dai-link subnode properties and subnodes:
35
36If dai-link subnode is omitted and the subnode properties are directly
37under "sound"-node the subnode property and subnode names have to be
38prefixed with "simple-audio-card,"-prefix.
39
40Required dai-link subnodes:
41
42- cpu					: CPU   sub-node
43- codec					: CODEC sub-node
44
45Optional dai-link subnode properties:
46
47- format				: CPU/CODEC common audio format.
48					  "i2s", "right_j", "left_j" , "dsp_a"
49					  "dsp_b", "ac97", "pdm", "msb", "lsb"
50- frame-master				: Indicates dai-link frame master.
51					  phandle to a cpu or codec subnode.
52- bitclock-master			: Indicates dai-link bit clock master.
53					  phandle to a cpu or codec subnode.
54- bitclock-inversion			: bool property. Add this if the
55					  dai-link uses bit clock inversion.
56- frame-inversion			: bool property. Add this if the
57					  dai-link uses frame clock inversion.
58
59For backward compatibility the frame-master and bitclock-master
60properties can be used as booleans in codec subnode to indicate if the
61codec is the dai-link frame or bit clock master. In this case there
62should be no dai-link node, the same properties should not be present
63at sound-node level, and the bitclock-inversion and frame-inversion
64properties should also be placed in the codec node if needed.
65
66Required CPU/CODEC subnodes properties:
67
68- sound-dai				: phandle and port of CPU/CODEC
69
70Optional CPU/CODEC subnodes properties:
71
72- dai-tdm-slot-num			: Please refer to tdm-slot.txt.
73- dai-tdm-slot-width			: Please refer to tdm-slot.txt.
74- clocks / system-clock-frequency	: specify subnode's clock if needed.
75					  it can be specified via "clocks" if system has
76					  clock node (= common clock), or "system-clock-frequency"
77					  (if system doens't support common clock)
78					  If a clock is specified, it is
79					  enabled with clk_prepare_enable()
80					  in dai startup() and disabled with
81					  clk_disable_unprepare() in dai
82					  shutdown().
83
84Example 1 - single DAI link:
85
86sound {
87	compatible = "simple-audio-card";
88	simple-audio-card,name = "VF610-Tower-Sound-Card";
89	simple-audio-card,format = "left_j";
90	simple-audio-card,bitclock-master = <&dailink0_master>;
91	simple-audio-card,frame-master = <&dailink0_master>;
92	simple-audio-card,widgets =
93		"Microphone", "Microphone Jack",
94		"Headphone", "Headphone Jack",
95		"Speaker", "External Speaker";
96	simple-audio-card,routing =
97		"MIC_IN", "Microphone Jack",
98		"Headphone Jack", "HP_OUT",
99		"External Speaker", "LINE_OUT";
100
101	simple-audio-card,cpu {
102		sound-dai = <&sh_fsi2 0>;
103	};
104
105	dailink0_master: simple-audio-card,codec {
106		sound-dai = <&ak4648>;
107		clocks = <&osc>;
108	};
109};
110
111&i2c0 {
112	ak4648: ak4648@12 {
113		#sound-dai-cells = <0>;
114		compatible = "asahi-kasei,ak4648";
115		reg = <0x12>;
116	};
117};
118
119sh_fsi2: sh_fsi2@ec230000 {
120	#sound-dai-cells = <1>;
121	compatible = "renesas,sh_fsi2";
122	reg = <0xec230000 0x400>;
123	interrupt-parent = <&gic>;
124	interrupts = <0 146 0x4>;
125};
126
127Example 2 - many DAI links:
128
129sound {
130	compatible = "simple-audio-card";
131	simple-audio-card,name = "Cubox Audio";
132
133	simple-audio-card,dai-link@0 {		/* I2S - HDMI */
134		format = "i2s";
135		cpu {
136			sound-dai = <&audio1 0>;
137		};
138		codec {
139			sound-dai = <&tda998x 0>;
140		};
141	};
142
143	simple-audio-card,dai-link@1 {		/* S/PDIF - HDMI */
144		cpu {
145			sound-dai = <&audio1 1>;
146		};
147		codec {
148			sound-dai = <&tda998x 1>;
149		};
150	};
151
152	simple-audio-card,dai-link@2 {		/* S/PDIF - S/PDIF */
153		cpu {
154			sound-dai = <&audio1 1>;
155		};
156		codec {
157			sound-dai = <&spdif_codec>;
158		};
159	};
160};
161