xref: /freebsd-src/sys/contrib/device-tree/src/arm/broadcom/bcm53573.dtsi (revision aa1a8ff2d6dbc51ef058f46f3db5a8bb77967145)
1f126890aSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
2f126890aSEmmanuel Vadot/*
3f126890aSEmmanuel Vadot * Copyright (C) 2016 Rafał Miłecki <rafal@milecki.pl>
4f126890aSEmmanuel Vadot */
5f126890aSEmmanuel Vadot
6f126890aSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
7f126890aSEmmanuel Vadot#include <dt-bindings/input/input.h>
8f126890aSEmmanuel Vadot#include <dt-bindings/interrupt-controller/irq.h>
9f126890aSEmmanuel Vadot#include <dt-bindings/interrupt-controller/arm-gic.h>
10f126890aSEmmanuel Vadot
11f126890aSEmmanuel Vadot/ {
12f126890aSEmmanuel Vadot	#address-cells = <1>;
13f126890aSEmmanuel Vadot	#size-cells = <1>;
14f126890aSEmmanuel Vadot	interrupt-parent = <&gic>;
15f126890aSEmmanuel Vadot
16f126890aSEmmanuel Vadot	aliases {
17f126890aSEmmanuel Vadot		serial0 = &uart0;
18f126890aSEmmanuel Vadot	};
19f126890aSEmmanuel Vadot
20f126890aSEmmanuel Vadot	chosen {
21f126890aSEmmanuel Vadot		stdout-path = "serial0:115200n8";
22f126890aSEmmanuel Vadot	};
23f126890aSEmmanuel Vadot
24f126890aSEmmanuel Vadot	cpus {
25f126890aSEmmanuel Vadot		#address-cells = <1>;
26f126890aSEmmanuel Vadot		#size-cells = <0>;
27f126890aSEmmanuel Vadot
28f126890aSEmmanuel Vadot		cpu@0 {
29f126890aSEmmanuel Vadot			device_type = "cpu";
30f126890aSEmmanuel Vadot			compatible = "arm,cortex-a7";
31f126890aSEmmanuel Vadot			reg = <0x0>;
32f126890aSEmmanuel Vadot		};
33f126890aSEmmanuel Vadot	};
34f126890aSEmmanuel Vadot
35f126890aSEmmanuel Vadot	mpcore@18310000 {
36f126890aSEmmanuel Vadot		compatible = "simple-bus";
37f126890aSEmmanuel Vadot		ranges = <0x00000000 0x18310000 0x00008000>;
38f126890aSEmmanuel Vadot		#address-cells = <1>;
39f126890aSEmmanuel Vadot		#size-cells = <1>;
40f126890aSEmmanuel Vadot
41f126890aSEmmanuel Vadot		gic: interrupt-controller@1000 {
42f126890aSEmmanuel Vadot			compatible = "arm,cortex-a7-gic";
43f126890aSEmmanuel Vadot			#interrupt-cells = <3>;
44f126890aSEmmanuel Vadot			#address-cells = <0>;
45f126890aSEmmanuel Vadot			interrupt-controller;
46f126890aSEmmanuel Vadot			reg = <0x1000 0x1000>,
47f126890aSEmmanuel Vadot			      <0x2000 0x0100>;
48f126890aSEmmanuel Vadot		};
49f126890aSEmmanuel Vadot	};
50f126890aSEmmanuel Vadot
51f126890aSEmmanuel Vadot	timer {
52f126890aSEmmanuel Vadot		compatible = "arm,armv7-timer";
53f126890aSEmmanuel Vadot		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
54f126890aSEmmanuel Vadot			     <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
55f126890aSEmmanuel Vadot			     <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
56f126890aSEmmanuel Vadot			     <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
57f126890aSEmmanuel Vadot	};
58f126890aSEmmanuel Vadot
59f126890aSEmmanuel Vadot	clocks {
60f126890aSEmmanuel Vadot		#address-cells = <1>;
61f126890aSEmmanuel Vadot		#size-cells = <1>;
62f126890aSEmmanuel Vadot		ranges;
63f126890aSEmmanuel Vadot
64f126890aSEmmanuel Vadot		alp: oscillator {
65f126890aSEmmanuel Vadot			#clock-cells = <0>;
66f126890aSEmmanuel Vadot			compatible = "fixed-clock";
67f126890aSEmmanuel Vadot			clock-frequency = <40000000>;
68f126890aSEmmanuel Vadot		};
69f126890aSEmmanuel Vadot	};
70f126890aSEmmanuel Vadot
71f126890aSEmmanuel Vadot	axi@18000000 {
72f126890aSEmmanuel Vadot		compatible = "brcm,bus-axi";
73f126890aSEmmanuel Vadot		reg = <0x18000000 0x1000>;
74f126890aSEmmanuel Vadot		ranges = <0x00000000 0x18000000 0x00100000>;
75f126890aSEmmanuel Vadot		#address-cells = <1>;
76f126890aSEmmanuel Vadot		#size-cells = <1>;
77f126890aSEmmanuel Vadot
78f126890aSEmmanuel Vadot		#interrupt-cells = <1>;
79f126890aSEmmanuel Vadot		interrupt-map-mask = <0x000fffff 0xffff>;
80f126890aSEmmanuel Vadot		interrupt-map =
81f126890aSEmmanuel Vadot			/* ChipCommon */
82f126890aSEmmanuel Vadot			<0x00000000 0 &gic GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
83f126890aSEmmanuel Vadot
84f126890aSEmmanuel Vadot			/* IEEE 802.11 0 */
85f126890aSEmmanuel Vadot			<0x00001000 0 &gic GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
86f126890aSEmmanuel Vadot
87f126890aSEmmanuel Vadot			/* PCIe Controller 0 */
88f126890aSEmmanuel Vadot			<0x00002000 0 &gic GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
89f126890aSEmmanuel Vadot			<0x00002000 1 &gic GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
90f126890aSEmmanuel Vadot			<0x00002000 2 &gic GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
91f126890aSEmmanuel Vadot			<0x00002000 3 &gic GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
92f126890aSEmmanuel Vadot			<0x00002000 4 &gic GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
93f126890aSEmmanuel Vadot			<0x00002000 5 &gic GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
94f126890aSEmmanuel Vadot
95f126890aSEmmanuel Vadot			/* USB 2.0 Controller */
96f126890aSEmmanuel Vadot			<0x00004000 0 &gic GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
97f126890aSEmmanuel Vadot
98f126890aSEmmanuel Vadot			/* Ethernet Controller 0 */
99f126890aSEmmanuel Vadot			<0x00005000 0 &gic GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>,
100f126890aSEmmanuel Vadot
101f126890aSEmmanuel Vadot			/* IEEE 802.11 1 */
102f126890aSEmmanuel Vadot			<0x0000a000 0 &gic GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
103f126890aSEmmanuel Vadot
104f126890aSEmmanuel Vadot			/* Ethernet Controller 1 */
105f126890aSEmmanuel Vadot			<0x0000b000 0 &gic GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
106f126890aSEmmanuel Vadot
107f126890aSEmmanuel Vadot		chipcommon: chipcommon@0 {
108f126890aSEmmanuel Vadot			compatible = "simple-bus";
109f126890aSEmmanuel Vadot			reg = <0x00000000 0x1000>;
110f126890aSEmmanuel Vadot			ranges;
111f126890aSEmmanuel Vadot
112f126890aSEmmanuel Vadot			#address-cells = <1>;
113f126890aSEmmanuel Vadot			#size-cells = <1>;
114f126890aSEmmanuel Vadot
115f126890aSEmmanuel Vadot			gpio-controller;
116f126890aSEmmanuel Vadot			#gpio-cells = <2>;
117f126890aSEmmanuel Vadot
118f126890aSEmmanuel Vadot			uart0: serial@300 {
119f126890aSEmmanuel Vadot				compatible = "ns16550a";
120f126890aSEmmanuel Vadot				reg = <0x0300 0x100>;
121f126890aSEmmanuel Vadot				interrupt-parent = <&gic>;
122f126890aSEmmanuel Vadot				interrupts = <GIC_PPI 16 IRQ_TYPE_LEVEL_HIGH>;
123f126890aSEmmanuel Vadot				clocks = <&alp>;
124f126890aSEmmanuel Vadot				status = "okay";
125f126890aSEmmanuel Vadot			};
126f126890aSEmmanuel Vadot		};
127f126890aSEmmanuel Vadot
128f126890aSEmmanuel Vadot		pcie0: pcie@2000 {
129f126890aSEmmanuel Vadot			reg = <0x00002000 0x1000>;
130*aa1a8ff2SEmmanuel Vadot
131*aa1a8ff2SEmmanuel Vadot			#address-cells = <3>;
132*aa1a8ff2SEmmanuel Vadot			#size-cells = <2>;
133f126890aSEmmanuel Vadot		};
134f126890aSEmmanuel Vadot
135f126890aSEmmanuel Vadot		usb2: usb2@4000 {
136f126890aSEmmanuel Vadot			reg = <0x4000 0x1000>;
137f126890aSEmmanuel Vadot			ranges;
138f126890aSEmmanuel Vadot			#address-cells = <1>;
139f126890aSEmmanuel Vadot			#size-cells = <1>;
140f126890aSEmmanuel Vadot
141f126890aSEmmanuel Vadot			ehci: usb@4000 {
142f126890aSEmmanuel Vadot				compatible = "generic-ehci";
143f126890aSEmmanuel Vadot				reg = <0x4000 0x1000>;
144f126890aSEmmanuel Vadot				interrupt-parent = <&gic>;
145f126890aSEmmanuel Vadot				interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
146f126890aSEmmanuel Vadot
147f126890aSEmmanuel Vadot				#address-cells = <1>;
148f126890aSEmmanuel Vadot				#size-cells = <0>;
149f126890aSEmmanuel Vadot
150f126890aSEmmanuel Vadot				ehci_port1: port@1 {
151f126890aSEmmanuel Vadot					reg = <1>;
152f126890aSEmmanuel Vadot					#trigger-source-cells = <0>;
153f126890aSEmmanuel Vadot				};
154f126890aSEmmanuel Vadot
155f126890aSEmmanuel Vadot				ehci_port2: port@2 {
156f126890aSEmmanuel Vadot					reg = <2>;
157f126890aSEmmanuel Vadot					#trigger-source-cells = <0>;
158f126890aSEmmanuel Vadot				};
159f126890aSEmmanuel Vadot			};
160f126890aSEmmanuel Vadot
161f126890aSEmmanuel Vadot			ohci: usb@d000 {
162f126890aSEmmanuel Vadot				compatible = "generic-ohci";
163f126890aSEmmanuel Vadot				reg = <0xd000 0x1000>;
164f126890aSEmmanuel Vadot				interrupt-parent = <&gic>;
165f126890aSEmmanuel Vadot				interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
166f126890aSEmmanuel Vadot
167f126890aSEmmanuel Vadot				#address-cells = <1>;
168f126890aSEmmanuel Vadot				#size-cells = <0>;
169f126890aSEmmanuel Vadot
170f126890aSEmmanuel Vadot				ohci_port1: port@1 {
171f126890aSEmmanuel Vadot					reg = <1>;
172f126890aSEmmanuel Vadot					#trigger-source-cells = <0>;
173f126890aSEmmanuel Vadot				};
174f126890aSEmmanuel Vadot
175f126890aSEmmanuel Vadot				ohci_port2: port@2 {
176f126890aSEmmanuel Vadot					reg = <2>;
177f126890aSEmmanuel Vadot					#trigger-source-cells = <0>;
178f126890aSEmmanuel Vadot				};
179f126890aSEmmanuel Vadot			};
180f126890aSEmmanuel Vadot		};
181f126890aSEmmanuel Vadot
182f126890aSEmmanuel Vadot		gmac0: ethernet@5000 {
183f126890aSEmmanuel Vadot			reg = <0x5000 0x1000>;
184*aa1a8ff2SEmmanuel Vadot			phy-mode = "internal";
185*aa1a8ff2SEmmanuel Vadot
186*aa1a8ff2SEmmanuel Vadot			fixed-link {
187*aa1a8ff2SEmmanuel Vadot				speed = <1000>;
188*aa1a8ff2SEmmanuel Vadot				full-duplex;
189*aa1a8ff2SEmmanuel Vadot			};
190f126890aSEmmanuel Vadot
191f126890aSEmmanuel Vadot			mdio {
192f126890aSEmmanuel Vadot				#address-cells = <1>;
193f126890aSEmmanuel Vadot				#size-cells = <0>;
194f126890aSEmmanuel Vadot
195f126890aSEmmanuel Vadot				switch: switch@1e {
196f126890aSEmmanuel Vadot					compatible = "brcm,bcm53125";
197f126890aSEmmanuel Vadot					reg = <0x1e>;
198f126890aSEmmanuel Vadot
199f126890aSEmmanuel Vadot					status = "disabled";
200f126890aSEmmanuel Vadot
201f126890aSEmmanuel Vadot					ports {
202f126890aSEmmanuel Vadot						#address-cells = <1>;
203f126890aSEmmanuel Vadot						#size-cells = <0>;
204*aa1a8ff2SEmmanuel Vadot
205*aa1a8ff2SEmmanuel Vadot						port@0 {
206*aa1a8ff2SEmmanuel Vadot							reg = <0>;
207*aa1a8ff2SEmmanuel Vadot						};
208*aa1a8ff2SEmmanuel Vadot
209*aa1a8ff2SEmmanuel Vadot						port@1 {
210*aa1a8ff2SEmmanuel Vadot							reg = <1>;
211*aa1a8ff2SEmmanuel Vadot						};
212*aa1a8ff2SEmmanuel Vadot
213*aa1a8ff2SEmmanuel Vadot						port@2 {
214*aa1a8ff2SEmmanuel Vadot							reg = <2>;
215*aa1a8ff2SEmmanuel Vadot						};
216*aa1a8ff2SEmmanuel Vadot
217*aa1a8ff2SEmmanuel Vadot						port@3 {
218*aa1a8ff2SEmmanuel Vadot							reg = <3>;
219*aa1a8ff2SEmmanuel Vadot						};
220*aa1a8ff2SEmmanuel Vadot
221*aa1a8ff2SEmmanuel Vadot						port@4 {
222*aa1a8ff2SEmmanuel Vadot							reg = <4>;
223*aa1a8ff2SEmmanuel Vadot						};
224*aa1a8ff2SEmmanuel Vadot
225*aa1a8ff2SEmmanuel Vadot						port@5 {
226*aa1a8ff2SEmmanuel Vadot							reg = <5>;
227*aa1a8ff2SEmmanuel Vadot							ethernet = <&gmac1>;
228*aa1a8ff2SEmmanuel Vadot
229*aa1a8ff2SEmmanuel Vadot							fixed-link {
230*aa1a8ff2SEmmanuel Vadot								speed = <1000>;
231*aa1a8ff2SEmmanuel Vadot								full-duplex;
232*aa1a8ff2SEmmanuel Vadot							};
233*aa1a8ff2SEmmanuel Vadot						};
234*aa1a8ff2SEmmanuel Vadot
235*aa1a8ff2SEmmanuel Vadot						port@8 {
236*aa1a8ff2SEmmanuel Vadot							reg = <8>;
237*aa1a8ff2SEmmanuel Vadot							ethernet = <&gmac0>;
238*aa1a8ff2SEmmanuel Vadot						};
239f126890aSEmmanuel Vadot					};
240f126890aSEmmanuel Vadot				};
241f126890aSEmmanuel Vadot			};
242f126890aSEmmanuel Vadot		};
243f126890aSEmmanuel Vadot
244f126890aSEmmanuel Vadot		gmac1: ethernet@b000 {
245f126890aSEmmanuel Vadot			reg = <0xb000 0x1000>;
246*aa1a8ff2SEmmanuel Vadot			phy-mode = "internal";
247*aa1a8ff2SEmmanuel Vadot
248*aa1a8ff2SEmmanuel Vadot			fixed-link {
249*aa1a8ff2SEmmanuel Vadot				speed = <1000>;
250*aa1a8ff2SEmmanuel Vadot				full-duplex;
251*aa1a8ff2SEmmanuel Vadot			};
252f126890aSEmmanuel Vadot		};
253f126890aSEmmanuel Vadot
254f126890aSEmmanuel Vadot		pmu@12000 {
255f126890aSEmmanuel Vadot			compatible = "simple-mfd", "syscon";
256f126890aSEmmanuel Vadot			reg = <0x00012000 0x00001000>;
257f126890aSEmmanuel Vadot
258f126890aSEmmanuel Vadot			ilp: ilp {
259f126890aSEmmanuel Vadot				compatible = "brcm,bcm53573-ilp";
260f126890aSEmmanuel Vadot				clocks = <&alp>;
261f126890aSEmmanuel Vadot				#clock-cells = <0>;
262f126890aSEmmanuel Vadot				clock-output-names = "ilp";
263f126890aSEmmanuel Vadot			};
264f126890aSEmmanuel Vadot		};
265f126890aSEmmanuel Vadot	};
266f126890aSEmmanuel Vadot};
267