xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/sound/amlogic,axg-sound-card.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunAmlogic AXG sound card:
2*4882a593Smuzhiyun
3*4882a593SmuzhiyunRequired properties:
4*4882a593Smuzhiyun
5*4882a593Smuzhiyun- compatible: "amlogic,axg-sound-card"
6*4882a593Smuzhiyun- model : User specified audio sound card name, one string
7*4882a593Smuzhiyun
8*4882a593SmuzhiyunOptional properties:
9*4882a593Smuzhiyun
10*4882a593Smuzhiyun- audio-aux-devs : List of phandles pointing to auxiliary devices
11*4882a593Smuzhiyun- audio-widgets : Please refer to widgets.txt.
12*4882a593Smuzhiyun- audio-routing : A list of the connections between audio components.
13*4882a593Smuzhiyun
14*4882a593SmuzhiyunSubnodes:
15*4882a593Smuzhiyun
16*4882a593Smuzhiyun- dai-link: Container for dai-link level properties and the CODEC
17*4882a593Smuzhiyun	    sub-nodes. There should be at least one (and probably more)
18*4882a593Smuzhiyun	    subnode of this type.
19*4882a593Smuzhiyun
20*4882a593SmuzhiyunRequired dai-link properties:
21*4882a593Smuzhiyun
22*4882a593Smuzhiyun- sound-dai: phandle and port of the CPU DAI.
23*4882a593Smuzhiyun
24*4882a593SmuzhiyunRequired TDM Backend dai-link properties:
25*4882a593Smuzhiyun- dai-format : CPU/CODEC common audio format
26*4882a593Smuzhiyun
27*4882a593SmuzhiyunOptional TDM Backend dai-link properties:
28*4882a593Smuzhiyun- dai-tdm-slot-rx-mask-{0,1,2,3}: Receive direction slot masks
29*4882a593Smuzhiyun- dai-tdm-slot-tx-mask-{0,1,2,3}: Transmit direction slot masks
30*4882a593Smuzhiyun				  When omitted, mask is assumed to have to no
31*4882a593Smuzhiyun				  slots. A valid must have at one slot, so at
32*4882a593Smuzhiyun				  least one these mask should be provided with
33*4882a593Smuzhiyun				  an enabled slot.
34*4882a593Smuzhiyun- dai-tdm-slot-num : Please refer to tdm-slot.txt.
35*4882a593Smuzhiyun		     If omitted, slot number is set to accommodate the largest
36*4882a593Smuzhiyun		     mask provided.
37*4882a593Smuzhiyun- dai-tdm-slot-width : Please refer to tdm-slot.txt. default to 32 if omitted.
38*4882a593Smuzhiyun- mclk-fs : Multiplication factor between stream rate and mclk
39*4882a593Smuzhiyun
40*4882a593SmuzhiyunBackend dai-link subnodes:
41*4882a593Smuzhiyun
42*4882a593Smuzhiyun- codec: dai-link representing backend links should have at least one subnode.
43*4882a593Smuzhiyun	 One subnode for each codec of the dai-link.
44*4882a593Smuzhiyun	 dai-link representing frontend links have no codec, therefore have no
45*4882a593Smuzhiyun	 subnodes
46*4882a593Smuzhiyun
47*4882a593SmuzhiyunRequired codec subnodes properties:
48*4882a593Smuzhiyun
49*4882a593Smuzhiyun- sound-dai: phandle and port of the CODEC DAI.
50*4882a593Smuzhiyun
51*4882a593SmuzhiyunOptional codec subnodes properties:
52*4882a593Smuzhiyun
53*4882a593Smuzhiyun- dai-tdm-slot-tx-mask : Please refer to tdm-slot.txt.
54*4882a593Smuzhiyun- dai-tdm-slot-rx-mask : Please refer to tdm-slot.txt.
55*4882a593Smuzhiyun
56*4882a593SmuzhiyunExample:
57*4882a593Smuzhiyun
58*4882a593Smuzhiyunsound {
59*4882a593Smuzhiyun	compatible = "amlogic,axg-sound-card";
60*4882a593Smuzhiyun	model = "AXG-S420";
61*4882a593Smuzhiyun	audio-aux-devs = <&tdmin_a>, <&tdmout_c>;
62*4882a593Smuzhiyun	audio-widgets = "Line", "Lineout",
63*4882a593Smuzhiyun			"Line", "Linein",
64*4882a593Smuzhiyun			"Speaker", "Speaker1 Left",
65*4882a593Smuzhiyun			"Speaker", "Speaker1 Right";
66*4882a593Smuzhiyun			"Speaker", "Speaker2 Left",
67*4882a593Smuzhiyun			"Speaker", "Speaker2 Right";
68*4882a593Smuzhiyun	audio-routing = "TDMOUT_C IN 0", "FRDDR_A OUT 2",
69*4882a593Smuzhiyun			"SPDIFOUT IN 0", "FRDDR_A OUT 3",
70*4882a593Smuzhiyun			"TDM_C Playback", "TDMOUT_C OUT",
71*4882a593Smuzhiyun			"TDMIN_A IN 2", "TDM_C Capture",
72*4882a593Smuzhiyun			"TDMIN_A IN 5", "TDM_C Loopback",
73*4882a593Smuzhiyun			"TODDR_A IN 0", "TDMIN_A OUT",
74*4882a593Smuzhiyun			"Lineout", "Lineout AOUTL",
75*4882a593Smuzhiyun			"Lineout", "Lineout AOUTR",
76*4882a593Smuzhiyun			"Speaker1 Left", "SPK1 OUT_A",
77*4882a593Smuzhiyun			"Speaker2 Left", "SPK2 OUT_A",
78*4882a593Smuzhiyun			"Speaker1 Right", "SPK1 OUT_B",
79*4882a593Smuzhiyun			"Speaker2 Right", "SPK2 OUT_B",
80*4882a593Smuzhiyun			"Linein AINL", "Linein",
81*4882a593Smuzhiyun			"Linein AINR", "Linein";
82*4882a593Smuzhiyun
83*4882a593Smuzhiyun	dai-link@0 {
84*4882a593Smuzhiyun		sound-dai = <&frddr_a>;
85*4882a593Smuzhiyun	};
86*4882a593Smuzhiyun
87*4882a593Smuzhiyun	dai-link@1 {
88*4882a593Smuzhiyun		sound-dai = <&toddr_a>;
89*4882a593Smuzhiyun	};
90*4882a593Smuzhiyun
91*4882a593Smuzhiyun	dai-link@2 {
92*4882a593Smuzhiyun		sound-dai = <&tdmif_c>;
93*4882a593Smuzhiyun		dai-format = "i2s";
94*4882a593Smuzhiyun		dai-tdm-slot-tx-mask-2 = <1 1>;
95*4882a593Smuzhiyun		dai-tdm-slot-tx-mask-3 = <1 1>;
96*4882a593Smuzhiyun		dai-tdm-slot-rx-mask-1 = <1 1>;
97*4882a593Smuzhiyun		mclk-fs = <256>;
98*4882a593Smuzhiyun
99*4882a593Smuzhiyun		codec@0 {
100*4882a593Smuzhiyun			sound-dai = <&lineout>;
101*4882a593Smuzhiyun		};
102*4882a593Smuzhiyun
103*4882a593Smuzhiyun		codec@1 {
104*4882a593Smuzhiyun			sound-dai = <&speaker_amp1>;
105*4882a593Smuzhiyun		};
106*4882a593Smuzhiyun
107*4882a593Smuzhiyun		codec@2 {
108*4882a593Smuzhiyun			sound-dai = <&speaker_amp2>;
109*4882a593Smuzhiyun		};
110*4882a593Smuzhiyun
111*4882a593Smuzhiyun		codec@3 {
112*4882a593Smuzhiyun			sound-dai = <&linein>;
113*4882a593Smuzhiyun		};
114*4882a593Smuzhiyun
115*4882a593Smuzhiyun	};
116*4882a593Smuzhiyun
117*4882a593Smuzhiyun	dai-link@3 {
118*4882a593Smuzhiyun		sound-dai = <&spdifout>;
119*4882a593Smuzhiyun
120*4882a593Smuzhiyun		codec {
121*4882a593Smuzhiyun			sound-dai = <&spdif_dit>;
122*4882a593Smuzhiyun		};
123*4882a593Smuzhiyun	};
124*4882a593Smuzhiyun};
125