Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: dts: NSP: Add DT files for Meraki MX65 series

MX65 & MX65W Hardware info:
- CPU: Broadcom BCM58625 Cortex A9 @ 1200Mhz
- RAM: 2 GB (4 x 4Gb SK Hynix H5TC4G83CFR)
- Storage: 1 GB (Micron MT29F8G08ABACA)
- Networking: BCM58625 switch (2x 1GbE ports)
2x Qualcomm QCA8337 switches (10x 1GbE ports total)
- PSE: Broadcom BCM59111KMLG connected to LAN ports 11 & 12
- USB: 1x USB2.0
- Serial: Internal header
- WLAN(MX65W Only): 2x Broadcom BCM43520KMLG on the PCI bus.

Note that a driver and firmware image for the BCM59111 PSE has been
released under GPL, but this is not present in the kernel.

Signed-off-by: Matthew Hagan <mnhagan88@gmail.com>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>

authored by

Matthew Hagan and committed by
Florian Fainelli
af413758 d50a0923

+337
+2
arch/arm/boot/dts/Makefile
··· 161 161 bcm958625-meraki-mx64-a0.dtb \ 162 162 bcm958625-meraki-mx64w.dtb \ 163 163 bcm958625-meraki-mx64w-a0.dtb \ 164 + bcm958625-meraki-mx65.dtb \ 165 + bcm958625-meraki-mx65w.dtb \ 164 166 bcm958625hr.dtb \ 165 167 bcm988312hr.dtb \ 166 168 bcm958625k.dtb
+279
arch/arm/boot/dts/bcm958625-meraki-alamo.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0-or-later OR MIT 2 + /* 3 + * Device Tree Bindings for Cisco Meraki MX65 series (Alamo). 4 + * 5 + * Copyright (C) 2020-2021 Matthew Hagan <mnhagan88@gmail.com> 6 + */ 7 + 8 + #include "bcm958625-meraki-mx6x-common.dtsi" 9 + 10 + / { 11 + keys { 12 + compatible = "gpio-keys-polled"; 13 + autorepeat; 14 + poll-interval = <20>; 15 + 16 + reset { 17 + label = "reset"; 18 + linux,code = <KEY_RESTART>; 19 + gpios = <&gpioa 8 GPIO_ACTIVE_LOW>; 20 + }; 21 + }; 22 + 23 + leds { 24 + compatible = "gpio-leds"; 25 + 26 + led-0 { 27 + /* green:wan1-left */ 28 + function = LED_FUNCTION_ACTIVITY; 29 + function-enumerator = <0>; 30 + color = <LED_COLOR_ID_GREEN>; 31 + gpios = <&gpioa 25 GPIO_ACTIVE_LOW>; 32 + }; 33 + 34 + led-1 { 35 + /* green:wan1-right */ 36 + function = LED_FUNCTION_ACTIVITY; 37 + function-enumerator = <1>; 38 + color = <LED_COLOR_ID_GREEN>; 39 + gpios = <&gpioa 24 GPIO_ACTIVE_LOW>; 40 + }; 41 + 42 + led-2 { 43 + /* green:wan2-left */ 44 + function = LED_FUNCTION_ACTIVITY; 45 + function-enumerator = <2>; 46 + color = <LED_COLOR_ID_GREEN>; 47 + gpios = <&gpioa 27 GPIO_ACTIVE_LOW>; 48 + }; 49 + 50 + led-3 { 51 + /* green:wan2-right */ 52 + function = LED_FUNCTION_ACTIVITY; 53 + function-enumerator = <3>; 54 + color = <LED_COLOR_ID_GREEN>; 55 + gpios = <&gpioa 26 GPIO_ACTIVE_LOW>; 56 + }; 57 + 58 + led-4 { 59 + /* amber:power */ 60 + function = LED_FUNCTION_POWER; 61 + color = <LED_COLOR_ID_AMBER>; 62 + gpios = <&gpioa 3 GPIO_ACTIVE_HIGH>; 63 + default-state = "on"; 64 + }; 65 + 66 + led-5 { 67 + /* white:status */ 68 + function = LED_FUNCTION_STATUS; 69 + color = <LED_COLOR_ID_WHITE>; 70 + gpios = <&gpioa 31 GPIO_ACTIVE_HIGH>; 71 + }; 72 + }; 73 + 74 + mdio-mii-mux { 75 + compatible = "mdio-mux-mmioreg"; 76 + reg = <0x1803f1c0 0x4>; 77 + mux-mask = <0x2000>; 78 + mdio-parent-bus = <&mdio_ext>; 79 + #address-cells = <1>; 80 + #size-cells = <0>; 81 + 82 + mdio@0 { 83 + reg = <0x0>; 84 + #address-cells = <1>; 85 + #size-cells = <0>; 86 + 87 + phy_port6: phy@0 { 88 + reg = <0>; 89 + }; 90 + 91 + phy_port7: phy@1 { 92 + reg = <1>; 93 + }; 94 + 95 + phy_port8: phy@2 { 96 + reg = <2>; 97 + }; 98 + 99 + phy_port9: phy@3 { 100 + reg = <3>; 101 + }; 102 + 103 + phy_port10: phy@4 { 104 + reg = <4>; 105 + }; 106 + 107 + switch@10 { 108 + compatible = "qca,qca8337"; 109 + reg = <0x10>; 110 + dsa,member = <1 0>; 111 + 112 + ports { 113 + #address-cells = <1>; 114 + #size-cells = <0>; 115 + port@0 { 116 + reg = <0>; 117 + ethernet = <&sgmii1>; 118 + phy-mode = "sgmii"; 119 + fixed-link { 120 + speed = <1000>; 121 + full-duplex; 122 + }; 123 + }; 124 + 125 + port@1 { 126 + reg = <1>; 127 + label = "lan8"; 128 + phy-handle = <&phy_port6>; 129 + }; 130 + 131 + port@2 { 132 + reg = <2>; 133 + label = "lan9"; 134 + phy-handle = <&phy_port7>; 135 + }; 136 + 137 + port@3 { 138 + reg = <3>; 139 + label = "lan10"; 140 + phy-handle = <&phy_port8>; 141 + }; 142 + 143 + port@4 { 144 + reg = <4>; 145 + label = "lan11"; 146 + phy-handle = <&phy_port9>; 147 + }; 148 + 149 + port@5 { 150 + reg = <5>; 151 + label = "lan12"; 152 + phy-handle = <&phy_port10>; 153 + }; 154 + }; 155 + }; 156 + }; 157 + 158 + mdio-mii@2000 { 159 + reg = <0x2000>; 160 + #address-cells = <1>; 161 + #size-cells = <0>; 162 + 163 + phy_port1: phy@0 { 164 + reg = <0>; 165 + }; 166 + 167 + phy_port2: phy@1 { 168 + reg = <1>; 169 + }; 170 + 171 + phy_port3: phy@2 { 172 + reg = <2>; 173 + }; 174 + 175 + phy_port4: phy@3 { 176 + reg = <3>; 177 + }; 178 + 179 + phy_port5: phy@4 { 180 + reg = <4>; 181 + }; 182 + 183 + switch@10 { 184 + compatible = "qca,qca8337"; 185 + reg = <0x10>; 186 + dsa,member = <2 0>; 187 + 188 + ports { 189 + #address-cells = <1>; 190 + #size-cells = <0>; 191 + port@0 { 192 + reg = <0>; 193 + ethernet = <&sgmii0>; 194 + phy-mode = "sgmii"; 195 + fixed-link { 196 + speed = <1000>; 197 + full-duplex; 198 + }; 199 + }; 200 + 201 + port@1 { 202 + reg = <1>; 203 + label = "lan3"; 204 + phy-handle = <&phy_port1>; 205 + }; 206 + 207 + port@2 { 208 + reg = <2>; 209 + label = "lan4"; 210 + phy-handle = <&phy_port2>; 211 + }; 212 + 213 + port@3 { 214 + reg = <3>; 215 + label = "lan5"; 216 + phy-handle = <&phy_port3>; 217 + }; 218 + 219 + port@4 { 220 + reg = <4>; 221 + label = "lan6"; 222 + phy-handle = <&phy_port4>; 223 + }; 224 + 225 + port@5 { 226 + reg = <5>; 227 + label = "lan7"; 228 + phy-handle = <&phy_port5>; 229 + }; 230 + }; 231 + }; 232 + }; 233 + }; 234 + }; 235 + 236 + &srab { 237 + compatible = "brcm,bcm58625-srab", "brcm,nsp-srab"; 238 + status = "okay"; 239 + dsa,member = <0 0>; 240 + 241 + ports { 242 + port@0 { 243 + label = "wan1"; 244 + reg = <0>; 245 + }; 246 + 247 + port@1 { 248 + label = "wan2"; 249 + reg = <1>; 250 + }; 251 + 252 + sgmii0: port@4 { 253 + label = "sw0"; 254 + reg = <4>; 255 + fixed-link { 256 + speed = <1000>; 257 + full-duplex; 258 + }; 259 + }; 260 + 261 + sgmii1: port@5 { 262 + label = "sw1"; 263 + reg = <5>; 264 + fixed-link { 265 + speed = <1000>; 266 + full-duplex; 267 + }; 268 + }; 269 + 270 + port@8 { 271 + ethernet = <&amac2>; 272 + reg = <8>; 273 + fixed-link { 274 + speed = <1000>; 275 + full-duplex; 276 + }; 277 + }; 278 + }; 279 + };
+24
arch/arm/boot/dts/bcm958625-meraki-mx65.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0-or-later OR MIT 2 + /* 3 + * Device Tree Bindings for Cisco Meraki MX65. 4 + * 5 + * Copyright (C) 2020-2021 Matthew Hagan <mnhagan88@gmail.com> 6 + */ 7 + 8 + /dts-v1/; 9 + 10 + #include "bcm958625-meraki-alamo.dtsi" 11 + 12 + / { 13 + model = "Cisco Meraki MX65"; 14 + compatible = "meraki,mx65", "brcm,bcm58625", "brcm,nsp"; 15 + 16 + chosen { 17 + stdout-path = "serial0:115200n8"; 18 + }; 19 + 20 + memory@60000000 { 21 + device_type = "memory"; 22 + reg = <0x60000000 0x80000000>; 23 + }; 24 + };
+32
arch/arm/boot/dts/bcm958625-meraki-mx65w.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0-or-later OR MIT 2 + /* 3 + * Device Tree Bindings for Cisco Meraki MX65W. 4 + * 5 + * Copyright (C) 2020-2021 Matthew Hagan <mnhagan88@gmail.com> 6 + */ 7 + 8 + /dts-v1/; 9 + 10 + #include "bcm958625-meraki-alamo.dtsi" 11 + 12 + / { 13 + model = "Cisco Meraki MX65W"; 14 + compatible = "meraki,mx65w", "brcm,bcm58625", "brcm,nsp"; 15 + 16 + chosen { 17 + stdout-path = "serial0:115200n8"; 18 + }; 19 + 20 + memory@60000000 { 21 + device_type = "memory"; 22 + reg = <0x60000000 0x80000000>; 23 + }; 24 + }; 25 + 26 + &pcie0 { 27 + status = "okay"; 28 + }; 29 + 30 + &pcie1 { 31 + status = "okay"; 32 + };