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