Merge tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
[sfrench/cifs-2.6.git] / arch / arm / boot / dts / r8a77470-iwg23s-sbc.dts
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * Device Tree Source for the iWave-RZ/G1C single board computer
4  *
5  * Copyright (C) 2018 Renesas Electronics Corp.
6  */
7
8 /dts-v1/;
9 #include <dt-bindings/gpio/gpio.h>
10 #include "r8a77470.dtsi"
11 / {
12         model = "iWave iW-RainboW-G23S single board computer based on RZ/G1C";
13         compatible = "iwave,g23s", "renesas,r8a77470";
14
15         aliases {
16                 ethernet0 = &avb;
17                 serial1 = &scif1;
18         };
19
20         chosen {
21                 bootargs = "ignore_loglevel rw root=/dev/nfs ip=on";
22                 stdout-path = "serial1:115200n8";
23         };
24
25         hdmi-out {
26                 compatible = "hdmi-connector";
27                 type = "a";
28
29                 port {
30                         hdmi_con: endpoint {
31                                 remote-endpoint = <&bridge_out>;
32                         };
33                 };
34         };
35
36         memory@40000000 {
37                 device_type = "memory";
38                 reg = <0 0x40000000 0 0x20000000>;
39         };
40
41         reg_1p8v: reg-1p8v {
42                 compatible = "regulator-fixed";
43                 regulator-name = "fixed-1.8V";
44                 regulator-min-microvolt = <1800000>;
45                 regulator-max-microvolt = <1800000>;
46                 regulator-boot-on;
47                 regulator-always-on;
48         };
49
50         reg_3p3v: reg-3p3v {
51                 compatible = "regulator-fixed";
52                 regulator-name = "fixed-3.3V";
53                 regulator-min-microvolt = <3300000>;
54                 regulator-max-microvolt = <3300000>;
55                 regulator-boot-on;
56                 regulator-always-on;
57         };
58
59         vccq_sdhi2: regulator-vccq-sdhi2 {
60                 compatible = "regulator-gpio";
61
62                 regulator-name = "SDHI2 VccQ";
63                 regulator-min-microvolt = <1800000>;
64                 regulator-max-microvolt = <3300000>;
65
66                 gpios = <&gpio2 24 GPIO_ACTIVE_HIGH>;
67                 gpios-states = <1>;
68                 states = <3300000 1
69                           1800000 0>;
70         };
71 };
72
73 &avb {
74         pinctrl-0 = <&avb_pins>;
75         pinctrl-names = "default";
76
77         phy-handle = <&phy3>;
78         phy-mode = "gmii";
79         renesas,no-ether-link;
80         status = "okay";
81
82         phy3: ethernet-phy@3 {
83                 reg = <3>;
84                 interrupt-parent = <&gpio5>;
85                 interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
86                 micrel,led-mode = <1>;
87         };
88 };
89
90 &cmt0 {
91         status = "okay";
92 };
93
94 &du {
95         pinctrl-0 = <&du0_pins>;
96         pinctrl-names = "default";
97
98         status = "okay";
99
100         ports {
101                 port@0 {
102                         endpoint {
103                                 remote-endpoint = <&bridge_in>;
104                         };
105                 };
106         };
107 };
108
109 &ehci1 {
110         status = "okay";
111 };
112
113 &extal_clk {
114         clock-frequency = <20000000>;
115 };
116
117 &gpio2 {
118         interrupt-fixup {
119                 gpio-hog;
120                 gpios = <29 GPIO_ACTIVE_HIGH>;
121                 line-name = "hdmi-hpd-int";
122                 input;
123         };
124 };
125
126 &hsusb0 {
127         status = "okay";
128 };
129
130 &i2c3 {
131         pinctrl-0 = <&i2c3_pins>;
132         pinctrl-names = "default";
133
134         status = "okay";
135         clock-frequency = <400000>;
136
137         rtc@51 {
138                 compatible = "nxp,pcf85263";
139                 reg = <0x51>;
140         };
141 };
142
143 &i2c4 {
144         pinctrl-0 = <&i2c4_pins>;
145         pinctrl-names = "default";
146
147         status = "okay";
148         clock-frequency = <100000>;
149
150         hdmi@39 {
151                 compatible = "sil,sii9022";
152                 reg = <0x39>;
153                 interrupt-parent = <&gpio2>;
154                 interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
155
156                 ports {
157                         #address-cells = <1>;
158                         #size-cells = <0>;
159
160                         port@0 {
161                                 reg = <0>;
162                                 bridge_in: endpoint {
163                                         remote-endpoint = <&du_out_rgb0>;
164                                 };
165                         };
166
167                         port@1 {
168                                 reg = <1>;
169                                 bridge_out: endpoint {
170                                         remote-endpoint = <&hdmi_con>;
171                                 };
172                         };
173                 };
174         };
175 };
176
177 &ohci1 {
178         status = "okay";
179 };
180
181 &pfc {
182         avb_pins: avb {
183                 groups = "avb_mdio", "avb_gmii_tx_rx";
184                 function = "avb";
185         };
186
187         du0_pins: du0 {
188                 groups = "du0_rgb888", "du0_sync", "du0_disp", "du0_clk0_out";
189                 function = "du0";
190         };
191
192         i2c4_pins: i2c4 {
193                 groups = "i2c4_e";
194                 function = "i2c4";
195         };
196
197         i2c3_pins: i2c3 {
198                 groups = "i2c3_c";
199                 function = "i2c3";
200         };
201
202         mmc_pins_uhs: mmc_uhs {
203                 groups = "mmc_data8", "mmc_ctrl";
204                 function = "mmc";
205                 power-source = <1800>;
206         };
207
208         qspi0_pins: qspi0 {
209                 groups = "qspi0_ctrl", "qspi0_data2";
210                 function = "qspi0";
211         };
212
213         scif1_pins: scif1 {
214                 groups = "scif1_data_b";
215                 function = "scif1";
216         };
217
218         sdhi2_pins: sd2 {
219                 groups = "sdhi2_data4", "sdhi2_ctrl";
220                 function = "sdhi2";
221                 power-source = <3300>;
222         };
223
224         sdhi2_pins_uhs: sd2_uhs {
225                 groups = "sdhi2_data4", "sdhi2_ctrl";
226                 function = "sdhi2";
227                 power-source = <1800>;
228         };
229
230         usb0_pins: usb0 {
231                 groups = "usb0";
232                 function = "usb0";
233         };
234
235         usb1_pins: usb1 {
236                 groups = "usb1";
237                 function = "usb1";
238         };
239 };
240
241 &qspi0 {
242         pinctrl-0 = <&qspi0_pins>;
243         pinctrl-names = "default";
244
245         status = "okay";
246
247         /* WARNING - This device contains the bootloader. Handle with care. */
248         flash: flash@0 {
249                 #address-cells = <1>;
250                 #size-cells = <1>;
251                 compatible = "issi,is25lp016d", "jedec,spi-nor";
252                 reg = <0>;
253                 spi-max-frequency = <133000000>;
254                 spi-tx-bus-width = <1>;
255                 spi-rx-bus-width = <1>;
256                 m25p,fast-read;
257                 spi-cpol;
258                 spi-cpha;
259         };
260 };
261
262 &rwdt {
263         timeout-sec = <60>;
264         status = "okay";
265 };
266
267 &scif1 {
268         pinctrl-0 = <&scif1_pins>;
269         pinctrl-names = "default";
270
271         status = "okay";
272 };
273
274 &sdhi1 {
275         pinctrl-0 = <&mmc_pins_uhs>;
276         pinctrl-names = "state_uhs";
277
278         vmmc-supply = <&reg_3p3v>;
279         vqmmc-supply = <&reg_1p8v>;
280         bus-width = <8>;
281         mmc-hs200-1_8v;
282         non-removable;
283         fixed-emmc-driver-type = <1>;
284         status = "okay";
285 };
286
287 &sdhi2 {
288         pinctrl-0 = <&sdhi2_pins>;
289         pinctrl-1 = <&sdhi2_pins_uhs>;
290         pinctrl-names = "default", "state_uhs";
291
292         vmmc-supply = <&reg_3p3v>;
293         vqmmc-supply = <&vccq_sdhi2>;
294         bus-width = <4>;
295         cd-gpios = <&gpio4 20 GPIO_ACTIVE_LOW>;
296         sd-uhs-sdr50;
297         status = "okay";
298 };
299
300 &usb2_phy0 {
301         status = "okay";
302 };
303
304 &usb2_phy1 {
305         status = "okay";
306 };
307
308 &usbphy0 {
309         pinctrl-0 = <&usb0_pins>;
310         pinctrl-names = "default";
311
312         status = "okay";
313 };
314
315 &usbphy1 {
316         pinctrl-0 = <&usb1_pins>;
317         pinctrl-names = "default";
318
319         status = "okay";
320 };