1/*
2 *  BSD LICENSE
3 *
4 *  Copyright(c) 2016-2017 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 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	sata {
34		compatible = "simple-bus";
35		#address-cells = <1>;
36		#size-cells = <1>;
37		ranges = <0x0 0x0 0x67d00000 0x00800000>;
38
39		sata0: ahci@0 {
40			compatible = "brcm,iproc-ahci", "generic-ahci";
41			reg = <0x00000000 0x1000>;
42			reg-names = "ahci";
43			interrupts = <GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH>;
44			#address-cells = <1>;
45			#size-cells = <0>;
46			status = "disabled";
47
48			sata0_port0: sata-port@0 {
49				reg = <0>;
50				phys = <&sata0_phy0>;
51				phy-names = "sata-phy";
52			};
53		};
54
55		sata_phy0: sata_phy@2100 {
56			compatible = "brcm,iproc-sr-sata-phy";
57			reg = <0x00002100 0x1000>;
58			reg-names = "phy";
59			#address-cells = <1>;
60			#size-cells = <0>;
61			status = "disabled";
62
63			sata0_phy0: sata-phy@0 {
64				reg = <0>;
65				#phy-cells = <0>;
66			};
67		};
68
69		sata1: ahci@10000 {
70			compatible = "brcm,iproc-ahci", "generic-ahci";
71			reg = <0x00010000 0x1000>;
72			reg-names = "ahci";
73			interrupts = <GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH>;
74			#address-cells = <1>;
75			#size-cells = <0>;
76			status = "disabled";
77
78			sata1_port0: sata-port@0 {
79				reg = <0>;
80				phys = <&sata1_phy0>;
81				phy-names = "sata-phy";
82			};
83		};
84
85		sata_phy1: sata_phy@12100 {
86			compatible = "brcm,iproc-sr-sata-phy";
87			reg = <0x00012100 0x1000>;
88			reg-names = "phy";
89			#address-cells = <1>;
90			#size-cells = <0>;
91			status = "disabled";
92
93			sata1_phy0: sata-phy@0 {
94				reg = <0>;
95				#phy-cells = <0>;
96			};
97		};
98
99		sata2: ahci@20000 {
100			compatible = "brcm,iproc-ahci", "generic-ahci";
101			reg = <0x00020000 0x1000>;
102			reg-names = "ahci";
103			interrupts = <GIC_SPI 325 IRQ_TYPE_LEVEL_HIGH>;
104			#address-cells = <1>;
105			#size-cells = <0>;
106			status = "disabled";
107
108			sata2_port0: sata-port@0 {
109				reg = <0>;
110				phys = <&sata2_phy0>;
111				phy-names = "sata-phy";
112			};
113		};
114
115		sata_phy2: sata_phy@22100 {
116			compatible = "brcm,iproc-sr-sata-phy";
117			reg = <0x00022100 0x1000>;
118			reg-names = "phy";
119			#address-cells = <1>;
120			#size-cells = <0>;
121			status = "disabled";
122
123			sata2_phy0: sata-phy@0 {
124				reg = <0>;
125				#phy-cells = <0>;
126			};
127		};
128
129		sata3: ahci@30000 {
130			compatible = "brcm,iproc-ahci", "generic-ahci";
131			reg = <0x00030000 0x1000>;
132			reg-names = "ahci";
133			interrupts = <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>;
134			#address-cells = <1>;
135			#size-cells = <0>;
136			status = "disabled";
137
138			sata3_port0: sata-port@0 {
139				reg = <0>;
140				phys = <&sata3_phy0>;
141				phy-names = "sata-phy";
142			};
143		};
144
145		sata_phy3: sata_phy@32100 {
146			compatible = "brcm,iproc-sr-sata-phy";
147			reg = <0x00032100 0x1000>;
148			reg-names = "phy";
149			#address-cells = <1>;
150			#size-cells = <0>;
151			status = "disabled";
152
153			sata3_phy0: sata-phy@0 {
154				reg = <0>;
155				#phy-cells = <0>;
156			};
157		};
158
159		sata4: ahci@100000 {
160			compatible = "brcm,iproc-ahci", "generic-ahci";
161			reg = <0x00100000 0x1000>;
162			reg-names = "ahci";
163			interrupts = <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>;
164			#address-cells = <1>;
165			#size-cells = <0>;
166			status = "disabled";
167
168			sata4_port0: sata-port@0 {
169				reg = <0>;
170				phys = <&sata4_phy0>;
171				phy-names = "sata-phy";
172			};
173		};
174
175		sata_phy4: sata_phy@102100 {
176			compatible = "brcm,iproc-sr-sata-phy";
177			reg = <0x00102100 0x1000>;
178			reg-names = "phy";
179			#address-cells = <1>;
180			#size-cells = <0>;
181			status = "disabled";
182
183			sata4_phy0: sata-phy@0 {
184				reg = <0>;
185				#phy-cells = <0>;
186			};
187		};
188
189		sata5: ahci@110000 {
190			compatible = "brcm,iproc-ahci", "generic-ahci";
191			reg = <0x00110000 0x1000>;
192			reg-names = "ahci";
193			interrupts = <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>;
194			#address-cells = <1>;
195			#size-cells = <0>;
196			status = "disabled";
197
198			sata5_port0: sata-port@0 {
199				reg = <0>;
200				phys = <&sata5_phy0>;
201				phy-names = "sata-phy";
202			};
203		};
204
205		sata_phy5: sata_phy@112100 {
206			compatible = "brcm,iproc-sr-sata-phy";
207			reg = <0x00112100 0x1000>;
208			reg-names = "phy";
209			#address-cells = <1>;
210			#size-cells = <0>;
211			status = "disabled";
212
213			sata5_phy0: sata-phy@0 {
214				reg = <0>;
215				#phy-cells = <0>;
216			};
217		};
218
219		sata6: ahci@120000 {
220			compatible = "brcm,iproc-ahci", "generic-ahci";
221			reg = <0x00120000 0x1000>;
222			reg-names = "ahci";
223			interrupts = <GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH>;
224			#address-cells = <1>;
225			#size-cells = <0>;
226			status = "disabled";
227
228			sata6_port0: sata-port@0 {
229				reg = <0>;
230				phys = <&sata6_phy0>;
231				phy-names = "sata-phy";
232			};
233		};
234
235		sata_phy6: sata_phy@122100 {
236			compatible = "brcm,iproc-sr-sata-phy";
237			reg = <0x00122100 0x1000>;
238			reg-names = "phy";
239			#address-cells = <1>;
240			#size-cells = <0>;
241			status = "disabled";
242
243			sata6_phy0: sata-phy@0 {
244				reg = <0>;
245				#phy-cells = <0>;
246			};
247		};
248
249		sata7: ahci@130000 {
250			compatible = "brcm,iproc-ahci", "generic-ahci";
251			reg = <0x00130000 0x1000>;
252			reg-names = "ahci";
253			interrupts = <GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>;
254			#address-cells = <1>;
255			#size-cells = <0>;
256			status = "disabled";
257
258			sata7_port0: sata-port@0 {
259				reg = <0>;
260				phys = <&sata7_phy0>;
261				phy-names = "sata-phy";
262			};
263		};
264
265		sata_phy7: sata_phy@132100 {
266			compatible = "brcm,iproc-sr-sata-phy";
267			reg = <0x00132100 0x1000>;
268			reg-names = "phy";
269			#address-cells = <1>;
270			#size-cells = <0>;
271			status = "disabled";
272
273			sata7_phy0: sata-phy@0 {
274				reg = <0>;
275				#phy-cells = <0>;
276			};
277		};
278	};
279