Merge tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
[sfrench/cifs-2.6.git] / arch / arm / boot / dts / bcm958625hr.dts
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 {
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 };