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