1/*
2 *  BSD LICENSE
3 *
4 *  Copyright(c) 2015 Broadcom Corporation.  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
37/ {
38	model = "NorthStar Plus SVK (BCM958625K)";
39	compatible = "brcm,bcm58625", "brcm,nsp";
40
41	chosen {
42		stdout-path = "serial0:115200n8";
43	};
44
45	memory@60000000 {
46		device_type = "memory";
47		reg = <0x60000000 0x80000000>;
48	};
49};
50
51&dma {
52	status = "okay";
53};
54
55&amac0 {
56	status = "okay";
57};
58
59&amac1 {
60	status = "okay";
61};
62
63&amac2 {
64	status = "okay";
65};
66
67&ehci0 {
68	status = "okay";
69};
70
71&nand {
72	nandcs@0 {
73		compatible = "brcm,nandcs";
74		reg = <0>;
75		nand-on-flash-bbt;
76
77		#address-cells = <1>;
78		#size-cells = <1>;
79
80		nand-ecc-strength = <24>;
81		nand-ecc-step-size = <1024>;
82
83		brcm,nand-oob-sector-size = <27>;
84
85		partition@0 {
86			label = "nboot";
87			reg = <0x00000000 0x00200000>;
88			read-only;
89		};
90		partition@200000 {
91			label = "nenv";
92			reg = <0x00200000 0x00400000>;
93		};
94		partition@600000 {
95			label = "nsystem";
96			reg = <0x00600000 0x00a00000>;
97		};
98		partition@1000000 {
99			label = "nrootfs";
100			reg = <0x01000000 0x03000000>;
101		};
102		partition@4000000 {
103			label = "ncustfs";
104			reg = <0x04000000 0x3c000000>;
105		};
106	};
107};
108
109&ohci0 {
110	status = "okay";
111};
112
113&pcie0 {
114	status = "okay";
115};
116
117&pcie1 {
118	status = "okay";
119};
120
121&pcie2 {
122	status = "okay";
123};
124
125&pinctrl {
126	pinctrl-names = "default";
127	pinctrl-0 = <&nand_sel>, <&gpiobs>, <&pwmc>;
128
129	nand_sel: nand_sel {
130		function = "nand";
131		groups = "nand_grp";
132	};
133
134	gpiobs: gpiobs {
135		function = "gpio_b";
136		groups = "gpio_b_0_grp", "gpio_b_1_grp", "gpio_b_2_grp",
137			 "gpio_b_3_grp";
138	};
139
140	pwmc: pwmc {
141		function = "pwm";
142		groups = "pwm0_grp", "pwm1_grp", "pwm2_grp", "pwm3_grp";
143	};
144
145	emmc_sel: emmc_sel {
146		function = "emmc";
147		groups = "emmc_grp";
148	};
149};
150
151&pwm {
152	status = "okay";
153};
154
155&qspi {
156	bspi-sel = <0>;
157	flash: m25p80@0 {
158		#address-cells = <1>;
159		#size-cells = <1>;
160		compatible = "m25p80";
161		reg = <0x0>;
162		spi-max-frequency = <12500000>;
163		m25p,fast-read;
164		spi-cpol;
165		spi-cpha;
166
167		partition@0 {
168			label = "boot";
169			reg = <0x00000000 0x000a0000>;
170		};
171
172		partition@a0000 {
173			label = "env";
174			reg = <0x000a0000 0x00060000>;
175		};
176
177		partition@100000 {
178			label = "system";
179			reg = <0x00100000 0x00600000>;
180		};
181
182		partition@700000 {
183			label = "rootfs";
184			reg = <0x00700000 0x01900000>;
185		};
186	};
187};
188
189&sata_phy0 {
190	status = "okay";
191};
192
193&sata_phy1 {
194	status = "okay";
195};
196
197&sata {
198	status = "okay";
199};
200
201/*
202 * By default the sd slot is functional. For emmc to work add "<&emmc_sel>"
203 * and delete "<&nand_sel>" in "pinctrl-0" property of pinctrl node. Remove the
204 * bus-width property here and disable the nand node with status = "disabled";.
205 *
206 * Ex: pinctrl-0 = <&emmc_sel>, <&gpiobs>, <&pwmc>;
207 */
208&sdio {
209	bus-width = <4>;
210	no-1-8-v;
211	status = "okay";
212};
213
214&srab {
215	compatible = "brcm,bcm58625-srab", "brcm,nsp-srab";
216	status = "okay";
217
218	ports {
219		port@0 {
220			label = "port0";
221			reg = <0>;
222		};
223
224		port@1 {
225			label = "port1";
226			reg = <1>;
227		};
228
229		port@2 {
230			label = "port2";
231			reg = <2>;
232		};
233
234		port@3 {
235			label = "port3";
236			reg = <3>;
237		};
238
239		port@4 {
240			label = "port4";
241			reg = <4>;
242		};
243
244		port@8 {
245			ethernet = <&amac2>;
246			label = "cpu";
247			reg = <8>;
248			fixed-link {
249				speed = <1000>;
250				full-duplex;
251			};
252		};
253	};
254};
255
256&uart0 {
257	status = "okay";
258};
259
260&uart1 {
261	status = "okay";
262};
263
264&usb3_phy {
265	status = "okay";
266};
267
268&xhci {
269	status = "okay";
270};
271