~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/arm/boot/dts/intel/ixp/intel-ixp42x-usrobotics-usr8200.dts

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 // SPDX-License-Identifier: ISC
  2 /*
  3  * Device Tree file for the USRobotics USR8200 firewall
  4  * VPN and NAS. Based on know-how from Peter Denison.
  5  *
  6  * This machine is based on IXP422, the USR internal codename
  7  * is "Jeeves".
  8  */
  9 
 10 /dts-v1/;
 11 
 12 #include "intel-ixp42x.dtsi"
 13 #include <dt-bindings/input/input.h>
 14 
 15 / {
 16         model = "USRobotics USR8200";
 17         compatible = "usr,usr8200", "intel,ixp42x";
 18         #address-cells = <1>;
 19         #size-cells = <1>;
 20 
 21         memory@0 {
 22                 device_type = "memory";
 23                 reg = <0x00000000 0x4000000>;
 24         };
 25 
 26         chosen {
 27                 bootargs = "console=ttyS0,115200n8";
 28                 stdout-path = "uart1:115200n8";
 29         };
 30 
 31         aliases {
 32                 /* These are switched around */
 33                 serial0 = &uart1;
 34                 serial1 = &uart0;
 35         };
 36 
 37         leds {
 38                 compatible = "gpio-leds";
 39                 ieee1394_led: led-1394 {
 40                         label = "usr8200:green:1394";
 41                         gpios = <&gpio0 0 GPIO_ACTIVE_LOW>;
 42                         default-state = "off";
 43                 };
 44                 usb1_led: led-usb1 {
 45                         label = "usr8200:green:usb1";
 46                         gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
 47                         default-state = "off";
 48                 };
 49                 usb2_led: led-usb2 {
 50                         label = "usr8200:green:usb2";
 51                         gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
 52                         default-state = "off";
 53                 };
 54                 wireless_led: led-wireless {
 55                         /*
 56                          * This LED is mounted inside the case but cannot be
 57                          * seen from the outside: probably USR planned at one
 58                          * point for the device to have a wireless card, then
 59                          * changed their mind and didn't mount it, leaving the
 60                          * LED in place.
 61                          */
 62                         label = "usr8200:green:wireless";
 63                         gpios = <&gpio0 3 GPIO_ACTIVE_LOW>;
 64                         default-state = "off";
 65                 };
 66                 pwr_led: led-pwr {
 67                         label = "usr8200:green:pwr";
 68                         gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
 69                         default-state = "on";
 70                         linux,default-trigger = "heartbeat";
 71                 };
 72         };
 73 
 74         gpio_keys {
 75                 compatible = "gpio-keys";
 76 
 77                 button-reset {
 78                         wakeup-source;
 79                         linux,code = <KEY_RESTART>;
 80                         label = "reset";
 81                         gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
 82                 };
 83         };
 84 
 85         soc {
 86                 bus@c4000000 {
 87                         flash@0,0 {
 88                                 compatible = "intel,ixp4xx-flash", "cfi-flash";
 89                                 bank-width = <2>;
 90                                 /* Enable writes on the expansion bus */
 91                                 intel,ixp4xx-eb-write-enable = <1>;
 92                                 /* 16 MB of Flash mapped in at CS0 */
 93                                 reg = <0 0x00000000 0x1000000>;
 94 
 95                                 partitions {
 96                                         compatible = "redboot-fis";
 97                                         /* Eraseblock at 0x0fe0000 */
 98                                         fis-index-block = <0x7f>;
 99                                 };
100                         };
101                         rtc@2,0 {
102                                 /* EPSON RTC7301 DG DIL-capsule */
103                                 compatible = "epson,rtc7301dg";
104                                 /*
105                                  * These timing settings were found in the boardfile patch:
106                                  * IXP4XX_EXP_CS2 = 0x3fff000 | IXP4XX_EXP_BUS_SIZE(0) | IXP4XX_EXP_BUS_WR_EN |
107                                  *                  IXP4XX_EXP_BUS_CS_EN | IXP4XX_EXP_BUS_BYTE_EN;
108                                  */
109                                 intel,ixp4xx-eb-t1 = <0>; // no cycles extra address phase
110                                 intel,ixp4xx-eb-t2 = <0>; // no cycles extra setup phase
111                                 intel,ixp4xx-eb-t3 = <15>; // 15 cycles extra strobe phase
112                                 intel,ixp4xx-eb-t4 = <3>; // 3 cycles extra hold phase
113                                 intel,ixp4xx-eb-t5 = <15>; // 15 cycles extra recovery phase
114                                 intel,ixp4xx-eb-cycle-type = <0>; // Intel cycle
115                                 intel,ixp4xx-eb-byte-access-on-halfword = <0>;
116                                 intel,ixp4xx-eb-mux-address-and-data = <0>;
117                                 intel,ixp4xx-eb-ahb-split-transfers = <0>;
118                                 intel,ixp4xx-eb-write-enable = <1>;
119                                 intel,ixp4xx-eb-byte-access = <1>;
120                                 /* 512 bytes at CS2 */
121                                 reg = <2 0x00000000 0x0000200>;
122                                 reg-io-width = <1>;
123                                 native-endian;
124                                 /* FIXME: try to check if there is an IRQ for the RTC? */
125                         };
126                 };
127 
128                 pci@c0000000 {
129                         status = "okay";
130 
131                         /*
132                          * Taken from USR8200 boardfile from OpenWrt
133                          *
134                          * We have 3 slots (IDSEL) with partly swizzled IRQs on slot 16.
135                          * We assume the same IRQ for all pins on the remaining slots, that
136                          * is what the boardfile was doing.
137                          */
138                         #interrupt-cells = <1>;
139                         interrupt-map-mask = <0xf800 0 0 7>;
140                         interrupt-map =
141                         /* IDSEL 14 used for "Wireless" in the board file */
142                         <0x7000 0 0 1 &gpio0 7  IRQ_TYPE_LEVEL_LOW>, /* INT A on slot 14 is irq 7 */
143                         /* IDSEL 15 used for VIA VT6307 IEEE 1394 Firewire */
144                         <0x7800 0 0 1 &gpio0 8  IRQ_TYPE_LEVEL_LOW>, /* INT A on slot 15 is irq 8 */
145                         /* IDSEL 16 used for VIA VT6202 USB 2.0 4+1 */
146                         <0x8000 0 0 1 &gpio0 11 IRQ_TYPE_LEVEL_LOW>, /* INT A on slot 16 is irq 11 */
147                         <0x8000 0 0 2 &gpio0 10 IRQ_TYPE_LEVEL_LOW>, /* INT B on slot 16 is irq 10 */
148                         <0x8000 0 0 3 &gpio0 9  IRQ_TYPE_LEVEL_LOW>; /* INT C on slot 16 is irq 9 */
149                 };
150 
151                 gpio@c8004000 {
152                         /* Enable clock out on GPIO 15 */
153                         intel,ixp4xx-gpio15-clkout;
154                 };
155 
156                 /* EthB WAN */
157                 ethernet@c8009000 {
158                         status = "okay";
159                         queue-rx = <&qmgr 3>;
160                         queue-txready = <&qmgr 20>;
161                         phy-mode = "rgmii";
162                         phy-handle = <&phy9>;
163 
164                         mdio {
165                                 #address-cells = <1>;
166                                 #size-cells = <0>;
167 
168                                 /*
169                                  * PHY 0..4 are internal to the MV88E6060 switch but appear
170                                  * as independent devices.
171                                  */
172                                 phy0: ethernet-phy@0 {
173                                         reg = <0>;
174                                 };
175                                 phy1: ethernet-phy@1 {
176                                         reg = <1>;
177                                 };
178                                 phy2: ethernet-phy@2 {
179                                         reg = <2>;
180                                 };
181                                 phy3: ethernet-phy@3 {
182                                         reg = <3>;
183                                 };
184 
185                                 /* Altima AMI101L used by the WAN port */
186                                 phy9: ethernet-phy@9 {
187                                         reg = <9>;
188                                 };
189 
190                                 /* The switch uses MDIO addresses 16 thru 31 */
191                                 switch@16 {
192                                         compatible = "marvell,mv88e6060";
193                                         reg = <16>;
194 
195                                         ports {
196                                                 #address-cells = <1>;
197                                                 #size-cells = <0>;
198 
199                                                 port@0 {
200                                                         reg = <0>;
201                                                         label = "lan1";
202                                                         phy-handle = <&phy0>;
203                                                 };
204 
205                                                 port@1 {
206                                                         reg = <1>;
207                                                         label = "lan2";
208                                                         phy-handle = <&phy1>;
209                                                 };
210 
211                                                 port@2 {
212                                                         reg = <2>;
213                                                         label = "lan3";
214                                                         phy-handle = <&phy2>;
215                                                 };
216 
217                                                 port@3 {
218                                                         reg = <3>;
219                                                         label = "lan4";
220                                                         phy-handle = <&phy3>;
221                                                 };
222 
223                                                 port@5 {
224                                                         /* Port 5 is the CPU port according to the MV88E6060 datasheet */
225                                                         reg = <5>;
226                                                         phy-mode = "rgmii-id";
227                                                         ethernet = <&ethc>;
228                                                         label = "cpu";
229                                                         fixed-link {
230                                                                 speed = <100>;
231                                                                 full-duplex;
232                                                         };
233                                                 };
234                                         };
235                                 };
236                         };
237                 };
238 
239                 /* EthC LAN connected to the Marvell DSA Switch */
240                 ethc: ethernet@c800a000 {
241                         status = "okay";
242                         queue-rx = <&qmgr 4>;
243                         queue-txready = <&qmgr 21>;
244                         phy-mode = "rgmii";
245                         fixed-link {
246                                 speed = <100>;
247                                 full-duplex;
248                         };
249                 };
250         };
251 };

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php