1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0-or-later OR MIT 2*4882a593Smuzhiyun/* 3*4882a593Smuzhiyun * Copyright (C) 2017 Rafał Miłecki <rafal@milecki.pl> 4*4882a593Smuzhiyun */ 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun/dts-v1/; 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun#include "bcm47094.dtsi" 9*4882a593Smuzhiyun#include "bcm5301x-nand-cs0-bch8.dtsi" 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun/ { 12*4882a593Smuzhiyun compatible = "linksys,panamera", "brcm,bcm47094", "brcm,bcm4708"; 13*4882a593Smuzhiyun model = "Linksys EA9500"; 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun chosen { 16*4882a593Smuzhiyun bootargs = "console=ttyS0,115200"; 17*4882a593Smuzhiyun }; 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun memory@0 { 20*4882a593Smuzhiyun device_type = "memory"; 21*4882a593Smuzhiyun reg = <0x00000000 0x08000000>, 22*4882a593Smuzhiyun <0x88000000 0x08000000>; 23*4882a593Smuzhiyun }; 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun gpio-keys { 26*4882a593Smuzhiyun compatible = "gpio-keys"; 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun wps { 29*4882a593Smuzhiyun label = "WPS"; 30*4882a593Smuzhiyun linux,code = <KEY_WPS_BUTTON>; 31*4882a593Smuzhiyun gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>; 32*4882a593Smuzhiyun }; 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun rfkill { 35*4882a593Smuzhiyun label = "WiFi"; 36*4882a593Smuzhiyun linux,code = <KEY_RFKILL>; 37*4882a593Smuzhiyun gpios = <&chipcommon 16 GPIO_ACTIVE_LOW>; 38*4882a593Smuzhiyun }; 39*4882a593Smuzhiyun 40*4882a593Smuzhiyun reset { 41*4882a593Smuzhiyun label = "Reset"; 42*4882a593Smuzhiyun linux,code = <KEY_RESTART>; 43*4882a593Smuzhiyun gpios = <&chipcommon 17 GPIO_ACTIVE_LOW>; 44*4882a593Smuzhiyun }; 45*4882a593Smuzhiyun }; 46*4882a593Smuzhiyun 47*4882a593Smuzhiyun leds { 48*4882a593Smuzhiyun compatible = "gpio-leds"; 49*4882a593Smuzhiyun 50*4882a593Smuzhiyun wps { 51*4882a593Smuzhiyun label = "bcm53xx:white:wps"; 52*4882a593Smuzhiyun gpios = <&chipcommon 22 GPIO_ACTIVE_LOW>; 53*4882a593Smuzhiyun }; 54*4882a593Smuzhiyun 55*4882a593Smuzhiyun usb2 { 56*4882a593Smuzhiyun label = "bcm53xx:green:usb2"; 57*4882a593Smuzhiyun gpios = <&chipcommon 1 GPIO_ACTIVE_LOW>; 58*4882a593Smuzhiyun trigger-sources = <&ohci_port2>, <&ehci_port2>; 59*4882a593Smuzhiyun linux,default-trigger = "usbport"; 60*4882a593Smuzhiyun }; 61*4882a593Smuzhiyun 62*4882a593Smuzhiyun usb3 { 63*4882a593Smuzhiyun label = "bcm53xx:green:usb3"; 64*4882a593Smuzhiyun gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>; 65*4882a593Smuzhiyun trigger-sources = <&ohci_port1>, <&ehci_port1>, 66*4882a593Smuzhiyun <&xhci_port1>; 67*4882a593Smuzhiyun linux,default-trigger = "usbport"; 68*4882a593Smuzhiyun }; 69*4882a593Smuzhiyun 70*4882a593Smuzhiyun power { 71*4882a593Smuzhiyun label = "bcm53xx:white:power"; 72*4882a593Smuzhiyun gpios = <&chipcommon 4 GPIO_ACTIVE_HIGH>; 73*4882a593Smuzhiyun }; 74*4882a593Smuzhiyun 75*4882a593Smuzhiyun wifi-disabled { 76*4882a593Smuzhiyun label = "bcm53xx:amber:wifi-disabled"; 77*4882a593Smuzhiyun gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>; 78*4882a593Smuzhiyun }; 79*4882a593Smuzhiyun 80*4882a593Smuzhiyun wifi-enabled { 81*4882a593Smuzhiyun label = "bcm53xx:white:wifi-enabled"; 82*4882a593Smuzhiyun gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>; 83*4882a593Smuzhiyun }; 84*4882a593Smuzhiyun 85*4882a593Smuzhiyun bluebar1 { 86*4882a593Smuzhiyun label = "bcm53xx:white:bluebar1"; 87*4882a593Smuzhiyun gpios = <&chipcommon 11 GPIO_ACTIVE_HIGH>; 88*4882a593Smuzhiyun }; 89*4882a593Smuzhiyun 90*4882a593Smuzhiyun bluebar2 { 91*4882a593Smuzhiyun label = "bcm53xx:white:bluebar2"; 92*4882a593Smuzhiyun gpios = <&chipcommon 12 GPIO_ACTIVE_HIGH>; 93*4882a593Smuzhiyun }; 94*4882a593Smuzhiyun 95*4882a593Smuzhiyun bluebar3 { 96*4882a593Smuzhiyun label = "bcm53xx:white:bluebar3"; 97*4882a593Smuzhiyun gpios = <&chipcommon 15 GPIO_ACTIVE_LOW>; 98*4882a593Smuzhiyun }; 99*4882a593Smuzhiyun 100*4882a593Smuzhiyun bluebar4 { 101*4882a593Smuzhiyun label = "bcm53xx:white:bluebar4"; 102*4882a593Smuzhiyun gpios = <&chipcommon 18 GPIO_ACTIVE_HIGH>; 103*4882a593Smuzhiyun }; 104*4882a593Smuzhiyun 105*4882a593Smuzhiyun bluebar5 { 106*4882a593Smuzhiyun label = "bcm53xx:white:bluebar5"; 107*4882a593Smuzhiyun gpios = <&chipcommon 19 GPIO_ACTIVE_HIGH>; 108*4882a593Smuzhiyun }; 109*4882a593Smuzhiyun 110*4882a593Smuzhiyun bluebar6 { 111*4882a593Smuzhiyun label = "bcm53xx:white:bluebar6"; 112*4882a593Smuzhiyun gpios = <&chipcommon 20 GPIO_ACTIVE_HIGH>; 113*4882a593Smuzhiyun }; 114*4882a593Smuzhiyun 115*4882a593Smuzhiyun bluebar7 { 116*4882a593Smuzhiyun label = "bcm53xx:white:bluebar7"; 117*4882a593Smuzhiyun gpios = <&chipcommon 21 GPIO_ACTIVE_HIGH>; 118*4882a593Smuzhiyun }; 119*4882a593Smuzhiyun 120*4882a593Smuzhiyun bluebar8 { 121*4882a593Smuzhiyun label = "bcm53xx:white:bluebar8"; 122*4882a593Smuzhiyun gpios = <&chipcommon 8 GPIO_ACTIVE_HIGH>; 123*4882a593Smuzhiyun }; 124*4882a593Smuzhiyun }; 125*4882a593Smuzhiyun 126*4882a593Smuzhiyun mdio-bus-mux { 127*4882a593Smuzhiyun #address-cells = <1>; 128*4882a593Smuzhiyun #size-cells = <0>; 129*4882a593Smuzhiyun 130*4882a593Smuzhiyun /* BIT(9) = 1 => external mdio */ 131*4882a593Smuzhiyun mdio_ext: mdio@200 { 132*4882a593Smuzhiyun reg = <0x200>; 133*4882a593Smuzhiyun #address-cells = <1>; 134*4882a593Smuzhiyun #size-cells = <0>; 135*4882a593Smuzhiyun }; 136*4882a593Smuzhiyun }; 137*4882a593Smuzhiyun 138*4882a593Smuzhiyun mdio-mii-mux { 139*4882a593Smuzhiyun compatible = "mdio-mux-mmioreg"; 140*4882a593Smuzhiyun mdio-parent-bus = <&mdio_ext>; 141*4882a593Smuzhiyun #address-cells = <1>; 142*4882a593Smuzhiyun #size-cells = <0>; 143*4882a593Smuzhiyun reg = <0x1800c1c0 0x4>; 144*4882a593Smuzhiyun 145*4882a593Smuzhiyun /* BIT(6) = mdc, BIT(7) = mdio */ 146*4882a593Smuzhiyun mux-mask = <0xc0>; 147*4882a593Smuzhiyun 148*4882a593Smuzhiyun mdio-mii@0 { 149*4882a593Smuzhiyun /* Enable MII function */ 150*4882a593Smuzhiyun reg = <0x0>; 151*4882a593Smuzhiyun #address-cells = <1>; 152*4882a593Smuzhiyun #size-cells = <0>; 153*4882a593Smuzhiyun 154*4882a593Smuzhiyun switch@0 { 155*4882a593Smuzhiyun compatible = "brcm,bcm53125"; 156*4882a593Smuzhiyun #address-cells = <1>; 157*4882a593Smuzhiyun #size-cells = <0>; 158*4882a593Smuzhiyun reset-gpios = <&chipcommon 10 GPIO_ACTIVE_LOW>; 159*4882a593Smuzhiyun reset-names = "robo_reset"; 160*4882a593Smuzhiyun reg = <0>; 161*4882a593Smuzhiyun dsa,member = <1 0>; 162*4882a593Smuzhiyun 163*4882a593Smuzhiyun ports { 164*4882a593Smuzhiyun #address-cells = <1>; 165*4882a593Smuzhiyun #size-cells = <0>; 166*4882a593Smuzhiyun 167*4882a593Smuzhiyun port@0 { 168*4882a593Smuzhiyun reg = <0>; 169*4882a593Smuzhiyun label = "lan1"; 170*4882a593Smuzhiyun }; 171*4882a593Smuzhiyun 172*4882a593Smuzhiyun port@1 { 173*4882a593Smuzhiyun reg = <1>; 174*4882a593Smuzhiyun label = "lan5"; 175*4882a593Smuzhiyun }; 176*4882a593Smuzhiyun 177*4882a593Smuzhiyun port@2 { 178*4882a593Smuzhiyun reg = <2>; 179*4882a593Smuzhiyun label = "lan2"; 180*4882a593Smuzhiyun }; 181*4882a593Smuzhiyun 182*4882a593Smuzhiyun port@3 { 183*4882a593Smuzhiyun reg = <3>; 184*4882a593Smuzhiyun label = "lan6"; 185*4882a593Smuzhiyun }; 186*4882a593Smuzhiyun 187*4882a593Smuzhiyun port@4 { 188*4882a593Smuzhiyun reg = <4>; 189*4882a593Smuzhiyun label = "lan3"; 190*4882a593Smuzhiyun }; 191*4882a593Smuzhiyun 192*4882a593Smuzhiyun sw1_p8: port@8 { 193*4882a593Smuzhiyun reg = <8>; 194*4882a593Smuzhiyun ethernet = <&sw0_p0>; 195*4882a593Smuzhiyun label = "cpu"; 196*4882a593Smuzhiyun 197*4882a593Smuzhiyun fixed-link { 198*4882a593Smuzhiyun speed = <1000>; 199*4882a593Smuzhiyun full-duplex; 200*4882a593Smuzhiyun }; 201*4882a593Smuzhiyun }; 202*4882a593Smuzhiyun }; 203*4882a593Smuzhiyun }; 204*4882a593Smuzhiyun }; 205*4882a593Smuzhiyun }; 206*4882a593Smuzhiyun}; 207*4882a593Smuzhiyun 208*4882a593Smuzhiyun&usb2 { 209*4882a593Smuzhiyun vcc-gpio = <&chipcommon 13 GPIO_ACTIVE_HIGH>; 210*4882a593Smuzhiyun}; 211*4882a593Smuzhiyun 212*4882a593Smuzhiyun&usb3 { 213*4882a593Smuzhiyun vcc-gpio = <&chipcommon 14 GPIO_ACTIVE_HIGH>; 214*4882a593Smuzhiyun}; 215*4882a593Smuzhiyun 216*4882a593Smuzhiyun&srab { 217*4882a593Smuzhiyun compatible = "brcm,bcm53012-srab", "brcm,bcm5301x-srab"; 218*4882a593Smuzhiyun status = "okay"; 219*4882a593Smuzhiyun dsa,member = <0 0>; 220*4882a593Smuzhiyun 221*4882a593Smuzhiyun ports { 222*4882a593Smuzhiyun #address-cells = <1>; 223*4882a593Smuzhiyun #size-cells = <0>; 224*4882a593Smuzhiyun 225*4882a593Smuzhiyun port@1 { 226*4882a593Smuzhiyun reg = <1>; 227*4882a593Smuzhiyun label = "lan7"; 228*4882a593Smuzhiyun }; 229*4882a593Smuzhiyun 230*4882a593Smuzhiyun port@2 { 231*4882a593Smuzhiyun reg = <2>; 232*4882a593Smuzhiyun label = "lan4"; 233*4882a593Smuzhiyun }; 234*4882a593Smuzhiyun 235*4882a593Smuzhiyun port@3 { 236*4882a593Smuzhiyun reg = <3>; 237*4882a593Smuzhiyun label = "lan8"; 238*4882a593Smuzhiyun }; 239*4882a593Smuzhiyun 240*4882a593Smuzhiyun port@4 { 241*4882a593Smuzhiyun reg = <4>; 242*4882a593Smuzhiyun label = "wan"; 243*4882a593Smuzhiyun }; 244*4882a593Smuzhiyun 245*4882a593Smuzhiyun port@8 { 246*4882a593Smuzhiyun reg = <8>; 247*4882a593Smuzhiyun ethernet = <&gmac2>; 248*4882a593Smuzhiyun label = "cpu"; 249*4882a593Smuzhiyun 250*4882a593Smuzhiyun fixed-link { 251*4882a593Smuzhiyun speed = <1000>; 252*4882a593Smuzhiyun full-duplex; 253*4882a593Smuzhiyun }; 254*4882a593Smuzhiyun }; 255*4882a593Smuzhiyun 256*4882a593Smuzhiyun sw0_p0: port@0 { 257*4882a593Smuzhiyun reg = <0>; 258*4882a593Smuzhiyun label = "extsw"; 259*4882a593Smuzhiyun 260*4882a593Smuzhiyun fixed-link { 261*4882a593Smuzhiyun speed = <1000>; 262*4882a593Smuzhiyun full-duplex; 263*4882a593Smuzhiyun }; 264*4882a593Smuzhiyun }; 265*4882a593Smuzhiyun }; 266*4882a593Smuzhiyun}; 267*4882a593Smuzhiyun 268*4882a593Smuzhiyun&usb3_phy { 269*4882a593Smuzhiyun status = "okay"; 270*4882a593Smuzhiyun}; 271