Merge tag 'renesas-fixes-for-v5.1' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6-microblaze.git] / arch / arm64 / boot / dts / renesas / ulcb-kf.dtsi
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * Device Tree Source for the Kingfisher (ULCB extension) board
4  *
5  * Copyright (C) 2017 Renesas Electronics Corp.
6  * Copyright (C) 2017 Cogent Embedded, Inc.
7  */
8
9 /*
10  * SSI-PCM3168A
11  *      aplay   -D plughw:0,2 xxx.wav
12  *      arecord -D plughw:0,3 xxx.wav
13  */
14
15 / {
16         aliases {
17                 serial1 = &hscif0;
18                 serial2 = &scif1;
19         };
20
21         clksndsel: clksndsel {
22                 #clock-cells = <0>;
23                 compatible = "gpio-mux-clock";
24                 clocks = <&cs2000>, <&audio_clk_a>; /* clk8snd, clksnd */
25                 select-gpios = <&gpio_exp_75 13 GPIO_ACTIVE_HIGH>;
26         };
27
28         snd_3p3v: regulator-snd_3p3v {
29                 compatible = "regulator-fixed";
30                 regulator-name = "snd-3.3v";
31                 regulator-min-microvolt = <3300000>;
32                 regulator-max-microvolt = <3300000>;
33         };
34
35         snd_vcc5v: regulator-snd_vcc5v {
36                 compatible = "regulator-fixed";
37                 regulator-name = "snd-vcc5v";
38                 regulator-min-microvolt = <5000000>;
39                 regulator-max-microvolt = <5000000>;
40         };
41 };
42
43 &can0 {
44         pinctrl-0 = <&can0_pins>;
45         pinctrl-names = "default";
46         status = "okay";
47 };
48
49 &can1 {
50         pinctrl-0 = <&can1_pins>;
51         pinctrl-names = "default";
52         status = "okay";
53 };
54
55 &ehci0 {
56         dr_mode = "otg";
57         status = "okay";
58 };
59
60 &hscif0 {
61         pinctrl-0 = <&hscif0_pins>;
62         pinctrl-names = "default";
63         uart-has-rtscts;
64
65         status = "okay";
66 };
67
68 &hsusb {
69         dr_mode = "otg";
70         status = "okay";
71 };
72
73 &i2c2 {
74         /* U11 */
75         gpio_exp_74: gpio@74 {
76                 compatible = "ti,tca9539";
77                 reg = <0x74>;
78                 gpio-controller;
79                 #gpio-cells = <2>;
80                 interrupt-controller;
81                 interrupt-parent = <&gpio6>;
82                 interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
83
84                 audio_out_off {
85                         gpio-hog;
86                         gpios = <0 GPIO_ACTIVE_HIGH>; /* P00 */
87                         output-high;
88                         line-name = "Audio_Out_OFF";
89                 };
90
91                 hub_pwen {
92                         gpio-hog;
93                         gpios = <6 GPIO_ACTIVE_HIGH>;
94                         output-high;
95                         line-name = "HUB pwen";
96                 };
97
98                 hub_rst {
99                         gpio-hog;
100                         gpios = <7 GPIO_ACTIVE_HIGH>;
101                         output-high;
102                         line-name = "HUB rst";
103                 };
104
105                 otg_offvbusn {
106                         gpio-hog;
107                         gpios = <8 GPIO_ACTIVE_HIGH>;
108                         output-low;
109                         line-name = "OTG OFFVBUSn";
110                 };
111
112                 otg_extlpn {
113                         gpio-hog;
114                         gpios = <9 GPIO_ACTIVE_HIGH>;
115                         output-high;
116                         line-name = "OTG EXTLPn";
117                 };
118
119                 snd_rst {
120                         gpio-hog;
121                         gpios = <15 GPIO_ACTIVE_HIGH>; /* P17 */
122                         output-high;
123                         line-name = "SND_RST";
124                 };
125         };
126
127         /* U5 */
128         gpio_exp_75: gpio@75 {
129                 compatible = "ti,tca9539";
130                 reg = <0x75>;
131                 gpio-controller;
132                 #gpio-cells = <2>;
133                 interrupt-controller;
134                 interrupt-parent = <&gpio6>;
135                 interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
136         };
137
138         i2cswitch2: i2c-switch@71 {
139                 compatible = "nxp,pca9548";
140                 #address-cells = <1>;
141                 #size-cells = <0>;
142                 reg = <0x71>;
143                 reset-gpios = <&gpio5 3 GPIO_ACTIVE_LOW>;
144
145                 /* Audio_SDA, Audio_SCL */
146                 i2c@7 {
147                         #address-cells = <1>;
148                         #size-cells = <0>;
149                         reg = <7>;
150
151                         pcm3168a: audio-codec@44 {
152                                 #sound-dai-cells = <0>;
153                                 compatible = "ti,pcm3168a";
154                                 reg = <0x44>;
155                                 clocks = <&clksndsel>;
156                                 clock-names = "scki";
157
158                                 VDD1-supply     = <&snd_3p3v>;
159                                 VDD2-supply     = <&snd_3p3v>;
160                                 VCCAD1-supply   = <&snd_vcc5v>;
161                                 VCCAD2-supply   = <&snd_vcc5v>;
162                                 VCCDA1-supply   = <&snd_vcc5v>;
163                                 VCCDA2-supply   = <&snd_vcc5v>;
164
165                                 ports {
166                                         #address-cells = <1>;
167                                         #size-cells = <0>;
168                                         mclk-fs = <512>;
169                                         port@0 {
170                                                 reg = <0>;
171                                                 pcm3168a_endpoint_p: endpoint {
172                                                         remote-endpoint = <&rsnd_for_pcm3168a_play>;
173                                                         clocks = <&clksndsel>;
174                                                 };
175                                         };
176                                         port@1 {
177                                                 reg = <1>;
178                                                 pcm3168a_endpoint_c: endpoint {
179                                                         remote-endpoint = <&rsnd_for_pcm3168a_capture>;
180                                                         clocks = <&clksndsel>;
181                                                 };
182                                         };
183                                 };
184                         };
185                 };
186         };
187 };
188
189 &i2c4 {
190         gpio_exp_76: gpio@76 {
191                 compatible = "ti,tca9539";
192                 reg = <0x76>;
193                 gpio-controller;
194                 #gpio-cells = <2>;
195                 interrupt-controller;
196                 interrupt-parent = <&gpio7>;
197                 interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
198         };
199
200         gpio_exp_77: gpio@77 {
201                 compatible = "ti,tca9539";
202                 reg = <0x77>;
203                 gpio-controller;
204                 #gpio-cells = <2>;
205                 interrupt-controller;
206                 interrupt-parent = <&gpio5>;
207                 interrupts = <9 IRQ_TYPE_EDGE_FALLING>;
208         };
209
210         i2cswitch4: i2c-switch@71 {
211                 compatible = "nxp,pca9548";
212                 #address-cells = <1>;
213                 #size-cells = <0>;
214                 reg = <0x71>;
215                 reset-gpios = <&gpio3 15 GPIO_ACTIVE_LOW>;
216         };
217 };
218
219 &ohci0 {
220         dr_mode = "otg";
221         status = "okay";
222 };
223
224 &pcie_bus_clk {
225         clock-frequency = <100000000>;
226 };
227
228 &pciec0 {
229         status = "okay";
230 };
231
232 &pciec1 {
233         status = "okay";
234 };
235
236 &pfc {
237         can0_pins: can0 {
238                 groups = "can0_data_a";
239                 function = "can0";
240         };
241
242         can1_pins: can1 {
243                 groups = "can1_data";
244                 function = "can1";
245         };
246
247         hscif0_pins: hscif0 {
248                 groups = "hscif0_data", "hscif0_ctrl";
249                 function = "hscif0";
250         };
251
252         scif1_pins: scif1 {
253                 groups = "scif1_data_b", "scif1_ctrl";
254                 function = "scif1";
255         };
256
257         usb0_pins: usb0 {
258                 groups = "usb0";
259                 function = "usb0";
260         };
261
262         sound_pcm_pins: sound-pcm {
263                 groups = "ssi349_ctrl", "ssi3_data", "ssi4_data";
264                 function = "ssi";
265         };
266 };
267
268 &scif1 {
269         pinctrl-0 = <&scif1_pins>;
270         pinctrl-names = "default";
271         uart-has-rtscts;
272
273         status = "okay";
274 };
275
276 &usb2_phy0 {
277         pinctrl-0 = <&usb0_pins>;
278         pinctrl-names = "default";
279
280         status = "okay";
281 };
282
283 &xhci0 {
284         status = "okay";
285 };
286
287 &sound_card {
288         dais = <&rsnd_port0     /* ak4613 */
289                 &rsnd_port1     /* HDMI0  */
290                 &rsnd_port2     /* pcm3168a playback */
291                 &rsnd_port3     /* pcm3168a capture  */
292                 >;
293 };
294
295 &rcar_sound {
296         pinctrl-0 = <&sound_pins
297                      &sound_clk_pins
298                      &sound_pcm_pins>;
299
300         ports {
301                 /* rsnd_port0/1 are on salvator-common */
302                 rsnd_port2: port@2 {
303                         reg = <2>;
304                         rsnd_for_pcm3168a_play: endpoint {
305                                 remote-endpoint = <&pcm3168a_endpoint_p>;
306
307                                 dai-format = "i2s";
308                                 bitclock-master = <&rsnd_for_pcm3168a_play>;
309                                 frame-master = <&rsnd_for_pcm3168a_play>;
310                                 dai-tdm-slot-num = <8>;
311
312                                 playback = <&ssi3>;
313                         };
314                 };
315                 rsnd_port3: port@3 {
316                         reg = <3>;
317                         rsnd_for_pcm3168a_capture: endpoint {
318                                 remote-endpoint = <&pcm3168a_endpoint_c>;
319
320                                 dai-format = "i2s";
321                                 bitclock-master = <&rsnd_for_pcm3168a_capture>;
322                                 frame-master = <&rsnd_for_pcm3168a_capture>;
323                                 dai-tdm-slot-num = <6>;
324
325                                 capture  = <&ssi4>;
326                         };
327                 };
328         };
329 };
330
331 &ssi4 {
332         shared-pin;
333 };