Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux
[sfrench/cifs-2.6.git] / arch / arm64 / boot / dts / renesas / r8a7795-salvator-xs.dts
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * Device Tree Source for the Salvator-X 2nd version board with R-Car H3 ES2.0
4  *
5  * Copyright (C) 2015-2017 Renesas Electronics Corp.
6  */
7
8 /dts-v1/;
9 #include "r8a7795.dtsi"
10 #include "salvator-xs.dtsi"
11
12 / {
13         model = "Renesas Salvator-X 2nd version board based on r8a7795 ES2.0+";
14         compatible = "renesas,salvator-xs", "renesas,r8a7795";
15
16         memory@48000000 {
17                 device_type = "memory";
18                 /* first 128MB is reserved for secure area. */
19                 reg = <0x0 0x48000000 0x0 0x38000000>;
20         };
21
22         memory@500000000 {
23                 device_type = "memory";
24                 reg = <0x5 0x00000000 0x0 0x40000000>;
25         };
26
27         memory@600000000 {
28                 device_type = "memory";
29                 reg = <0x6 0x00000000 0x0 0x40000000>;
30         };
31
32         memory@700000000 {
33                 device_type = "memory";
34                 reg = <0x7 0x00000000 0x0 0x40000000>;
35         };
36 };
37
38 &du {
39         clocks = <&cpg CPG_MOD 724>,
40                  <&cpg CPG_MOD 723>,
41                  <&cpg CPG_MOD 722>,
42                  <&cpg CPG_MOD 721>,
43                  <&versaclock6 1>,
44                  <&x21_clk>,
45                  <&x22_clk>,
46                  <&versaclock6 2>;
47         clock-names = "du.0", "du.1", "du.2", "du.3",
48                       "dclkin.0", "dclkin.1", "dclkin.2", "dclkin.3";
49 };
50
51 &ehci2 {
52         status = "okay";
53 };
54
55 &ehci3 {
56         dr_mode = "otg";
57         status = "okay";
58 };
59
60 &hsusb3 {
61         dr_mode = "otg";
62         status = "okay";
63 };
64
65 &sound_card {
66         dais = <&rsnd_port0     /* ak4613 */
67                 &rsnd_port1     /* HDMI0  */
68                 &rsnd_port2>;   /* HDMI1  */
69 };
70
71 &hdmi0 {
72         status = "okay";
73
74         ports {
75                 port@1 {
76                         reg = <1>;
77                         rcar_dw_hdmi0_out: endpoint {
78                                 remote-endpoint = <&hdmi0_con>;
79                         };
80                 };
81                 port@2 {
82                         reg = <2>;
83                         dw_hdmi0_snd_in: endpoint {
84                                 remote-endpoint = <&rsnd_endpoint1>;
85                         };
86                 };
87         };
88 };
89
90 &hdmi0_con {
91         remote-endpoint = <&rcar_dw_hdmi0_out>;
92 };
93
94 &hdmi1 {
95         status = "okay";
96
97         ports {
98                 port@1 {
99                         reg = <1>;
100                         rcar_dw_hdmi1_out: endpoint {
101                                 remote-endpoint = <&hdmi1_con>;
102                         };
103                 };
104                 port@2 {
105                         reg = <2>;
106                         dw_hdmi1_snd_in: endpoint {
107                                 remote-endpoint = <&rsnd_endpoint2>;
108                         };
109                 };
110         };
111 };
112
113 &hdmi1_con {
114         remote-endpoint = <&rcar_dw_hdmi1_out>;
115 };
116
117 &ohci2 {
118         status = "okay";
119 };
120
121 &ohci3 {
122         dr_mode = "otg";
123         status = "okay";
124 };
125
126 &rcar_sound {
127         ports {
128                 /* rsnd_port0 is on salvator-common */
129                 rsnd_port1: port@1 {
130                         rsnd_endpoint1: endpoint {
131                                 remote-endpoint = <&dw_hdmi0_snd_in>;
132
133                                 dai-format = "i2s";
134                                 bitclock-master = <&rsnd_endpoint1>;
135                                 frame-master = <&rsnd_endpoint1>;
136
137                                 playback = <&ssi2>;
138                         };
139                 };
140                 rsnd_port2: port@2 {
141                         rsnd_endpoint2: endpoint {
142                                 remote-endpoint = <&dw_hdmi1_snd_in>;
143
144                                 dai-format = "i2s";
145                                 bitclock-master = <&rsnd_endpoint2>;
146                                 frame-master = <&rsnd_endpoint2>;
147
148                                 playback = <&ssi3>;
149                         };
150                 };
151         };
152 };
153
154 &pca9654 {
155         pcie_sata_switch {
156                 gpio-hog;
157                 gpios = <7 GPIO_ACTIVE_HIGH>;
158                 output-low; /* enable SATA by default */
159                 line-name = "PCIE/SATA switch";
160         };
161 };
162
163 &pfc {
164         usb2_pins: usb2 {
165                 groups = "usb2";
166                 function = "usb2";
167         };
168
169         /*
170          * - On Salvator-X[S], GP6_3[01] are connected to ADV7482 as irq pins
171          *   (when SW31 is the default setting on Salvator-XS).
172          * - If SW31 is the default setting, you cannot use USB2.0 ch3 on
173          *   r8a7795 with Salvator-XS.
174          *   Hence the SW31 setting must be changed like 2) below.
175          *   1) Default setting of SW31: ON-ON-OFF-OFF-OFF-OFF:
176          *      - Connect GP6_3[01] to ADV7842.
177          *   2) Changed setting of SW31: OFF-OFF-ON-ON-ON-ON:
178          *      - Connect GP6_3[01] to BD082065 (USB2.0 ch3's host power).
179          *      - Connect GP6_{04,21} to ADV7842.
180          */
181         usb2_ch3_pins: usb2_ch3 {
182                 groups = "usb2_ch3";
183                 function = "usb2_ch3";
184         };
185 };
186
187 /* SW12-7 must be set 'Off' (MD12 set to 1) which is not the default! */
188 &sata {
189         status = "okay";
190 };
191
192 &usb2_phy2 {
193         pinctrl-0 = <&usb2_pins>;
194         pinctrl-names = "default";
195
196         status = "okay";
197 };
198
199 &usb2_phy3 {
200         pinctrl-0 = <&usb2_ch3_pins>;
201         pinctrl-names = "default";
202
203         status = "okay";
204 };