| // SPDX-License-Identifier: GPL-2.0-or-later OR MIT | 
 | /* | 
 |  * Copyright (C) 2017 Rafał Miłecki <rafal@milecki.pl> | 
 |  */ | 
 |  | 
 | /dts-v1/; | 
 |  | 
 | #include "bcm47094.dtsi" | 
 | #include "bcm5301x-nand-cs0-bch8.dtsi" | 
 |  | 
 | / { | 
 | 	compatible = "linksys,panamera", "brcm,bcm47094", "brcm,bcm4708"; | 
 | 	model = "Linksys EA9500"; | 
 |  | 
 | 	chosen { | 
 | 		bootargs = "console=ttyS0,115200"; | 
 | 	}; | 
 |  | 
 | 	memory { | 
 | 		device_type = "memory"; | 
 | 		reg = <0x00000000 0x08000000 | 
 | 		       0x88000000 0x08000000>; | 
 | 	}; | 
 |  | 
 | 	gpio-keys { | 
 | 		compatible = "gpio-keys"; | 
 | 		#address-cells = <1>; | 
 | 		#size-cells = <0>; | 
 |  | 
 | 		wps { | 
 | 			label = "WPS"; | 
 | 			linux,code = <KEY_WPS_BUTTON>; | 
 | 			gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>; | 
 | 		}; | 
 |  | 
 | 		rfkill { | 
 | 				label = "WiFi"; | 
 | 				linux,code = <KEY_RFKILL>; | 
 | 				gpios = <&chipcommon 16 GPIO_ACTIVE_LOW>; | 
 | 		}; | 
 |  | 
 | 		reset { | 
 | 				label = "Reset"; | 
 | 				linux,code = <KEY_RESTART>; | 
 | 				gpios = <&chipcommon 17 GPIO_ACTIVE_LOW>; | 
 | 		}; | 
 | 	}; | 
 |  | 
 | 	leds { | 
 | 		compatible = "gpio-leds"; | 
 |  | 
 | 		wps { | 
 | 			label = "bcm53xx:white:wps"; | 
 | 			gpios = <&chipcommon 22 GPIO_ACTIVE_LOW>; | 
 | 		}; | 
 |  | 
 | 		usb2 { | 
 | 			label = "bcm53xx:green:usb2"; | 
 | 			gpios = <&chipcommon 1 GPIO_ACTIVE_LOW>; | 
 | 			trigger-sources = <&ohci_port2>, <&ehci_port2>; | 
 | 			linux,default-trigger = "usbport"; | 
 | 		}; | 
 |  | 
 | 		usb3 { | 
 | 			label = "bcm53xx:green:usb3"; | 
 | 			gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>; | 
 | 			trigger-sources = <&ohci_port1>, <&ehci_port1>, | 
 | 					  <&xhci_port1>; | 
 | 			linux,default-trigger = "usbport"; | 
 | 		}; | 
 |  | 
 | 		power { | 
 | 			label = "bcm53xx:white:power"; | 
 | 			gpios = <&chipcommon 4 GPIO_ACTIVE_HIGH>; | 
 | 		}; | 
 |  | 
 | 		wifi-disabled { | 
 | 			label = "bcm53xx:amber:wifi-disabled"; | 
 | 			gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>; | 
 | 		}; | 
 |  | 
 | 		wifi-enabled { | 
 | 			label = "bcm53xx:white:wifi-enabled"; | 
 | 			gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>; | 
 | 		}; | 
 |  | 
 | 		bluebar1 { | 
 | 			label = "bcm53xx:white:bluebar1"; | 
 | 			gpios = <&chipcommon 11 GPIO_ACTIVE_HIGH>; | 
 | 		}; | 
 |  | 
 | 		bluebar2 { | 
 | 			label = "bcm53xx:white:bluebar2"; | 
 | 			gpios = <&chipcommon 12 GPIO_ACTIVE_HIGH>; | 
 | 		}; | 
 |  | 
 | 		bluebar3 { | 
 | 			label = "bcm53xx:white:bluebar3"; | 
 | 			gpios = <&chipcommon 15 GPIO_ACTIVE_LOW>; | 
 | 		}; | 
 |  | 
 | 		bluebar4 { | 
 | 			label = "bcm53xx:white:bluebar4"; | 
 | 			gpios = <&chipcommon 18 GPIO_ACTIVE_HIGH>; | 
 | 		}; | 
 |  | 
 | 		bluebar5 { | 
 | 			label = "bcm53xx:white:bluebar5"; | 
 | 			gpios = <&chipcommon 19 GPIO_ACTIVE_HIGH>; | 
 | 		}; | 
 |  | 
 | 		bluebar6 { | 
 | 			label = "bcm53xx:white:bluebar6"; | 
 | 			gpios = <&chipcommon 20 GPIO_ACTIVE_HIGH>; | 
 | 		}; | 
 |  | 
 | 		bluebar7 { | 
 | 			label = "bcm53xx:white:bluebar7"; | 
 | 			gpios = <&chipcommon 21 GPIO_ACTIVE_HIGH>; | 
 | 		}; | 
 |  | 
 | 		bluebar8 { | 
 | 			label = "bcm53xx:white:bluebar8"; | 
 | 			gpios = <&chipcommon 8 GPIO_ACTIVE_HIGH>; | 
 | 		}; | 
 | 	}; | 
 |  | 
 | 	mdio-bus-mux { | 
 | 		/* BIT(9) = 1 => external mdio */ | 
 | 		mdio_ext: mdio@200 { | 
 | 			reg = <0x200>; | 
 | 			#address-cells = <1>; | 
 | 			#size-cells = <0>; | 
 | 		}; | 
 | 	}; | 
 |  | 
 | 	mdio-mii-mux { | 
 | 		compatible = "mdio-mux-mmioreg"; | 
 | 		mdio-parent-bus = <&mdio_ext>; | 
 | 		#address-cells = <1>; | 
 | 		#size-cells = <0>; | 
 | 		reg = <0x1800c1c0 0x4>; | 
 |  | 
 | 		/* BIT(6) = mdc, BIT(7) = mdio */ | 
 | 		mux-mask = <0xc0>; | 
 |  | 
 | 		mdio-mii@0 { | 
 | 			/* Enable MII function */ | 
 | 			reg = <0x0>; | 
 | 			#address-cells = <1>; | 
 | 			#size-cells = <0>; | 
 |  | 
 | 			switch@0  { | 
 | 				compatible = "brcm,bcm53125"; | 
 | 				#address-cells = <1>; | 
 | 				#size-cells = <0>; | 
 | 				reset-gpios = <&chipcommon 10 GPIO_ACTIVE_LOW>; | 
 | 				reset-names = "robo_reset"; | 
 | 				reg = <0>; | 
 | 				dsa,member = <1 0>; | 
 |  | 
 | 				ports { | 
 | 					#address-cells = <1>; | 
 | 					#size-cells = <0>; | 
 |  | 
 | 					port@0 { | 
 | 						reg = <0>; | 
 | 						label = "lan1"; | 
 | 					}; | 
 |  | 
 | 					port@1 { | 
 | 						reg = <1>; | 
 | 						label = "lan5"; | 
 | 					}; | 
 |  | 
 | 					port@2 { | 
 | 						reg = <2>; | 
 | 						label = "lan2"; | 
 | 					}; | 
 |  | 
 | 					port@3 { | 
 | 						reg = <3>; | 
 | 						label = "lan6"; | 
 | 					}; | 
 |  | 
 | 					port@4 { | 
 | 						reg = <4>; | 
 | 						label = "lan3"; | 
 | 					}; | 
 |  | 
 | 					sw1_p8: port@8 { | 
 | 						reg = <8>; | 
 | 						ethernet = <&sw0_p0>; | 
 | 						label = "cpu"; | 
 |  | 
 | 						fixed-link { | 
 | 							speed = <1000>; | 
 | 							full-duplex; | 
 | 						}; | 
 | 					}; | 
 | 				}; | 
 | 			}; | 
 | 		}; | 
 | 	}; | 
 | }; | 
 |  | 
 | &usb2 { | 
 | 	vcc-gpio = <&chipcommon 13 GPIO_ACTIVE_HIGH>; | 
 | }; | 
 |  | 
 | &usb3 { | 
 | 	vcc-gpio = <&chipcommon 14 GPIO_ACTIVE_HIGH>; | 
 | }; | 
 |  | 
 | &srab { | 
 | 	compatible = "brcm,bcm53012-srab", "brcm,bcm5301x-srab"; | 
 | 	status = "okay"; | 
 | 	dsa,member = <0 0>; | 
 |  | 
 | 	ports { | 
 | 		#address-cells = <1>; | 
 | 		#size-cells = <0>; | 
 |  | 
 | 		port@1 { | 
 | 			reg = <1>; | 
 | 			label = "lan7"; | 
 | 		}; | 
 |  | 
 | 		port@2 { | 
 | 			reg = <2>; | 
 | 			label = "lan4"; | 
 | 		}; | 
 |  | 
 | 		port@3 { | 
 | 			reg = <3>; | 
 | 			label = "lan8"; | 
 | 		}; | 
 |  | 
 | 		port@4 { | 
 | 			reg = <4>; | 
 | 			label = "wan"; | 
 | 		}; | 
 |  | 
 | 		port@8 { | 
 | 			reg = <8>; | 
 | 			ethernet = <&gmac2>; | 
 | 			label = "cpu"; | 
 |  | 
 | 			fixed-link { | 
 | 				speed = <1000>; | 
 | 				full-duplex; | 
 | 			}; | 
 | 		}; | 
 |  | 
 | 		sw0_p0: port@0 { | 
 | 			reg = <0>; | 
 | 			label = "extsw"; | 
 |  | 
 | 			fixed-link { | 
 | 				speed = <1000>; | 
 | 				full-duplex; | 
 | 			}; | 
 | 		}; | 
 | 	}; | 
 | }; | 
 |  | 
 | &usb3_phy { | 
 | 	status = "okay"; | 
 | }; |