|
@@ -1,6 +1,6 @@
|
|
|
Simple-Card:
|
|
|
|
|
|
-Simple-Card specifies audio DAI connection of SoC <-> codec.
|
|
|
+Simple-Card specifies audio DAI connections of SoC <-> codec.
|
|
|
|
|
|
Required properties:
|
|
|
|
|
@@ -10,26 +10,51 @@ Optional properties:
|
|
|
|
|
|
- simple-audio-card,name : User specified audio sound card name, one string
|
|
|
property.
|
|
|
-- simple-audio-card,format : CPU/CODEC common audio format.
|
|
|
- "i2s", "right_j", "left_j" , "dsp_a"
|
|
|
- "dsp_b", "ac97", "pdm", "msb", "lsb"
|
|
|
- simple-audio-card,widgets : Please refer to widgets.txt.
|
|
|
- simple-audio-card,routing : A list of the connections between audio components.
|
|
|
Each entry is a pair of strings, the first being the
|
|
|
connection's sink, the second being the connection's
|
|
|
source.
|
|
|
-- dai-tdm-slot-num : Please refer to tdm-slot.txt.
|
|
|
-- dai-tdm-slot-width : Please refer to tdm-slot.txt.
|
|
|
+Optional subnodes:
|
|
|
+
|
|
|
+- simple-audio-card,dai-link : Container for dai-link level
|
|
|
+ properties and the CPU and CODEC
|
|
|
+ sub-nodes. This container may be
|
|
|
+ omitted when the card has only one
|
|
|
+ DAI link. See the examples and the
|
|
|
+ section bellow.
|
|
|
+
|
|
|
+Dai-link subnode properties and subnodes:
|
|
|
+
|
|
|
+If dai-link subnode is omitted and the subnode properties are directly
|
|
|
+under "sound"-node the subnode property and subnode names have to be
|
|
|
+prefixed with "simple-audio-card,"-prefix.
|
|
|
|
|
|
-Required subnodes:
|
|
|
+Required dai-link subnodes:
|
|
|
|
|
|
-- simple-audio-card,dai-link : container for the CPU and CODEC sub-nodes
|
|
|
- This container may be omitted when the
|
|
|
- card has only one DAI link.
|
|
|
- See the examples.
|
|
|
+- cpu : CPU sub-node
|
|
|
+- codec : CODEC sub-node
|
|
|
|
|
|
-- simple-audio-card,cpu : CPU sub-node
|
|
|
-- simple-audio-card,codec : CODEC sub-node
|
|
|
+Optional dai-link subnode properties:
|
|
|
+
|
|
|
+- format : CPU/CODEC common audio format.
|
|
|
+ "i2s", "right_j", "left_j" , "dsp_a"
|
|
|
+ "dsp_b", "ac97", "pdm", "msb", "lsb"
|
|
|
+- frame-master : Indicates dai-link frame master.
|
|
|
+ phandle to a cpu or codec subnode.
|
|
|
+- bitclock-master : Indicates dai-link bit clock master.
|
|
|
+ phandle to a cpu or codec subnode.
|
|
|
+- bitclock-inversion : bool property. Add this if the
|
|
|
+ dai-link uses bit clock inversion.
|
|
|
+- frame-inversion : bool property. Add this if the
|
|
|
+ dai-link uses frame clock inversion.
|
|
|
+
|
|
|
+For backward compatibility the frame-master and bitclock-master
|
|
|
+properties can be used as booleans in codec subnode to indicate if the
|
|
|
+codec is the dai-link frame or bit clock master. In this case there
|
|
|
+should be no dai-link node, the same properties should not be present
|
|
|
+at sound-node level, and the bitclock-inversion and frame-inversion
|
|
|
+properties should also be placed in the codec node if needed.
|
|
|
|
|
|
Required CPU/CODEC subnodes properties:
|
|
|
|
|
@@ -37,29 +62,21 @@ Required CPU/CODEC subnodes properties:
|
|
|
|
|
|
Optional CPU/CODEC subnodes properties:
|
|
|
|
|
|
-- format : CPU/CODEC specific audio format if needed.
|
|
|
- see simple-audio-card,format
|
|
|
-- frame-master : bool property. add this if subnode is frame master
|
|
|
-- bitclock-master : bool property. add this if subnode is bitclock master
|
|
|
-- bitclock-inversion : bool property. add this if subnode has clock inversion
|
|
|
-- frame-inversion : bool property. add this if subnode has frame inversion
|
|
|
+- dai-tdm-slot-num : Please refer to tdm-slot.txt.
|
|
|
+- dai-tdm-slot-width : Please refer to tdm-slot.txt.
|
|
|
- clocks / system-clock-frequency : specify subnode's clock if needed.
|
|
|
it can be specified via "clocks" if system has
|
|
|
clock node (= common clock), or "system-clock-frequency"
|
|
|
(if system doens't support common clock)
|
|
|
|
|
|
-Note:
|
|
|
- * For 'format', 'frame-master', 'bitclock-master', 'bitclock-inversion' and
|
|
|
- 'frame-inversion', the simple card will use the settings of CODEC for both
|
|
|
- CPU and CODEC sides as we need to keep the settings identical for both ends
|
|
|
- of the link.
|
|
|
-
|
|
|
Example 1 - single DAI link:
|
|
|
|
|
|
sound {
|
|
|
compatible = "simple-audio-card";
|
|
|
simple-audio-card,name = "VF610-Tower-Sound-Card";
|
|
|
simple-audio-card,format = "left_j";
|
|
|
+ simple-audio-card,bitclock-master = <&dailink0_master>;
|
|
|
+ simple-audio-card,frame-master = <&dailink0_master>;
|
|
|
simple-audio-card,widgets =
|
|
|
"Microphone", "Microphone Jack",
|
|
|
"Headphone", "Headphone Jack",
|
|
@@ -69,17 +86,12 @@ sound {
|
|
|
"Headphone Jack", "HP_OUT",
|
|
|
"External Speaker", "LINE_OUT";
|
|
|
|
|
|
- dai-tdm-slot-num = <2>;
|
|
|
- dai-tdm-slot-width = <8>;
|
|
|
-
|
|
|
simple-audio-card,cpu {
|
|
|
sound-dai = <&sh_fsi2 0>;
|
|
|
};
|
|
|
|
|
|
- simple-audio-card,codec {
|
|
|
+ dailink0_master: simple-audio-card,codec {
|
|
|
sound-dai = <&ak4648>;
|
|
|
- bitclock-master;
|
|
|
- frame-master;
|
|
|
clocks = <&osc>;
|
|
|
};
|
|
|
};
|
|
@@ -105,31 +117,31 @@ Example 2 - many DAI links:
|
|
|
sound {
|
|
|
compatible = "simple-audio-card";
|
|
|
simple-audio-card,name = "Cubox Audio";
|
|
|
- simple-audio-card,format = "i2s";
|
|
|
|
|
|
simple-audio-card,dai-link@0 { /* I2S - HDMI */
|
|
|
- simple-audio-card,cpu {
|
|
|
+ format = "i2s";
|
|
|
+ cpu {
|
|
|
sound-dai = <&audio1 0>;
|
|
|
};
|
|
|
- simple-audio-card,codec {
|
|
|
+ codec {
|
|
|
sound-dai = <&tda998x 0>;
|
|
|
};
|
|
|
};
|
|
|
|
|
|
simple-audio-card,dai-link@1 { /* S/PDIF - HDMI */
|
|
|
- simple-audio-card,cpu {
|
|
|
+ cpu {
|
|
|
sound-dai = <&audio1 1>;
|
|
|
};
|
|
|
- simple-audio-card,codec {
|
|
|
+ codec {
|
|
|
sound-dai = <&tda998x 1>;
|
|
|
};
|
|
|
};
|
|
|
|
|
|
simple-audio-card,dai-link@2 { /* S/PDIF - S/PDIF */
|
|
|
- simple-audio-card,cpu {
|
|
|
+ cpu {
|
|
|
sound-dai = <&audio1 1>;
|
|
|
};
|
|
|
- simple-audio-card,codec {
|
|
|
+ codec {
|
|
|
sound-dai = <&spdif_codec>;
|
|
|
};
|
|
|
};
|