1 // SPDX-License-Identifier: ISC
2 /*
3  * Device Tree file for Netgear WG302v2 based on IXP422BB
4  * Derived from boardfiles written by Imre Kaloz
5  */
6 
7 /dts-v1/;
8 
9 #include "intel-ixp42x.dtsi"
10 #include <dt-bindings/input/input.h>
11 
12 / {
13 	model = "Netgear WG302 v1";
14 	compatible = "netgear,wg302v1", "intel,ixp42x";
15 	#address-cells = <1>;
16 	#size-cells = <1>;
17 
18 	memory@0 {
19 		/* 32 MB SDRAM according to boot arguments */
20 		device_type = "memory";
21 		reg = <0x00000000 0x02000000>;
22 	};
23 
24 	chosen {
25 		/* The RedBoot comes up in 9600 baud so let's keep this */
26 		bootargs = "console=ttyS0,9600n8";
27 		stdout-path = "uart1:9600n8";
28 	};
29 
30 	aliases {
31 		/* These are switched around */
32 		serial0 = &uart1;
33 	};
34 
35 	soc {
36 		bus@c4000000 {
37 			flash@0,0 {
38 				compatible = "intel,ixp4xx-flash", "cfi-flash";
39 				bank-width = <2>;
40 				/*
41 				 * 8 MB of Flash in 64 0x20000 sized blocks
42 				 * mapped in at CS0.
43 				 */
44 				reg = <0 0x00000000 0x800000>;
45 
46 				/* Configure expansion bus to allow writes */
47 				intel,ixp4xx-eb-write-enable = <1>;
48 
49 				partitions {
50 					compatible = "redboot-fis";
51 					fis-index-block = <0x3f>;
52 				};
53 			};
54 		};
55 
56 		pci@c0000000 {
57 			status = "okay";
58 
59 			/*
60 			 * Taken from WG302 v2 PCI boardfile (wg302v2-pci.c)
61 			 * We have slots (IDSEL) 1 and 2 with one assigned IRQ
62 			 * each handling all IRQs.
63 			 */
64 			#interrupt-cells = <1>;
65 			interrupt-map-mask = <0xf800 0 0 7>;
66 			interrupt-map =
67 			/* IDSEL 1 */
68 			<0x0800 0 0 1 &gpio0 8 IRQ_TYPE_LEVEL_LOW>, /* INT A on slot 1 is irq 8 */
69 			<0x0800 0 0 2 &gpio0 8 IRQ_TYPE_LEVEL_LOW>, /* INT B on slot 1 is irq 8 */
70 			<0x0800 0 0 3 &gpio0 8 IRQ_TYPE_LEVEL_LOW>, /* INT C on slot 1 is irq 8 */
71 			<0x0800 0 0 4 &gpio0 8 IRQ_TYPE_LEVEL_LOW>, /* INT D on slot 1 is irq 8 */
72 			/* IDSEL 2 */
73 			<0x1000 0 0 1 &gpio0 9 IRQ_TYPE_LEVEL_LOW>, /* INT A on slot 2 is irq 9 */
74 			<0x1000 0 0 2 &gpio0 9 IRQ_TYPE_LEVEL_LOW>, /* INT B on slot 2 is irq 9 */
75 			<0x1000 0 0 3 &gpio0 9 IRQ_TYPE_LEVEL_LOW>, /* INT C on slot 2 is irq 9 */
76 			<0x1000 0 0 4 &gpio0 9 IRQ_TYPE_LEVEL_LOW>; /* INT D on slot 2 is irq 9 */
77 		};
78 
79 		ethernet@c8009000 {
80 			status = "okay";
81 			queue-rx = <&qmgr 3>;
82 			queue-txready = <&qmgr 20>;
83 			phy-mode = "rgmii";
84 			phy-handle = <&phy30>;
85 
86 			mdio {
87 				#address-cells = <1>;
88 				#size-cells = <0>;
89 
90 				phy30: ethernet-phy@30 {
91 					reg = <30>;
92 				};
93 			};
94 		};
95 	};
96 };
97