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