-
Notifications
You must be signed in to change notification settings - Fork 3
/
genericstereoaudiocodec.dts
122 lines (104 loc) · 3.64 KB
/
genericstereoaudiocodec.dts
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
//Device tree overlay for generic stereo audio codec. ex) Asahi kasei AK4556
/dts-v1/;
/plugin/;
/ {
compatible = "brcm,bcm2708";
fragment@0 {
target = <&sound>;
__overlay__ {
compatible = "simple-audio-card";
simple-audio-card,name = "GenericStereoAudioCodec";
status="okay";
capture_link: simple-audio-card,dai-link@0 {
format = "i2s";
// Set RasPi to I2S slave
bitclock-master = <&r_codec_dai>;
frame-master = <&r_codec_dai>;
r_cpu_dai: cpu {
sound-dai = <&i2s>;
// TDM slot configuration for stereo
dai-tdm-slot-num = <2>;
dai-tdm-slot-width = <32>;
};
r_codec_dai: codec {
sound-dai = <&codec_in>;
};
};
playback_link: simple-audio-card,dai-link@1 {
format = "i2s";
// Set RasPi to I2S slave
bitclock-master = <&p_codec_dai>;
frame-master = <&p_codec_dai>;
p_cpu_dai: cpu {
sound-dai = <&i2s>;
// TDM slot configuration for stereo
dai-tdm-slot-num = <2>;
dai-tdm-slot-width = <32>;
};
p_codec_dai: codec {
sound-dai = <&codec_out>;
};
};
};
};
fragment@1 {
target-path = "/";
__overlay__ {
codec_out: spdif-transmitter {
#address-cells = <0>;
#size-cells = <0>;
#sound-dai-cells = <0>;
/*
"linux,spdif-dit" is used in generic I2S(transmitter) driver.
You can see details "linux,spdif-dit" by bellow command
modinfo snd_soc_spdif_tx
*/
compatible = "linux,spdif-dit";
status = "okay";
};
codec_in: spdif-receiver {
#address-cells = <0>;
#size-cells = <0>;
#sound-dai-cells = <0>;
/*
"linux,spdif-dir" is used in generic I2S(receiver) driver.
You can see details "linux,spdif-dir" by bellow command
modinfo snd_soc_spdif_rx
*/
compatible = "linux,spdif-dir";
status = "okay";
};
};
};
fragment@2 {
target = <&i2s>;
__overlay__ {
#sound-dai-cells = <0>;
status = "okay";
};
};
};
/*
Compile with:
dtc -@ -H epapr -O dtb -o genericstereoaudiocodec.dtbo -Wno-unit_address_vs_reg genericstereoaudiocodec.dts
Copy genericstereoaudiocodec.dtbo to /boot/overlays
sudo cp genericstereoaudiocodec.dtbo /boot/overlays
Edit /boot/config.txt
sudo nano /boot/config.txt
Edit and add to this line
# Uncomment some or all of these to enable the optional hardware interface
#dtparam=i2c_arm=on
#dtparam=i2s=on
#dtparam=spi=on
to
# Uncomment some or all of these to enable the optional hardware interface
#dtparam=i2c_arm=on
dtparam=i2s=on
#dtparam=spi=on
dtoverlay=genericstereoaudiocodec
If you don't need HDMI audio output and RasPi's headphone output, comment out "dtparam=audio=on" by hash.
like this.
dtparam=audio=on
to
#dtparam=audio=on
*/