1/*
2 *  BSD LICENSE
3 *
4 *  Copyright(c) 2016 Broadcom.  All rights reserved.
5 *
6 *  Redistribution and use in source and binary forms, with or without
7 *  modification, are permitted provided that the following conditions
8 *  are met:
9 *
10 *    * Redistributions of source code must retain the above copyright
11 *      notice, this list of conditions and the following disclaimer.
12 *    * Redistributions in binary form must reproduce the above copyright
13 *      notice, this list of conditions and the following disclaimer in
14 *      the documentation and/or other materials provided with the
15 *      distribution.
16 *    * Neither the name of Broadcom Corporation nor the names of its
17 *      contributors may be used to endorse or promote products derived
18 *      from this software without specific prior written permission.
19 *
20 *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23 *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24 *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25 *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26 *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27 *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28 *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30 *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 */
32
33/dts-v1/;
34
35#include "bcm-nsp.dtsi"
36#include <dt-bindings/gpio/gpio.h>
37
38/ {
39	model = "NorthStar Plus SVK (BCM958625HR)";
40	compatible = "brcm,bcm58625", "brcm,nsp";
41
42	chosen {
43		stdout-path = "serial0:115200n8";
44	};
45
46	memory@60000000 {
47		device_type = "memory";
48		reg = <0x60000000 0x20000000>;
49	};
50
51	gpio-restart {
52		compatible = "gpio-restart";
53		gpios = <&gpioa 15 GPIO_ACTIVE_LOW>;
54		open-source;
55		priority = <200>;
56	};
57
58	/* Hardware I2C block cannot do more than 63 bytes per transfer,
59	 * which would prevent reading from a SFP's EEPROM (256 byte).
60	 */
61	i2c1: i2c {
62		compatible = "i2c-gpio";
63		sda-gpios = <&gpioa 5 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
64		scl-gpios = <&gpioa 4 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
65	};
66
67	sfp: sfp {
68		compatible = "sff,sfp";
69		i2c-bus = <&i2c1>;
70		mod-def0-gpios = <&gpioa 28 GPIO_ACTIVE_LOW>;
71		los-gpios = <&gpioa 24 GPIO_ACTIVE_HIGH>;
72		tx-fault-gpios = <&gpioa 30 GPIO_ACTIVE_HIGH>;
73		tx-disable-gpios = <&gpioa 26 GPIO_ACTIVE_HIGH>;
74	};
75};
76
77&amac0 {
78	status = "okay";
79};
80
81&amac1 {
82	status = "okay";
83};
84
85&amac2 {
86	status = "okay";
87};
88
89&ehci0 {
90	status = "okay";
91};
92
93&nand {
94	nandcs@0 {
95		compatible = "brcm,nandcs";
96		reg = <0>;
97		nand-on-flash-bbt;
98
99		#address-cells = <1>;
100		#size-cells = <1>;
101
102		nand-ecc-strength = <24>;
103		nand-ecc-step-size = <1024>;
104
105		brcm,nand-oob-sector-size = <27>;
106
107		partition@0 {
108			label = "nboot";
109			reg = <0x00000000 0x00200000>;
110			read-only;
111		};
112		partition@200000 {
113			label = "nenv";
114			reg = <0x00200000 0x00400000>;
115		};
116		partition@600000 {
117			label = "nsystem";
118			reg = <0x00600000 0x00a00000>;
119		};
120		partition@1000000 {
121			label = "nrootfs";
122			reg = <0x01000000 0x03000000>;
123		};
124		partition@4000000 {
125			label = "ncustfs";
126			reg = <0x04000000 0x3c000000>;
127		};
128	};
129};
130
131&ohci0 {
132	status = "okay";
133};
134
135&pcie0 {
136	status = "okay";
137};
138
139&pcie1 {
140	status = "okay";
141};
142
143&pinctrl {
144	pinctrl-names = "default";
145	pinctrl-0 = <&nand_sel>;
146	nand_sel: nand_sel {
147		function = "nand";
148		groups = "nand_grp";
149	};
150};
151
152&qspi {
153	bspi-sel = <0>;
154	flash: m25p80@0 {
155		#address-cells = <1>;
156		#size-cells = <1>;
157		compatible = "m25p80";
158		reg = <0x0>;
159		spi-max-frequency = <12500000>;
160		m25p,fast-read;
161		spi-cpol;
162		spi-cpha;
163
164		partition@0 {
165			label = "boot";
166			reg = <0x00000000 0x000a0000>;
167		};
168
169		partition@a0000 {
170			label = "env";
171			reg = <0x000a0000 0x00060000>;
172		};
173
174		partition@100000 {
175			label = "system";
176			reg = <0x00100000 0x00600000>;
177		};
178
179		partition@700000 {
180			label = "rootfs";
181			reg = <0x00700000 0x01900000>;
182		};
183	};
184};
185
186&sata_phy0 {
187	status = "okay";
188};
189
190&sata_phy1 {
191	status = "okay";
192};
193
194&srab {
195	compatible = "brcm,bcm58625-srab", "brcm,nsp-srab";
196	status = "okay";
197
198	ports {
199		#address-cells = <1>;
200		#size-cells = <0>;
201
202		port@0 {
203			label = "port0";
204			reg = <0>;
205		};
206
207		port@1 {
208			label = "port1";
209			reg = <1>;
210		};
211
212		port@2 {
213			label = "port2";
214			reg = <2>;
215		};
216
217		port@3 {
218			label = "port3";
219			reg = <3>;
220		};
221
222		port@4 {
223			label = "port4";
224			reg = <4>;
225		};
226
227		port@5 {
228			label = "sfp";
229			phy-mode = "sgmii";
230			reg = <5>;
231			sfp = <&sfp>;
232			managed = "in-band-status";
233		};
234
235		port@8 {
236			ethernet = <&amac2>;
237			label = "cpu";
238			reg = <8>;
239			fixed-link {
240				speed = <1000>;
241				full-duplex;
242			};
243		};
244	};
245};
246
247&uart0 {
248	status = "okay";
249};
250
251&usb3_phy {
252	status = "okay";
253};
254
255&xhci {
256	status = "okay";
257};
258