xref: /linux/arch/mips/boot/dts/brcm/bcm7358.dtsi (revision c1144d29f405ce1f4e6ede6482beb3d0d09750c6)
1b2441318SGreg Kroah-Hartman// SPDX-License-Identifier: GPL-2.0
28945e37eSKevin Cernekee/ {
38945e37eSKevin Cernekee	#address-cells = <1>;
48945e37eSKevin Cernekee	#size-cells = <1>;
58945e37eSKevin Cernekee	compatible = "brcm,bcm7358";
68945e37eSKevin Cernekee
78945e37eSKevin Cernekee	cpus {
88945e37eSKevin Cernekee		#address-cells = <1>;
98945e37eSKevin Cernekee		#size-cells = <0>;
108945e37eSKevin Cernekee
118945e37eSKevin Cernekee		mips-hpt-frequency = <375000000>;
128945e37eSKevin Cernekee
138945e37eSKevin Cernekee		cpu@0 {
148945e37eSKevin Cernekee			compatible = "brcm,bmips3300";
158945e37eSKevin Cernekee			device_type = "cpu";
168945e37eSKevin Cernekee			reg = <0>;
178945e37eSKevin Cernekee		};
188945e37eSKevin Cernekee	};
198945e37eSKevin Cernekee
208945e37eSKevin Cernekee	aliases {
218945e37eSKevin Cernekee		uart0 = &uart0;
228945e37eSKevin Cernekee	};
238945e37eSKevin Cernekee
24a2c510a2SJaedon Shin	cpu_intc: interrupt-controller {
258945e37eSKevin Cernekee		#address-cells = <0>;
268945e37eSKevin Cernekee		compatible = "mti,cpu-interrupt-controller";
278945e37eSKevin Cernekee
288945e37eSKevin Cernekee		interrupt-controller;
298945e37eSKevin Cernekee		#interrupt-cells = <1>;
308945e37eSKevin Cernekee	};
318945e37eSKevin Cernekee
328945e37eSKevin Cernekee	clocks {
338945e37eSKevin Cernekee		uart_clk: uart_clk {
348945e37eSKevin Cernekee			compatible = "fixed-clock";
358945e37eSKevin Cernekee			#clock-cells = <0>;
368945e37eSKevin Cernekee			clock-frequency = <81000000>;
378945e37eSKevin Cernekee		};
387bbe59ddSJaedon Shin
397bbe59ddSJaedon Shin		upg_clk: upg_clk {
407bbe59ddSJaedon Shin			compatible = "fixed-clock";
417bbe59ddSJaedon Shin			#clock-cells = <0>;
427bbe59ddSJaedon Shin			clock-frequency = <27000000>;
437bbe59ddSJaedon Shin		};
448945e37eSKevin Cernekee	};
458945e37eSKevin Cernekee
468945e37eSKevin Cernekee	rdb {
478945e37eSKevin Cernekee		#address-cells = <1>;
488945e37eSKevin Cernekee		#size-cells = <1>;
498945e37eSKevin Cernekee
508945e37eSKevin Cernekee		compatible = "simple-bus";
518945e37eSKevin Cernekee		ranges = <0 0x10000000 0x01000000>;
528945e37eSKevin Cernekee
53a2c510a2SJaedon Shin		periph_intc: interrupt-controller@411400 {
548945e37eSKevin Cernekee			compatible = "brcm,bcm7038-l1-intc";
558945e37eSKevin Cernekee			reg = <0x411400 0x30>;
568945e37eSKevin Cernekee
578945e37eSKevin Cernekee			interrupt-controller;
588945e37eSKevin Cernekee			#interrupt-cells = <1>;
598945e37eSKevin Cernekee
608945e37eSKevin Cernekee			interrupt-parent = <&cpu_intc>;
618945e37eSKevin Cernekee			interrupts = <2>;
628945e37eSKevin Cernekee		};
638945e37eSKevin Cernekee
64a2c510a2SJaedon Shin		sun_l2_intc: interrupt-controller@403000 {
658945e37eSKevin Cernekee			compatible = "brcm,l2-intc";
668945e37eSKevin Cernekee			reg = <0x403000 0x30>;
678945e37eSKevin Cernekee			interrupt-controller;
688945e37eSKevin Cernekee			#interrupt-cells = <1>;
698945e37eSKevin Cernekee			interrupt-parent = <&periph_intc>;
708945e37eSKevin Cernekee			interrupts = <48>;
718945e37eSKevin Cernekee		};
728945e37eSKevin Cernekee
738945e37eSKevin Cernekee		gisb-arb@400000 {
748945e37eSKevin Cernekee			compatible = "brcm,bcm7400-gisb-arb";
758945e37eSKevin Cernekee			reg = <0x400000 0xdc>;
768945e37eSKevin Cernekee			native-endian;
778945e37eSKevin Cernekee			interrupt-parent = <&sun_l2_intc>;
788945e37eSKevin Cernekee			interrupts = <0>, <2>;
798945e37eSKevin Cernekee			brcm,gisb-arb-master-mask = <0x2f3>;
808945e37eSKevin Cernekee			brcm,gisb-arb-master-names = "ssp_0", "cpu_0", "bsp_0",
818945e37eSKevin Cernekee						     "rdc_0", "raaga_0",
828945e37eSKevin Cernekee						     "avd_0", "jtag_0";
838945e37eSKevin Cernekee		};
848945e37eSKevin Cernekee
85a2c510a2SJaedon Shin		upg_irq0_intc: interrupt-controller@406600 {
868945e37eSKevin Cernekee			compatible = "brcm,bcm7120-l2-intc";
878945e37eSKevin Cernekee			reg = <0x406600 0x8>;
888945e37eSKevin Cernekee
89ad837838SJaedon Shin			brcm,int-map-mask = <0x44>, <0x7000000>;
908945e37eSKevin Cernekee			brcm,int-fwd-mask = <0x70000>;
918945e37eSKevin Cernekee
928945e37eSKevin Cernekee			interrupt-controller;
938945e37eSKevin Cernekee			#interrupt-cells = <1>;
948945e37eSKevin Cernekee
958945e37eSKevin Cernekee			interrupt-parent = <&periph_intc>;
96ad837838SJaedon Shin			interrupts = <56>, <54>;
97ad837838SJaedon Shin			interrupt-names = "upg_main", "upg_bsc";
98ad837838SJaedon Shin		};
99ad837838SJaedon Shin
100a2c510a2SJaedon Shin		upg_aon_irq0_intc: interrupt-controller@408b80 {
101ad837838SJaedon Shin			compatible = "brcm,bcm7120-l2-intc";
102ad837838SJaedon Shin			reg = <0x408b80 0x8>;
103ad837838SJaedon Shin
104ad837838SJaedon Shin			brcm,int-map-mask = <0x40>, <0x8000000>, <0x100000>;
105ad837838SJaedon Shin			brcm,int-fwd-mask = <0>;
106ad837838SJaedon Shin			brcm,irq-can-wake;
107ad837838SJaedon Shin
108ad837838SJaedon Shin			interrupt-controller;
109ad837838SJaedon Shin			#interrupt-cells = <1>;
110ad837838SJaedon Shin
111ad837838SJaedon Shin			interrupt-parent = <&periph_intc>;
112ad837838SJaedon Shin			interrupts = <57>, <55>, <59>;
113ad837838SJaedon Shin			interrupt-names = "upg_main_aon", "upg_bsc_aon",
114ad837838SJaedon Shin					  "upg_spi";
1158945e37eSKevin Cernekee		};
1168945e37eSKevin Cernekee
1178945e37eSKevin Cernekee		sun_top_ctrl: syscon@404000 {
1188945e37eSKevin Cernekee			compatible = "brcm,bcm7358-sun-top-ctrl", "syscon";
1198945e37eSKevin Cernekee			reg = <0x404000 0x51c>;
12025d6463eSMark Brown			native-endian;
1218945e37eSKevin Cernekee		};
1228945e37eSKevin Cernekee
1238945e37eSKevin Cernekee		reboot {
1248945e37eSKevin Cernekee			compatible = "brcm,brcmstb-reboot";
1258945e37eSKevin Cernekee			syscon = <&sun_top_ctrl 0x304 0x308>;
1268945e37eSKevin Cernekee		};
1278945e37eSKevin Cernekee
1288945e37eSKevin Cernekee		uart0: serial@406800 {
1298945e37eSKevin Cernekee			compatible = "ns16550a";
1308945e37eSKevin Cernekee			reg = <0x406800 0x20>;
1318945e37eSKevin Cernekee			reg-io-width = <0x4>;
1328945e37eSKevin Cernekee			reg-shift = <0x2>;
1338945e37eSKevin Cernekee			native-endian;
1348945e37eSKevin Cernekee			interrupt-parent = <&periph_intc>;
1358945e37eSKevin Cernekee			interrupts = <61>;
1368945e37eSKevin Cernekee			clocks = <&uart_clk>;
1378945e37eSKevin Cernekee			status = "disabled";
1388945e37eSKevin Cernekee		};
1398945e37eSKevin Cernekee
1408bac078cSJaedon Shin		uart1: serial@406840 {
1418bac078cSJaedon Shin			compatible = "ns16550a";
1428bac078cSJaedon Shin			reg = <0x406840 0x20>;
1438bac078cSJaedon Shin			reg-io-width = <0x4>;
1448bac078cSJaedon Shin			reg-shift = <0x2>;
1458bac078cSJaedon Shin			native-endian;
1468bac078cSJaedon Shin			interrupt-parent = <&periph_intc>;
1478bac078cSJaedon Shin			interrupts = <62>;
1488bac078cSJaedon Shin			clocks = <&uart_clk>;
1498bac078cSJaedon Shin			status = "disabled";
1508bac078cSJaedon Shin		};
1518bac078cSJaedon Shin
1528bac078cSJaedon Shin		uart2: serial@406880 {
1538bac078cSJaedon Shin			compatible = "ns16550a";
1548bac078cSJaedon Shin			reg = <0x406880 0x20>;
1558bac078cSJaedon Shin			reg-io-width = <0x4>;
1568bac078cSJaedon Shin			reg-shift = <0x2>;
1578bac078cSJaedon Shin			native-endian;
1588bac078cSJaedon Shin			interrupt-parent = <&periph_intc>;
1598bac078cSJaedon Shin			interrupts = <63>;
1608bac078cSJaedon Shin			clocks = <&uart_clk>;
1618bac078cSJaedon Shin			status = "disabled";
1628bac078cSJaedon Shin		};
1638bac078cSJaedon Shin
164ad837838SJaedon Shin		bsca: i2c@406200 {
165ad837838SJaedon Shin		      clock-frequency = <390000>;
166ad837838SJaedon Shin		      compatible = "brcm,brcmstb-i2c";
167ad837838SJaedon Shin		      interrupt-parent = <&upg_irq0_intc>;
168ad837838SJaedon Shin		      reg = <0x406200 0x58>;
169ad837838SJaedon Shin		      interrupts = <24>;
170ad837838SJaedon Shin		      interrupt-names = "upg_bsca";
171ad837838SJaedon Shin		      status = "disabled";
172ad837838SJaedon Shin		};
173ad837838SJaedon Shin
174ad837838SJaedon Shin		bscb: i2c@406280 {
175ad837838SJaedon Shin		      clock-frequency = <390000>;
176ad837838SJaedon Shin		      compatible = "brcm,brcmstb-i2c";
177ad837838SJaedon Shin		      interrupt-parent = <&upg_irq0_intc>;
178ad837838SJaedon Shin		      reg = <0x406280 0x58>;
179ad837838SJaedon Shin		      interrupts = <25>;
180ad837838SJaedon Shin		      interrupt-names = "upg_bscb";
181ad837838SJaedon Shin		      status = "disabled";
182ad837838SJaedon Shin		};
183ad837838SJaedon Shin
184ad837838SJaedon Shin		bscc: i2c@406300 {
185ad837838SJaedon Shin		      clock-frequency = <390000>;
186ad837838SJaedon Shin		      compatible = "brcm,brcmstb-i2c";
187ad837838SJaedon Shin		      interrupt-parent = <&upg_irq0_intc>;
188ad837838SJaedon Shin		      reg = <0x406300 0x58>;
189ad837838SJaedon Shin		      interrupts = <26>;
190ad837838SJaedon Shin		      interrupt-names = "upg_bscc";
191ad837838SJaedon Shin		      status = "disabled";
192ad837838SJaedon Shin		};
193ad837838SJaedon Shin
194ad837838SJaedon Shin		bscd: i2c@408980 {
195ad837838SJaedon Shin		      clock-frequency = <390000>;
196ad837838SJaedon Shin		      compatible = "brcm,brcmstb-i2c";
197ad837838SJaedon Shin		      interrupt-parent = <&upg_aon_irq0_intc>;
198ad837838SJaedon Shin		      reg = <0x408980 0x58>;
199ad837838SJaedon Shin		      interrupts = <27>;
200ad837838SJaedon Shin		      interrupt-names = "upg_bscd";
201ad837838SJaedon Shin		      status = "disabled";
202ad837838SJaedon Shin		};
203ad837838SJaedon Shin
2047bbe59ddSJaedon Shin		pwma: pwm@406400 {
2057bbe59ddSJaedon Shin			compatible = "brcm,bcm7038-pwm";
2067bbe59ddSJaedon Shin			reg = <0x406400 0x28>;
2077bbe59ddSJaedon Shin			#pwm-cells = <2>;
2087bbe59ddSJaedon Shin			clocks = <&upg_clk>;
2097bbe59ddSJaedon Shin			status = "disabled";
2107bbe59ddSJaedon Shin		};
2117bbe59ddSJaedon Shin
2127bbe59ddSJaedon Shin		pwmb: pwm@406700 {
2137bbe59ddSJaedon Shin			compatible = "brcm,bcm7038-pwm";
2147bbe59ddSJaedon Shin			reg = <0x406700 0x28>;
2157bbe59ddSJaedon Shin			#pwm-cells = <2>;
2167bbe59ddSJaedon Shin			clocks = <&upg_clk>;
2177bbe59ddSJaedon Shin			status = "disabled";
2187bbe59ddSJaedon Shin		};
2197bbe59ddSJaedon Shin
220*b68c2575SJaedon Shin		watchdog: watchdog@4066a8 {
221*b68c2575SJaedon Shin			clocks = <&upg_clk>;
222*b68c2575SJaedon Shin			compatible = "brcm,bcm7038-wdt";
223*b68c2575SJaedon Shin			reg = <0x4066a8 0x14>;
224*b68c2575SJaedon Shin			status = "disabled";
225*b68c2575SJaedon Shin		};
226*b68c2575SJaedon Shin
227c707844dSJaedon Shin		aon_pm_l2_intc: interrupt-controller@408240 {
228c707844dSJaedon Shin			compatible = "brcm,l2-intc";
229c707844dSJaedon Shin			reg = <0x408240 0x30>;
230c707844dSJaedon Shin			interrupt-controller;
231c707844dSJaedon Shin			#interrupt-cells = <1>;
232c707844dSJaedon Shin			interrupt-parent = <&periph_intc>;
233c707844dSJaedon Shin			interrupts = <50>;
234c707844dSJaedon Shin			brcm,irq-can-wake;
235c707844dSJaedon Shin		};
236c707844dSJaedon Shin
237c707844dSJaedon Shin		upg_gio: gpio@406500 {
238c707844dSJaedon Shin			compatible = "brcm,brcmstb-gpio";
239c707844dSJaedon Shin			reg = <0x406500 0xa0>;
240c707844dSJaedon Shin			#gpio-cells = <2>;
241c707844dSJaedon Shin			#interrupt-cells = <2>;
242c707844dSJaedon Shin			gpio-controller;
243c707844dSJaedon Shin			interrupt-controller;
244c707844dSJaedon Shin			interrupt-parent = <&upg_irq0_intc>;
245c707844dSJaedon Shin			interrupts = <6>;
246c707844dSJaedon Shin			brcm,gpio-bank-widths = <32 32 32 29 4>;
247c707844dSJaedon Shin		};
248c707844dSJaedon Shin
249c707844dSJaedon Shin		upg_gio_aon: gpio@408c00 {
250c707844dSJaedon Shin			compatible = "brcm,brcmstb-gpio";
251c707844dSJaedon Shin			reg = <0x408c00 0x60>;
252c707844dSJaedon Shin			#gpio-cells = <2>;
253c707844dSJaedon Shin			#interrupt-cells = <2>;
254c707844dSJaedon Shin			gpio-controller;
255c707844dSJaedon Shin			interrupt-controller;
256c707844dSJaedon Shin			interrupt-parent = <&upg_aon_irq0_intc>;
257c707844dSJaedon Shin			interrupts = <6>;
258c707844dSJaedon Shin			interrupts-extended = <&upg_aon_irq0_intc 6>,
259c707844dSJaedon Shin					      <&aon_pm_l2_intc 5>;
260c707844dSJaedon Shin			wakeup-source;
261c707844dSJaedon Shin			brcm,gpio-bank-widths = <21 32 2>;
262c707844dSJaedon Shin		};
263c707844dSJaedon Shin
2648945e37eSKevin Cernekee		enet0: ethernet@430000 {
2658945e37eSKevin Cernekee			phy-mode = "internal";
2668945e37eSKevin Cernekee			phy-handle = <&phy1>;
2678945e37eSKevin Cernekee			mac-address = [ 00 10 18 36 23 1a ];
2688945e37eSKevin Cernekee			compatible = "brcm,genet-v2";
2698945e37eSKevin Cernekee			#address-cells = <0x1>;
2708945e37eSKevin Cernekee			#size-cells = <0x1>;
2718945e37eSKevin Cernekee			reg = <0x430000 0x4c8c>;
2728945e37eSKevin Cernekee			interrupts = <24>, <25>;
2738945e37eSKevin Cernekee			interrupt-parent = <&periph_intc>;
2748945e37eSKevin Cernekee			status = "disabled";
2758945e37eSKevin Cernekee
2768945e37eSKevin Cernekee			mdio@e14 {
2778945e37eSKevin Cernekee				compatible = "brcm,genet-mdio-v2";
2788945e37eSKevin Cernekee				#address-cells = <0x1>;
2798945e37eSKevin Cernekee				#size-cells = <0x0>;
2808945e37eSKevin Cernekee				reg = <0xe14 0x8>;
2818945e37eSKevin Cernekee
2828945e37eSKevin Cernekee				phy1: ethernet-phy@1 {
2838945e37eSKevin Cernekee					max-speed = <100>;
2848945e37eSKevin Cernekee					reg = <0x1>;
2858945e37eSKevin Cernekee					compatible = "brcm,40nm-ephy",
2868945e37eSKevin Cernekee						"ethernet-phy-ieee802.3-c22";
2878945e37eSKevin Cernekee				};
2888945e37eSKevin Cernekee			};
2898945e37eSKevin Cernekee		};
2908945e37eSKevin Cernekee
2918945e37eSKevin Cernekee		ehci0: usb@480300 {
2928945e37eSKevin Cernekee			compatible = "brcm,bcm7358-ehci", "generic-ehci";
2938945e37eSKevin Cernekee			reg = <0x480300 0x100>;
2948945e37eSKevin Cernekee			native-endian;
2958945e37eSKevin Cernekee			interrupt-parent = <&periph_intc>;
2968945e37eSKevin Cernekee			interrupts = <65>;
2978945e37eSKevin Cernekee			status = "disabled";
2988945e37eSKevin Cernekee		};
2998945e37eSKevin Cernekee
3008945e37eSKevin Cernekee		ohci0: usb@480400 {
3018945e37eSKevin Cernekee			compatible = "brcm,bcm7358-ohci", "generic-ohci";
3028945e37eSKevin Cernekee			reg = <0x480400 0x100>;
3038945e37eSKevin Cernekee			native-endian;
3048945e37eSKevin Cernekee			no-big-frame-no;
3058945e37eSKevin Cernekee			interrupt-parent = <&periph_intc>;
3068945e37eSKevin Cernekee			interrupts = <66>;
3078945e37eSKevin Cernekee			status = "disabled";
3088945e37eSKevin Cernekee		};
309cfc8be04SJaedon Shin
310cfc8be04SJaedon Shin		hif_l2_intc: interrupt-controller@411000 {
311cfc8be04SJaedon Shin			compatible = "brcm,l2-intc";
312cfc8be04SJaedon Shin			reg = <0x411000 0x30>;
313cfc8be04SJaedon Shin			interrupt-controller;
314cfc8be04SJaedon Shin			#interrupt-cells = <1>;
315cfc8be04SJaedon Shin			interrupt-parent = <&periph_intc>;
316cfc8be04SJaedon Shin			interrupts = <30>;
317cfc8be04SJaedon Shin		};
318cfc8be04SJaedon Shin
319cfc8be04SJaedon Shin		nand: nand@412800 {
320cfc8be04SJaedon Shin			compatible = "brcm,brcmnand-v5.0", "brcm,brcmnand";
321cfc8be04SJaedon Shin			#address-cells = <1>;
322cfc8be04SJaedon Shin			#size-cells = <0>;
323cfc8be04SJaedon Shin			reg-names = "nand";
324cfc8be04SJaedon Shin			reg = <0x412800 0x400>;
325cfc8be04SJaedon Shin			interrupt-parent = <&hif_l2_intc>;
326cfc8be04SJaedon Shin			interrupts = <24>;
327cfc8be04SJaedon Shin			status = "disabled";
328cfc8be04SJaedon Shin		};
329d783738cSJaedon Shin
330d783738cSJaedon Shin		spi_l2_intc: interrupt-controller@411d00 {
331d783738cSJaedon Shin			compatible = "brcm,l2-intc";
332d783738cSJaedon Shin			reg = <0x411d00 0x30>;
333d783738cSJaedon Shin			interrupt-controller;
334d783738cSJaedon Shin			#interrupt-cells = <1>;
335d783738cSJaedon Shin			interrupt-parent = <&periph_intc>;
336d783738cSJaedon Shin			interrupts = <31>;
337d783738cSJaedon Shin		};
338d783738cSJaedon Shin
339d783738cSJaedon Shin		qspi: spi@413000 {
340d783738cSJaedon Shin			#address-cells = <0x1>;
341d783738cSJaedon Shin			#size-cells = <0x0>;
342d783738cSJaedon Shin			compatible = "brcm,spi-bcm-qspi",
343d783738cSJaedon Shin				     "brcm,spi-brcmstb-qspi";
344d783738cSJaedon Shin			clocks = <&upg_clk>;
345d783738cSJaedon Shin			reg = <0x410920 0x4 0x413200 0x188 0x413000 0x50>;
346d783738cSJaedon Shin			reg-names = "cs_reg", "hif_mspi", "bspi";
347d783738cSJaedon Shin			interrupts = <0x0 0x1 0x2 0x3 0x4 0x5 0x6>;
348d783738cSJaedon Shin			interrupt-parent = <&spi_l2_intc>;
349d783738cSJaedon Shin			interrupt-names = "spi_lr_fullness_reached",
350d783738cSJaedon Shin					  "spi_lr_session_aborted",
351d783738cSJaedon Shin					  "spi_lr_impatient",
352d783738cSJaedon Shin					  "spi_lr_session_done",
353d783738cSJaedon Shin					  "spi_lr_overread",
354d783738cSJaedon Shin					  "mspi_done",
355d783738cSJaedon Shin					  "mspi_halted";
356d783738cSJaedon Shin			status = "disabled";
357d783738cSJaedon Shin		};
358d783738cSJaedon Shin
359d783738cSJaedon Shin		mspi: spi@408a00 {
360d783738cSJaedon Shin			#address-cells = <1>;
361d783738cSJaedon Shin			#size-cells = <0>;
362d783738cSJaedon Shin			compatible = "brcm,spi-bcm-qspi",
363d783738cSJaedon Shin				     "brcm,spi-brcmstb-mspi";
364d783738cSJaedon Shin			clocks = <&upg_clk>;
365d783738cSJaedon Shin			reg = <0x408a00 0x180>;
366d783738cSJaedon Shin			reg-names = "mspi";
367d783738cSJaedon Shin			interrupts = <0x14>;
368d783738cSJaedon Shin			interrupt-parent = <&upg_aon_irq0_intc>;
369d783738cSJaedon Shin			interrupt-names = "mspi_done";
370d783738cSJaedon Shin			status = "disabled";
371d783738cSJaedon Shin		};
372e84442c1SJaedon Shin
373e84442c1SJaedon Shin		waketimer: waketimer@408e80 {
374e84442c1SJaedon Shin			compatible = "brcm,brcmstb-waketimer";
375e84442c1SJaedon Shin			reg = <0x408e80 0x14>;
376e84442c1SJaedon Shin			interrupts = <0x3>;
377e84442c1SJaedon Shin			interrupt-parent = <&aon_pm_l2_intc>;
378e84442c1SJaedon Shin			interrupt-names = "timer";
379e84442c1SJaedon Shin			clocks = <&upg_clk>;
380e84442c1SJaedon Shin			status = "disabled";
381e84442c1SJaedon Shin		};
3828945e37eSKevin Cernekee	};
3838945e37eSKevin Cernekee};
384