/*
* Copyright (C) 2014 Claudio Leite <leitec@staticky.com>
*
* This file is licensed under the terms of the GNU General Public
* License version 2. This program is licensed "as is" without any
* warranty of any kind, whether express or implied.
*/
/dts-v1/;
#include "kirkwood.dtsi"
#include "kirkwood-6281.dtsi"
/ {
model = "D-Link DIR-665";
compatible = "dlink,dir-665", "marvell,kirkwood-88f6281", "marvell,kirkwood";
memory {
device_type = "memory";
reg = <0x00000000 0x8000000>; /* 128 MB */
};
chosen {
bootargs = "console=ttyS0,115200n8 earlyprintk";
stdout-path = &uart0;
};
mbus {
pcie-controller {
status = "okay";
pcie@1,0 {
status = "okay";
};
};
};
ocp@f1000000 {
pinctrl: pin-controller@10000 {
pinctrl-0 =< &pmx_led_usb
&pmx_led_internet_blue
&pmx_led_internet_amber
&pmx_led_5g &pmx_led_status_blue
&pmx_led_wps &pmx_led_status_amber
&pmx_led_24g
&pmx_btn_restart &pmx_btn_wps>;
pinctrl-names = "default";
pmx_led_usb: pmx-led-usb {
marvell,pins = "mpp12";
marvell,function = "gpio";
};
pmx_led_internet_blue: pmx-led-internet-blue {
marvell,pins = "mpp42";
marvell,function = "gpio";
};
pmx_led_internet_amber: pmx-led-internet-amber {
marvell,pins = "mpp43";
marvell,function = "gpio";
};
pmx_led_5g: pmx-led-5g {
marvell,pins = "mpp44";
marvell,function = "gpio";
};
pmx_led_status_blue: pmx-led-status-blue {
marvell,pins = "mpp45";
marvell,function = "gpio";
};
pmx_led_wps: pmx-led-wps {
marvell,pins = "mpp47";
marvell,function = "gpio";
};
pmx_led_status_amber: pmx-led-status-amber {
marvell,pins = "mpp48";
marvell,function = "gpio";
};
pmx_led_24g: pmx-led-24g {
marvell,pins = "mpp49";
marvell,function = "gpio";
};
pmx_btn_restart: pmx-btn-restart {
marvell,pins = "mpp28";
marvell,function = "gpio";
};
pmx_btn_wps: pmx-btn-wps {
marvell,pins = "mpp46";
marvell,function = "gpio";
};
};
spi@10600 {
status = "okay";
m25p80@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "mxicy,mx25l12805d", "jedec,spi-nor";
spi-max-frequency = <50000000>;
reg = <0>;
partition@0 {
label = "uboot";
reg = <0x0 0x30000>;
read-only;
};
partition@30000 {
label = "nvram";
reg = <0x30000 0x10000>;
read-only;
};
partition@40000 {
label = "kernel";
reg = <0x40000 0x180000>;
};
partition@1c0000 {
label = "rootfs";
reg = <0x1c0000 0xe00000>;
};
cal_data: partition@fc0000 {
label = "cal_data";
reg = <0xfc0000 0x10000>;
read-only;
};
partition@fd0000 {
label = "lang_pack";
reg = <0xfd0000 0x30000>;
read-only;
};
};
};
serial@12000 {
status = "okay";
};
i2c@11000 {
status = "okay";
};
ehci@50000 {
status = "okay";
};
};
gpio-leds {
compatible = "gpio-leds";
blue-usb {
label = "dir665:blue:usb";
gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
};
blue-internet {
/* Can only be turned on if the Internet
* Ethernet port has Link
*/
label = "dir665:blue:internet";
gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
};
amber-internet {
label = "dir665:amber:internet";
gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>;
};
blue-wifi5g {
label = "dir665:blue:5g";
gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
};
blue-status {
label = "dir665:blue:status";
gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
};
blue-wps {
label = "dir665:blue:wps";
gpios = <&gpio1 15 GPIO_ACTIVE_HIGH>;
};
amber-status {
label = "dir665:amber:status";
gpios = <&gpio1 16 GPIO_ACTIVE_HIGH>;
};
blue-24g {
label = "dir665:blue:24g";
gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
};
};
gpio-keys {
compatible = "gpio-keys";
#address-cells = <1>;
#size-cells = <0>;
reset {
label = "reset";
linux,code = <KEY_RESTART>;
gpios = <&gpio0 28 GPIO_ACTIVE_LOW>;
};
wps {
label = "wps";
linux,code = <KEY_WPS_BUTTON>;
gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
};
};
dsa@0 {
compatible = "marvell,dsa";
#address-cells = <2>;
#size-cells = <0>;
dsa,ethernet = <ð0port>;
dsa,mii-bus = <&mdio>;
switch@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0 0>; /* MDIO address 0, switch 0 in tree */
port@0 {
reg = <0>;
label = "lan4";
};
port@1 {
reg = <1>;
label = "lan3";
};
port@2 {
reg = <2>;
label = "lan2";
};
port@3 {
reg = <3>;
label = "lan1";
};
port@4 {
reg = <4>;
label = "wan";
};
port@6 {
reg = <6>;
label = "cpu";
};
};
};
};
&mdio {
status = "okay";
};
/* eth0 is connected to a Marvell 88E6171 switch, without a PHY. So set
* fixed speed and duplex. */
ð0 {
status = "okay";
ethernet0-port@0 {
speed = <1000>;
duplex = <1>;
};
};
/* eth1 is connected to the switch as well. However DSA only supports a
* single CPU port. So leave this port disabled to avoid confusion. */
ð1 {
status = "disabled";
};
/* There is no battery on the boards, so the RTC does not keep time
* when there is no power, making it useless. */
&rtc {
status = "disabled";
};