summaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree/bindings/sound/simple-card.txt
blob: e9e20ec67d62b349d021099a755bbd5eca2a6b2a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
Simple-Card:

Simple-Card specifies audio DAI connection of SoC <-> codec.

Required properties:

- compatible				: "simple-audio-card"

Optional properties:

- 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,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.

Required subnodes:

- simple-audio-card,cpu			: CPU   sub-node
- simple-audio-card,codec		: CODEC sub-node

Required CPU/CODEC subnodes properties:

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

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
- 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)

Example:

sound {
	compatible = "simple-audio-card";
	simple-audio-card,format = "left_j";
	simple-audio-routing =
		"MIC_IN", "Mic Jack",
		"Headphone Jack", "HP_OUT",
		"Ext Spk", "LINE_OUT";

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

	simple-audio-card,codec {
		sound-dai = <&ak4648>;
		bitclock-master;
		frame-master;
		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>;
};