GNU Linux-libre 6.1.90-gnu
[releases.git] / arch / arm / boot / dts / orion5x-netgear-wnr854t.dts
1 // SPDX-License-Identifier: GPL-2.0-only
2 // Copyright (C) 2016 Jamie Lentin <jm@lentin.co.uk>
3
4 /dts-v1/;
5
6 #include <dt-bindings/gpio/gpio.h>
7 #include <dt-bindings/input/input.h>
8 #include "orion5x-mv88f5181.dtsi"
9
10 / {
11         model = "Netgear WNR854-t";
12         compatible = "netgear,wnr854t", "marvell,orion5x-88f5181",
13                      "marvell,orion5x";
14         aliases {
15                 serial0 = &uart0;
16         };
17
18         memory {
19                 device_type = "memory";
20                 reg = <0x00000000 0x2000000>; /* 32 MB */
21         };
22
23         chosen {
24                 stdout-path = "serial0:115200n8";
25         };
26
27         soc {
28                 ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000>,
29                          <MBUS_ID(0x09, 0x00) 0 0xf2200000 0x800>,
30                          <MBUS_ID(0x01, 0x0f) 0 0xf4000000 0x800000>;
31         };
32
33         gpio-keys {
34                 compatible = "gpio-keys";
35                 pinctrl-0 = <&pmx_reset_button>;
36                 pinctrl-names = "default";
37
38                 reset {
39                         label = "Reset Button";
40                         linux,code = <KEY_RESTART>;
41                         gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
42                 };
43         };
44
45         gpio-leds {
46                 compatible = "gpio-leds";
47                 pinctrl-0 = <&pmx_power_led &pmx_power_led_blink &pmx_wan_led>;
48                 pinctrl-names = "default";
49
50                 led@0 {
51                         label = "wnr854t:green:power";
52                         gpios = <&gpio0 0 GPIO_ACTIVE_LOW>;
53                 };
54
55                 led@1 {
56                         label = "wnr854t:blink:power";
57                         gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
58                 };
59
60                 led@2 {
61                         label = "wnr854t:green:wan";
62                         gpios = <&gpio0 3 GPIO_ACTIVE_LOW>;
63                 };
64         };
65 };
66
67 &devbus_bootcs {
68         status = "okay";
69
70         devbus,keep-config;
71
72         flash@0 {
73                 compatible = "cfi-flash";
74                 reg = <0 0x800000>;
75                 bank-width = <2>;
76
77                 partitions {
78                         compatible = "fixed-partitions";
79                         #address-cells = <1>;
80                         #size-cells = <1>;
81
82                         partition@0 {
83                                 label = "kernel";
84                                 reg = <0x0 0x100000>;
85                         };
86
87                         partition@100000 {
88                                 label = "rootfs";
89                                 reg = <0x100000 0x660000>;
90                         };
91
92                         partition@760000 {
93                                 label = "uboot_env";
94                                 reg = <0x760000 0x20000>;
95                         };
96
97                         partition@780000 {
98                                 label = "uboot";
99                                 reg = <0x780000 0x80000>;
100                                 read-only;
101                         };
102                 };
103         };
104 };
105
106 &mdio {
107         status = "okay";
108
109         switch: switch@0 {
110                 compatible = "marvell,mv88e6085";
111                 #address-cells = <1>;
112                 #size-cells = <0>;
113                 reg = <0>;
114                 dsa,member = <0 0>;
115
116                 ports {
117                         #address-cells = <1>;
118                         #size-cells = <0>;
119
120                         port@0 {
121                                 reg = <0>;
122                                 label = "lan3";
123                                 phy-handle = <&lan3phy>;
124                         };
125
126                         port@1 {
127                                 reg = <1>;
128                                 label = "lan4";
129                                 phy-handle = <&lan4phy>;
130                         };
131
132                         port@2 {
133                                 reg = <2>;
134                                 label = "wan";
135                                 phy-handle = <&wanphy>;
136                         };
137
138                         port@3 {
139                                 reg = <3>;
140                                 label = "cpu";
141                                 ethernet = <&ethport>;
142                         };
143
144                         port@5 {
145                                 reg = <5>;
146                                 label = "lan1";
147                                 phy-handle = <&lan1phy>;
148                         };
149
150                         port@7 {
151                                 reg = <7>;
152                                 label = "lan2";
153                                 phy-handle = <&lan2phy>;
154                         };
155                 };
156
157                 mdio {
158                         #address-cells = <1>;
159                         #size-cells = <0>;
160
161                         lan3phy: ethernet-phy@0 {
162                                 /* Marvell 88E1121R (port 1) */
163                                 compatible = "ethernet-phy-id0141.0cb0",
164                                              "ethernet-phy-ieee802.3-c22";
165                                 reg = <0>;
166                                 marvell,reg-init = <3 16 0 0x1777 3 17 0 0x15>;
167                         };
168
169                         lan4phy: ethernet-phy@1 {
170                                 /* Marvell 88E1121R (port 2) */
171                                 compatible = "ethernet-phy-id0141.0cb0",
172                                              "ethernet-phy-ieee802.3-c22";
173                                 reg = <1>;
174                                 marvell,reg-init = <3 16 0 0x1777 3 17 0 0x15>;
175                         };
176
177                         wanphy: ethernet-phy@2 {
178                                 /* Marvell 88E1121R (port 1) */
179                                 compatible = "ethernet-phy-id0141.0cb0",
180                                              "ethernet-phy-ieee802.3-c22";
181                                 reg = <2>;
182                                 marvell,reg-init = <3 16 0 0x1777 3 17 0 0x15>;
183                         };
184
185                         lan1phy: ethernet-phy@5 {
186                                 /* Marvell 88E1112 */
187                                 compatible = "ethernet-phy-id0141.0cb0",
188                                              "ethernet-phy-ieee802.3-c22";
189                                 reg = <5>;
190                                 marvell,reg-init = <3 16 0 0x1777 3 17 0 0x15>;
191                         };
192
193                         lan2phy: ethernet-phy@7 {
194                                 /* Marvell 88E1112 */
195                                 compatible = "ethernet-phy-id0141.0cb0",
196                                              "ethernet-phy-ieee802.3-c22";
197                                 reg = <7>;
198                                 marvell,reg-init = <3 16 0 0x1777 3 17 0 0x15>;
199                         };
200                 };
201         };
202 };
203
204 &eth {
205         status = "okay";
206
207         ethernet-port@0 {
208                 /* Hardwired to DSA switch */
209                 speed = <1000>;
210                 duplex = <1>;
211         };
212 };
213
214 &pinctrl {
215         pinctrl-0 = <&pmx_pci_gpios>;
216         pinctrl-names = "default";
217
218         pmx_power_led: pmx-power-led {
219                 marvell,pins = "mpp0";
220                 marvell,function = "gpio";
221         };
222
223         pmx_reset_button: pmx-reset-button {
224                 marvell,pins = "mpp1";
225                 marvell,function = "gpio";
226         };
227
228         pmx_power_led_blink: pmx-power-led-blink {
229                 marvell,pins = "mpp2";
230                 marvell,function = "gpio";
231         };
232
233         pmx_wan_led: pmx-wan-led {
234                 marvell,pins = "mpp3";
235                 marvell,function = "gpio";
236         };
237
238         pmx_pci_gpios: pmx-pci-gpios {
239                 marvell,pins = "mpp4";
240                 marvell,function = "gpio";
241         };
242 };
243
244 &uart0 {
245         /* Pin 1: Tx, Pin 7: Rx, Pin 8: Gnd */
246         status = "okay";
247 };