xref: /openbmc/linux/arch/mips/boot/dts/brcm/bcm6328.dtsi (revision 7ea42936)
1b2441318SGreg Kroah-Hartman// SPDX-License-Identifier: GPL-2.0
21e4388a1SÁlvaro Fernández Rojas
31e4388a1SÁlvaro Fernández Rojas#include "dt-bindings/clock/bcm6328-clock.h"
41e4388a1SÁlvaro Fernández Rojas#include "dt-bindings/reset/bcm6328-reset.h"
51e4388a1SÁlvaro Fernández Rojas#include "dt-bindings/soc/bcm6328-pm.h"
61e4388a1SÁlvaro Fernández Rojas
78945e37eSKevin Cernekee/ {
88945e37eSKevin Cernekee	#address-cells = <1>;
98945e37eSKevin Cernekee	#size-cells = <1>;
108945e37eSKevin Cernekee	compatible = "brcm,bcm6328";
118945e37eSKevin Cernekee
128945e37eSKevin Cernekee	cpus {
138945e37eSKevin Cernekee		#address-cells = <1>;
148945e37eSKevin Cernekee		#size-cells = <0>;
158945e37eSKevin Cernekee
168945e37eSKevin Cernekee		mips-hpt-frequency = <160000000>;
178945e37eSKevin Cernekee
188945e37eSKevin Cernekee		cpu@0 {
198945e37eSKevin Cernekee			compatible = "brcm,bmips4350";
208945e37eSKevin Cernekee			device_type = "cpu";
218945e37eSKevin Cernekee			reg = <0>;
228945e37eSKevin Cernekee		};
238945e37eSKevin Cernekee
248945e37eSKevin Cernekee		cpu@1 {
258945e37eSKevin Cernekee			compatible = "brcm,bmips4350";
268945e37eSKevin Cernekee			device_type = "cpu";
278945e37eSKevin Cernekee			reg = <1>;
288945e37eSKevin Cernekee		};
298945e37eSKevin Cernekee	};
308945e37eSKevin Cernekee
318945e37eSKevin Cernekee	clocks {
32*7ea42936SÁlvaro Fernández Rojas		periph_osc: periph-osc {
338945e37eSKevin Cernekee			compatible = "fixed-clock";
348945e37eSKevin Cernekee			#clock-cells = <0>;
358945e37eSKevin Cernekee			clock-frequency = <50000000>;
36*7ea42936SÁlvaro Fernández Rojas			clock-output-names = "periph";
37*7ea42936SÁlvaro Fernández Rojas		};
38*7ea42936SÁlvaro Fernández Rojas
39*7ea42936SÁlvaro Fernández Rojas		hsspi_osc: hsspi-osc {
40*7ea42936SÁlvaro Fernández Rojas			compatible = "fixed-clock";
41*7ea42936SÁlvaro Fernández Rojas			#clock-cells = <0>;
42*7ea42936SÁlvaro Fernández Rojas			clock-frequency = <133333333>;
43*7ea42936SÁlvaro Fernández Rojas			clock-output-names = "hsspi_osc";
448945e37eSKevin Cernekee		};
458945e37eSKevin Cernekee	};
468945e37eSKevin Cernekee
478945e37eSKevin Cernekee	aliases {
48*7ea42936SÁlvaro Fernández Rojas		nflash = &nflash;
49e3b992d0SÁlvaro Fernández Rojas		serial0 = &uart0;
50e3b992d0SÁlvaro Fernández Rojas		serial1 = &uart1;
51*7ea42936SÁlvaro Fernández Rojas		spi1 = &hsspi;
528945e37eSKevin Cernekee	};
538945e37eSKevin Cernekee
54e3b992d0SÁlvaro Fernández Rojas	cpu_intc: interrupt-controller {
558945e37eSKevin Cernekee		#address-cells = <0>;
568945e37eSKevin Cernekee		compatible = "mti,cpu-interrupt-controller";
578945e37eSKevin Cernekee
588945e37eSKevin Cernekee		interrupt-controller;
598945e37eSKevin Cernekee		#interrupt-cells = <1>;
608945e37eSKevin Cernekee	};
618945e37eSKevin Cernekee
628945e37eSKevin Cernekee	ubus {
638945e37eSKevin Cernekee		#address-cells = <1>;
648945e37eSKevin Cernekee		#size-cells = <1>;
658945e37eSKevin Cernekee
668945e37eSKevin Cernekee		compatible = "simple-bus";
678945e37eSKevin Cernekee		ranges;
688945e37eSKevin Cernekee
69*7ea42936SÁlvaro Fernández Rojas		periph_clk: clock-controller@10000004 {
70a23c4134SJonas Gorski			compatible = "brcm,bcm6328-clocks";
71a23c4134SJonas Gorski			reg = <0x10000004 0x4>;
72a23c4134SJonas Gorski			#clock-cells = <1>;
73a23c4134SJonas Gorski		};
74a23c4134SJonas Gorski
7583f865d7SÁlvaro Fernández Rojas		periph_rst: reset-controller@10000010 {
7683f865d7SÁlvaro Fernández Rojas			compatible = "brcm,bcm6345-reset";
7783f865d7SÁlvaro Fernández Rojas			reg = <0x10000010 0x4>;
7883f865d7SÁlvaro Fernández Rojas			#reset-cells = <1>;
7983f865d7SÁlvaro Fernández Rojas		};
8083f865d7SÁlvaro Fernández Rojas
81e3b992d0SÁlvaro Fernández Rojas		periph_intc: interrupt-controller@10000020 {
82e3b992d0SÁlvaro Fernández Rojas			compatible = "brcm,bcm6345-l1-intc";
83e3b992d0SÁlvaro Fernández Rojas			reg = <0x10000020 0x10>,
84e3b992d0SÁlvaro Fernández Rojas			      <0x10000030 0x10>;
858945e37eSKevin Cernekee
868945e37eSKevin Cernekee			interrupt-controller;
878945e37eSKevin Cernekee			#interrupt-cells = <1>;
888945e37eSKevin Cernekee
898945e37eSKevin Cernekee			interrupt-parent = <&cpu_intc>;
90e3b992d0SÁlvaro Fernández Rojas			interrupts = <2>, <3>;
918945e37eSKevin Cernekee		};
928945e37eSKevin Cernekee
93*7ea42936SÁlvaro Fernández Rojas		wdt: watchdog@1000005c {
94*7ea42936SÁlvaro Fernández Rojas			compatible = "brcm,bcm7038-wdt";
95*7ea42936SÁlvaro Fernández Rojas			reg = <0x1000005c 0xc>;
96*7ea42936SÁlvaro Fernández Rojas
97*7ea42936SÁlvaro Fernández Rojas			clocks = <&periph_osc>;
98*7ea42936SÁlvaro Fernández Rojas			clock-names = "refclk";
99*7ea42936SÁlvaro Fernández Rojas
100*7ea42936SÁlvaro Fernández Rojas			timeout-sec = <30>;
101*7ea42936SÁlvaro Fernández Rojas		};
102*7ea42936SÁlvaro Fernández Rojas
103*7ea42936SÁlvaro Fernández Rojas		soft_reset: syscon@10000068 {
104*7ea42936SÁlvaro Fernández Rojas			compatible = "syscon";
105*7ea42936SÁlvaro Fernández Rojas			reg = <0x10000068 0x4>;
106*7ea42936SÁlvaro Fernández Rojas			native-endian;
107*7ea42936SÁlvaro Fernández Rojas
108*7ea42936SÁlvaro Fernández Rojas			reboot {
109*7ea42936SÁlvaro Fernández Rojas				compatible = "syscon-reboot";
110*7ea42936SÁlvaro Fernández Rojas				offset = <0x0>;
111*7ea42936SÁlvaro Fernández Rojas				mask = <0x1>;
112*7ea42936SÁlvaro Fernández Rojas			};
113*7ea42936SÁlvaro Fernández Rojas		};
114*7ea42936SÁlvaro Fernández Rojas
1158945e37eSKevin Cernekee		uart0: serial@10000100 {
1168945e37eSKevin Cernekee			compatible = "brcm,bcm6345-uart";
1178945e37eSKevin Cernekee			reg = <0x10000100 0x18>;
118*7ea42936SÁlvaro Fernández Rojas
1198945e37eSKevin Cernekee			interrupt-parent = <&periph_intc>;
1208945e37eSKevin Cernekee			interrupts = <28>;
121*7ea42936SÁlvaro Fernández Rojas
122*7ea42936SÁlvaro Fernández Rojas			clocks = <&periph_osc>;
123bed8d2a2SJonas Gorski			clock-names = "refclk";
124*7ea42936SÁlvaro Fernández Rojas
1258945e37eSKevin Cernekee			status = "disabled";
1268945e37eSKevin Cernekee		};
1278945e37eSKevin Cernekee
128e3b992d0SÁlvaro Fernández Rojas		uart1: serial@10000120 {
129e3b992d0SÁlvaro Fernández Rojas			compatible = "brcm,bcm6345-uart";
130e3b992d0SÁlvaro Fernández Rojas			reg = <0x10000120 0x18>;
131*7ea42936SÁlvaro Fernández Rojas
132e3b992d0SÁlvaro Fernández Rojas			interrupt-parent = <&periph_intc>;
133e3b992d0SÁlvaro Fernández Rojas			interrupts = <39>;
134*7ea42936SÁlvaro Fernández Rojas
135*7ea42936SÁlvaro Fernández Rojas			clocks = <&periph_osc>;
136bed8d2a2SJonas Gorski			clock-names = "refclk";
137*7ea42936SÁlvaro Fernández Rojas
138e3b992d0SÁlvaro Fernández Rojas			status = "disabled";
139e3b992d0SÁlvaro Fernández Rojas		};
140e3b992d0SÁlvaro Fernández Rojas
141*7ea42936SÁlvaro Fernández Rojas		nflash: nand@10000200 {
142*7ea42936SÁlvaro Fernández Rojas			#address-cells = <1>;
143*7ea42936SÁlvaro Fernández Rojas			#size-cells = <0>;
144*7ea42936SÁlvaro Fernández Rojas			compatible = "brcm,nand-bcm6368",
145*7ea42936SÁlvaro Fernández Rojas				     "brcm,brcmnand-v2.2",
146*7ea42936SÁlvaro Fernández Rojas				     "brcm,brcmnand";
147*7ea42936SÁlvaro Fernández Rojas			reg = <0x10000200 0x180>,
148*7ea42936SÁlvaro Fernández Rojas			      <0x10000400 0x200>,
149*7ea42936SÁlvaro Fernández Rojas			      <0x10000070 0x10>;
150*7ea42936SÁlvaro Fernández Rojas			reg-names = "nand",
151*7ea42936SÁlvaro Fernández Rojas				    "nand-cache",
152*7ea42936SÁlvaro Fernández Rojas				    "nand-int-base";
1538945e37eSKevin Cernekee
154*7ea42936SÁlvaro Fernández Rojas			interrupt-parent = <&periph_intc>;
155*7ea42936SÁlvaro Fernández Rojas			interrupts = <0>;
156*7ea42936SÁlvaro Fernández Rojas
157*7ea42936SÁlvaro Fernández Rojas			status = "disabled";
1588945e37eSKevin Cernekee		};
159db66dbbbSÁlvaro Fernández Rojas
160db66dbbbSÁlvaro Fernández Rojas		leds0: led-controller@10000800 {
161db66dbbbSÁlvaro Fernández Rojas			#address-cells = <1>;
162db66dbbbSÁlvaro Fernández Rojas			#size-cells = <0>;
163db66dbbbSÁlvaro Fernández Rojas			compatible = "brcm,bcm6328-leds";
164db66dbbbSÁlvaro Fernández Rojas			reg = <0x10000800 0x24>;
165*7ea42936SÁlvaro Fernández Rojas
166*7ea42936SÁlvaro Fernández Rojas			status = "disabled";
167*7ea42936SÁlvaro Fernández Rojas		};
168*7ea42936SÁlvaro Fernández Rojas
169*7ea42936SÁlvaro Fernández Rojas		hsspi: spi@10001000 {
170*7ea42936SÁlvaro Fernández Rojas			#address-cells = <1>;
171*7ea42936SÁlvaro Fernández Rojas			#size-cells = <0>;
172*7ea42936SÁlvaro Fernández Rojas			compatible = "brcm,bcm6328-hsspi";
173*7ea42936SÁlvaro Fernández Rojas			reg = <0x10001000 0x600>;
174*7ea42936SÁlvaro Fernández Rojas
175*7ea42936SÁlvaro Fernández Rojas			interrupt-parent = <&periph_intc>;
176*7ea42936SÁlvaro Fernández Rojas			interrupts = <29>;
177*7ea42936SÁlvaro Fernández Rojas
178*7ea42936SÁlvaro Fernández Rojas			clocks = <&periph_clk BCM6328_CLK_HSSPI>,
179*7ea42936SÁlvaro Fernández Rojas				 <&hsspi_osc>;
180*7ea42936SÁlvaro Fernández Rojas			clock-names = "hsspi",
181*7ea42936SÁlvaro Fernández Rojas				      "pll";
182*7ea42936SÁlvaro Fernández Rojas
183*7ea42936SÁlvaro Fernández Rojas			resets = <&periph_rst BCM6328_RST_SPI>;
184*7ea42936SÁlvaro Fernández Rojas			reset-names = "hsspi";
185*7ea42936SÁlvaro Fernández Rojas
186db66dbbbSÁlvaro Fernández Rojas			status = "disabled";
187db66dbbbSÁlvaro Fernández Rojas		};
188e3b992d0SÁlvaro Fernández Rojas
18960515712SÁlvaro Fernández Rojas		periph_pwr: power-controller@10001848 {
19060515712SÁlvaro Fernández Rojas			compatible = "brcm,bcm6328-power-controller";
19160515712SÁlvaro Fernández Rojas			reg = <0x10001848 0x4>;
19260515712SÁlvaro Fernández Rojas			#power-domain-cells = <1>;
19360515712SÁlvaro Fernández Rojas		};
19460515712SÁlvaro Fernández Rojas
195e3b992d0SÁlvaro Fernández Rojas		ehci: usb@10002500 {
196e3b992d0SÁlvaro Fernández Rojas			compatible = "brcm,bcm6328-ehci", "generic-ehci";
197e3b992d0SÁlvaro Fernández Rojas			reg = <0x10002500 0x100>;
198e3b992d0SÁlvaro Fernández Rojas			big-endian;
199*7ea42936SÁlvaro Fernández Rojas
200e3b992d0SÁlvaro Fernández Rojas			interrupt-parent = <&periph_intc>;
201e3b992d0SÁlvaro Fernández Rojas			interrupts = <42>;
202*7ea42936SÁlvaro Fernández Rojas
203*7ea42936SÁlvaro Fernández Rojas			phys = <&usbh 0>;
204*7ea42936SÁlvaro Fernández Rojas			phy-names = "usb";
205*7ea42936SÁlvaro Fernández Rojas
206e3b992d0SÁlvaro Fernández Rojas			status = "disabled";
207e3b992d0SÁlvaro Fernández Rojas		};
208e3b992d0SÁlvaro Fernández Rojas
209e3b992d0SÁlvaro Fernández Rojas		ohci: usb@10002600 {
210e3b992d0SÁlvaro Fernández Rojas			compatible = "brcm,bcm6328-ohci", "generic-ohci";
211e3b992d0SÁlvaro Fernández Rojas			reg = <0x10002600 0x100>;
212e3b992d0SÁlvaro Fernández Rojas			big-endian;
213e3b992d0SÁlvaro Fernández Rojas			no-big-frame-no;
214*7ea42936SÁlvaro Fernández Rojas
215e3b992d0SÁlvaro Fernández Rojas			interrupt-parent = <&periph_intc>;
216e3b992d0SÁlvaro Fernández Rojas			interrupts = <41>;
217*7ea42936SÁlvaro Fernández Rojas
218*7ea42936SÁlvaro Fernández Rojas			phys = <&usbh 0>;
219*7ea42936SÁlvaro Fernández Rojas			phy-names = "usb";
220*7ea42936SÁlvaro Fernández Rojas
221*7ea42936SÁlvaro Fernández Rojas			status = "disabled";
222*7ea42936SÁlvaro Fernández Rojas		};
223*7ea42936SÁlvaro Fernández Rojas
224*7ea42936SÁlvaro Fernández Rojas		usbh: usb-phy@10002700 {
225*7ea42936SÁlvaro Fernández Rojas			compatible = "brcm,bcm6328-usbh-phy";
226*7ea42936SÁlvaro Fernández Rojas			reg = <0x10002700 0x38>;
227*7ea42936SÁlvaro Fernández Rojas			#phy-cells = <1>;
228*7ea42936SÁlvaro Fernández Rojas
229*7ea42936SÁlvaro Fernández Rojas			clocks = <&periph_clk BCM6328_CLK_USBH>;
230*7ea42936SÁlvaro Fernández Rojas			clock-names = "usbh";
231*7ea42936SÁlvaro Fernández Rojas
232*7ea42936SÁlvaro Fernández Rojas			power-domains = <&periph_pwr BCM6328_POWER_DOMAIN_USBH>;
233*7ea42936SÁlvaro Fernández Rojas
234*7ea42936SÁlvaro Fernández Rojas			resets = <&periph_rst BCM6328_RST_USBH>;
235*7ea42936SÁlvaro Fernández Rojas			reset-names = "usbh";
236*7ea42936SÁlvaro Fernández Rojas
237e3b992d0SÁlvaro Fernández Rojas			status = "disabled";
238e3b992d0SÁlvaro Fernández Rojas		};
2398945e37eSKevin Cernekee	};
2408945e37eSKevin Cernekee};
241