Merge branch 'work.afs' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
[sfrench/cifs-2.6.git] / arch / arm / boot / dts / r8a7792-wheat.dts
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * Device Tree Source for the Wheat board
4  *
5  * Copyright (C) 2016 Renesas Electronics Corporation
6  * Copyright (C) 2016 Cogent  Embedded, Inc.
7  */
8
9 /dts-v1/;
10 #include "r8a7792.dtsi"
11 #include <dt-bindings/gpio/gpio.h>
12 #include <dt-bindings/input/input.h>
13
14 / {
15         model = "Wheat";
16         compatible = "renesas,wheat", "renesas,r8a7792";
17
18         aliases {
19                 serial0 = &scif0;
20         };
21
22         chosen {
23                 bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp";
24                 stdout-path = "serial0:115200n8";
25         };
26
27         memory@40000000 {
28                 device_type = "memory";
29                 reg = <0 0x40000000 0 0x40000000>;
30         };
31
32         d3_3v: regulator-3v3 {
33                 compatible = "regulator-fixed";
34                 regulator-name = "D3.3V";
35                 regulator-min-microvolt = <3300000>;
36                 regulator-max-microvolt = <3300000>;
37                 regulator-boot-on;
38                 regulator-always-on;
39         };
40
41         ethernet@18000000 {
42                 compatible = "smsc,lan89218", "smsc,lan9115";
43                 reg = <0 0x18000000 0 0x100>;
44                 phy-mode = "mii";
45                 interrupt-parent = <&irqc>;
46                 interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
47                 smsc,irq-push-pull;
48                 smsc,save-mac-address;
49                 reg-io-width = <4>;
50                 vddvario-supply = <&d3_3v>;
51                 vdd33a-supply = <&d3_3v>;
52
53                 pinctrl-0 = <&lan89218_pins>;
54                 pinctrl-names = "default";
55         };
56
57         keyboard {
58                 compatible = "gpio-keys";
59
60                 key-a {
61                         linux,code = <KEY_A>;
62                         label = "SW2";
63                         wakeup-source;
64                         debounce-interval = <20>;
65                         gpios = <&gpio3 20 GPIO_ACTIVE_LOW>;
66                 };
67                 key-b {
68                         linux,code = <KEY_B>;
69                         label = "SW3";
70                         wakeup-source;
71                         debounce-interval = <20>;
72                         gpios = <&gpio11 2 GPIO_ACTIVE_LOW>;
73                 };
74         };
75
76         vcc_sdhi0: regulator-vcc-sdhi0 {
77                 compatible = "regulator-fixed";
78
79                 regulator-name = "SDHI0 Vcc";
80                 regulator-min-microvolt = <3300000>;
81                 regulator-max-microvolt = <3300000>;
82
83                 gpio = <&gpio11 12 GPIO_ACTIVE_HIGH>;
84                 enable-active-high;
85         };
86
87         hdmi-out0 {
88                 compatible = "hdmi-connector";
89                 type = "a";
90
91                 port {
92                         hdmi_con0: endpoint {
93                                 remote-endpoint = <&adv7513_0_out>;
94                         };
95                 };
96         };
97
98         hdmi-out1 {
99                 compatible = "hdmi-connector";
100                 type = "a";
101
102                 port {
103                         hdmi_con1: endpoint {
104                                 remote-endpoint = <&adv7513_1_out>;
105                         };
106                 };
107         };
108
109         osc2_clk: osc2 {
110                 compatible = "fixed-clock";
111                 #clock-cells = <0>;
112                 clock-frequency = <74250000>;
113         };
114 };
115
116 &extal_clk {
117         clock-frequency = <20000000>;
118 };
119
120 &pfc {
121         scif0_pins: scif0 {
122                 groups = "scif0_data";
123                 function = "scif0";
124         };
125
126         lan89218_pins: lan89218 {
127                 intc {
128                         groups = "intc_irq0";
129                         function = "intc";
130                 };
131                 lbsc {
132                         groups = "lbsc_ex_cs0";
133                         function = "lbsc";
134                 };
135         };
136
137         can0_pins: can0 {
138                 groups = "can0_data";
139                 function = "can0";
140         };
141
142         can1_pins: can1 {
143                 groups = "can1_data";
144                 function = "can1";
145         };
146
147         sdhi0_pins: sdhi0 {
148                 groups = "sdhi0_data4", "sdhi0_ctrl";
149                 function = "sdhi0";
150         };
151
152         qspi_pins: qspi {
153                 groups = "qspi_ctrl", "qspi_data4";
154                 function = "qspi";
155         };
156
157         du0_pins: du0 {
158                 groups = "du0_rgb888", "du0_sync", "du0_disp";
159                 function = "du0";
160         };
161
162         du1_pins: du1 {
163                 groups = "du1_rgb666", "du1_sync", "du1_disp";
164                 function = "du1";
165         };
166 };
167
168 &rwdt {
169         timeout-sec = <60>;
170         status = "okay";
171 };
172
173 &scif0 {
174         pinctrl-0 = <&scif0_pins>;
175         pinctrl-names = "default";
176
177         status = "okay";
178 };
179
180 &can0 {
181         pinctrl-0 = <&can0_pins>;
182         pinctrl-names = "default";
183
184         status = "okay";
185 };
186
187 &can1 {
188         pinctrl-0 = <&can1_pins>;
189         pinctrl-names = "default";
190
191         status = "okay";
192 };
193
194 &sdhi0 {
195         pinctrl-0 = <&sdhi0_pins>;
196         pinctrl-names = "default";
197
198         vmmc-supply = <&vcc_sdhi0>;
199         cd-gpios = <&gpio11 11 GPIO_ACTIVE_LOW>;
200         status = "okay";
201 };
202
203 &qspi {
204         pinctrl-0 = <&qspi_pins>;
205         pinctrl-names = "default";
206         status = "okay";
207
208         flash@0 {
209                 compatible = "spansion,s25fl512s", "jedec,spi-nor";
210                 reg = <0>;
211                 spi-max-frequency = <30000000>;
212                 spi-tx-bus-width = <4>;
213                 spi-rx-bus-width = <4>;
214                 spi-cpol;
215                 spi-cpha;
216                 m25p,fast-read;
217
218                 partitions {
219                         compatible = "fixed-partitions";
220                         #address-cells = <1>;
221                         #size-cells = <1>;
222
223                         partition@0 {
224                                 label = "loader";
225                                 reg = <0x00000000 0x00040000>;
226                                 read-only;
227                         };
228                         partition@40000 {
229                                 label = "user";
230                                 reg = <0x00040000 0x00400000>;
231                                 read-only;
232                         };
233                         partition@440000 {
234                                 label = "flash";
235                                 reg = <0x00440000 0x03bc0000>;
236                         };
237                 };
238         };
239 };
240
241 &i2c4 {
242         status = "okay";
243         clock-frequency = <400000>;
244
245         /*
246          * The adv75xx resets its addresses to defaults during low power mode.
247          * Because we have two ADV7513 devices on the same bus, we must change
248          * both of them away from the defaults so that they do not conflict.
249          */
250         hdmi@3d {
251                 compatible = "adi,adv7513";
252                 reg = <0x3d>, <0x2d>, <0x4d>, <0x5d>;
253                 reg-names = "main", "cec", "edid", "packet";
254
255                 adi,input-depth = <8>;
256                 adi,input-colorspace = "rgb";
257                 adi,input-clock = "1x";
258                 adi,input-style = <1>;
259                 adi,input-justification = "evenly";
260
261                 ports {
262                         #address-cells = <1>;
263                         #size-cells = <0>;
264
265                         port@0 {
266                                 reg = <0>;
267                                 adv7513_0_in: endpoint {
268                                         remote-endpoint = <&du_out_rgb0>;
269                                 };
270                         };
271
272                         port@1 {
273                                 reg = <1>;
274                                 adv7513_0_out: endpoint {
275                                         remote-endpoint = <&hdmi_con0>;
276                                 };
277                         };
278                 };
279         };
280
281         hdmi@39 {
282                 compatible = "adi,adv7513";
283                 reg = <0x39>, <0x29>, <0x49>, <0x59>;
284                 reg-names = "main", "cec", "edid", "packet";
285
286                 adi,input-depth = <8>;
287                 adi,input-colorspace = "rgb";
288                 adi,input-clock = "1x";
289                 adi,input-style = <1>;
290                 adi,input-justification = "evenly";
291
292                 ports {
293                         #address-cells = <1>;
294                         #size-cells = <0>;
295
296                         port@0 {
297                                 reg = <0>;
298                                 adv7513_1_in: endpoint {
299                                         remote-endpoint = <&du_out_rgb1>;
300                                 };
301                         };
302
303                         port@1 {
304                                 reg = <1>;
305                                 adv7513_1_out: endpoint {
306                                         remote-endpoint = <&hdmi_con1>;
307                                 };
308                         };
309                 };
310         };
311 };
312
313 &du {
314         pinctrl-0 = <&du0_pins &du1_pins>;
315         pinctrl-names = "default";
316
317         clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>, <&osc2_clk>;
318         clock-names = "du.0", "du.1", "dclkin.0";
319         status = "okay";
320
321         ports {
322                 port@0 {
323                         endpoint {
324                                 remote-endpoint = <&adv7513_0_in>;
325                         };
326                 };
327                 port@1 {
328                         endpoint {
329                                 remote-endpoint = <&adv7513_1_in>;
330                         };
331                 };
332         };
333 };