simple-card.txt 4.3 KB
Newer Older
1 2
Simple-Card:

3
Simple-Card specifies audio DAI connections of SoC <-> codec.
4 5 6 7 8 9 10

Required properties:

- compatible				: "simple-audio-card"

Optional properties:

11 12 13
- simple-audio-card,name		: User specified audio sound card name, one string
					  property.
- simple-audio-card,widgets		: Please refer to widgets.txt.
14
- simple-audio-card,routing		: A list of the connections between audio components.
15 16 17
					  Each entry is a pair of strings, the first being the
					  connection's sink, the second being the connection's
					  source.
18 19
- simple-audio-card,mclk-fs             : Multiplication factor between stream rate and codec
  					  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

25 26 27 28 29 30 31 32 33 34 35 36 37 38
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.
39

40
Required dai-link subnodes:
41

42 43
- cpu					: CPU   sub-node
- codec					: CODEC sub-node
44

45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
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.
65 66 67 68 69 70 71

Required CPU/CODEC subnodes properties:

- sound-dai				: phandle and port of CPU/CODEC

Optional CPU/CODEC subnodes properties:

72 73
- dai-tdm-slot-num			: Please refer to tdm-slot.txt.
- dai-tdm-slot-width			: Please refer to tdm-slot.txt.
74 75 76 77 78
- 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)

79
Example 1 - single DAI link:
80 81 82

sound {
	compatible = "simple-audio-card";
83
	simple-audio-card,name = "VF610-Tower-Sound-Card";
84
	simple-audio-card,format = "left_j";
85 86
	simple-audio-card,bitclock-master = <&dailink0_master>;
	simple-audio-card,frame-master = <&dailink0_master>;
87 88 89 90
	simple-audio-card,widgets =
		"Microphone", "Microphone Jack",
		"Headphone", "Headphone Jack",
		"Speaker", "External Speaker";
91
	simple-audio-card,routing =
92
		"MIC_IN", "Microphone Jack",
93
		"Headphone Jack", "HP_OUT",
94
		"External Speaker", "LINE_OUT";
95 96 97 98 99

	simple-audio-card,cpu {
		sound-dai = <&sh_fsi2 0>;
	};

100
	dailink0_master: simple-audio-card,codec {
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
		sound-dai = <&ak4648>;
		clocks = <&osc>;
	};
};

&i2c0 {
	ak4648: ak4648@12 {
		#sound-dai-cells = <0>;
		compatible = "asahi-kasei,ak4648";
		reg = <0x12>;
	};
};

sh_fsi2: sh_fsi2@ec230000 {
	#sound-dai-cells = <1>;
	compatible = "renesas,sh_fsi2";
	reg = <0xec230000 0x400>;
	interrupt-parent = <&gic>;
	interrupts = <0 146 0x4>;
};
121 122 123 124 125 126 127 128

Example 2 - many DAI links:

sound {
	compatible = "simple-audio-card";
	simple-audio-card,name = "Cubox Audio";

	simple-audio-card,dai-link@0 {		/* I2S - HDMI */
129 130
		format = "i2s";
		cpu {
131 132
			sound-dai = <&audio1 0>;
		};
133
		codec {
134 135 136 137 138
			sound-dai = <&tda998x 0>;
		};
	};

	simple-audio-card,dai-link@1 {		/* S/PDIF - HDMI */
139
		cpu {
140 141
			sound-dai = <&audio1 1>;
		};
142
		codec {
143 144 145 146 147
			sound-dai = <&tda998x 1>;
		};
	};

	simple-audio-card,dai-link@2 {		/* S/PDIF - S/PDIF */
148
		cpu {
149 150
			sound-dai = <&audio1 1>;
		};
151
		codec {
152 153 154 155
			sound-dai = <&spdif_codec>;
		};
	};
};