linux-3.12/kirkwood-dns320l.dts
author Andreas Boehler <andreas@aboehler.at>
Fri, 05 Jun 2015 09:50:56 +0200
changeset 9 b6ea190b8868
parent 5 bca986acd412
permissions -rw-r--r--
Add copyright notice to DTS file
/dts-v1/;

/*
 * Device Tree file for DLINK DNS-320L
 *
 * Copyright (C) 2014, Andreas Boehler <dev@aboehler.at>
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version
 * 2 of the License, or (at your option) any later version.
 */

#include "kirkwood.dtsi"
#include "kirkwood-6281.dtsi"

/ {
	model = "D-Link DNS-320L";
	compatible = "dlink,dns-320l", "marvell,kirkwood-88f6702", "marvell,kirkwood";

	memory {
		device_type = "memory";
		reg = <0x00000000 0x10000000>;
	};

	chosen {
		bootargs = "console=ttyS0,115200 earlyprintk";
	};

	ocp@f1000000 {
		serial@12000 {
			status = "okay";
		};

		serial@12100 {
			pinctrl-0 = <&pmx_uart1>;
			pinctrl-names = "default";
			status = "okay";
		};

		pinctrl: pinctrl@10000 {

			pinctrl-0 = <&pmx_button_power>;
			pinctrl-names = "default";

			pmx_sata0: pmx-sata0 {
				marvell,pins = "mpp20";
				marvell,function = "sata1";
			};
			pmx_sata1: pmx-sata1 {
				marvell,pins = "mpp21";
				marvell,function = "sata0";
			};
			pmx_led_red_right_hdd: pmx-led-red-right-hdd {
			    marvell,pins = "mpp22";
			    marvell,function = "gpio";
			};
			pmx_led_red_left_hdd: pmx-led-red-left-hdd {
			    marvell,pins = "mpp23";
			    marvell,function = "gpio";
			};
			pmx_power_sata: pmx-power-sata {
			    marvell,pins = "mpp24";
			    marvell,function = "gpio";
			};
			pmx_led_usb_blue: pmx-led-usb-blue {
			    marvell,pins = "mpp25";
			    marvell,function = "gpio";
			};
			pmx_led_usb_orange: pmx-led-usb-orange {
				marvell,pins = "mpp26";
				marvell,function = "gpio";
			};
			pmx_button_usb_copy: pmx-button-usb-copy {
				marvell,pins = "mpp27";
				marvell,function = "gpio";
			};			
			pmx_button_reset: pmx-button-reset {
				marvell,pins = "mpp28";
				marvell,function = "gpio";
			};
			pmx_button_power: pmx-button-power { // I can't get this one to trigger a button press...
				marvell,pins = "mpp29";
				marvell,function = "gpio";
			};						
		};
		sata@80000 {
			status = "okay";
			nr-ports = <2>;
		};

		nand@3000000 {
			pinctrl-0 = <&pmx_nand>;
			pinctrl-names = "default";
			status = "okay";
			chip-delay = <40>;

			partition@0 {
				label = "u-boot";
				reg = <0x0000000 0x100000>;
				read-only;
			};

			partition@100000 {
				label = "uImage";
				reg = <0x0100000 0x500000>;
			};

			partition@600000 {
				label = "ramdisk";
				reg = <0x0600000 0x500000>;
			};

			partition@b00000 {
				label = "image";
				reg = <0x0b00000 0x6400000>;
			};

			partition@6f00000 {
				label = "mini firmware";
				reg = <0x6f00000 0xa00000>;
			};

			partition@7900000 {
				label = "config";
				reg = <0x7900000 0x500000>;
			};
			partition@7e00000 {
			    label = "my-dlink";
			    reg = <0x7e00000 0x200000>;
			};
		};
	};

	gpio_keys {
		compatible = "gpio-keys";
		pinctrl-0 = <&pmx_button_reset &pmx_button_usb_copy>;
		pinctrl-names = "default";
		#address-cells = <1>;
		#size-cells = <0>;

		button@1 {
			label = "Reset push button";
			linux,code = <0x198>;
			gpios = <&gpio0 28 1>;
		};
		button@2 {
			label = "USB unmount button";
			linux,code = <161>;
			gpios = <&gpio0 27 1>;
		};
	};

	gpio-leds {
		compatible = "gpio-leds";
		pinctrl-0 = <&pmx_led_usb_blue &pmx_led_usb_orange
			     &pmx_led_red_left_hdd &pmx_led_red_right_hdd>;
		pinctrl-names = "default";

		blue-usb {
			label = "dns320l:blue:usb";
			gpios = <&gpio0 25 0>; 
		};
		orange-l_hdd {
			label = "dns320l:orange:l_hdd";
			gpios = <&gpio0 22 0>; 
		};
		orange-r_hdd {
			label = "dns320l:orange:r_hdd";
			gpios = <&gpio0 23 0>; 
		};
		orange-usb {
			label = "dns320l:orange:usb";
			gpios = <&gpio0 26 0>; 
		};
	};

	regulators {
		compatible = "simple-bus";
		#address-cells = <1>;
		#size-cells = <0>;
		pinctrl-0 = <&pmx_power_sata>;
		pinctrl-names = "default";

		sata_power: regulator@1 {
			compatible = "regulator-fixed";
			reg = <1>;
			regulator-name = "SATA Power";
			regulator-min-microvolt = <5000000>;
			regulator-max-microvolt = <5000000>;
			enable-active-high;
			regulator-always-on;
			regulator-boot-on;
			gpio = <&gpio1 24 0>;
		};
	};
};

&mdio {
	status = "okay";

	ethphy0: ethernet-phy@0 {
		device_type = "ethernet-phy";
		reg = <0>;
	};
};

&eth0 {
	status = "okay";
	ethernet0-port@0 {
		phy-handle = <&ethphy0>;
	};
};