xref: /linux/arch/mips/boot/dts/brcm/bcm7358.dtsi (revision cfc8be04c36a1a6546b6f9cb8f02fd9f215c9d38)
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;
218945e37eSKevin Cernekee	};
228945e37eSKevin Cernekee
238945e37eSKevin Cernekee	cpu_intc: cpu_intc {
248945e37eSKevin Cernekee		#address-cells = <0>;
258945e37eSKevin Cernekee		compatible = "mti,cpu-interrupt-controller";
268945e37eSKevin Cernekee
278945e37eSKevin Cernekee		interrupt-controller;
288945e37eSKevin Cernekee		#interrupt-cells = <1>;
298945e37eSKevin Cernekee	};
308945e37eSKevin Cernekee
318945e37eSKevin Cernekee	clocks {
328945e37eSKevin Cernekee		uart_clk: uart_clk {
338945e37eSKevin Cernekee			compatible = "fixed-clock";
348945e37eSKevin Cernekee			#clock-cells = <0>;
358945e37eSKevin Cernekee			clock-frequency = <81000000>;
368945e37eSKevin Cernekee		};
377bbe59ddSJaedon Shin
387bbe59ddSJaedon Shin		upg_clk: upg_clk {
397bbe59ddSJaedon Shin			compatible = "fixed-clock";
407bbe59ddSJaedon Shin			#clock-cells = <0>;
417bbe59ddSJaedon Shin			clock-frequency = <27000000>;
427bbe59ddSJaedon Shin		};
438945e37eSKevin Cernekee	};
448945e37eSKevin Cernekee
458945e37eSKevin Cernekee	rdb {
468945e37eSKevin Cernekee		#address-cells = <1>;
478945e37eSKevin Cernekee		#size-cells = <1>;
488945e37eSKevin Cernekee
498945e37eSKevin Cernekee		compatible = "simple-bus";
508945e37eSKevin Cernekee		ranges = <0 0x10000000 0x01000000>;
518945e37eSKevin Cernekee
528945e37eSKevin Cernekee		periph_intc: periph_intc@411400 {
538945e37eSKevin Cernekee			compatible = "brcm,bcm7038-l1-intc";
548945e37eSKevin Cernekee			reg = <0x411400 0x30>;
558945e37eSKevin Cernekee
568945e37eSKevin Cernekee			interrupt-controller;
578945e37eSKevin Cernekee			#interrupt-cells = <1>;
588945e37eSKevin Cernekee
598945e37eSKevin Cernekee			interrupt-parent = <&cpu_intc>;
608945e37eSKevin Cernekee			interrupts = <2>;
618945e37eSKevin Cernekee		};
628945e37eSKevin Cernekee
638945e37eSKevin Cernekee		sun_l2_intc: sun_l2_intc@403000 {
648945e37eSKevin Cernekee			compatible = "brcm,l2-intc";
658945e37eSKevin Cernekee			reg = <0x403000 0x30>;
668945e37eSKevin Cernekee			interrupt-controller;
678945e37eSKevin Cernekee			#interrupt-cells = <1>;
688945e37eSKevin Cernekee			interrupt-parent = <&periph_intc>;
698945e37eSKevin Cernekee			interrupts = <48>;
708945e37eSKevin Cernekee		};
718945e37eSKevin Cernekee
728945e37eSKevin Cernekee		gisb-arb@400000 {
738945e37eSKevin Cernekee			compatible = "brcm,bcm7400-gisb-arb";
748945e37eSKevin Cernekee			reg = <0x400000 0xdc>;
758945e37eSKevin Cernekee			native-endian;
768945e37eSKevin Cernekee			interrupt-parent = <&sun_l2_intc>;
778945e37eSKevin Cernekee			interrupts = <0>, <2>;
788945e37eSKevin Cernekee			brcm,gisb-arb-master-mask = <0x2f3>;
798945e37eSKevin Cernekee			brcm,gisb-arb-master-names = "ssp_0", "cpu_0", "bsp_0",
808945e37eSKevin Cernekee						     "rdc_0", "raaga_0",
818945e37eSKevin Cernekee						     "avd_0", "jtag_0";
828945e37eSKevin Cernekee		};
838945e37eSKevin Cernekee
848945e37eSKevin Cernekee		upg_irq0_intc: upg_irq0_intc@406600 {
858945e37eSKevin Cernekee			compatible = "brcm,bcm7120-l2-intc";
868945e37eSKevin Cernekee			reg = <0x406600 0x8>;
878945e37eSKevin Cernekee
88ad837838SJaedon Shin			brcm,int-map-mask = <0x44>, <0x7000000>;
898945e37eSKevin Cernekee			brcm,int-fwd-mask = <0x70000>;
908945e37eSKevin Cernekee
918945e37eSKevin Cernekee			interrupt-controller;
928945e37eSKevin Cernekee			#interrupt-cells = <1>;
938945e37eSKevin Cernekee
948945e37eSKevin Cernekee			interrupt-parent = <&periph_intc>;
95ad837838SJaedon Shin			interrupts = <56>, <54>;
96ad837838SJaedon Shin			interrupt-names = "upg_main", "upg_bsc";
97ad837838SJaedon Shin		};
98ad837838SJaedon Shin
99ad837838SJaedon Shin		upg_aon_irq0_intc: upg_aon_irq0_intc@408b80 {
100ad837838SJaedon Shin			compatible = "brcm,bcm7120-l2-intc";
101ad837838SJaedon Shin			reg = <0x408b80 0x8>;
102ad837838SJaedon Shin
103ad837838SJaedon Shin			brcm,int-map-mask = <0x40>, <0x8000000>, <0x100000>;
104ad837838SJaedon Shin			brcm,int-fwd-mask = <0>;
105ad837838SJaedon Shin			brcm,irq-can-wake;
106ad837838SJaedon Shin
107ad837838SJaedon Shin			interrupt-controller;
108ad837838SJaedon Shin			#interrupt-cells = <1>;
109ad837838SJaedon Shin
110ad837838SJaedon Shin			interrupt-parent = <&periph_intc>;
111ad837838SJaedon Shin			interrupts = <57>, <55>, <59>;
112ad837838SJaedon Shin			interrupt-names = "upg_main_aon", "upg_bsc_aon",
113ad837838SJaedon Shin					  "upg_spi";
1148945e37eSKevin Cernekee		};
1158945e37eSKevin Cernekee
1168945e37eSKevin Cernekee		sun_top_ctrl: syscon@404000 {
1178945e37eSKevin Cernekee			compatible = "brcm,bcm7358-sun-top-ctrl", "syscon";
1188945e37eSKevin Cernekee			reg = <0x404000 0x51c>;
11925d6463eSMark Brown			native-endian;
1208945e37eSKevin Cernekee		};
1218945e37eSKevin Cernekee
1228945e37eSKevin Cernekee		reboot {
1238945e37eSKevin Cernekee			compatible = "brcm,brcmstb-reboot";
1248945e37eSKevin Cernekee			syscon = <&sun_top_ctrl 0x304 0x308>;
1258945e37eSKevin Cernekee		};
1268945e37eSKevin Cernekee
1278945e37eSKevin Cernekee		uart0: serial@406800 {
1288945e37eSKevin Cernekee			compatible = "ns16550a";
1298945e37eSKevin Cernekee			reg = <0x406800 0x20>;
1308945e37eSKevin Cernekee			reg-io-width = <0x4>;
1318945e37eSKevin Cernekee			reg-shift = <0x2>;
1328945e37eSKevin Cernekee			native-endian;
1338945e37eSKevin Cernekee			interrupt-parent = <&periph_intc>;
1348945e37eSKevin Cernekee			interrupts = <61>;
1358945e37eSKevin Cernekee			clocks = <&uart_clk>;
1368945e37eSKevin Cernekee			status = "disabled";
1378945e37eSKevin Cernekee		};
1388945e37eSKevin Cernekee
1398bac078cSJaedon Shin		uart1: serial@406840 {
1408bac078cSJaedon Shin			compatible = "ns16550a";
1418bac078cSJaedon Shin			reg = <0x406840 0x20>;
1428bac078cSJaedon Shin			reg-io-width = <0x4>;
1438bac078cSJaedon Shin			reg-shift = <0x2>;
1448bac078cSJaedon Shin			native-endian;
1458bac078cSJaedon Shin			interrupt-parent = <&periph_intc>;
1468bac078cSJaedon Shin			interrupts = <62>;
1478bac078cSJaedon Shin			clocks = <&uart_clk>;
1488bac078cSJaedon Shin			status = "disabled";
1498bac078cSJaedon Shin		};
1508bac078cSJaedon Shin
1518bac078cSJaedon Shin		uart2: serial@406880 {
1528bac078cSJaedon Shin			compatible = "ns16550a";
1538bac078cSJaedon Shin			reg = <0x406880 0x20>;
1548bac078cSJaedon Shin			reg-io-width = <0x4>;
1558bac078cSJaedon Shin			reg-shift = <0x2>;
1568bac078cSJaedon Shin			native-endian;
1578bac078cSJaedon Shin			interrupt-parent = <&periph_intc>;
1588bac078cSJaedon Shin			interrupts = <63>;
1598bac078cSJaedon Shin			clocks = <&uart_clk>;
1608bac078cSJaedon Shin			status = "disabled";
1618bac078cSJaedon Shin		};
1628bac078cSJaedon Shin
163ad837838SJaedon Shin		bsca: i2c@406200 {
164ad837838SJaedon Shin		      clock-frequency = <390000>;
165ad837838SJaedon Shin		      compatible = "brcm,brcmstb-i2c";
166ad837838SJaedon Shin		      interrupt-parent = <&upg_irq0_intc>;
167ad837838SJaedon Shin		      reg = <0x406200 0x58>;
168ad837838SJaedon Shin		      interrupts = <24>;
169ad837838SJaedon Shin		      interrupt-names = "upg_bsca";
170ad837838SJaedon Shin		      status = "disabled";
171ad837838SJaedon Shin		};
172ad837838SJaedon Shin
173ad837838SJaedon Shin		bscb: i2c@406280 {
174ad837838SJaedon Shin		      clock-frequency = <390000>;
175ad837838SJaedon Shin		      compatible = "brcm,brcmstb-i2c";
176ad837838SJaedon Shin		      interrupt-parent = <&upg_irq0_intc>;
177ad837838SJaedon Shin		      reg = <0x406280 0x58>;
178ad837838SJaedon Shin		      interrupts = <25>;
179ad837838SJaedon Shin		      interrupt-names = "upg_bscb";
180ad837838SJaedon Shin		      status = "disabled";
181ad837838SJaedon Shin		};
182ad837838SJaedon Shin
183ad837838SJaedon Shin		bscc: i2c@406300 {
184ad837838SJaedon Shin		      clock-frequency = <390000>;
185ad837838SJaedon Shin		      compatible = "brcm,brcmstb-i2c";
186ad837838SJaedon Shin		      interrupt-parent = <&upg_irq0_intc>;
187ad837838SJaedon Shin		      reg = <0x406300 0x58>;
188ad837838SJaedon Shin		      interrupts = <26>;
189ad837838SJaedon Shin		      interrupt-names = "upg_bscc";
190ad837838SJaedon Shin		      status = "disabled";
191ad837838SJaedon Shin		};
192ad837838SJaedon Shin
193ad837838SJaedon Shin		bscd: i2c@408980 {
194ad837838SJaedon Shin		      clock-frequency = <390000>;
195ad837838SJaedon Shin		      compatible = "brcm,brcmstb-i2c";
196ad837838SJaedon Shin		      interrupt-parent = <&upg_aon_irq0_intc>;
197ad837838SJaedon Shin		      reg = <0x408980 0x58>;
198ad837838SJaedon Shin		      interrupts = <27>;
199ad837838SJaedon Shin		      interrupt-names = "upg_bscd";
200ad837838SJaedon Shin		      status = "disabled";
201ad837838SJaedon Shin		};
202ad837838SJaedon Shin
2037bbe59ddSJaedon Shin		pwma: pwm@406400 {
2047bbe59ddSJaedon Shin			compatible = "brcm,bcm7038-pwm";
2057bbe59ddSJaedon Shin			reg = <0x406400 0x28>;
2067bbe59ddSJaedon Shin			#pwm-cells = <2>;
2077bbe59ddSJaedon Shin			clocks = <&upg_clk>;
2087bbe59ddSJaedon Shin			status = "disabled";
2097bbe59ddSJaedon Shin		};
2107bbe59ddSJaedon Shin
2117bbe59ddSJaedon Shin		pwmb: pwm@406700 {
2127bbe59ddSJaedon Shin			compatible = "brcm,bcm7038-pwm";
2137bbe59ddSJaedon Shin			reg = <0x406700 0x28>;
2147bbe59ddSJaedon Shin			#pwm-cells = <2>;
2157bbe59ddSJaedon Shin			clocks = <&upg_clk>;
2167bbe59ddSJaedon Shin			status = "disabled";
2177bbe59ddSJaedon Shin		};
2187bbe59ddSJaedon Shin
219c707844dSJaedon Shin		aon_pm_l2_intc: interrupt-controller@408240 {
220c707844dSJaedon Shin			compatible = "brcm,l2-intc";
221c707844dSJaedon Shin			reg = <0x408240 0x30>;
222c707844dSJaedon Shin			interrupt-controller;
223c707844dSJaedon Shin			#interrupt-cells = <1>;
224c707844dSJaedon Shin			interrupt-parent = <&periph_intc>;
225c707844dSJaedon Shin			interrupts = <50>;
226c707844dSJaedon Shin			brcm,irq-can-wake;
227c707844dSJaedon Shin		};
228c707844dSJaedon Shin
229c707844dSJaedon Shin		upg_gio: gpio@406500 {
230c707844dSJaedon Shin			compatible = "brcm,brcmstb-gpio";
231c707844dSJaedon Shin			reg = <0x406500 0xa0>;
232c707844dSJaedon Shin			#gpio-cells = <2>;
233c707844dSJaedon Shin			#interrupt-cells = <2>;
234c707844dSJaedon Shin			gpio-controller;
235c707844dSJaedon Shin			interrupt-controller;
236c707844dSJaedon Shin			interrupt-parent = <&upg_irq0_intc>;
237c707844dSJaedon Shin			interrupts = <6>;
238c707844dSJaedon Shin			brcm,gpio-bank-widths = <32 32 32 29 4>;
239c707844dSJaedon Shin		};
240c707844dSJaedon Shin
241c707844dSJaedon Shin		upg_gio_aon: gpio@408c00 {
242c707844dSJaedon Shin			compatible = "brcm,brcmstb-gpio";
243c707844dSJaedon Shin			reg = <0x408c00 0x60>;
244c707844dSJaedon Shin			#gpio-cells = <2>;
245c707844dSJaedon Shin			#interrupt-cells = <2>;
246c707844dSJaedon Shin			gpio-controller;
247c707844dSJaedon Shin			interrupt-controller;
248c707844dSJaedon Shin			interrupt-parent = <&upg_aon_irq0_intc>;
249c707844dSJaedon Shin			interrupts = <6>;
250c707844dSJaedon Shin			interrupts-extended = <&upg_aon_irq0_intc 6>,
251c707844dSJaedon Shin					      <&aon_pm_l2_intc 5>;
252c707844dSJaedon Shin			wakeup-source;
253c707844dSJaedon Shin			brcm,gpio-bank-widths = <21 32 2>;
254c707844dSJaedon Shin		};
255c707844dSJaedon Shin
2568945e37eSKevin Cernekee		enet0: ethernet@430000 {
2578945e37eSKevin Cernekee			phy-mode = "internal";
2588945e37eSKevin Cernekee			phy-handle = <&phy1>;
2598945e37eSKevin Cernekee			mac-address = [ 00 10 18 36 23 1a ];
2608945e37eSKevin Cernekee			compatible = "brcm,genet-v2";
2618945e37eSKevin Cernekee			#address-cells = <0x1>;
2628945e37eSKevin Cernekee			#size-cells = <0x1>;
2638945e37eSKevin Cernekee			reg = <0x430000 0x4c8c>;
2648945e37eSKevin Cernekee			interrupts = <24>, <25>;
2658945e37eSKevin Cernekee			interrupt-parent = <&periph_intc>;
2668945e37eSKevin Cernekee			status = "disabled";
2678945e37eSKevin Cernekee
2688945e37eSKevin Cernekee			mdio@e14 {
2698945e37eSKevin Cernekee				compatible = "brcm,genet-mdio-v2";
2708945e37eSKevin Cernekee				#address-cells = <0x1>;
2718945e37eSKevin Cernekee				#size-cells = <0x0>;
2728945e37eSKevin Cernekee				reg = <0xe14 0x8>;
2738945e37eSKevin Cernekee
2748945e37eSKevin Cernekee				phy1: ethernet-phy@1 {
2758945e37eSKevin Cernekee					max-speed = <100>;
2768945e37eSKevin Cernekee					reg = <0x1>;
2778945e37eSKevin Cernekee					compatible = "brcm,40nm-ephy",
2788945e37eSKevin Cernekee						"ethernet-phy-ieee802.3-c22";
2798945e37eSKevin Cernekee				};
2808945e37eSKevin Cernekee			};
2818945e37eSKevin Cernekee		};
2828945e37eSKevin Cernekee
2838945e37eSKevin Cernekee		ehci0: usb@480300 {
2848945e37eSKevin Cernekee			compatible = "brcm,bcm7358-ehci", "generic-ehci";
2858945e37eSKevin Cernekee			reg = <0x480300 0x100>;
2868945e37eSKevin Cernekee			native-endian;
2878945e37eSKevin Cernekee			interrupt-parent = <&periph_intc>;
2888945e37eSKevin Cernekee			interrupts = <65>;
2898945e37eSKevin Cernekee			status = "disabled";
2908945e37eSKevin Cernekee		};
2918945e37eSKevin Cernekee
2928945e37eSKevin Cernekee		ohci0: usb@480400 {
2938945e37eSKevin Cernekee			compatible = "brcm,bcm7358-ohci", "generic-ohci";
2948945e37eSKevin Cernekee			reg = <0x480400 0x100>;
2958945e37eSKevin Cernekee			native-endian;
2968945e37eSKevin Cernekee			no-big-frame-no;
2978945e37eSKevin Cernekee			interrupt-parent = <&periph_intc>;
2988945e37eSKevin Cernekee			interrupts = <66>;
2998945e37eSKevin Cernekee			status = "disabled";
3008945e37eSKevin Cernekee		};
301*cfc8be04SJaedon Shin
302*cfc8be04SJaedon Shin		hif_l2_intc: interrupt-controller@411000 {
303*cfc8be04SJaedon Shin			compatible = "brcm,l2-intc";
304*cfc8be04SJaedon Shin			reg = <0x411000 0x30>;
305*cfc8be04SJaedon Shin			interrupt-controller;
306*cfc8be04SJaedon Shin			#interrupt-cells = <1>;
307*cfc8be04SJaedon Shin			interrupt-parent = <&periph_intc>;
308*cfc8be04SJaedon Shin			interrupts = <30>;
309*cfc8be04SJaedon Shin		};
310*cfc8be04SJaedon Shin
311*cfc8be04SJaedon Shin		nand: nand@412800 {
312*cfc8be04SJaedon Shin			compatible = "brcm,brcmnand-v5.0", "brcm,brcmnand";
313*cfc8be04SJaedon Shin			#address-cells = <1>;
314*cfc8be04SJaedon Shin			#size-cells = <0>;
315*cfc8be04SJaedon Shin			reg-names = "nand";
316*cfc8be04SJaedon Shin			reg = <0x412800 0x400>;
317*cfc8be04SJaedon Shin			interrupt-parent = <&hif_l2_intc>;
318*cfc8be04SJaedon Shin			interrupts = <24>;
319*cfc8be04SJaedon Shin			status = "disabled";
320*cfc8be04SJaedon Shin		};
3218945e37eSKevin Cernekee	};
3228945e37eSKevin Cernekee};
323