GNU Linux-libre 4.19.304-gnu1
[releases.git] / Documentation / devicetree / bindings / sound / audio-graph-card.txt
1 Audio Graph Card:
2
3 Audio Graph Card specifies audio DAI connections of SoC <-> codec.
4 It is based on common bindings for device graphs.
5 see ${LINUX}/Documentation/devicetree/bindings/graph.txt
6
7 Basically, Audio Graph Card property is same as Simple Card.
8 see ${LINUX}/Documentation/devicetree/bindings/sound/simple-card.txt
9
10 Below are same as Simple-Card.
11
12 - label
13 - widgets
14 - routing
15 - dai-format
16 - frame-master
17 - bitclock-master
18 - bitclock-inversion
19 - frame-inversion
20 - mclk-fs
21 - hp-det-gpio
22 - mic-det-gpio
23 - dai-tdm-slot-num
24 - dai-tdm-slot-width
25 - clocks / system-clock-frequency
26
27 Required properties:
28
29 - compatible                            : "audio-graph-card";
30 - dais                                  : list of CPU DAI port{s}
31
32 Optional properties:
33 - pa-gpios: GPIO used to control external amplifier.
34
35 Example: Single DAI case
36
37         sound_card {
38                 compatible = "audio-graph-card";
39
40                 dais = <&cpu_port>;
41         };
42
43         dai-controller {
44                 ...
45                 cpu_port: port {
46                         cpu_endpoint: endpoint {
47                                 remote-endpoint = <&codec_endpoint>;
48
49                                 dai-format = "left_j";
50                                 ...
51                         };
52                 };
53         };
54
55         audio-codec {
56                 ...
57                 port {
58                         codec_endpoint: endpoint {
59                                 remote-endpoint = <&cpu_endpoint>;
60                         };
61                 };
62         };
63
64 Example: Multi DAI case
65
66         sound-card {
67                 compatible = "audio-graph-card";
68
69                 label = "sound-card";
70
71                 dais = <&cpu_port0
72                         &cpu_port1
73                         &cpu_port2>;
74         };
75
76         audio-codec@0 {
77                 ...
78                 port {
79                         codec0_endpoint: endpoint {
80                                 remote-endpoint = <&cpu_endpoint0>;
81                         };
82                 };
83         };
84
85         audio-codec@1 {
86                 ...
87                 port {
88                         codec1_endpoint: endpoint {
89                                 remote-endpoint = <&cpu_endpoint1>;
90                         };
91                 };
92         };
93
94         audio-codec@2 {
95                 ...
96                 port {
97                         codec2_endpoint: endpoint {
98                                 remote-endpoint = <&cpu_endpoint2>;
99                         };
100                 };
101         };
102
103         dai-controller {
104                 ...
105                 ports {
106                         cpu_port0: port@0 {
107                                 cpu_endpoint0: endpoint {
108                                         remote-endpoint = <&codec0_endpoint>;
109
110                                         dai-format = "left_j";
111                                         ...
112                                 };
113                         };
114                         cpu_port1: port@1 {
115                                 cpu_endpoint1: endpoint {
116                                         remote-endpoint = <&codec1_endpoint>;
117
118                                         dai-format = "i2s";
119                                         ...
120                                 };
121                         };
122                         cpu_port2: port@2 {
123                                 cpu_endpoint2: endpoint {
124                                         remote-endpoint = <&codec2_endpoint>;
125
126                                         dai-format = "i2s";
127                                         ...
128                                 };
129                         };
130                 };
131         };
132