Merge tag 'selinux-pr-20190312' of git://git.kernel.org/pub/scm/linux/kernel/git...
[sfrench/cifs-2.6.git] / arch / arm / boot / dts / kirkwood-dir665.dts
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * Copyright (C) 2014 Claudio Leite <leitec@staticky.com>
4  *
5  */
6
7 /dts-v1/;
8
9 #include "kirkwood.dtsi"
10 #include "kirkwood-6281.dtsi"
11
12 / {
13         model = "D-Link DIR-665";
14         compatible = "dlink,dir-665", "marvell,kirkwood-88f6281", "marvell,kirkwood";
15
16         memory {
17                 device_type = "memory";
18                 reg = <0x00000000 0x8000000>; /* 128 MB */
19         };
20
21         chosen {
22                 bootargs = "console=ttyS0,115200n8 earlyprintk";
23                 stdout-path = &uart0;
24         };
25
26         ocp@f1000000 {
27                 pinctrl: pin-controller@10000 {
28                         pinctrl-0 =< &pmx_led_usb
29                                      &pmx_led_internet_blue
30                                      &pmx_led_internet_amber
31                                      &pmx_led_5g &pmx_led_status_blue
32                                      &pmx_led_wps &pmx_led_status_amber
33                                      &pmx_led_24g
34                                      &pmx_btn_restart &pmx_btn_wps>;
35                         pinctrl-names = "default";
36
37                         pmx_led_usb: pmx-led-usb {
38                                 marvell,pins = "mpp12";
39                                 marvell,function = "gpio";
40                         };
41                         pmx_led_internet_blue: pmx-led-internet-blue {
42                                 marvell,pins = "mpp42";
43                                 marvell,function = "gpio";
44                         };
45                         pmx_led_internet_amber: pmx-led-internet-amber {
46                                 marvell,pins = "mpp43";
47                                 marvell,function = "gpio";
48                         };
49                         pmx_led_5g: pmx-led-5g {
50                                 marvell,pins = "mpp44";
51                                 marvell,function = "gpio";
52                         };
53                         pmx_led_status_blue: pmx-led-status-blue {
54                                 marvell,pins = "mpp45";
55                                 marvell,function = "gpio";
56                         };
57                         pmx_led_wps: pmx-led-wps {
58                                 marvell,pins = "mpp47";
59                                 marvell,function = "gpio";
60                         };
61                         pmx_led_status_amber: pmx-led-status-amber {
62                                 marvell,pins = "mpp48";
63                                 marvell,function = "gpio";
64                         };
65                         pmx_led_24g: pmx-led-24g {
66                                 marvell,pins = "mpp49";
67                                 marvell,function = "gpio";
68                         };
69                         pmx_btn_restart: pmx-btn-restart {
70                                 marvell,pins = "mpp28";
71                                 marvell,function = "gpio";
72                         };
73                         pmx_btn_wps: pmx-btn-wps {
74                                 marvell,pins = "mpp46";
75                                 marvell,function = "gpio";
76                         };
77                 };
78
79                 spi@10600 {
80                         status = "okay";
81                         m25p80@0 {
82                                 #address-cells = <1>;
83                                 #size-cells = <1>;
84                                 compatible = "mxicy,mx25l12805d", "jedec,spi-nor";
85                                 spi-max-frequency = <50000000>;
86                                 reg = <0>;
87
88                                 partition@0 {
89                                         label = "uboot";
90                                         reg = <0x0 0x30000>;
91                                         read-only;
92                                 };
93
94                                 partition@30000 {
95                                         label = "nvram";
96                                         reg = <0x30000 0x10000>;
97                                         read-only;
98                                 };
99
100                                 partition@40000 {
101                                         label = "kernel";
102                                         reg = <0x40000 0x180000>;
103                                 };
104
105                                 partition@1c0000 {
106                                         label = "rootfs";
107                                         reg = <0x1c0000 0xe00000>;
108                                 };
109
110                                 cal_data: partition@fc0000 {
111                                         label = "cal_data";
112                                         reg = <0xfc0000 0x10000>;
113                                         read-only;
114                                 };
115
116                                 partition@fd0000 {
117                                         label = "lang_pack";
118                                         reg = <0xfd0000 0x30000>;
119                                         read-only;
120                                 };
121                         };
122                 };
123
124                 serial@12000 {
125                         status = "okay";
126                 };
127
128                 i2c@11000 {
129                         status = "okay";
130                 };
131
132                 ehci@50000 {
133                         status = "okay";
134                 };
135         };
136
137         gpio-leds {
138                 compatible = "gpio-leds";
139
140                 blue-usb {
141                         label = "dir665:blue:usb";
142                         gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
143                 };
144                 blue-internet {
145                         /* Can only be turned on if the Internet
146                          * Ethernet port has Link
147                          */
148                         label = "dir665:blue:internet";
149                         gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
150                 };
151                 amber-internet {
152                         label = "dir665:amber:internet";
153                         gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>;
154                 };
155                 blue-wifi5g {
156                         label = "dir665:blue:5g";
157                         gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
158                 };
159                 blue-status {
160                         label = "dir665:blue:status";
161                         gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
162                 };
163                 blue-wps {
164                         label = "dir665:blue:wps";
165                         gpios = <&gpio1 15 GPIO_ACTIVE_HIGH>;
166                 };
167                 amber-status {
168                         label = "dir665:amber:status";
169                         gpios = <&gpio1 16 GPIO_ACTIVE_HIGH>;
170                 };
171                 blue-24g {
172                         label = "dir665:blue:24g";
173                         gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
174                 };
175         };
176
177         gpio-keys {
178                 compatible = "gpio-keys";
179                 #address-cells = <1>;
180                 #size-cells = <0>;
181
182                 reset {
183                         label = "reset";
184                         linux,code = <KEY_RESTART>;
185                         gpios = <&gpio0 28 GPIO_ACTIVE_LOW>;
186                 };
187                 wps {
188                         label = "wps";
189                         linux,code = <KEY_WPS_BUTTON>;
190                         gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
191                 };
192         };
193 };
194
195 &mdio {
196         status = "okay";
197
198         switch@0 {
199                 compatible = "marvell,mv88e6085";
200                 #address-cells = <1>;
201                 #size-cells = <0>;
202                 reg = <0>;
203
204                 ports {
205                         #address-cells = <1>;
206                         #size-cells = <0>;
207
208                         port@0 {
209                                 reg = <0>;
210                                 label = "lan4";
211                         };
212
213                         port@1 {
214                                reg = <1>;
215                                label = "lan3";
216                         };
217
218                         port@2 {
219                                reg = <2>;
220                                label = "lan2";
221                         };
222
223                         port@3 {
224                                reg = <3>;
225                                label = "lan1";
226                         };
227
228                         port@4 {
229                                 reg = <4>;
230                                 label = "wan";
231                         };
232
233                         port@6 {
234                                 reg = <6>;
235                                 label = "cpu";
236                                 ethernet = <&eth0port>;
237                                 fixed-link {
238                                         speed = <1000>;
239                                         full-duplex;
240                                 };
241                         };
242                 };
243         };
244 };
245
246 /* eth0 is connected to a Marvell 88E6171 switch, without a PHY. So set
247  * fixed speed and duplex. */
248 &eth0 {
249         status = "okay";
250
251         ethernet0-port@0 {
252                 speed = <1000>;
253                 duplex = <1>;
254         };
255 };
256
257 /* eth1 is connected to the switch as well. However DSA only supports a
258  * single CPU port. So leave this port disabled to avoid confusion. */
259
260 &eth1 {
261         status = "disabled";
262 };
263
264 /* There is no battery on the boards, so the RTC does not keep time
265  * when there is no power, making it useless. */
266 &rtc {
267         status = "disabled";
268 };
269
270 &pciec {
271         status = "okay";
272 };
273
274 &pcie0 {
275         status = "okay";
276 };