2017-05-18 09:44:46 +08:00
|
|
|
Audio-Graph-SCU-Card:
|
|
|
|
|
|
|
|
Audio-Graph-SCU-Card is "Audio-Graph-Card" + "ALSA DPCM".
|
|
|
|
|
|
|
|
It is based on common bindings for device graphs.
|
|
|
|
see ${LINUX}/Documentation/devicetree/bindings/graph.txt
|
|
|
|
|
|
|
|
Basically, Audio-Graph-SCU-Card property is same as
|
|
|
|
Simple-Card / Simple-SCU-Card / Audio-Graph-Card.
|
|
|
|
see ${LINUX}/Documentation/devicetree/bindings/sound/simple-card.txt
|
|
|
|
${LINUX}/Documentation/devicetree/bindings/sound/simple-scu-card.txt
|
|
|
|
${LINUX}/Documentation/devicetree/bindings/sound/audio-graph-card.txt
|
|
|
|
|
|
|
|
Below are same as Simple-Card / Audio-Graph-Card.
|
|
|
|
|
|
|
|
- label
|
|
|
|
- dai-format
|
|
|
|
- frame-master
|
|
|
|
- bitclock-master
|
|
|
|
- bitclock-inversion
|
|
|
|
- frame-inversion
|
|
|
|
- dai-tdm-slot-num
|
|
|
|
- dai-tdm-slot-width
|
|
|
|
- clocks / system-clock-frequency
|
|
|
|
|
|
|
|
Below are same as Simple-SCU-Card.
|
|
|
|
|
|
|
|
- convert-rate
|
|
|
|
- convert-channels
|
|
|
|
- prefix
|
|
|
|
- routing
|
|
|
|
|
|
|
|
Required properties:
|
|
|
|
|
|
|
|
- compatible : "audio-graph-scu-card";
|
|
|
|
- dais : list of CPU DAI port{s}
|
|
|
|
|
2017-06-06 10:37:07 +08:00
|
|
|
Example 1. Sampling Rate Conversion
|
2017-05-18 09:44:46 +08:00
|
|
|
|
|
|
|
sound_card {
|
|
|
|
compatible = "audio-graph-scu-card";
|
|
|
|
|
|
|
|
label = "sound-card";
|
|
|
|
prefix = "codec";
|
|
|
|
routing = "codec Playback", "DAI0 Playback",
|
2017-10-17 14:57:19 +08:00
|
|
|
"DAI0 Capture", "codec Capture";
|
2017-05-18 09:44:46 +08:00
|
|
|
convert-rate = <48000>;
|
|
|
|
|
|
|
|
dais = <&cpu_port>;
|
|
|
|
};
|
|
|
|
|
|
|
|
audio-codec {
|
|
|
|
...
|
|
|
|
|
|
|
|
port {
|
|
|
|
codec_endpoint: endpoint {
|
|
|
|
remote-endpoint = <&cpu_endpoint>;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
dai-controller {
|
|
|
|
...
|
|
|
|
cpu_port: port {
|
|
|
|
cpu_endpoint: endpoint {
|
|
|
|
remote-endpoint = <&codec_endpoint>;
|
|
|
|
|
|
|
|
dai-format = "left_j";
|
|
|
|
...
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
2017-06-06 10:37:07 +08:00
|
|
|
|
|
|
|
Example 2. 2 CPU 1 Codec (Mixing)
|
|
|
|
|
|
|
|
sound_card {
|
|
|
|
compatible = "audio-graph-scu-card";
|
|
|
|
|
|
|
|
label = "sound-card";
|
|
|
|
prefix = "codec";
|
|
|
|
routing = "codec Playback", "DAI0 Playback",
|
2017-10-17 14:57:19 +08:00
|
|
|
"codec Playback", "DAI1 Playback",
|
|
|
|
"DAI0 Capture", "codec Capture";
|
2017-06-06 10:37:07 +08:00
|
|
|
convert-rate = <48000>;
|
|
|
|
|
|
|
|
dais = <&cpu_port0
|
|
|
|
&cpu_port1>;
|
|
|
|
};
|
|
|
|
|
|
|
|
audio-codec {
|
|
|
|
...
|
|
|
|
|
|
|
|
port {
|
2017-06-22 14:22:49 +08:00
|
|
|
codec_endpoint0: endpoint {
|
2017-06-06 10:37:07 +08:00
|
|
|
remote-endpoint = <&cpu_endpoint0>;
|
|
|
|
};
|
2017-06-22 14:22:49 +08:00
|
|
|
codec_endpoint1: endpoint {
|
|
|
|
remote-endpoint = <&cpu_endpoint1>;
|
|
|
|
};
|
2017-06-06 10:37:07 +08:00
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
dai-controller {
|
|
|
|
...
|
|
|
|
ports {
|
|
|
|
cpu_port0: port {
|
|
|
|
cpu_endpoint0: endpoint {
|
2017-06-22 14:22:49 +08:00
|
|
|
remote-endpoint = <&codec_endpoint0>;
|
2017-06-06 10:37:07 +08:00
|
|
|
|
|
|
|
dai-format = "left_j";
|
|
|
|
...
|
|
|
|
};
|
|
|
|
};
|
|
|
|
cpu_port1: port {
|
|
|
|
cpu_endpoint1: endpoint {
|
2017-06-22 14:22:49 +08:00
|
|
|
remote-endpoint = <&codec_endpoint1>;
|
|
|
|
|
2017-06-06 10:37:07 +08:00
|
|
|
dai-format = "left_j";
|
|
|
|
...
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|