1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Copyright (C) 2014 Claudio Leite <leitec@staticky.com> 4 * 5 */ 6 7/dts-v1/; 8 9#include "kirkwood.dtsi" 10#include "kirkwood-6281.dtsi" 11 12/ { 13 model = "D-Link DIR-665"; 14 compatible = "dlink,dir-665", "marvell,kirkwood-88f6281", "marvell,kirkwood"; 15 16 memory { 17 device_type = "memory"; 18 reg = <0x00000000 0x8000000>; /* 128 MB */ 19 }; 20 21 chosen { 22 bootargs = "console=ttyS0,115200n8 earlyprintk"; 23 stdout-path = &uart0; 24 }; 25 26 ocp@f1000000 { 27 pinctrl: pin-controller@10000 { 28 pinctrl-0 =< &pmx_led_usb 29 &pmx_led_internet_blue 30 &pmx_led_internet_amber 31 &pmx_led_5g &pmx_led_status_blue 32 &pmx_led_wps &pmx_led_status_amber 33 &pmx_led_24g 34 &pmx_btn_restart &pmx_btn_wps>; 35 pinctrl-names = "default"; 36 37 pmx_led_usb: pmx-led-usb { 38 marvell,pins = "mpp12"; 39 marvell,function = "gpio"; 40 }; 41 pmx_led_internet_blue: pmx-led-internet-blue { 42 marvell,pins = "mpp42"; 43 marvell,function = "gpio"; 44 }; 45 pmx_led_internet_amber: pmx-led-internet-amber { 46 marvell,pins = "mpp43"; 47 marvell,function = "gpio"; 48 }; 49 pmx_led_5g: pmx-led-5g { 50 marvell,pins = "mpp44"; 51 marvell,function = "gpio"; 52 }; 53 pmx_led_status_blue: pmx-led-status-blue { 54 marvell,pins = "mpp45"; 55 marvell,function = "gpio"; 56 }; 57 pmx_led_wps: pmx-led-wps { 58 marvell,pins = "mpp47"; 59 marvell,function = "gpio"; 60 }; 61 pmx_led_status_amber: pmx-led-status-amber { 62 marvell,pins = "mpp48"; 63 marvell,function = "gpio"; 64 }; 65 pmx_led_24g: pmx-led-24g { 66 marvell,pins = "mpp49"; 67 marvell,function = "gpio"; 68 }; 69 pmx_btn_restart: pmx-btn-restart { 70 marvell,pins = "mpp28"; 71 marvell,function = "gpio"; 72 }; 73 pmx_btn_wps: pmx-btn-wps { 74 marvell,pins = "mpp46"; 75 marvell,function = "gpio"; 76 }; 77 }; 78 79 spi@10600 { 80 status = "okay"; 81 flash@0 { 82 #address-cells = <1>; 83 #size-cells = <1>; 84 compatible = "mxicy,mx25l12805d", "jedec,spi-nor"; 85 spi-max-frequency = <50000000>; 86 reg = <0>; 87 88 partition@0 { 89 label = "uboot"; 90 reg = <0x0 0x30000>; 91 read-only; 92 }; 93 94 partition@30000 { 95 label = "nvram"; 96 reg = <0x30000 0x10000>; 97 read-only; 98 }; 99 100 partition@40000 { 101 label = "kernel"; 102 reg = <0x40000 0x180000>; 103 }; 104 105 partition@1c0000 { 106 label = "rootfs"; 107 reg = <0x1c0000 0xe00000>; 108 }; 109 110 cal_data: partition@fc0000 { 111 label = "cal_data"; 112 reg = <0xfc0000 0x10000>; 113 read-only; 114 }; 115 116 partition@fd0000 { 117 label = "lang_pack"; 118 reg = <0xfd0000 0x30000>; 119 read-only; 120 }; 121 }; 122 }; 123 124 serial@12000 { 125 status = "okay"; 126 }; 127 128 i2c@11000 { 129 status = "okay"; 130 }; 131 132 ehci@50000 { 133 status = "okay"; 134 }; 135 }; 136 137 gpio-leds { 138 compatible = "gpio-leds"; 139 140 blue-usb { 141 label = "dir665:blue:usb"; 142 gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>; 143 }; 144 blue-internet { 145 /* Can only be turned on if the Internet 146 * Ethernet port has Link 147 */ 148 label = "dir665:blue:internet"; 149 gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; 150 }; 151 amber-internet { 152 label = "dir665:amber:internet"; 153 gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>; 154 }; 155 blue-wifi5g { 156 label = "dir665:blue:5g"; 157 gpios = <&gpio1 12 GPIO_ACTIVE_LOW>; 158 }; 159 blue-status { 160 label = "dir665:blue:status"; 161 gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>; 162 }; 163 blue-wps { 164 label = "dir665:blue:wps"; 165 gpios = <&gpio1 15 GPIO_ACTIVE_HIGH>; 166 }; 167 amber-status { 168 label = "dir665:amber:status"; 169 gpios = <&gpio1 16 GPIO_ACTIVE_HIGH>; 170 }; 171 blue-24g { 172 label = "dir665:blue:24g"; 173 gpios = <&gpio1 17 GPIO_ACTIVE_LOW>; 174 }; 175 }; 176 177 gpio-keys { 178 compatible = "gpio-keys"; 179 180 button-reset { 181 label = "reset"; 182 linux,code = <KEY_RESTART>; 183 gpios = <&gpio0 28 GPIO_ACTIVE_LOW>; 184 }; 185 button-wps { 186 label = "wps"; 187 linux,code = <KEY_WPS_BUTTON>; 188 gpios = <&gpio1 14 GPIO_ACTIVE_LOW>; 189 }; 190 }; 191}; 192 193&mdio { 194 status = "okay"; 195 196 switch@0 { 197 compatible = "marvell,mv88e6085"; 198 #address-cells = <1>; 199 #size-cells = <0>; 200 reg = <0>; 201 202 ports { 203 #address-cells = <1>; 204 #size-cells = <0>; 205 206 port@0 { 207 reg = <0>; 208 label = "lan4"; 209 }; 210 211 port@1 { 212 reg = <1>; 213 label = "lan3"; 214 }; 215 216 port@2 { 217 reg = <2>; 218 label = "lan2"; 219 }; 220 221 port@3 { 222 reg = <3>; 223 label = "lan1"; 224 }; 225 226 port@4 { 227 reg = <4>; 228 label = "wan"; 229 }; 230 231 port@6 { 232 reg = <6>; 233 phy-mode = "rgmii-id"; 234 ethernet = <ð0port>; 235 fixed-link { 236 speed = <1000>; 237 full-duplex; 238 }; 239 }; 240 }; 241 }; 242}; 243 244/* eth0 is connected to a Marvell 88E6171 switch, without a PHY. So set 245 * fixed speed and duplex. */ 246ð0 { 247 status = "okay"; 248 249 ethernet0-port@0 { 250 speed = <1000>; 251 duplex = <1>; 252 phy-mode = "rgmii"; 253 }; 254}; 255 256/* eth1 is connected to the switch as well. However DSA only supports a 257 * single CPU port. So leave this port disabled to avoid confusion. */ 258 259ð1 { 260 status = "disabled"; 261}; 262 263/* There is no battery on the boards, so the RTC does not keep time 264 * when there is no power, making it useless. */ 265&rtc { 266 status = "disabled"; 267}; 268 269&pciec { 270 status = "okay"; 271}; 272 273&pcie0 { 274 status = "okay"; 275}; 276