aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVladimir Barinov <vladimir.barinov@cogentembedded.com>2016-09-02 12:25:29 -0400
committerSimon Horman <horms+renesas@verge.net.au>2016-09-08 03:35:24 -0400
commit2627d5179f2c9e0a15a7ccc257d290719efdf694 (patch)
tree8eefd6952f189b4f8e0fb9ea18c3122ba191471e
parent57094363192098bd798aab07851b702f563fb0a2 (diff)
arm64: dts: h3ulcb: Sound SSI support
This supports SSI sound for H3ULCB board. SSI DMA mode used. CS2000 used as AUDIO_CLK_B. Signed-off-by: Vladimir Barinov <vladimir.barinov@cogentembedded.com> Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
-rw-r--r--arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts118
1 files changed, 118 insertions, 0 deletions
diff --git a/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts b/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts
index 44f1184e1a14..c6d4ee336740 100644
--- a/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts
+++ b/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts
@@ -45,6 +45,12 @@
45 }; 45 };
46 }; 46 };
47 47
48 x12_clk: x12 {
49 compatible = "fixed-clock";
50 #clock-cells = <0>;
51 clock-frequency = <24576000>;
52 };
53
48 vcc_sdhi0: regulator-vcc-sdhi0 { 54 vcc_sdhi0: regulator-vcc-sdhi0 {
49 compatible = "regulator-fixed"; 55 compatible = "regulator-fixed";
50 56
@@ -68,6 +74,32 @@
68 states = <3300000 1 74 states = <3300000 1
69 1800000 0>; 75 1800000 0>;
70 }; 76 };
77
78 audio_clkout: audio-clkout {
79 /*
80 * This is same as <&rcar_sound 0>
81 * but needed to avoid cs2000/rcar_sound probe dead-lock
82 */
83 compatible = "fixed-clock";
84 #clock-cells = <0>;
85 clock-frequency = <11289600>;
86 };
87
88 rsnd_ak4613: sound {
89 compatible = "simple-audio-card";
90
91 simple-audio-card,format = "left_j";
92 simple-audio-card,bitclock-master = <&sndcpu>;
93 simple-audio-card,frame-master = <&sndcpu>;
94
95 sndcpu: simple-audio-card,cpu {
96 sound-dai = <&rcar_sound>;
97 };
98
99 sndcodec: simple-audio-card,codec {
100 sound-dai = <&ak4613>;
101 };
102 };
71}; 103};
72 104
73&extal_clk { 105&extal_clk {
@@ -114,6 +146,17 @@
114 power-source = <1800>; 146 power-source = <1800>;
115 }; 147 };
116 148
149 sound_pins: sound {
150 groups = "ssi01239_ctrl", "ssi0_data", "ssi1_data_a";
151 function = "ssi";
152 };
153
154 sound_clk_pins: sound-clk {
155 groups = "audio_clk_a_a", "audio_clk_b_a", "audio_clk_c_a",
156 "audio_clkout_a", "audio_clkout3_a";
157 function = "audio_clk";
158 };
159
117 usb1_pins: usb1 { 160 usb1_pins: usb1 {
118 groups = "usb1"; 161 groups = "usb1";
119 function = "usb1"; 162 function = "usb1";
@@ -137,6 +180,73 @@
137 pinctrl-names = "default"; 180 pinctrl-names = "default";
138 181
139 status = "okay"; 182 status = "okay";
183
184 clock-frequency = <100000>;
185
186 ak4613: codec@10 {
187 compatible = "asahi-kasei,ak4613";
188 #sound-dai-cells = <0>;
189 reg = <0x10>;
190 clocks = <&rcar_sound 3>;
191
192 asahi-kasei,in1-single-end;
193 asahi-kasei,in2-single-end;
194 asahi-kasei,out1-single-end;
195 asahi-kasei,out2-single-end;
196 asahi-kasei,out3-single-end;
197 asahi-kasei,out4-single-end;
198 asahi-kasei,out5-single-end;
199 asahi-kasei,out6-single-end;
200 };
201
202 cs2000: clk-multiplier@4f {
203 #clock-cells = <0>;
204 compatible = "cirrus,cs2000-cp";
205 reg = <0x4f>;
206 clocks = <&audio_clkout>, <&x12_clk>;
207 clock-names = "clk_in", "ref_clk";
208
209 assigned-clocks = <&cs2000>;
210 assigned-clock-rates = <24576000>; /* 1/1 divide */
211 };
212};
213
214&rcar_sound {
215 pinctrl-0 = <&sound_pins &sound_clk_pins>;
216 pinctrl-names = "default";
217
218 /* Single DAI */
219 #sound-dai-cells = <0>;
220
221 /* audio_clkout0/1/2/3 */
222 #clock-cells = <1>;
223 clock-frequency = <11289600>;
224
225 status = "okay";
226
227 /* update <audio_clk_b> to <cs2000> */
228 clocks = <&cpg CPG_MOD 1005>,
229 <&cpg CPG_MOD 1006>, <&cpg CPG_MOD 1007>,
230 <&cpg CPG_MOD 1008>, <&cpg CPG_MOD 1009>,
231 <&cpg CPG_MOD 1010>, <&cpg CPG_MOD 1011>,
232 <&cpg CPG_MOD 1012>, <&cpg CPG_MOD 1013>,
233 <&cpg CPG_MOD 1014>, <&cpg CPG_MOD 1015>,
234 <&cpg CPG_MOD 1022>, <&cpg CPG_MOD 1023>,
235 <&cpg CPG_MOD 1024>, <&cpg CPG_MOD 1025>,
236 <&cpg CPG_MOD 1026>, <&cpg CPG_MOD 1027>,
237 <&cpg CPG_MOD 1028>, <&cpg CPG_MOD 1029>,
238 <&cpg CPG_MOD 1030>, <&cpg CPG_MOD 1031>,
239 <&cpg CPG_MOD 1019>, <&cpg CPG_MOD 1018>,
240 <&audio_clk_a>, <&cs2000>,
241 <&audio_clk_c>,
242 <&cpg CPG_CORE R8A7795_CLK_S0D4>;
243
244 rcar_sound,dai {
245 dai0 {
246 playback = <&ssi0 &src0 &dvc0>;
247 capture = <&ssi1 &src1 &dvc1>;
248 };
249 };
140}; 250};
141 251
142&sdhi0 { 252&sdhi0 {
@@ -152,11 +262,19 @@
152 status = "okay"; 262 status = "okay";
153}; 263};
154 264
265&ssi1 {
266 shared-pin;
267};
268
155&wdt0 { 269&wdt0 {
156 timeout-sec = <60>; 270 timeout-sec = <60>;
157 status = "okay"; 271 status = "okay";
158}; 272};
159 273
274&audio_clk_a {
275 clock-frequency = <22579200>;
276};
277
160&avb { 278&avb {
161 pinctrl-0 = <&avb_pins>; 279 pinctrl-0 = <&avb_pins>;
162 pinctrl-names = "default"; 280 pinctrl-names = "default";