1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2/* 3 * Device Tree file for Marvell Armada 370 Reference Design board 4 * (RD-88F6710-A1) 5 * 6 * Copied from arch/arm/boot/dts/armada-370-db.dts 7 * 8 * Copyright (C) 2013 Florian Fainelli <florian@openwrt.org> 9 * 10 * Note: this Device Tree assumes that the bootloader has remapped the 11 * internal registers to 0xf1000000 (instead of the default 12 * 0xd0000000). The 0xf1000000 is the default used by the recent, 13 * DT-capable, U-Boot bootloaders provided by Marvell. Some earlier 14 * boards were delivered with an older version of the bootloader that 15 * left internal registers mapped at 0xd0000000. If you are in this 16 * situation, you should either update your bootloader (preferred 17 * solution) or the below Device Tree should be adjusted. 18 */ 19 20/dts-v1/; 21#include <dt-bindings/input/input.h> 22#include <dt-bindings/interrupt-controller/irq.h> 23#include <dt-bindings/gpio/gpio.h> 24#include "armada-370.dtsi" 25 26/ { 27 model = "Marvell Armada 370 Reference Design"; 28 compatible = "marvell,a370-rd", "marvell,armada370", "marvell,armada-370-xp"; 29 30 chosen { 31 stdout-path = "serial0:115200n8"; 32 }; 33 34 memory@0 { 35 device_type = "memory"; 36 reg = <0x00000000 0x20000000>; /* 512 MB */ 37 }; 38 39 soc { 40 ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000 41 MBUS_ID(0x01, 0xe0) 0 0xfff00000 0x100000 42 MBUS_ID(0x09, 0x01) 0 0xf1100000 0x10000>; 43 44 internal-regs { 45 serial@12000 { 46 status = "okay"; 47 }; 48 sata@a0000 { 49 nr-ports = <2>; 50 status = "okay"; 51 }; 52 53 ethernet@70000 { 54 status = "okay"; 55 phy = <&phy0>; 56 phy-mode = "sgmii"; 57 }; 58 ethernet@74000 { 59 pinctrl-0 = <&ge1_rgmii_pins>; 60 pinctrl-names = "default"; 61 status = "okay"; 62 phy-mode = "rgmii-id"; 63 fixed-link { 64 speed = <1000>; 65 full-duplex; 66 }; 67 }; 68 69 mvsdio@d4000 { 70 pinctrl-0 = <&sdio_pins1>; 71 pinctrl-names = "default"; 72 status = "okay"; 73 /* No CD or WP GPIOs */ 74 broken-cd; 75 }; 76 77 usb@50000 { 78 status = "okay"; 79 }; 80 81 usb@51000 { 82 status = "okay"; 83 }; 84 85 gpio-keys { 86 compatible = "gpio-keys"; 87 button { 88 label = "Software Button"; 89 linux,code = <KEY_POWER>; 90 gpios = <&gpio0 6 GPIO_ACTIVE_LOW>; 91 }; 92 }; 93 94 gpio-fan { 95 compatible = "gpio-fan"; 96 gpios = <&gpio0 8 GPIO_ACTIVE_HIGH>; 97 gpio-fan,speed-map = <0 0 3000 1>; 98 pinctrl-0 = <&fan_pins>; 99 pinctrl-names = "default"; 100 }; 101 102 gpio_leds { 103 compatible = "gpio-leds"; 104 pinctrl-names = "default"; 105 pinctrl-0 = <&led_pins>; 106 107 sw_led { 108 label = "370rd:green:sw"; 109 gpios = <&gpio1 0 GPIO_ACTIVE_LOW>; 110 default-state = "keep"; 111 }; 112 }; 113 }; 114 }; 115}; 116 117&pciec { 118 status = "okay"; 119 120 /* Internal mini-PCIe connector */ 121 pcie@1,0 { 122 /* Port 0, Lane 0 */ 123 status = "okay"; 124 }; 125 126 /* Internal mini-PCIe connector */ 127 pcie@2,0 { 128 /* Port 1, Lane 0 */ 129 status = "okay"; 130 }; 131}; 132 133&mdio { 134 pinctrl-0 = <&mdio_pins>; 135 pinctrl-names = "default"; 136 phy0: ethernet-phy@0 { 137 reg = <0>; 138 }; 139 140 switch: switch@10 { 141 compatible = "marvell,mv88e6085"; 142 #address-cells = <1>; 143 #size-cells = <0>; 144 reg = <0x10>; 145 interrupt-controller; 146 #interrupt-cells = <2>; 147 148 ports { 149 #address-cells = <1>; 150 #size-cells = <0>; 151 152 port@0 { 153 reg = <0>; 154 label = "lan0"; 155 }; 156 157 port@1 { 158 reg = <1>; 159 label = "lan1"; 160 }; 161 162 port@2 { 163 reg = <2>; 164 label = "lan2"; 165 }; 166 167 port@3 { 168 reg = <3>; 169 label = "lan3"; 170 }; 171 172 port@5 { 173 reg = <5>; 174 label = "cpu"; 175 ethernet = <ð1>; 176 fixed-link { 177 speed = <1000>; 178 full-duplex; 179 }; 180 }; 181 }; 182 183 mdio { 184 #address-cells = <1>; 185 #size-cells = <0>; 186 187 switchphy0: switchphy@0 { 188 reg = <0>; 189 interrupt-parent = <&switch>; 190 interrupts = <0 IRQ_TYPE_LEVEL_HIGH>; 191 }; 192 193 switchphy1: switchphy@1 { 194 reg = <1>; 195 interrupt-parent = <&switch>; 196 interrupts = <1 IRQ_TYPE_LEVEL_HIGH>; 197 }; 198 199 switchphy2: switchphy@2 { 200 reg = <2>; 201 interrupt-parent = <&switch>; 202 interrupts = <2 IRQ_TYPE_LEVEL_HIGH>; 203 }; 204 205 switchphy3: switchphy@3 { 206 reg = <3>; 207 interrupt-parent = <&switch>; 208 interrupts = <3 IRQ_TYPE_LEVEL_HIGH>; 209 }; 210 }; 211 }; 212}; 213 214 215&pinctrl { 216 fan_pins: fan-pins { 217 marvell,pins = "mpp8"; 218 marvell,function = "gpio"; 219 }; 220 221 led_pins: led-pins { 222 marvell,pins = "mpp32"; 223 marvell,function = "gpio"; 224 }; 225}; 226 227&nand_controller { 228 status = "okay"; 229 230 nand@0 { 231 reg = <0>; 232 label = "pxa3xx_nand-0"; 233 nand-rb = <0>; 234 marvell,nand-keep-config; 235 nand-on-flash-bbt; 236 237 partitions { 238 compatible = "fixed-partitions"; 239 #address-cells = <1>; 240 #size-cells = <1>; 241 242 partition@0 { 243 label = "U-Boot"; 244 reg = <0 0x800000>; 245 }; 246 partition@800000 { 247 label = "Linux"; 248 reg = <0x800000 0x800000>; 249 }; 250 partition@1000000 { 251 label = "Filesystem"; 252 reg = <0x1000000 0x3f000000>; 253 }; 254 }; 255 }; 256}; 257