dd5dc02e67
The DIR665 has an 8 port Ethernet Switch, a Marvell mv88e6171. Add a DSA node in DT, to instantiate DSA support for the 4 back panel ports, the Internet port, and the port to the CPU which is connected to eth0. Signed-off-by: Andrew Lunn <andrew@lunn.ch> Link: https://lkml.kernel.org/r/1414793613-11798-3-git-send-email-andrew@lunn.ch Signed-off-by: Jason Cooper <jason@lakedaemon.net>
279 lines
5.2 KiB
Plaintext
279 lines
5.2 KiB
Plaintext
/*
|
|
* 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";
|
|
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";
|
|
};
|