xref: /linux/arch/mips/boot/dts/brcm/bcm7358.dtsi (revision ad8378383e2c705871125f5c9d36936d80068174)
18945e37eSKevin Cernekee/ {
28945e37eSKevin Cernekee	#address-cells = <1>;
38945e37eSKevin Cernekee	#size-cells = <1>;
48945e37eSKevin Cernekee	compatible = "brcm,bcm7358";
58945e37eSKevin Cernekee
68945e37eSKevin Cernekee	cpus {
78945e37eSKevin Cernekee		#address-cells = <1>;
88945e37eSKevin Cernekee		#size-cells = <0>;
98945e37eSKevin Cernekee
108945e37eSKevin Cernekee		mips-hpt-frequency = <375000000>;
118945e37eSKevin Cernekee
128945e37eSKevin Cernekee		cpu@0 {
138945e37eSKevin Cernekee			compatible = "brcm,bmips3300";
148945e37eSKevin Cernekee			device_type = "cpu";
158945e37eSKevin Cernekee			reg = <0>;
168945e37eSKevin Cernekee		};
178945e37eSKevin Cernekee	};
188945e37eSKevin Cernekee
198945e37eSKevin Cernekee	aliases {
208945e37eSKevin Cernekee		uart0 = &uart0;
218bac078cSJaedon Shin		uart1 = &uart1;
228bac078cSJaedon Shin		uart2 = &uart2;
238945e37eSKevin Cernekee	};
248945e37eSKevin Cernekee
258945e37eSKevin Cernekee	cpu_intc: cpu_intc {
268945e37eSKevin Cernekee		#address-cells = <0>;
278945e37eSKevin Cernekee		compatible = "mti,cpu-interrupt-controller";
288945e37eSKevin Cernekee
298945e37eSKevin Cernekee		interrupt-controller;
308945e37eSKevin Cernekee		#interrupt-cells = <1>;
318945e37eSKevin Cernekee	};
328945e37eSKevin Cernekee
338945e37eSKevin Cernekee	clocks {
348945e37eSKevin Cernekee		uart_clk: uart_clk {
358945e37eSKevin Cernekee			compatible = "fixed-clock";
368945e37eSKevin Cernekee			#clock-cells = <0>;
378945e37eSKevin Cernekee			clock-frequency = <81000000>;
388945e37eSKevin Cernekee		};
398945e37eSKevin Cernekee	};
408945e37eSKevin Cernekee
418945e37eSKevin Cernekee	rdb {
428945e37eSKevin Cernekee		#address-cells = <1>;
438945e37eSKevin Cernekee		#size-cells = <1>;
448945e37eSKevin Cernekee
458945e37eSKevin Cernekee		compatible = "simple-bus";
468945e37eSKevin Cernekee		ranges = <0 0x10000000 0x01000000>;
478945e37eSKevin Cernekee
488945e37eSKevin Cernekee		periph_intc: periph_intc@411400 {
498945e37eSKevin Cernekee			compatible = "brcm,bcm7038-l1-intc";
508945e37eSKevin Cernekee			reg = <0x411400 0x30>;
518945e37eSKevin Cernekee
528945e37eSKevin Cernekee			interrupt-controller;
538945e37eSKevin Cernekee			#interrupt-cells = <1>;
548945e37eSKevin Cernekee
558945e37eSKevin Cernekee			interrupt-parent = <&cpu_intc>;
568945e37eSKevin Cernekee			interrupts = <2>;
578945e37eSKevin Cernekee		};
588945e37eSKevin Cernekee
598945e37eSKevin Cernekee		sun_l2_intc: sun_l2_intc@403000 {
608945e37eSKevin Cernekee			compatible = "brcm,l2-intc";
618945e37eSKevin Cernekee			reg = <0x403000 0x30>;
628945e37eSKevin Cernekee			interrupt-controller;
638945e37eSKevin Cernekee			#interrupt-cells = <1>;
648945e37eSKevin Cernekee			interrupt-parent = <&periph_intc>;
658945e37eSKevin Cernekee			interrupts = <48>;
668945e37eSKevin Cernekee		};
678945e37eSKevin Cernekee
688945e37eSKevin Cernekee		gisb-arb@400000 {
698945e37eSKevin Cernekee			compatible = "brcm,bcm7400-gisb-arb";
708945e37eSKevin Cernekee			reg = <0x400000 0xdc>;
718945e37eSKevin Cernekee			native-endian;
728945e37eSKevin Cernekee			interrupt-parent = <&sun_l2_intc>;
738945e37eSKevin Cernekee			interrupts = <0>, <2>;
748945e37eSKevin Cernekee			brcm,gisb-arb-master-mask = <0x2f3>;
758945e37eSKevin Cernekee			brcm,gisb-arb-master-names = "ssp_0", "cpu_0", "bsp_0",
768945e37eSKevin Cernekee						     "rdc_0", "raaga_0",
778945e37eSKevin Cernekee						     "avd_0", "jtag_0";
788945e37eSKevin Cernekee		};
798945e37eSKevin Cernekee
808945e37eSKevin Cernekee		upg_irq0_intc: upg_irq0_intc@406600 {
818945e37eSKevin Cernekee			compatible = "brcm,bcm7120-l2-intc";
828945e37eSKevin Cernekee			reg = <0x406600 0x8>;
838945e37eSKevin Cernekee
84*ad837838SJaedon Shin			brcm,int-map-mask = <0x44>, <0x7000000>;
858945e37eSKevin Cernekee			brcm,int-fwd-mask = <0x70000>;
868945e37eSKevin Cernekee
878945e37eSKevin Cernekee			interrupt-controller;
888945e37eSKevin Cernekee			#interrupt-cells = <1>;
898945e37eSKevin Cernekee
908945e37eSKevin Cernekee			interrupt-parent = <&periph_intc>;
91*ad837838SJaedon Shin			interrupts = <56>, <54>;
92*ad837838SJaedon Shin			interrupt-names = "upg_main", "upg_bsc";
93*ad837838SJaedon Shin		};
94*ad837838SJaedon Shin
95*ad837838SJaedon Shin		upg_aon_irq0_intc: upg_aon_irq0_intc@408b80 {
96*ad837838SJaedon Shin			compatible = "brcm,bcm7120-l2-intc";
97*ad837838SJaedon Shin			reg = <0x408b80 0x8>;
98*ad837838SJaedon Shin
99*ad837838SJaedon Shin			brcm,int-map-mask = <0x40>, <0x8000000>, <0x100000>;
100*ad837838SJaedon Shin			brcm,int-fwd-mask = <0>;
101*ad837838SJaedon Shin			brcm,irq-can-wake;
102*ad837838SJaedon Shin
103*ad837838SJaedon Shin			interrupt-controller;
104*ad837838SJaedon Shin			#interrupt-cells = <1>;
105*ad837838SJaedon Shin
106*ad837838SJaedon Shin			interrupt-parent = <&periph_intc>;
107*ad837838SJaedon Shin			interrupts = <57>, <55>, <59>;
108*ad837838SJaedon Shin			interrupt-names = "upg_main_aon", "upg_bsc_aon",
109*ad837838SJaedon Shin					  "upg_spi";
1108945e37eSKevin Cernekee		};
1118945e37eSKevin Cernekee
1128945e37eSKevin Cernekee		sun_top_ctrl: syscon@404000 {
1138945e37eSKevin Cernekee			compatible = "brcm,bcm7358-sun-top-ctrl", "syscon";
1148945e37eSKevin Cernekee			reg = <0x404000 0x51c>;
1158945e37eSKevin Cernekee			little-endian;
1168945e37eSKevin Cernekee		};
1178945e37eSKevin Cernekee
1188945e37eSKevin Cernekee		reboot {
1198945e37eSKevin Cernekee			compatible = "brcm,brcmstb-reboot";
1208945e37eSKevin Cernekee			syscon = <&sun_top_ctrl 0x304 0x308>;
1218945e37eSKevin Cernekee		};
1228945e37eSKevin Cernekee
1238945e37eSKevin Cernekee		uart0: serial@406800 {
1248945e37eSKevin Cernekee			compatible = "ns16550a";
1258945e37eSKevin Cernekee			reg = <0x406800 0x20>;
1268945e37eSKevin Cernekee			reg-io-width = <0x4>;
1278945e37eSKevin Cernekee			reg-shift = <0x2>;
1288945e37eSKevin Cernekee			native-endian;
1298945e37eSKevin Cernekee			interrupt-parent = <&periph_intc>;
1308945e37eSKevin Cernekee			interrupts = <61>;
1318945e37eSKevin Cernekee			clocks = <&uart_clk>;
1328945e37eSKevin Cernekee			status = "disabled";
1338945e37eSKevin Cernekee		};
1348945e37eSKevin Cernekee
1358bac078cSJaedon Shin		uart1: serial@406840 {
1368bac078cSJaedon Shin			compatible = "ns16550a";
1378bac078cSJaedon Shin			reg = <0x406840 0x20>;
1388bac078cSJaedon Shin			reg-io-width = <0x4>;
1398bac078cSJaedon Shin			reg-shift = <0x2>;
1408bac078cSJaedon Shin			native-endian;
1418bac078cSJaedon Shin			interrupt-parent = <&periph_intc>;
1428bac078cSJaedon Shin			interrupts = <62>;
1438bac078cSJaedon Shin			clocks = <&uart_clk>;
1448bac078cSJaedon Shin			status = "disabled";
1458bac078cSJaedon Shin		};
1468bac078cSJaedon Shin
1478bac078cSJaedon Shin		uart2: serial@406880 {
1488bac078cSJaedon Shin			compatible = "ns16550a";
1498bac078cSJaedon Shin			reg = <0x406880 0x20>;
1508bac078cSJaedon Shin			reg-io-width = <0x4>;
1518bac078cSJaedon Shin			reg-shift = <0x2>;
1528bac078cSJaedon Shin			native-endian;
1538bac078cSJaedon Shin			interrupt-parent = <&periph_intc>;
1548bac078cSJaedon Shin			interrupts = <63>;
1558bac078cSJaedon Shin			clocks = <&uart_clk>;
1568bac078cSJaedon Shin			status = "disabled";
1578bac078cSJaedon Shin		};
1588bac078cSJaedon Shin
159*ad837838SJaedon Shin		bsca: i2c@406200 {
160*ad837838SJaedon Shin		      clock-frequency = <390000>;
161*ad837838SJaedon Shin		      compatible = "brcm,brcmstb-i2c";
162*ad837838SJaedon Shin		      interrupt-parent = <&upg_irq0_intc>;
163*ad837838SJaedon Shin		      reg = <0x406200 0x58>;
164*ad837838SJaedon Shin		      interrupts = <24>;
165*ad837838SJaedon Shin		      interrupt-names = "upg_bsca";
166*ad837838SJaedon Shin		      status = "disabled";
167*ad837838SJaedon Shin		};
168*ad837838SJaedon Shin
169*ad837838SJaedon Shin		bscb: i2c@406280 {
170*ad837838SJaedon Shin		      clock-frequency = <390000>;
171*ad837838SJaedon Shin		      compatible = "brcm,brcmstb-i2c";
172*ad837838SJaedon Shin		      interrupt-parent = <&upg_irq0_intc>;
173*ad837838SJaedon Shin		      reg = <0x406280 0x58>;
174*ad837838SJaedon Shin		      interrupts = <25>;
175*ad837838SJaedon Shin		      interrupt-names = "upg_bscb";
176*ad837838SJaedon Shin		      status = "disabled";
177*ad837838SJaedon Shin		};
178*ad837838SJaedon Shin
179*ad837838SJaedon Shin		bscc: i2c@406300 {
180*ad837838SJaedon Shin		      clock-frequency = <390000>;
181*ad837838SJaedon Shin		      compatible = "brcm,brcmstb-i2c";
182*ad837838SJaedon Shin		      interrupt-parent = <&upg_irq0_intc>;
183*ad837838SJaedon Shin		      reg = <0x406300 0x58>;
184*ad837838SJaedon Shin		      interrupts = <26>;
185*ad837838SJaedon Shin		      interrupt-names = "upg_bscc";
186*ad837838SJaedon Shin		      status = "disabled";
187*ad837838SJaedon Shin		};
188*ad837838SJaedon Shin
189*ad837838SJaedon Shin		bscd: i2c@408980 {
190*ad837838SJaedon Shin		      clock-frequency = <390000>;
191*ad837838SJaedon Shin		      compatible = "brcm,brcmstb-i2c";
192*ad837838SJaedon Shin		      interrupt-parent = <&upg_aon_irq0_intc>;
193*ad837838SJaedon Shin		      reg = <0x408980 0x58>;
194*ad837838SJaedon Shin		      interrupts = <27>;
195*ad837838SJaedon Shin		      interrupt-names = "upg_bscd";
196*ad837838SJaedon Shin		      status = "disabled";
197*ad837838SJaedon Shin		};
198*ad837838SJaedon Shin
1998945e37eSKevin Cernekee		enet0: ethernet@430000 {
2008945e37eSKevin Cernekee			phy-mode = "internal";
2018945e37eSKevin Cernekee			phy-handle = <&phy1>;
2028945e37eSKevin Cernekee			mac-address = [ 00 10 18 36 23 1a ];
2038945e37eSKevin Cernekee			compatible = "brcm,genet-v2";
2048945e37eSKevin Cernekee			#address-cells = <0x1>;
2058945e37eSKevin Cernekee			#size-cells = <0x1>;
2068945e37eSKevin Cernekee			reg = <0x430000 0x4c8c>;
2078945e37eSKevin Cernekee			interrupts = <24>, <25>;
2088945e37eSKevin Cernekee			interrupt-parent = <&periph_intc>;
2098945e37eSKevin Cernekee			status = "disabled";
2108945e37eSKevin Cernekee
2118945e37eSKevin Cernekee			mdio@e14 {
2128945e37eSKevin Cernekee				compatible = "brcm,genet-mdio-v2";
2138945e37eSKevin Cernekee				#address-cells = <0x1>;
2148945e37eSKevin Cernekee				#size-cells = <0x0>;
2158945e37eSKevin Cernekee				reg = <0xe14 0x8>;
2168945e37eSKevin Cernekee
2178945e37eSKevin Cernekee				phy1: ethernet-phy@1 {
2188945e37eSKevin Cernekee					max-speed = <100>;
2198945e37eSKevin Cernekee					reg = <0x1>;
2208945e37eSKevin Cernekee					compatible = "brcm,40nm-ephy",
2218945e37eSKevin Cernekee						"ethernet-phy-ieee802.3-c22";
2228945e37eSKevin Cernekee				};
2238945e37eSKevin Cernekee			};
2248945e37eSKevin Cernekee		};
2258945e37eSKevin Cernekee
2268945e37eSKevin Cernekee		ehci0: usb@480300 {
2278945e37eSKevin Cernekee			compatible = "brcm,bcm7358-ehci", "generic-ehci";
2288945e37eSKevin Cernekee			reg = <0x480300 0x100>;
2298945e37eSKevin Cernekee			native-endian;
2308945e37eSKevin Cernekee			interrupt-parent = <&periph_intc>;
2318945e37eSKevin Cernekee			interrupts = <65>;
2328945e37eSKevin Cernekee			status = "disabled";
2338945e37eSKevin Cernekee		};
2348945e37eSKevin Cernekee
2358945e37eSKevin Cernekee		ohci0: usb@480400 {
2368945e37eSKevin Cernekee			compatible = "brcm,bcm7358-ohci", "generic-ohci";
2378945e37eSKevin Cernekee			reg = <0x480400 0x100>;
2388945e37eSKevin Cernekee			native-endian;
2398945e37eSKevin Cernekee			no-big-frame-no;
2408945e37eSKevin Cernekee			interrupt-parent = <&periph_intc>;
2418945e37eSKevin Cernekee			interrupts = <66>;
2428945e37eSKevin Cernekee			status = "disabled";
2438945e37eSKevin Cernekee		};
2448945e37eSKevin Cernekee	};
2458945e37eSKevin Cernekee};
246