1// SPDX-License-Identifier: GPL-2.0-or-later OR MIT 2/* Copyright (c) 2021, Marcel Ziswiler <marcel@ziswiler.com> */ 3 4/dts-v1/; 5#include "armada-385.dtsi" 6#include <dt-bindings/gpio/gpio.h> 7#include <dt-bindings/input/input.h> 8 9/ { 10 model = "Netgear GS110EMX"; 11 compatible = "netgear,gs110emx", "marvell,armada380"; 12 13 aliases { 14 /* So that mvebu u-boot can update the MAC addresses */ 15 ethernet1 = ð0; 16 }; 17 18 chosen { 19 stdout-path = "serial0:115200n8"; 20 }; 21 22 gpio-keys { 23 compatible = "gpio-keys"; 24 pinctrl-0 = <&front_button_pins>; 25 pinctrl-names = "default"; 26 27 key-factory-default { 28 label = "Factory Default"; 29 gpios = <&gpio1 6 GPIO_ACTIVE_LOW>; 30 linux,code = <KEY_RESTART>; 31 }; 32 }; 33 34 memory { 35 device_type = "memory"; 36 reg = <0x00000000 0x08000000>; /* 128 MB */ 37 }; 38 39 soc { 40 ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000 41 MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000 42 MBUS_ID(0x09, 0x19) 0 0xf1100000 0x10000 43 MBUS_ID(0x09, 0x15) 0 0xf1110000 0x10000 44 MBUS_ID(0x0c, 0x04) 0 0xf1200000 0x100000>; 45 46 internal-regs { 47 rtc@a3800 { 48 /* 49 * If the rtc doesn't work, run "date reset" 50 * twice in u-boot. 51 */ 52 status = "okay"; 53 }; 54 }; 55 }; 56}; 57 58ð0 { 59 /* ethernet@70000 */ 60 bm,pool-long = <0>; 61 bm,pool-short = <1>; 62 buffer-manager = <&bm>; 63 phy-mode = "rgmii-id"; 64 pinctrl-0 = <&ge0_rgmii_pins>; 65 pinctrl-names = "default"; 66 status = "okay"; 67 68 fixed-link { 69 full-duplex; 70 pause; 71 speed = <1000>; 72 }; 73}; 74 75&mdio { 76 pinctrl-names = "default"; 77 pinctrl-0 = <&mdio_pins>; 78 status = "okay"; 79 80 ethernet-switch@0 { 81 compatible = "marvell,mv88e6190"; 82 #interrupt-cells = <2>; 83 interrupt-controller; 84 interrupt-parent = <&gpio1>; 85 interrupts = <7 IRQ_TYPE_LEVEL_LOW>; 86 pinctrl-0 = <&switch_interrupt_pins>; 87 pinctrl-names = "default"; 88 reg = <0>; 89 90 mdio { 91 #address-cells = <1>; 92 #size-cells = <0>; 93 94 switch0phy1: ethernet-phy@1 { 95 reg = <0x1>; 96 }; 97 98 switch0phy2: ethernet-phy@2 { 99 reg = <0x2>; 100 }; 101 102 switch0phy3: ethernet-phy@3 { 103 reg = <0x3>; 104 }; 105 106 switch0phy4: ethernet-phy@4 { 107 reg = <0x4>; 108 }; 109 110 switch0phy5: ethernet-phy@5 { 111 reg = <0x5>; 112 }; 113 114 switch0phy6: ethernet-phy@6 { 115 reg = <0x6>; 116 }; 117 118 switch0phy7: ethernet-phy@7 { 119 reg = <0x7>; 120 }; 121 122 switch0phy8: ethernet-phy@8 { 123 reg = <0x8>; 124 }; 125 }; 126 127 mdio-external { 128 compatible = "marvell,mv88e6xxx-mdio-external"; 129 #address-cells = <1>; 130 #size-cells = <0>; 131 132 phy1: ethernet-phy@b { 133 reg = <0xb>; 134 compatible = "ethernet-phy-ieee802.3-c45"; 135 }; 136 137 phy2: ethernet-phy@c { 138 reg = <0xc>; 139 compatible = "ethernet-phy-ieee802.3-c45"; 140 }; 141 }; 142 143 ethernet-ports { 144 #address-cells = <1>; 145 #size-cells = <0>; 146 147 ethernet-port@0 { 148 ethernet = <ð0>; 149 phy-mode = "rgmii"; 150 reg = <0>; 151 152 fixed-link { 153 full-duplex; 154 pause; 155 speed = <1000>; 156 }; 157 }; 158 159 ethernet-port@1 { 160 label = "lan1"; 161 phy-handle = <&switch0phy1>; 162 reg = <1>; 163 }; 164 165 ethernet-port@2 { 166 label = "lan2"; 167 phy-handle = <&switch0phy2>; 168 reg = <2>; 169 }; 170 171 ethernet-port@3 { 172 label = "lan3"; 173 phy-handle = <&switch0phy3>; 174 reg = <3>; 175 }; 176 177 ethernet-port@4 { 178 label = "lan4"; 179 phy-handle = <&switch0phy4>; 180 reg = <4>; 181 }; 182 183 ethernet-port@5 { 184 label = "lan5"; 185 phy-handle = <&switch0phy5>; 186 reg = <5>; 187 }; 188 189 ethernet-port@6 { 190 label = "lan6"; 191 phy-handle = <&switch0phy6>; 192 reg = <6>; 193 }; 194 195 ethernet-port@7 { 196 label = "lan7"; 197 phy-handle = <&switch0phy7>; 198 reg = <7>; 199 }; 200 201 ethernet-port@8 { 202 label = "lan8"; 203 phy-handle = <&switch0phy8>; 204 reg = <8>; 205 }; 206 207 ethernet-port@9 { 208 /* 88X3310P external phy */ 209 label = "lan9"; 210 phy-handle = <&phy1>; 211 phy-mode = "xaui"; 212 reg = <9>; 213 }; 214 215 ethernet-port@a { 216 /* 88X3310P external phy */ 217 label = "lan10"; 218 phy-handle = <&phy2>; 219 phy-mode = "xaui"; 220 reg = <0xa>; 221 }; 222 }; 223 }; 224}; 225 226&pinctrl { 227 front_button_pins: front-button-pins { 228 marvell,pins = "mpp38"; 229 marvell,function = "gpio"; 230 }; 231 232 switch_interrupt_pins: switch-interrupt-pins { 233 marvell,pins = "mpp39"; 234 marvell,function = "gpio"; 235 }; 236}; 237 238&spi0 { 239 pinctrl-0 = <&spi0_pins>; 240 pinctrl-names = "default"; 241 status = "okay"; 242 243 flash@0 { 244 #address-cells = <1>; 245 #size-cells = <1>; 246 compatible = "jedec,spi-nor"; 247 reg = <0>; /* Chip select 0 */ 248 spi-max-frequency = <3000000>; 249 250 partitions { 251 compatible = "fixed-partitions"; 252 #address-cells = <1>; 253 #size-cells = <1>; 254 255 partition@0 { 256 label = "boot"; 257 read-only; 258 reg = <0x00000000 0x00100000>; 259 }; 260 261 partition@100000 { 262 label = "env"; 263 reg = <0x00100000 0x00010000>; 264 }; 265 266 partition@200000 { 267 label = "rsv"; 268 reg = <0x00110000 0x00010000>; 269 }; 270 271 partition@300000 { 272 label = "image0"; 273 reg = <0x00120000 0x00900000>; 274 }; 275 276 partition@400000 { 277 label = "config"; 278 reg = <0x00a20000 0x00300000>; 279 }; 280 281 partition@480000 { 282 label = "debug"; 283 reg = <0x00d20000 0x002e0000>; 284 }; 285 }; 286 }; 287}; 288 289&uart0 { 290 pinctrl-0 = <&uart0_pins>; 291 pinctrl-names = "default"; 292 status = "okay"; 293}; 294