kirkwood: convert DTS patches into plain DTS files
Move DTS files newly created by patch files to files directory. This will make these files much more maintainable. Patching the kernel Makefile is unnecessary, as the DTS files specified in DEVICE_DTS will be compiled by OpenWrt buildroot anyway. Signed-off-by: Sungbo Eo <mans0n@gorani.run> Acked-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
This commit is contained in:
		
				
					committed by
					
						
						Adrian Schmutzler
					
				
			
			
				
	
			
			
			
						parent
						
							ebc090e420
						
					
				
				
					commit
					16965a0f3f
				
			@@ -0,0 +1,124 @@
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
 | 
			
		||||
#include "kirkwood.dtsi"
 | 
			
		||||
#include "kirkwood-6281.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "Seagate GoFlex Home";
 | 
			
		||||
	compatible = "seagate,goflexhome", "marvell,kirkwood-88f6281", "marvell,kirkwood";
 | 
			
		||||
 | 
			
		||||
	aliases {
 | 
			
		||||
		led-boot = &led_health;
 | 
			
		||||
		led-failsafe = &led_fault;
 | 
			
		||||
		led-running = &led_health;
 | 
			
		||||
		led-upgrade = &led_fault;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	memory {
 | 
			
		||||
		device_type = "memory";
 | 
			
		||||
		reg = <0x00000000 0x8000000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	chosen {
 | 
			
		||||
		bootargs = "console=ttyS0,115200n8 earlyprintk root=/dev/sda1 rootdelay=10";
 | 
			
		||||
		stdout-path = &uart0;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	ocp@f1000000 {
 | 
			
		||||
		pinctrl: pin-controller@10000 {
 | 
			
		||||
			pmx_usb_power_enable: pmx-usb-power-enable {
 | 
			
		||||
				marvell,pins = "mpp29";
 | 
			
		||||
				marvell,function = "gpio";
 | 
			
		||||
			};
 | 
			
		||||
			pmx_led_white: pmx-led-white {
 | 
			
		||||
				marvell,pins = "mpp40";
 | 
			
		||||
				marvell,function = "gpio";
 | 
			
		||||
			};
 | 
			
		||||
			pmx_led_green: pmx-led_green {
 | 
			
		||||
				marvell,pins = "mpp46";
 | 
			
		||||
				marvell,function = "gpio";
 | 
			
		||||
			};
 | 
			
		||||
			pmx_led_orange: pmx-led-orange {
 | 
			
		||||
				marvell,pins = "mpp47";
 | 
			
		||||
				marvell,function = "gpio";
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
		serial@12000 {
 | 
			
		||||
			status = "ok";
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		sata@80000 {
 | 
			
		||||
			status = "okay";
 | 
			
		||||
			nr-ports = <2>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
	};
 | 
			
		||||
	gpio-leds {
 | 
			
		||||
		compatible = "gpio-leds";
 | 
			
		||||
 | 
			
		||||
		led_health: health {
 | 
			
		||||
			label = "status:green:health";
 | 
			
		||||
			gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
 | 
			
		||||
			default-state = "on";
 | 
			
		||||
		};
 | 
			
		||||
		led_fault: fault {
 | 
			
		||||
			label = "status:orange:fault";
 | 
			
		||||
			gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		};
 | 
			
		||||
		misc {
 | 
			
		||||
			label = "status:white:misc";
 | 
			
		||||
			gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
 | 
			
		||||
			linux,default-trigger = "disk-activity";
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
	regulators {
 | 
			
		||||
		compatible = "simple-bus";
 | 
			
		||||
		#address-cells = <1>;
 | 
			
		||||
		#size-cells = <0>;
 | 
			
		||||
		pinctrl-0 = <&pmx_usb_power_enable>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
 | 
			
		||||
		usb_power: regulator@1 {
 | 
			
		||||
			compatible = "regulator-fixed";
 | 
			
		||||
			reg = <1>;
 | 
			
		||||
			regulator-name = "USB Power";
 | 
			
		||||
			regulator-min-microvolt = <5000000>;
 | 
			
		||||
			regulator-max-microvolt = <5000000>;
 | 
			
		||||
			enable-active-high;
 | 
			
		||||
			regulator-always-on;
 | 
			
		||||
			regulator-boot-on;
 | 
			
		||||
			gpio = <&gpio0 29 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&nand {
 | 
			
		||||
	chip-delay = <40>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	partition@0 {
 | 
			
		||||
		label = "u-boot";
 | 
			
		||||
		reg = <0x0000000 0x100000>;
 | 
			
		||||
		read-only;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	partition@100000 {
 | 
			
		||||
		label = "ubi";
 | 
			
		||||
		reg = <0x100000 0x0ff00000>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&mdio {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	ethphy0: ethernet-phy@0 {
 | 
			
		||||
		reg = <0>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
ð0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	ethernet0-port@0 {
 | 
			
		||||
		phy-handle = <ðphy0>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
@@ -0,0 +1,250 @@
 | 
			
		||||
/*
 | 
			
		||||
 * kirkwood-linksys-audi.dts - Device Tree file for Linksys EA3500
 | 
			
		||||
 *
 | 
			
		||||
 * (c) 2013 Jonas Gorski <jogo@openwrt.org>
 | 
			
		||||
 * (c) 2013 Deutsche Telekom Innovation Laboratories
 | 
			
		||||
 * (c) 2014 Luka Perkov <luka@openwrt.org>
 | 
			
		||||
 * (c) 2014 Dan Walters <dan@walters.io>
 | 
			
		||||
 *
 | 
			
		||||
 * 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-6282.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "Linksys Audi (EA3500)";
 | 
			
		||||
	compatible = "linksys,audi", "marvell,kirkwood-88f6282", "marvell,kirkwood";
 | 
			
		||||
 | 
			
		||||
	memory {
 | 
			
		||||
		device_type = "memory";
 | 
			
		||||
		reg = <0x00000000 0x4000000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	aliases {
 | 
			
		||||
		led-boot = &led_power;
 | 
			
		||||
		led-failsafe = &led_power;
 | 
			
		||||
		led-running = &led_power;
 | 
			
		||||
		led-upgrade = &led_power;
 | 
			
		||||
		serial0 = &uart0;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	chosen {
 | 
			
		||||
		stdout-path = "serial0:115200n8";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	gpio_keys {
 | 
			
		||||
		compatible = "gpio-keys";
 | 
			
		||||
		#address-cells = <1>;
 | 
			
		||||
		#size-cells = <0>;
 | 
			
		||||
		pinctrl-0 = < &pmx_btn_wps &pmx_btn_reset >;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
 | 
			
		||||
		wps {
 | 
			
		||||
			label = "WPS Button";
 | 
			
		||||
			linux,code = <KEY_WPS_BUTTON>;
 | 
			
		||||
			gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		reset {
 | 
			
		||||
			label = "Reset Button";
 | 
			
		||||
			linux,code = <KEY_RESTART>;
 | 
			
		||||
			gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	gpio-leds {
 | 
			
		||||
		compatible = "gpio-leds";
 | 
			
		||||
		pinctrl-0 = < &pmx_led_green_power >;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
 | 
			
		||||
		led_power: power {
 | 
			
		||||
			label = "audi:green:power";
 | 
			
		||||
			gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
			default-state = "on";
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	mvsw61xx {
 | 
			
		||||
		compatible = "marvell,88e6171";
 | 
			
		||||
		status = "okay";
 | 
			
		||||
		reg = <0x10>;
 | 
			
		||||
 | 
			
		||||
		mii-bus = <&mdio>;
 | 
			
		||||
		cpu-port-0 = <5>;
 | 
			
		||||
		cpu-port-1 = <6>;
 | 
			
		||||
		is-indirect;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	dsa {
 | 
			
		||||
		compatible = "marvell,dsa";
 | 
			
		||||
		#address-cells = <2>;
 | 
			
		||||
		#size-cells = <0>;
 | 
			
		||||
 | 
			
		||||
		dsa,ethernet = <ð0port>;
 | 
			
		||||
		dsa,mii-bus = <&mdio>;
 | 
			
		||||
 | 
			
		||||
		switch@16,0 {
 | 
			
		||||
			#address-cells = <1>;
 | 
			
		||||
			#size-cells = <0>;
 | 
			
		||||
			reg = <16 0>;	/* MDIO address 16, switch 0 in tree */
 | 
			
		||||
 | 
			
		||||
			port@0 {
 | 
			
		||||
				reg = <0>;
 | 
			
		||||
				label = "ethernet1";
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			port@1 {
 | 
			
		||||
				reg = <1>;
 | 
			
		||||
				label = "ethernet2";
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			port@2 {
 | 
			
		||||
				reg = <2>;
 | 
			
		||||
				label = "ethernet3";
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			port@3 {
 | 
			
		||||
				reg = <3>;
 | 
			
		||||
				label = "ethernet4";
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			port@4 {
 | 
			
		||||
				reg = <4>;
 | 
			
		||||
				label = "internet";
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			port@5 {
 | 
			
		||||
				reg = <5>;
 | 
			
		||||
				label = "cpu";
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	pmx_led_green_power: pmx-led-green-power {
 | 
			
		||||
		marvell,pins = "mpp7";
 | 
			
		||||
		marvell,function = "gpo";
 | 
			
		||||
	};
 | 
			
		||||
	pmx_btn_wps: pmx-btn-wps {
 | 
			
		||||
		marvell,pins = "mpp47";
 | 
			
		||||
		marvell,function = "gpio";
 | 
			
		||||
	};
 | 
			
		||||
	pmx_btn_reset: pmx-btn-reset {
 | 
			
		||||
		marvell,pins = "mpp48";
 | 
			
		||||
		marvell,function = "gpio";
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&nand {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	pinctrl-0 = <&pmx_nand>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
 | 
			
		||||
	partitions {
 | 
			
		||||
		compatible = "fixed-partitions";
 | 
			
		||||
		#address-cells = <1>;
 | 
			
		||||
		#size-cells = <1>;
 | 
			
		||||
 | 
			
		||||
		partition@0 {
 | 
			
		||||
			label = "u-boot";
 | 
			
		||||
			reg = <0x0 0x80000>;
 | 
			
		||||
			read-only;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		partition@80000 {
 | 
			
		||||
			label = "u_env";
 | 
			
		||||
			reg = <0x80000 0x4000>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		partition@84000 {
 | 
			
		||||
			label = "s_env";
 | 
			
		||||
			reg = <0x84000 0x4000>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		partition@200000 {
 | 
			
		||||
			label = "kernel1";
 | 
			
		||||
			reg = <0x200000 0x290000>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		partition@490000 {
 | 
			
		||||
			label = "rootfs1";
 | 
			
		||||
			reg = <0x490000 0x1170000>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		partition@1600000 {
 | 
			
		||||
			label = "kernel2";
 | 
			
		||||
			reg = <0x1600000 0x290000>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		partition@1890000 {
 | 
			
		||||
			label = "rootfs2";
 | 
			
		||||
			reg = <0x1890000 0x1170000>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		partition@2a00000 {
 | 
			
		||||
			label = "syscfg";
 | 
			
		||||
			reg = <0x2a00000  0x1600000>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		partition@88000 {
 | 
			
		||||
			label = "unused";
 | 
			
		||||
			reg = <0x88000 0x178000>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pciec {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&mdio {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart0 {
 | 
			
		||||
	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 at port 6. However DSA only supports a
 | 
			
		||||
 * single CPU port. Upstream uses DSA so they disable this port to avoid confusion.
 | 
			
		||||
 */
 | 
			
		||||
ð1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	ethernet1-port@0 {
 | 
			
		||||
		speed = <1000>;
 | 
			
		||||
		duplex = <1>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* There is no battery on the board, so the RTC does not keep
 | 
			
		||||
 * time when there is no power, making it useless.
 | 
			
		||||
 */
 | 
			
		||||
&rtc {
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
@@ -0,0 +1,132 @@
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
 | 
			
		||||
#include "kirkwood-nsa3x0-common.dtsi"
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * There are at least two different NSA310 designs. This variant has
 | 
			
		||||
 * a red/green USB Led (same as nsa310) and a lm85 temp/fan controller.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "ZyXEL NSA310b";
 | 
			
		||||
	compatible = "zyxel,nsa310b", "zyxel,nsa310", "marvell,kirkwood-88f6281", "marvell,kirkwood";
 | 
			
		||||
 | 
			
		||||
	aliases {
 | 
			
		||||
		led-boot = &led_green_sys;
 | 
			
		||||
		led-failsafe = &led_red_sys;
 | 
			
		||||
		led-running = &led_green_sys;
 | 
			
		||||
		led-upgrade = &led_red_sys;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	memory {
 | 
			
		||||
		device_type = "memory";
 | 
			
		||||
		reg = <0x00000000 0x10000000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	chosen {
 | 
			
		||||
		bootargs = "console=ttyS0,115200";
 | 
			
		||||
		stdout-path = &uart0;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	ocp@f1000000 {
 | 
			
		||||
		pinctrl: pin-controller@10000 {
 | 
			
		||||
			pinctrl-names = "default";
 | 
			
		||||
 | 
			
		||||
			pmx_led_esata_green: pmx-led-esata-green {
 | 
			
		||||
				marvell,pins = "mpp12";
 | 
			
		||||
				marvell,function = "gpio";
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			pmx_led_esata_red: pmx-led-esata-red {
 | 
			
		||||
				marvell,pins = "mpp13";
 | 
			
		||||
				marvell,function = "gpio";
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			pmx_led_usb_green: pmx-led-usb-green {
 | 
			
		||||
				marvell,pins = "mpp15";
 | 
			
		||||
				marvell,function = "gpio";
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			pmx_led_usb_red: pmx-led-usb-red {
 | 
			
		||||
				marvell,pins = "mpp16";
 | 
			
		||||
				marvell,function = "gpio";
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			pmx_led_sys_green: pmx-led-sys-green {
 | 
			
		||||
				marvell,pins = "mpp28";
 | 
			
		||||
				marvell,function = "gpio";
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			pmx_led_sys_red: pmx-led-sys-red {
 | 
			
		||||
				marvell,pins = "mpp29";
 | 
			
		||||
				marvell,function = "gpio";
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			pmx_led_hdd_green: pmx-led-hdd-green {
 | 
			
		||||
				marvell,pins = "mpp41";
 | 
			
		||||
				marvell,function = "gpio";
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			pmx_led_hdd_red: pmx-led-hdd-red {
 | 
			
		||||
				marvell,pins = "mpp42";
 | 
			
		||||
				marvell,function = "gpio";
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		i2c@11000 {
 | 
			
		||||
			status = "okay";
 | 
			
		||||
 | 
			
		||||
			lm85: lm85@2e {
 | 
			
		||||
				compatible = "national,lm85";
 | 
			
		||||
				reg = <0x2e>;
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	gpio-leds {
 | 
			
		||||
		compatible = "gpio-leds";
 | 
			
		||||
 | 
			
		||||
		led_green_sys: green-sys {
 | 
			
		||||
			label = "nsa310:green:sys";
 | 
			
		||||
			gpios = <&gpio0 28 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
			default-state = "on";
 | 
			
		||||
		};
 | 
			
		||||
		led_red_sys: red-sys {
 | 
			
		||||
			label = "nsa310:red:sys";
 | 
			
		||||
			gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		};
 | 
			
		||||
		green-hdd {
 | 
			
		||||
			label = "nsa310:green:hdd";
 | 
			
		||||
			gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		};
 | 
			
		||||
		red-hdd {
 | 
			
		||||
			label = "nsa310:red:hdd";
 | 
			
		||||
			gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		};
 | 
			
		||||
		green-esata {
 | 
			
		||||
			label = "nsa310:green:esata";
 | 
			
		||||
			gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		};
 | 
			
		||||
		red-esata {
 | 
			
		||||
			label = "nsa310:red:esata";
 | 
			
		||||
			gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		};
 | 
			
		||||
		green-usb {
 | 
			
		||||
			label = "nsa310:green:usb";
 | 
			
		||||
			gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		};
 | 
			
		||||
		red-usb {
 | 
			
		||||
			label = "nsa310:red:usb";
 | 
			
		||||
			gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		};
 | 
			
		||||
		green-copy {
 | 
			
		||||
			label = "nsa310:green:copy";
 | 
			
		||||
			gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		};
 | 
			
		||||
		red-copy {
 | 
			
		||||
			label = "nsa310:red:copy";
 | 
			
		||||
			gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
@@ -0,0 +1,165 @@
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
 | 
			
		||||
#include "kirkwood.dtsi"
 | 
			
		||||
#include "kirkwood-6282.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "Cisco Systems ON100";
 | 
			
		||||
	compatible = "cisco,on100", "marvell,kirkwood-88f6282", "marvell,kirkwood";
 | 
			
		||||
 | 
			
		||||
	memory {
 | 
			
		||||
		device_type = "memory";
 | 
			
		||||
		reg = <0x00000000 0x20000000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	aliases {
 | 
			
		||||
		led-boot = &led_health_green;
 | 
			
		||||
		led-failsafe = &led_health_red;
 | 
			
		||||
		led-running = &led_health_green;
 | 
			
		||||
		led-upgrade = &led_health_red;
 | 
			
		||||
		serial0 = &uart0;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	chosen {
 | 
			
		||||
		bootargs = "console=ttyS0,115200n8 earlyprintk";
 | 
			
		||||
		stdout-path = "serial0:115200n8";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	gpio_keys {
 | 
			
		||||
		compatible = "gpio-keys";
 | 
			
		||||
		#address-cells = <1>;
 | 
			
		||||
		#size-cells = <0>;
 | 
			
		||||
		pinctrl-0 = <&pmx_btn_reset>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
 | 
			
		||||
		button@1 {
 | 
			
		||||
			label = "Reset Button";
 | 
			
		||||
			linux,code = <KEY_RESTART>;
 | 
			
		||||
			gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	gpio-leds {
 | 
			
		||||
		compatible = "gpio-leds";
 | 
			
		||||
		pinctrl-0 = < &pmx_led_health_r &pmx_led_health_g >;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
 | 
			
		||||
		led_health_green: health_green {
 | 
			
		||||
			label = "on100:green:health";
 | 
			
		||||
			gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
 | 
			
		||||
			default-state = "on";
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		led_health_red: health_red {
 | 
			
		||||
			label = "on100:red:health";
 | 
			
		||||
			gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		health2_green {
 | 
			
		||||
			label = "on100:green:health2";
 | 
			
		||||
			gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		health2_red {
 | 
			
		||||
			label = "on100:red:health2";
 | 
			
		||||
			gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
ð0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	ethernet0-port@0 {
 | 
			
		||||
		phy-handle = <ðphy0>;
 | 
			
		||||
		phy-connection-type = "rgmii-id";
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
ð1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	ethernet1-port@0 {
 | 
			
		||||
		phy-handle = <ðphy1>;
 | 
			
		||||
		phy-connection-type = "rgmii-id";
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&mdio {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	ethphy0: ethernet-phy@0 {
 | 
			
		||||
		/* Marvell 88E1121R */
 | 
			
		||||
		compatible = "ethernet-phy-id0141.0cb0",
 | 
			
		||||
			     "ethernet-phy-ieee802.3-c22";
 | 
			
		||||
		reg = <0>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	ethphy1: ethernet-phy@1 {
 | 
			
		||||
		/* Marvell 88E1121R */
 | 
			
		||||
		compatible = "ethernet-phy-id0141.0cb0",
 | 
			
		||||
			     "ethernet-phy-ieee802.3-c22";
 | 
			
		||||
		reg = <1>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&nand {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	partition@0 {
 | 
			
		||||
		label = "u-boot";
 | 
			
		||||
		reg = <0x00000000 0x000a0000>;
 | 
			
		||||
		read-only;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	partition@a0000 {
 | 
			
		||||
		label = "u-boot environment";
 | 
			
		||||
		reg = <0x000a0000 0x00020000>;
 | 
			
		||||
		read-only;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	partition@c0000 {
 | 
			
		||||
		label = "kernel";
 | 
			
		||||
		reg = <0x000c0000 0x00540000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	partition@600000 {
 | 
			
		||||
		label = "ubi";
 | 
			
		||||
		reg = <0x00600000 0x1fa00000>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	pmx_led_health_r: pmx-led-health-r {
 | 
			
		||||
		marvell,pins = "mpp45";
 | 
			
		||||
		marvell,function = "gpio";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pmx_led_health_g: pmx-led-health-g {
 | 
			
		||||
		marvell,pins = "mpp44";
 | 
			
		||||
		marvell,function = "gpio";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pmx_led_health2_r: pmx-led-health2-r {
 | 
			
		||||
		marvell,pins = "mpp47";
 | 
			
		||||
		marvell,function = "gpio";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pmx_led_health2_g: pmx-led-health2-g {
 | 
			
		||||
		marvell,pins = "mpp46";
 | 
			
		||||
		marvell,function = "gpio";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pmx_btn_reset: pmx-led-reset {
 | 
			
		||||
		marvell,pins = "mpp31";
 | 
			
		||||
		marvell,function = "gpio";
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdio {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
@@ -0,0 +1,124 @@
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
 | 
			
		||||
#include "kirkwood.dtsi"
 | 
			
		||||
#include "kirkwood-6281.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "Seagate GoFlex Home";
 | 
			
		||||
	compatible = "seagate,goflexhome", "marvell,kirkwood-88f6281", "marvell,kirkwood";
 | 
			
		||||
 | 
			
		||||
	aliases {
 | 
			
		||||
		led-boot = &led_health;
 | 
			
		||||
		led-failsafe = &led_fault;
 | 
			
		||||
		led-running = &led_health;
 | 
			
		||||
		led-upgrade = &led_fault;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	memory@0 {
 | 
			
		||||
		device_type = "memory";
 | 
			
		||||
		reg = <0x00000000 0x8000000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	chosen {
 | 
			
		||||
		bootargs = "console=ttyS0,115200n8 earlyprintk root=/dev/sda1 rootdelay=10";
 | 
			
		||||
		stdout-path = &uart0;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	ocp@f1000000 {
 | 
			
		||||
		pinctrl: pin-controller@10000 {
 | 
			
		||||
			pmx_usb_power_enable: pmx-usb-power-enable {
 | 
			
		||||
				marvell,pins = "mpp29";
 | 
			
		||||
				marvell,function = "gpio";
 | 
			
		||||
			};
 | 
			
		||||
			pmx_led_white: pmx-led-white {
 | 
			
		||||
				marvell,pins = "mpp40";
 | 
			
		||||
				marvell,function = "gpio";
 | 
			
		||||
			};
 | 
			
		||||
			pmx_led_green: pmx-led_green {
 | 
			
		||||
				marvell,pins = "mpp46";
 | 
			
		||||
				marvell,function = "gpio";
 | 
			
		||||
			};
 | 
			
		||||
			pmx_led_orange: pmx-led-orange {
 | 
			
		||||
				marvell,pins = "mpp47";
 | 
			
		||||
				marvell,function = "gpio";
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
		serial@12000 {
 | 
			
		||||
			status = "ok";
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		sata@80000 {
 | 
			
		||||
			status = "okay";
 | 
			
		||||
			nr-ports = <2>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
	};
 | 
			
		||||
	gpio-leds {
 | 
			
		||||
		compatible = "gpio-leds";
 | 
			
		||||
 | 
			
		||||
		led_health: health {
 | 
			
		||||
			label = "status:green:health";
 | 
			
		||||
			gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
 | 
			
		||||
			default-state = "on";
 | 
			
		||||
		};
 | 
			
		||||
		led_fault: fault {
 | 
			
		||||
			label = "status:orange:fault";
 | 
			
		||||
			gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		};
 | 
			
		||||
		misc {
 | 
			
		||||
			label = "status:white:misc";
 | 
			
		||||
			gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
 | 
			
		||||
			linux,default-trigger = "disk-activity";
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
	regulators {
 | 
			
		||||
		compatible = "simple-bus";
 | 
			
		||||
		#address-cells = <1>;
 | 
			
		||||
		#size-cells = <0>;
 | 
			
		||||
		pinctrl-0 = <&pmx_usb_power_enable>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
 | 
			
		||||
		usb_power: regulator@1 {
 | 
			
		||||
			compatible = "regulator-fixed";
 | 
			
		||||
			reg = <1>;
 | 
			
		||||
			regulator-name = "USB Power";
 | 
			
		||||
			regulator-min-microvolt = <5000000>;
 | 
			
		||||
			regulator-max-microvolt = <5000000>;
 | 
			
		||||
			enable-active-high;
 | 
			
		||||
			regulator-always-on;
 | 
			
		||||
			regulator-boot-on;
 | 
			
		||||
			gpio = <&gpio0 29 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&nand {
 | 
			
		||||
	chip-delay = <40>;
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	partition@0 {
 | 
			
		||||
		label = "u-boot";
 | 
			
		||||
		reg = <0x0000000 0x100000>;
 | 
			
		||||
		read-only;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	partition@100000 {
 | 
			
		||||
		label = "ubi";
 | 
			
		||||
		reg = <0x100000 0x0ff00000>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&mdio {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	ethphy0: ethernet-phy@0 {
 | 
			
		||||
		reg = <0>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
ð0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	ethernet0-port@0 {
 | 
			
		||||
		phy-handle = <ðphy0>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
@@ -0,0 +1,251 @@
 | 
			
		||||
// SPDX-License-Identifier: GPL-2.0
 | 
			
		||||
/*
 | 
			
		||||
 * kirkwood-linksys-audi.dts - Device Tree file for Linksys EA3500
 | 
			
		||||
 *
 | 
			
		||||
 * (c) 2013 Jonas Gorski <jogo@openwrt.org>
 | 
			
		||||
 * (c) 2013 Deutsche Telekom Innovation Laboratories
 | 
			
		||||
 * (c) 2014 Luka Perkov <luka@openwrt.org>
 | 
			
		||||
 * (c) 2014 Dan Walters <dan@walters.io>
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
 | 
			
		||||
#include "kirkwood.dtsi"
 | 
			
		||||
#include "kirkwood-6282.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "Linksys Audi (EA3500)";
 | 
			
		||||
	compatible = "linksys,audi", "marvell,kirkwood-88f6282", "marvell,kirkwood";
 | 
			
		||||
 | 
			
		||||
	memory@0 {
 | 
			
		||||
		device_type = "memory";
 | 
			
		||||
		reg = <0x00000000 0x4000000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	aliases {
 | 
			
		||||
		led-boot = &led_power;
 | 
			
		||||
		led-failsafe = &led_power;
 | 
			
		||||
		led-running = &led_power;
 | 
			
		||||
		led-upgrade = &led_power;
 | 
			
		||||
		serial0 = &uart0;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	chosen {
 | 
			
		||||
		stdout-path = "serial0:115200n8";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	gpio_keys {
 | 
			
		||||
		compatible = "gpio-keys";
 | 
			
		||||
		pinctrl-0 = < &pmx_btn_wps &pmx_btn_reset >;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
 | 
			
		||||
		wps {
 | 
			
		||||
			label = "WPS Button";
 | 
			
		||||
			linux,code = <KEY_WPS_BUTTON>;
 | 
			
		||||
			gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		reset {
 | 
			
		||||
			label = "Reset Button";
 | 
			
		||||
			linux,code = <KEY_RESTART>;
 | 
			
		||||
			gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	gpio-leds {
 | 
			
		||||
		compatible = "gpio-leds";
 | 
			
		||||
		pinctrl-0 = < &pmx_led_green_power >;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
 | 
			
		||||
		led_power: power {
 | 
			
		||||
			label = "audi:green:power";
 | 
			
		||||
			gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
			default-state = "on";
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	switches {
 | 
			
		||||
		#address-cells = <1>;
 | 
			
		||||
		#size-cells = <0>;
 | 
			
		||||
 | 
			
		||||
		mvsw61xx@10 {
 | 
			
		||||
			compatible = "marvell,88e6171";
 | 
			
		||||
			status = "okay";
 | 
			
		||||
			reg = <0x10>;
 | 
			
		||||
 | 
			
		||||
			mii-bus = <&mdio>;
 | 
			
		||||
			cpu-port-0 = <5>;
 | 
			
		||||
			cpu-port-1 = <6>;
 | 
			
		||||
			is-indirect;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	dsa {
 | 
			
		||||
		compatible = "marvell,dsa";
 | 
			
		||||
		#address-cells = <2>;
 | 
			
		||||
		#size-cells = <0>;
 | 
			
		||||
 | 
			
		||||
		dsa,ethernet = <ð0port>;
 | 
			
		||||
		dsa,mii-bus = <&mdio>;
 | 
			
		||||
 | 
			
		||||
		switch@16,0 {
 | 
			
		||||
			#address-cells = <1>;
 | 
			
		||||
			#size-cells = <0>;
 | 
			
		||||
			reg = <16 0>;	/* MDIO address 16, switch 0 in tree */
 | 
			
		||||
 | 
			
		||||
			port@0 {
 | 
			
		||||
				reg = <0>;
 | 
			
		||||
				label = "ethernet1";
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			port@1 {
 | 
			
		||||
				reg = <1>;
 | 
			
		||||
				label = "ethernet2";
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			port@2 {
 | 
			
		||||
				reg = <2>;
 | 
			
		||||
				label = "ethernet3";
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			port@3 {
 | 
			
		||||
				reg = <3>;
 | 
			
		||||
				label = "ethernet4";
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			port@4 {
 | 
			
		||||
				reg = <4>;
 | 
			
		||||
				label = "internet";
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			port@5 {
 | 
			
		||||
				reg = <5>;
 | 
			
		||||
				label = "cpu";
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	pmx_led_green_power: pmx-led-green-power {
 | 
			
		||||
		marvell,pins = "mpp7";
 | 
			
		||||
		marvell,function = "gpo";
 | 
			
		||||
	};
 | 
			
		||||
	pmx_btn_wps: pmx-btn-wps {
 | 
			
		||||
		marvell,pins = "mpp47";
 | 
			
		||||
		marvell,function = "gpio";
 | 
			
		||||
	};
 | 
			
		||||
	pmx_btn_reset: pmx-btn-reset {
 | 
			
		||||
		marvell,pins = "mpp48";
 | 
			
		||||
		marvell,function = "gpio";
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&nand {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	pinctrl-0 = <&pmx_nand>;
 | 
			
		||||
	pinctrl-names = "default";
 | 
			
		||||
 | 
			
		||||
	partitions {
 | 
			
		||||
		compatible = "fixed-partitions";
 | 
			
		||||
		#address-cells = <1>;
 | 
			
		||||
		#size-cells = <1>;
 | 
			
		||||
 | 
			
		||||
		partition@0 {
 | 
			
		||||
			label = "u-boot";
 | 
			
		||||
			reg = <0x0 0x80000>;
 | 
			
		||||
			read-only;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		partition@80000 {
 | 
			
		||||
			label = "u_env";
 | 
			
		||||
			reg = <0x80000 0x4000>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		partition@84000 {
 | 
			
		||||
			label = "s_env";
 | 
			
		||||
			reg = <0x84000 0x4000>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		partition@200000 {
 | 
			
		||||
			label = "kernel1";
 | 
			
		||||
			reg = <0x200000 0x290000>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		partition@490000 {
 | 
			
		||||
			label = "rootfs1";
 | 
			
		||||
			reg = <0x490000 0x1170000>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		partition@1600000 {
 | 
			
		||||
			label = "kernel2";
 | 
			
		||||
			reg = <0x1600000 0x290000>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		partition@1890000 {
 | 
			
		||||
			label = "rootfs2";
 | 
			
		||||
			reg = <0x1890000 0x1170000>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		partition@2a00000 {
 | 
			
		||||
			label = "syscfg";
 | 
			
		||||
			reg = <0x2a00000  0x1600000>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		partition@88000 {
 | 
			
		||||
			label = "unused";
 | 
			
		||||
			reg = <0x88000 0x178000>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pciec {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&mdio {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart0 {
 | 
			
		||||
	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 at port 6. However DSA only supports a
 | 
			
		||||
 * single CPU port. Upstream uses DSA so they disable this port to avoid confusion.
 | 
			
		||||
 */
 | 
			
		||||
ð1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	ethernet1-port@0 {
 | 
			
		||||
		speed = <1000>;
 | 
			
		||||
		duplex = <1>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* There is no battery on the board, so the RTC does not keep
 | 
			
		||||
 * time when there is no power, making it useless.
 | 
			
		||||
 */
 | 
			
		||||
&rtc {
 | 
			
		||||
	status = "disabled";
 | 
			
		||||
};
 | 
			
		||||
@@ -0,0 +1,132 @@
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
 | 
			
		||||
#include "kirkwood-nsa3x0-common.dtsi"
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * There are at least two different NSA310 designs. This variant has
 | 
			
		||||
 * a red/green USB Led (same as nsa310) and a lm85 temp/fan controller.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "ZyXEL NSA310b";
 | 
			
		||||
	compatible = "zyxel,nsa310b", "zyxel,nsa310", "marvell,kirkwood-88f6281", "marvell,kirkwood";
 | 
			
		||||
 | 
			
		||||
	aliases {
 | 
			
		||||
		led-boot = &led_green_sys;
 | 
			
		||||
		led-failsafe = &led_red_sys;
 | 
			
		||||
		led-running = &led_green_sys;
 | 
			
		||||
		led-upgrade = &led_red_sys;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	memory@0 {
 | 
			
		||||
		device_type = "memory";
 | 
			
		||||
		reg = <0x00000000 0x10000000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	chosen {
 | 
			
		||||
		bootargs = "console=ttyS0,115200";
 | 
			
		||||
		stdout-path = &uart0;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	ocp@f1000000 {
 | 
			
		||||
		pinctrl: pin-controller@10000 {
 | 
			
		||||
			pinctrl-names = "default";
 | 
			
		||||
 | 
			
		||||
			pmx_led_esata_green: pmx-led-esata-green {
 | 
			
		||||
				marvell,pins = "mpp12";
 | 
			
		||||
				marvell,function = "gpio";
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			pmx_led_esata_red: pmx-led-esata-red {
 | 
			
		||||
				marvell,pins = "mpp13";
 | 
			
		||||
				marvell,function = "gpio";
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			pmx_led_usb_green: pmx-led-usb-green {
 | 
			
		||||
				marvell,pins = "mpp15";
 | 
			
		||||
				marvell,function = "gpio";
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			pmx_led_usb_red: pmx-led-usb-red {
 | 
			
		||||
				marvell,pins = "mpp16";
 | 
			
		||||
				marvell,function = "gpio";
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			pmx_led_sys_green: pmx-led-sys-green {
 | 
			
		||||
				marvell,pins = "mpp28";
 | 
			
		||||
				marvell,function = "gpio";
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			pmx_led_sys_red: pmx-led-sys-red {
 | 
			
		||||
				marvell,pins = "mpp29";
 | 
			
		||||
				marvell,function = "gpio";
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			pmx_led_hdd_green: pmx-led-hdd-green {
 | 
			
		||||
				marvell,pins = "mpp41";
 | 
			
		||||
				marvell,function = "gpio";
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			pmx_led_hdd_red: pmx-led-hdd-red {
 | 
			
		||||
				marvell,pins = "mpp42";
 | 
			
		||||
				marvell,function = "gpio";
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		i2c@11000 {
 | 
			
		||||
			status = "okay";
 | 
			
		||||
 | 
			
		||||
			lm85: lm85@2e {
 | 
			
		||||
				compatible = "national,lm85";
 | 
			
		||||
				reg = <0x2e>;
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	gpio-leds {
 | 
			
		||||
		compatible = "gpio-leds";
 | 
			
		||||
 | 
			
		||||
		led_green_sys: green-sys {
 | 
			
		||||
			label = "nsa310:green:sys";
 | 
			
		||||
			gpios = <&gpio0 28 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
			default-state = "on";
 | 
			
		||||
		};
 | 
			
		||||
		led_red_sys: red-sys {
 | 
			
		||||
			label = "nsa310:red:sys";
 | 
			
		||||
			gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		};
 | 
			
		||||
		green-hdd {
 | 
			
		||||
			label = "nsa310:green:hdd";
 | 
			
		||||
			gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		};
 | 
			
		||||
		red-hdd {
 | 
			
		||||
			label = "nsa310:red:hdd";
 | 
			
		||||
			gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		};
 | 
			
		||||
		green-esata {
 | 
			
		||||
			label = "nsa310:green:esata";
 | 
			
		||||
			gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		};
 | 
			
		||||
		red-esata {
 | 
			
		||||
			label = "nsa310:red:esata";
 | 
			
		||||
			gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		};
 | 
			
		||||
		green-usb {
 | 
			
		||||
			label = "nsa310:green:usb";
 | 
			
		||||
			gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		};
 | 
			
		||||
		red-usb {
 | 
			
		||||
			label = "nsa310:red:usb";
 | 
			
		||||
			gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		};
 | 
			
		||||
		green-copy {
 | 
			
		||||
			label = "nsa310:green:copy";
 | 
			
		||||
			gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		};
 | 
			
		||||
		red-copy {
 | 
			
		||||
			label = "nsa310:red:copy";
 | 
			
		||||
			gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
@@ -0,0 +1,163 @@
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
 | 
			
		||||
#include "kirkwood.dtsi"
 | 
			
		||||
#include "kirkwood-6282.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "Cisco Systems ON100";
 | 
			
		||||
	compatible = "cisco,on100", "marvell,kirkwood-88f6282", "marvell,kirkwood";
 | 
			
		||||
 | 
			
		||||
	memory@0 {
 | 
			
		||||
		device_type = "memory";
 | 
			
		||||
		reg = <0x00000000 0x20000000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	aliases {
 | 
			
		||||
		led-boot = &led_health_green;
 | 
			
		||||
		led-failsafe = &led_health_red;
 | 
			
		||||
		led-running = &led_health_green;
 | 
			
		||||
		led-upgrade = &led_health_red;
 | 
			
		||||
		serial0 = &uart0;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	chosen {
 | 
			
		||||
		bootargs = "console=ttyS0,115200n8 earlyprintk";
 | 
			
		||||
		stdout-path = "serial0:115200n8";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	gpio_keys {
 | 
			
		||||
		compatible = "gpio-keys";
 | 
			
		||||
		pinctrl-0 = <&pmx_btn_reset>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
 | 
			
		||||
		reset {
 | 
			
		||||
			label = "Reset Button";
 | 
			
		||||
			linux,code = <KEY_RESTART>;
 | 
			
		||||
			gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	gpio-leds {
 | 
			
		||||
		compatible = "gpio-leds";
 | 
			
		||||
		pinctrl-0 = < &pmx_led_health_r &pmx_led_health_g >;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
 | 
			
		||||
		led_health_green: health_green {
 | 
			
		||||
			label = "on100:green:health";
 | 
			
		||||
			gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
 | 
			
		||||
			default-state = "on";
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		led_health_red: health_red {
 | 
			
		||||
			label = "on100:red:health";
 | 
			
		||||
			gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		health2_green {
 | 
			
		||||
			label = "on100:green:health2";
 | 
			
		||||
			gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		health2_red {
 | 
			
		||||
			label = "on100:red:health2";
 | 
			
		||||
			gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
ð0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	ethernet0-port@0 {
 | 
			
		||||
		phy-handle = <ðphy0>;
 | 
			
		||||
		phy-connection-type = "rgmii-id";
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
ð1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	ethernet1-port@0 {
 | 
			
		||||
		phy-handle = <ðphy1>;
 | 
			
		||||
		phy-connection-type = "rgmii-id";
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&mdio {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	ethphy0: ethernet-phy@0 {
 | 
			
		||||
		/* Marvell 88E1121R */
 | 
			
		||||
		compatible = "ethernet-phy-id0141.0cb0",
 | 
			
		||||
			     "ethernet-phy-ieee802.3-c22";
 | 
			
		||||
		reg = <0>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	ethphy1: ethernet-phy@1 {
 | 
			
		||||
		/* Marvell 88E1121R */
 | 
			
		||||
		compatible = "ethernet-phy-id0141.0cb0",
 | 
			
		||||
			     "ethernet-phy-ieee802.3-c22";
 | 
			
		||||
		reg = <1>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&nand {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	partition@0 {
 | 
			
		||||
		label = "u-boot";
 | 
			
		||||
		reg = <0x00000000 0x000a0000>;
 | 
			
		||||
		read-only;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	partition@a0000 {
 | 
			
		||||
		label = "u-boot environment";
 | 
			
		||||
		reg = <0x000a0000 0x00020000>;
 | 
			
		||||
		read-only;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	partition@c0000 {
 | 
			
		||||
		label = "kernel";
 | 
			
		||||
		reg = <0x000c0000 0x00540000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	partition@600000 {
 | 
			
		||||
		label = "ubi";
 | 
			
		||||
		reg = <0x00600000 0x1fa00000>;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pinctrl {
 | 
			
		||||
	pmx_led_health_r: pmx-led-health-r {
 | 
			
		||||
		marvell,pins = "mpp45";
 | 
			
		||||
		marvell,function = "gpio";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pmx_led_health_g: pmx-led-health-g {
 | 
			
		||||
		marvell,pins = "mpp44";
 | 
			
		||||
		marvell,function = "gpio";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pmx_led_health2_r: pmx-led-health2-r {
 | 
			
		||||
		marvell,pins = "mpp47";
 | 
			
		||||
		marvell,function = "gpio";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pmx_led_health2_g: pmx-led-health2-g {
 | 
			
		||||
		marvell,pins = "mpp46";
 | 
			
		||||
		marvell,function = "gpio";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pmx_btn_reset: pmx-led-reset {
 | 
			
		||||
		marvell,pins = "mpp31";
 | 
			
		||||
		marvell,function = "gpio";
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&sdio {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
@@ -1,263 +0,0 @@
 | 
			
		||||
--- a/arch/arm/boot/dts/Makefile
 | 
			
		||||
+++ b/arch/arm/boot/dts/Makefile
 | 
			
		||||
@@ -250,6 +250,7 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \
 | 
			
		||||
 	kirkwood-linkstation-lswsxl.dtb \
 | 
			
		||||
 	kirkwood-linkstation-lswvl.dtb \
 | 
			
		||||
 	kirkwood-linkstation-lswxl.dtb \
 | 
			
		||||
+	kirkwood-linksys-audi.dtb \
 | 
			
		||||
 	kirkwood-linksys-viper.dtb \
 | 
			
		||||
 	kirkwood-lschlv2.dtb \
 | 
			
		||||
 	kirkwood-lsxhl.dtb \
 | 
			
		||||
--- /dev/null
 | 
			
		||||
+++ b/arch/arm/boot/dts/kirkwood-linksys-audi.dts
 | 
			
		||||
@@ -0,0 +1,250 @@
 | 
			
		||||
+/*
 | 
			
		||||
+ * kirkwood-linksys-audi.dts - Device Tree file for Linksys EA3500
 | 
			
		||||
+ *
 | 
			
		||||
+ * (c) 2013 Jonas Gorski <jogo@openwrt.org>
 | 
			
		||||
+ * (c) 2013 Deutsche Telekom Innovation Laboratories
 | 
			
		||||
+ * (c) 2014 Luka Perkov <luka@openwrt.org>
 | 
			
		||||
+ * (c) 2014 Dan Walters <dan@walters.io>
 | 
			
		||||
+ *
 | 
			
		||||
+ * 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-6282.dtsi"
 | 
			
		||||
+
 | 
			
		||||
+/ {
 | 
			
		||||
+	model = "Linksys Audi (EA3500)";
 | 
			
		||||
+	compatible = "linksys,audi", "marvell,kirkwood-88f6282", "marvell,kirkwood";
 | 
			
		||||
+
 | 
			
		||||
+	memory {
 | 
			
		||||
+		device_type = "memory";
 | 
			
		||||
+		reg = <0x00000000 0x4000000>;
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	aliases {
 | 
			
		||||
+		led-boot = &led_power;
 | 
			
		||||
+		led-failsafe = &led_power;
 | 
			
		||||
+		led-running = &led_power;
 | 
			
		||||
+		led-upgrade = &led_power;
 | 
			
		||||
+		serial0 = &uart0;
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	chosen {
 | 
			
		||||
+		stdout-path = "serial0:115200n8";
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	gpio_keys {
 | 
			
		||||
+		compatible = "gpio-keys";
 | 
			
		||||
+		#address-cells = <1>;
 | 
			
		||||
+		#size-cells = <0>;
 | 
			
		||||
+		pinctrl-0 = < &pmx_btn_wps &pmx_btn_reset >;
 | 
			
		||||
+		pinctrl-names = "default";
 | 
			
		||||
+
 | 
			
		||||
+		wps {
 | 
			
		||||
+			label = "WPS Button";
 | 
			
		||||
+			linux,code = <KEY_WPS_BUTTON>;
 | 
			
		||||
+			gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
 | 
			
		||||
+		};
 | 
			
		||||
+
 | 
			
		||||
+		reset {
 | 
			
		||||
+			label = "Reset Button";
 | 
			
		||||
+			linux,code = <KEY_RESTART>;
 | 
			
		||||
+			gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
 | 
			
		||||
+		};
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	gpio-leds {
 | 
			
		||||
+		compatible = "gpio-leds";
 | 
			
		||||
+		pinctrl-0 = < &pmx_led_green_power >;
 | 
			
		||||
+		pinctrl-names = "default";
 | 
			
		||||
+
 | 
			
		||||
+		led_power: power {
 | 
			
		||||
+			label = "audi:green:power";
 | 
			
		||||
+			gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
+			default-state = "on";
 | 
			
		||||
+		};
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	mvsw61xx {
 | 
			
		||||
+		compatible = "marvell,88e6171";
 | 
			
		||||
+		status = "okay";
 | 
			
		||||
+		reg = <0x10>;
 | 
			
		||||
+
 | 
			
		||||
+		mii-bus = <&mdio>;
 | 
			
		||||
+		cpu-port-0 = <5>;
 | 
			
		||||
+		cpu-port-1 = <6>;
 | 
			
		||||
+		is-indirect;
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	dsa {
 | 
			
		||||
+		compatible = "marvell,dsa";
 | 
			
		||||
+		#address-cells = <2>;
 | 
			
		||||
+		#size-cells = <0>;
 | 
			
		||||
+
 | 
			
		||||
+		dsa,ethernet = <ð0port>;
 | 
			
		||||
+		dsa,mii-bus = <&mdio>;
 | 
			
		||||
+
 | 
			
		||||
+		switch@16,0 {
 | 
			
		||||
+			#address-cells = <1>;
 | 
			
		||||
+			#size-cells = <0>;
 | 
			
		||||
+			reg = <16 0>;	/* MDIO address 16, switch 0 in tree */
 | 
			
		||||
+
 | 
			
		||||
+			port@0 {
 | 
			
		||||
+				reg = <0>;
 | 
			
		||||
+				label = "ethernet1";
 | 
			
		||||
+			};
 | 
			
		||||
+
 | 
			
		||||
+			port@1 {
 | 
			
		||||
+				reg = <1>;
 | 
			
		||||
+				label = "ethernet2";
 | 
			
		||||
+			};
 | 
			
		||||
+
 | 
			
		||||
+			port@2 {
 | 
			
		||||
+				reg = <2>;
 | 
			
		||||
+				label = "ethernet3";
 | 
			
		||||
+			};
 | 
			
		||||
+
 | 
			
		||||
+			port@3 {
 | 
			
		||||
+				reg = <3>;
 | 
			
		||||
+				label = "ethernet4";
 | 
			
		||||
+			};
 | 
			
		||||
+
 | 
			
		||||
+			port@4 {
 | 
			
		||||
+				reg = <4>;
 | 
			
		||||
+				label = "internet";
 | 
			
		||||
+			};
 | 
			
		||||
+
 | 
			
		||||
+			port@5 {
 | 
			
		||||
+				reg = <5>;
 | 
			
		||||
+				label = "cpu";
 | 
			
		||||
+			};
 | 
			
		||||
+		};
 | 
			
		||||
+	};
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+&pinctrl {
 | 
			
		||||
+	pmx_led_green_power: pmx-led-green-power {
 | 
			
		||||
+		marvell,pins = "mpp7";
 | 
			
		||||
+		marvell,function = "gpo";
 | 
			
		||||
+	};
 | 
			
		||||
+	pmx_btn_wps: pmx-btn-wps {
 | 
			
		||||
+		marvell,pins = "mpp47";
 | 
			
		||||
+		marvell,function = "gpio";
 | 
			
		||||
+	};
 | 
			
		||||
+	pmx_btn_reset: pmx-btn-reset {
 | 
			
		||||
+		marvell,pins = "mpp48";
 | 
			
		||||
+		marvell,function = "gpio";
 | 
			
		||||
+	};
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+&nand {
 | 
			
		||||
+	status = "okay";
 | 
			
		||||
+	pinctrl-0 = <&pmx_nand>;
 | 
			
		||||
+	pinctrl-names = "default";
 | 
			
		||||
+
 | 
			
		||||
+	partitions {
 | 
			
		||||
+		compatible = "fixed-partitions";
 | 
			
		||||
+		#address-cells = <1>;
 | 
			
		||||
+		#size-cells = <1>;
 | 
			
		||||
+
 | 
			
		||||
+		partition@0 {
 | 
			
		||||
+			label = "u-boot";
 | 
			
		||||
+			reg = <0x0 0x80000>;
 | 
			
		||||
+			read-only;
 | 
			
		||||
+		};
 | 
			
		||||
+
 | 
			
		||||
+		partition@80000 {
 | 
			
		||||
+			label = "u_env";
 | 
			
		||||
+			reg = <0x80000 0x4000>;
 | 
			
		||||
+		};
 | 
			
		||||
+
 | 
			
		||||
+		partition@84000 {
 | 
			
		||||
+			label = "s_env";
 | 
			
		||||
+			reg = <0x84000 0x4000>;
 | 
			
		||||
+		};
 | 
			
		||||
+
 | 
			
		||||
+		partition@200000 {
 | 
			
		||||
+			label = "kernel1";
 | 
			
		||||
+			reg = <0x200000 0x290000>;
 | 
			
		||||
+		};
 | 
			
		||||
+
 | 
			
		||||
+		partition@490000 {
 | 
			
		||||
+			label = "rootfs1";
 | 
			
		||||
+			reg = <0x490000 0x1170000>;
 | 
			
		||||
+		};
 | 
			
		||||
+
 | 
			
		||||
+		partition@1600000 {
 | 
			
		||||
+			label = "kernel2";
 | 
			
		||||
+			reg = <0x1600000 0x290000>;
 | 
			
		||||
+		};
 | 
			
		||||
+
 | 
			
		||||
+		partition@1890000 {
 | 
			
		||||
+			label = "rootfs2";
 | 
			
		||||
+			reg = <0x1890000 0x1170000>;
 | 
			
		||||
+		};
 | 
			
		||||
+
 | 
			
		||||
+		partition@2a00000 {
 | 
			
		||||
+			label = "syscfg";
 | 
			
		||||
+			reg = <0x2a00000  0x1600000>;
 | 
			
		||||
+		};
 | 
			
		||||
+
 | 
			
		||||
+		partition@88000 {
 | 
			
		||||
+			label = "unused";
 | 
			
		||||
+			reg = <0x88000 0x178000>;
 | 
			
		||||
+		};
 | 
			
		||||
+
 | 
			
		||||
+	};
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+&pciec {
 | 
			
		||||
+	status = "okay";
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+&pcie0 {
 | 
			
		||||
+	status = "okay";
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+&pcie1 {
 | 
			
		||||
+	status = "okay";
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+&mdio {
 | 
			
		||||
+	status = "okay";
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+&uart0 {
 | 
			
		||||
+	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 at port 6. However DSA only supports a
 | 
			
		||||
+ * single CPU port. Upstream uses DSA so they disable this port to avoid confusion.
 | 
			
		||||
+ */
 | 
			
		||||
+ð1 {
 | 
			
		||||
+	status = "okay";
 | 
			
		||||
+	ethernet1-port@0 {
 | 
			
		||||
+		speed = <1000>;
 | 
			
		||||
+		duplex = <1>;
 | 
			
		||||
+	};
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+/* There is no battery on the board, so the RTC does not keep
 | 
			
		||||
+ * time when there is no power, making it useless.
 | 
			
		||||
+ */
 | 
			
		||||
+&rtc {
 | 
			
		||||
+	status = "disabled";
 | 
			
		||||
+};
 | 
			
		||||
@@ -1,137 +0,0 @@
 | 
			
		||||
--- a/arch/arm/boot/dts/Makefile
 | 
			
		||||
+++ b/arch/arm/boot/dts/Makefile
 | 
			
		||||
@@ -237,6 +237,7 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \
 | 
			
		||||
 	kirkwood-ds411.dtb \
 | 
			
		||||
 	kirkwood-ds411j.dtb \
 | 
			
		||||
 	kirkwood-ds411slim.dtb \
 | 
			
		||||
+	kirkwood-goflexhome.dtb \
 | 
			
		||||
 	kirkwood-goflexnet.dtb \
 | 
			
		||||
 	kirkwood-guruplug-server-plus.dtb \
 | 
			
		||||
 	kirkwood-ib62x0.dtb \
 | 
			
		||||
--- /dev/null
 | 
			
		||||
+++ b/arch/arm/boot/dts/kirkwood-goflexhome.dts
 | 
			
		||||
@@ -0,0 +1,124 @@
 | 
			
		||||
+/dts-v1/;
 | 
			
		||||
+
 | 
			
		||||
+#include "kirkwood.dtsi"
 | 
			
		||||
+#include "kirkwood-6281.dtsi"
 | 
			
		||||
+
 | 
			
		||||
+/ {
 | 
			
		||||
+	model = "Seagate GoFlex Home";
 | 
			
		||||
+	compatible = "seagate,goflexhome", "marvell,kirkwood-88f6281", "marvell,kirkwood";
 | 
			
		||||
+
 | 
			
		||||
+	aliases {
 | 
			
		||||
+		led-boot = &led_health;
 | 
			
		||||
+		led-failsafe = &led_fault;
 | 
			
		||||
+		led-running = &led_health;
 | 
			
		||||
+		led-upgrade = &led_fault;
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	memory {
 | 
			
		||||
+		device_type = "memory";
 | 
			
		||||
+		reg = <0x00000000 0x8000000>;
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	chosen {
 | 
			
		||||
+		bootargs = "console=ttyS0,115200n8 earlyprintk root=/dev/sda1 rootdelay=10";
 | 
			
		||||
+		stdout-path = &uart0;
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	ocp@f1000000 {
 | 
			
		||||
+		pinctrl: pin-controller@10000 {
 | 
			
		||||
+			pmx_usb_power_enable: pmx-usb-power-enable {
 | 
			
		||||
+				marvell,pins = "mpp29";
 | 
			
		||||
+				marvell,function = "gpio";
 | 
			
		||||
+			};
 | 
			
		||||
+			pmx_led_white: pmx-led-white {
 | 
			
		||||
+				marvell,pins = "mpp40";
 | 
			
		||||
+				marvell,function = "gpio";
 | 
			
		||||
+			};
 | 
			
		||||
+			pmx_led_green: pmx-led_green {
 | 
			
		||||
+				marvell,pins = "mpp46";
 | 
			
		||||
+				marvell,function = "gpio";
 | 
			
		||||
+			};
 | 
			
		||||
+			pmx_led_orange: pmx-led-orange {
 | 
			
		||||
+				marvell,pins = "mpp47";
 | 
			
		||||
+				marvell,function = "gpio";
 | 
			
		||||
+			};
 | 
			
		||||
+		};
 | 
			
		||||
+		serial@12000 {
 | 
			
		||||
+			status = "ok";
 | 
			
		||||
+		};
 | 
			
		||||
+
 | 
			
		||||
+		sata@80000 {
 | 
			
		||||
+			status = "okay";
 | 
			
		||||
+			nr-ports = <2>;
 | 
			
		||||
+		};
 | 
			
		||||
+
 | 
			
		||||
+	};
 | 
			
		||||
+	gpio-leds {
 | 
			
		||||
+		compatible = "gpio-leds";
 | 
			
		||||
+
 | 
			
		||||
+		led_health: health {
 | 
			
		||||
+			label = "status:green:health";
 | 
			
		||||
+			gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
 | 
			
		||||
+			default-state = "on";
 | 
			
		||||
+		};
 | 
			
		||||
+		led_fault: fault {
 | 
			
		||||
+			label = "status:orange:fault";
 | 
			
		||||
+			gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
 | 
			
		||||
+		};
 | 
			
		||||
+		misc {
 | 
			
		||||
+			label = "status:white:misc";
 | 
			
		||||
+			gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
 | 
			
		||||
+			linux,default-trigger = "disk-activity";
 | 
			
		||||
+		};
 | 
			
		||||
+	};
 | 
			
		||||
+	regulators {
 | 
			
		||||
+		compatible = "simple-bus";
 | 
			
		||||
+		#address-cells = <1>;
 | 
			
		||||
+		#size-cells = <0>;
 | 
			
		||||
+		pinctrl-0 = <&pmx_usb_power_enable>;
 | 
			
		||||
+		pinctrl-names = "default";
 | 
			
		||||
+
 | 
			
		||||
+		usb_power: regulator@1 {
 | 
			
		||||
+			compatible = "regulator-fixed";
 | 
			
		||||
+			reg = <1>;
 | 
			
		||||
+			regulator-name = "USB Power";
 | 
			
		||||
+			regulator-min-microvolt = <5000000>;
 | 
			
		||||
+			regulator-max-microvolt = <5000000>;
 | 
			
		||||
+			enable-active-high;
 | 
			
		||||
+			regulator-always-on;
 | 
			
		||||
+			regulator-boot-on;
 | 
			
		||||
+			gpio = <&gpio0 29 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
+		};
 | 
			
		||||
+	};
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+&nand {
 | 
			
		||||
+	chip-delay = <40>;
 | 
			
		||||
+	status = "okay";
 | 
			
		||||
+
 | 
			
		||||
+	partition@0 {
 | 
			
		||||
+		label = "u-boot";
 | 
			
		||||
+		reg = <0x0000000 0x100000>;
 | 
			
		||||
+		read-only;
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	partition@100000 {
 | 
			
		||||
+		label = "ubi";
 | 
			
		||||
+		reg = <0x100000 0x0ff00000>;
 | 
			
		||||
+	};
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+&mdio {
 | 
			
		||||
+	status = "okay";
 | 
			
		||||
+
 | 
			
		||||
+	ethphy0: ethernet-phy@0 {
 | 
			
		||||
+		reg = <0>;
 | 
			
		||||
+	};
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+ð0 {
 | 
			
		||||
+	status = "okay";
 | 
			
		||||
+	ethernet0-port@0 {
 | 
			
		||||
+		phy-handle = <ðphy0>;
 | 
			
		||||
+	};
 | 
			
		||||
+};
 | 
			
		||||
@@ -1,155 +0,0 @@
 | 
			
		||||
kirkwood: add nsa310b dtb, a zyxel nsa310 variant
 | 
			
		||||
 | 
			
		||||
add support to a nsa310 variant with red/green usb led
 | 
			
		||||
and lm85 temp/fan controller
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Alberto Bursi <alberto.bursi@outlook.it>
 | 
			
		||||
 | 
			
		||||
NOTE: this patch can be upstreamed as-is, LEDE-specific
 | 
			
		||||
		nand partitions are set in another patch
 | 
			
		||||
 | 
			
		||||
--- a/arch/arm/boot/dts/Makefile
 | 
			
		||||
+++ b/arch/arm/boot/dts/Makefile
 | 
			
		||||
@@ -268,6 +268,7 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \
 | 
			
		||||
 	kirkwood-ns2mini.dtb \
 | 
			
		||||
 	kirkwood-nsa310.dtb \
 | 
			
		||||
 	kirkwood-nsa310a.dtb \
 | 
			
		||||
+	kirkwood-nsa310b.dtb \
 | 
			
		||||
 	kirkwood-nsa320.dtb \
 | 
			
		||||
 	kirkwood-nsa325.dtb \
 | 
			
		||||
 	kirkwood-openblocks_a6.dtb \
 | 
			
		||||
--- /dev/null
 | 
			
		||||
+++ b/arch/arm/boot/dts/kirkwood-nsa310b.dts
 | 
			
		||||
@@ -0,0 +1,132 @@
 | 
			
		||||
+/dts-v1/;
 | 
			
		||||
+
 | 
			
		||||
+#include "kirkwood-nsa3x0-common.dtsi"
 | 
			
		||||
+
 | 
			
		||||
+/*
 | 
			
		||||
+ * There are at least two different NSA310 designs. This variant has
 | 
			
		||||
+ * a red/green USB Led (same as nsa310) and a lm85 temp/fan controller.
 | 
			
		||||
+ */
 | 
			
		||||
+
 | 
			
		||||
+/ {
 | 
			
		||||
+	model = "ZyXEL NSA310b";
 | 
			
		||||
+	compatible = "zyxel,nsa310b", "zyxel,nsa310", "marvell,kirkwood-88f6281", "marvell,kirkwood";
 | 
			
		||||
+
 | 
			
		||||
+	aliases {
 | 
			
		||||
+		led-boot = &led_green_sys;
 | 
			
		||||
+		led-failsafe = &led_red_sys;
 | 
			
		||||
+		led-running = &led_green_sys;
 | 
			
		||||
+		led-upgrade = &led_red_sys;
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	memory {
 | 
			
		||||
+		device_type = "memory";
 | 
			
		||||
+		reg = <0x00000000 0x10000000>;
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	chosen {
 | 
			
		||||
+		bootargs = "console=ttyS0,115200";
 | 
			
		||||
+		stdout-path = &uart0;
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	ocp@f1000000 {
 | 
			
		||||
+		pinctrl: pin-controller@10000 {
 | 
			
		||||
+			pinctrl-names = "default";
 | 
			
		||||
+
 | 
			
		||||
+			pmx_led_esata_green: pmx-led-esata-green {
 | 
			
		||||
+				marvell,pins = "mpp12";
 | 
			
		||||
+				marvell,function = "gpio";
 | 
			
		||||
+			};
 | 
			
		||||
+
 | 
			
		||||
+			pmx_led_esata_red: pmx-led-esata-red {
 | 
			
		||||
+				marvell,pins = "mpp13";
 | 
			
		||||
+				marvell,function = "gpio";
 | 
			
		||||
+			};
 | 
			
		||||
+
 | 
			
		||||
+			pmx_led_usb_green: pmx-led-usb-green {
 | 
			
		||||
+				marvell,pins = "mpp15";
 | 
			
		||||
+				marvell,function = "gpio";
 | 
			
		||||
+			};
 | 
			
		||||
+
 | 
			
		||||
+			pmx_led_usb_red: pmx-led-usb-red {
 | 
			
		||||
+				marvell,pins = "mpp16";
 | 
			
		||||
+				marvell,function = "gpio";
 | 
			
		||||
+			};
 | 
			
		||||
+
 | 
			
		||||
+			pmx_led_sys_green: pmx-led-sys-green {
 | 
			
		||||
+				marvell,pins = "mpp28";
 | 
			
		||||
+				marvell,function = "gpio";
 | 
			
		||||
+			};
 | 
			
		||||
+
 | 
			
		||||
+			pmx_led_sys_red: pmx-led-sys-red {
 | 
			
		||||
+				marvell,pins = "mpp29";
 | 
			
		||||
+				marvell,function = "gpio";
 | 
			
		||||
+			};
 | 
			
		||||
+
 | 
			
		||||
+			pmx_led_hdd_green: pmx-led-hdd-green {
 | 
			
		||||
+				marvell,pins = "mpp41";
 | 
			
		||||
+				marvell,function = "gpio";
 | 
			
		||||
+			};
 | 
			
		||||
+
 | 
			
		||||
+			pmx_led_hdd_red: pmx-led-hdd-red {
 | 
			
		||||
+				marvell,pins = "mpp42";
 | 
			
		||||
+				marvell,function = "gpio";
 | 
			
		||||
+			};
 | 
			
		||||
+
 | 
			
		||||
+		};
 | 
			
		||||
+
 | 
			
		||||
+		i2c@11000 {
 | 
			
		||||
+			status = "okay";
 | 
			
		||||
+
 | 
			
		||||
+			lm85: lm85@2e {
 | 
			
		||||
+				compatible = "national,lm85";
 | 
			
		||||
+				reg = <0x2e>;
 | 
			
		||||
+			};
 | 
			
		||||
+		};
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	gpio-leds {
 | 
			
		||||
+		compatible = "gpio-leds";
 | 
			
		||||
+
 | 
			
		||||
+		led_green_sys: green-sys {
 | 
			
		||||
+			label = "nsa310:green:sys";
 | 
			
		||||
+			gpios = <&gpio0 28 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
+			default-state = "on";
 | 
			
		||||
+		};
 | 
			
		||||
+		led_red_sys: red-sys {
 | 
			
		||||
+			label = "nsa310:red:sys";
 | 
			
		||||
+			gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
+		};
 | 
			
		||||
+		green-hdd {
 | 
			
		||||
+			label = "nsa310:green:hdd";
 | 
			
		||||
+			gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
+		};
 | 
			
		||||
+		red-hdd {
 | 
			
		||||
+			label = "nsa310:red:hdd";
 | 
			
		||||
+			gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
+		};
 | 
			
		||||
+		green-esata {
 | 
			
		||||
+			label = "nsa310:green:esata";
 | 
			
		||||
+			gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
+		};
 | 
			
		||||
+		red-esata {
 | 
			
		||||
+			label = "nsa310:red:esata";
 | 
			
		||||
+			gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
+		};
 | 
			
		||||
+		green-usb {
 | 
			
		||||
+			label = "nsa310:green:usb";
 | 
			
		||||
+			gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
+		};
 | 
			
		||||
+		red-usb {
 | 
			
		||||
+			label = "nsa310:red:usb";
 | 
			
		||||
+			gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
+		};
 | 
			
		||||
+		green-copy {
 | 
			
		||||
+			label = "nsa310:green:copy";
 | 
			
		||||
+			gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
+		};
 | 
			
		||||
+		red-copy {
 | 
			
		||||
+			label = "nsa310:red:copy";
 | 
			
		||||
+			gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
+		};
 | 
			
		||||
+	};
 | 
			
		||||
+};
 | 
			
		||||
@@ -1,178 +0,0 @@
 | 
			
		||||
--- /dev/null
 | 
			
		||||
+++ b/arch/arm/boot/dts/kirkwood-on100.dts
 | 
			
		||||
@@ -0,0 +1,165 @@
 | 
			
		||||
+/dts-v1/;
 | 
			
		||||
+
 | 
			
		||||
+#include "kirkwood.dtsi"
 | 
			
		||||
+#include "kirkwood-6282.dtsi"
 | 
			
		||||
+
 | 
			
		||||
+/ {
 | 
			
		||||
+	model = "Cisco Systems ON100";
 | 
			
		||||
+	compatible = "cisco,on100", "marvell,kirkwood-88f6282", "marvell,kirkwood";
 | 
			
		||||
+
 | 
			
		||||
+	memory {
 | 
			
		||||
+		device_type = "memory";
 | 
			
		||||
+		reg = <0x00000000 0x20000000>;
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	aliases {
 | 
			
		||||
+		led-boot = &led_health_green;
 | 
			
		||||
+		led-failsafe = &led_health_red;
 | 
			
		||||
+		led-running = &led_health_green;
 | 
			
		||||
+		led-upgrade = &led_health_red;
 | 
			
		||||
+		serial0 = &uart0;
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	chosen {
 | 
			
		||||
+		bootargs = "console=ttyS0,115200n8 earlyprintk";
 | 
			
		||||
+		stdout-path = "serial0:115200n8";
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	gpio_keys {
 | 
			
		||||
+		compatible = "gpio-keys";
 | 
			
		||||
+		#address-cells = <1>;
 | 
			
		||||
+		#size-cells = <0>;
 | 
			
		||||
+		pinctrl-0 = <&pmx_btn_reset>;
 | 
			
		||||
+		pinctrl-names = "default";
 | 
			
		||||
+
 | 
			
		||||
+		button@1 {
 | 
			
		||||
+			label = "Reset Button";
 | 
			
		||||
+			linux,code = <KEY_RESTART>;
 | 
			
		||||
+			gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;
 | 
			
		||||
+		};
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	gpio-leds {
 | 
			
		||||
+		compatible = "gpio-leds";
 | 
			
		||||
+		pinctrl-0 = < &pmx_led_health_r &pmx_led_health_g >;
 | 
			
		||||
+		pinctrl-names = "default";
 | 
			
		||||
+
 | 
			
		||||
+		led_health_green: health_green {
 | 
			
		||||
+			label = "on100:green:health";
 | 
			
		||||
+			gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
 | 
			
		||||
+			default-state = "on";
 | 
			
		||||
+		};
 | 
			
		||||
+
 | 
			
		||||
+		led_health_red: health_red {
 | 
			
		||||
+			label = "on100:red:health";
 | 
			
		||||
+			gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
 | 
			
		||||
+		};
 | 
			
		||||
+
 | 
			
		||||
+		health2_green {
 | 
			
		||||
+			label = "on100:green:health2";
 | 
			
		||||
+			gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
 | 
			
		||||
+		};
 | 
			
		||||
+
 | 
			
		||||
+		health2_red {
 | 
			
		||||
+			label = "on100:red:health2";
 | 
			
		||||
+			gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
 | 
			
		||||
+		};
 | 
			
		||||
+	};
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+ð0 {
 | 
			
		||||
+	status = "okay";
 | 
			
		||||
+
 | 
			
		||||
+	ethernet0-port@0 {
 | 
			
		||||
+		phy-handle = <ðphy0>;
 | 
			
		||||
+		phy-connection-type = "rgmii-id";
 | 
			
		||||
+	};
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+ð1 {
 | 
			
		||||
+	status = "okay";
 | 
			
		||||
+
 | 
			
		||||
+	ethernet1-port@0 {
 | 
			
		||||
+		phy-handle = <ðphy1>;
 | 
			
		||||
+		phy-connection-type = "rgmii-id";
 | 
			
		||||
+	};
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+&mdio {
 | 
			
		||||
+	status = "okay";
 | 
			
		||||
+
 | 
			
		||||
+	ethphy0: ethernet-phy@0 {
 | 
			
		||||
+		/* Marvell 88E1121R */
 | 
			
		||||
+		compatible = "ethernet-phy-id0141.0cb0",
 | 
			
		||||
+			     "ethernet-phy-ieee802.3-c22";
 | 
			
		||||
+		reg = <0>;
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	ethphy1: ethernet-phy@1 {
 | 
			
		||||
+		/* Marvell 88E1121R */
 | 
			
		||||
+		compatible = "ethernet-phy-id0141.0cb0",
 | 
			
		||||
+			     "ethernet-phy-ieee802.3-c22";
 | 
			
		||||
+		reg = <1>;
 | 
			
		||||
+	};
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+&nand {
 | 
			
		||||
+	status = "okay";
 | 
			
		||||
+
 | 
			
		||||
+	partition@0 {
 | 
			
		||||
+		label = "u-boot";
 | 
			
		||||
+		reg = <0x00000000 0x000a0000>;
 | 
			
		||||
+		read-only;
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	partition@a0000 {
 | 
			
		||||
+		label = "u-boot environment";
 | 
			
		||||
+		reg = <0x000a0000 0x00020000>;
 | 
			
		||||
+		read-only;
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	partition@c0000 {
 | 
			
		||||
+		label = "kernel";
 | 
			
		||||
+		reg = <0x000c0000 0x00540000>;
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	partition@600000 {
 | 
			
		||||
+		label = "ubi";
 | 
			
		||||
+		reg = <0x00600000 0x1fa00000>;
 | 
			
		||||
+	};
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+&pinctrl {
 | 
			
		||||
+	pmx_led_health_r: pmx-led-health-r {
 | 
			
		||||
+		marvell,pins = "mpp45";
 | 
			
		||||
+		marvell,function = "gpio";
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	pmx_led_health_g: pmx-led-health-g {
 | 
			
		||||
+		marvell,pins = "mpp44";
 | 
			
		||||
+		marvell,function = "gpio";
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	pmx_led_health2_r: pmx-led-health2-r {
 | 
			
		||||
+		marvell,pins = "mpp47";
 | 
			
		||||
+		marvell,function = "gpio";
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	pmx_led_health2_g: pmx-led-health2-g {
 | 
			
		||||
+		marvell,pins = "mpp46";
 | 
			
		||||
+		marvell,function = "gpio";
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	pmx_btn_reset: pmx-led-reset {
 | 
			
		||||
+		marvell,pins = "mpp31";
 | 
			
		||||
+		marvell,function = "gpio";
 | 
			
		||||
+	};
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+&sdio {
 | 
			
		||||
+	status = "okay";
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+&uart0 {
 | 
			
		||||
+	status = "okay";
 | 
			
		||||
+};
 | 
			
		||||
--- a/arch/arm/boot/dts/Makefile
 | 
			
		||||
+++ b/arch/arm/boot/dts/Makefile
 | 
			
		||||
@@ -271,6 +271,7 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \
 | 
			
		||||
 	kirkwood-nsa310b.dtb \
 | 
			
		||||
 	kirkwood-nsa320.dtb \
 | 
			
		||||
 	kirkwood-nsa325.dtb \
 | 
			
		||||
+	kirkwood-on100.dtb \
 | 
			
		||||
 	kirkwood-openblocks_a6.dtb \
 | 
			
		||||
 	kirkwood-openblocks_a7.dtb \
 | 
			
		||||
 	kirkwood-openrd-base.dtb \
 | 
			
		||||
@@ -1,264 +0,0 @@
 | 
			
		||||
--- a/arch/arm/boot/dts/Makefile
 | 
			
		||||
+++ b/arch/arm/boot/dts/Makefile
 | 
			
		||||
@@ -269,6 +269,7 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \
 | 
			
		||||
 	kirkwood-linkstation-lswsxl.dtb \
 | 
			
		||||
 	kirkwood-linkstation-lswvl.dtb \
 | 
			
		||||
 	kirkwood-linkstation-lswxl.dtb \
 | 
			
		||||
+	kirkwood-linksys-audi.dtb \
 | 
			
		||||
 	kirkwood-linksys-viper.dtb \
 | 
			
		||||
 	kirkwood-lschlv2.dtb \
 | 
			
		||||
 	kirkwood-lsxhl.dtb \
 | 
			
		||||
--- /dev/null
 | 
			
		||||
+++ b/arch/arm/boot/dts/kirkwood-linksys-audi.dts
 | 
			
		||||
@@ -0,0 +1,251 @@
 | 
			
		||||
+// SPDX-License-Identifier: GPL-2.0
 | 
			
		||||
+/*
 | 
			
		||||
+ * kirkwood-linksys-audi.dts - Device Tree file for Linksys EA3500
 | 
			
		||||
+ *
 | 
			
		||||
+ * (c) 2013 Jonas Gorski <jogo@openwrt.org>
 | 
			
		||||
+ * (c) 2013 Deutsche Telekom Innovation Laboratories
 | 
			
		||||
+ * (c) 2014 Luka Perkov <luka@openwrt.org>
 | 
			
		||||
+ * (c) 2014 Dan Walters <dan@walters.io>
 | 
			
		||||
+ *
 | 
			
		||||
+ */
 | 
			
		||||
+
 | 
			
		||||
+/dts-v1/;
 | 
			
		||||
+
 | 
			
		||||
+#include "kirkwood.dtsi"
 | 
			
		||||
+#include "kirkwood-6282.dtsi"
 | 
			
		||||
+
 | 
			
		||||
+/ {
 | 
			
		||||
+	model = "Linksys Audi (EA3500)";
 | 
			
		||||
+	compatible = "linksys,audi", "marvell,kirkwood-88f6282", "marvell,kirkwood";
 | 
			
		||||
+
 | 
			
		||||
+	memory@0 {
 | 
			
		||||
+		device_type = "memory";
 | 
			
		||||
+		reg = <0x00000000 0x4000000>;
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	aliases {
 | 
			
		||||
+		led-boot = &led_power;
 | 
			
		||||
+		led-failsafe = &led_power;
 | 
			
		||||
+		led-running = &led_power;
 | 
			
		||||
+		led-upgrade = &led_power;
 | 
			
		||||
+		serial0 = &uart0;
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	chosen {
 | 
			
		||||
+		stdout-path = "serial0:115200n8";
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	gpio_keys {
 | 
			
		||||
+		compatible = "gpio-keys";
 | 
			
		||||
+		pinctrl-0 = < &pmx_btn_wps &pmx_btn_reset >;
 | 
			
		||||
+		pinctrl-names = "default";
 | 
			
		||||
+
 | 
			
		||||
+		wps {
 | 
			
		||||
+			label = "WPS Button";
 | 
			
		||||
+			linux,code = <KEY_WPS_BUTTON>;
 | 
			
		||||
+			gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
 | 
			
		||||
+		};
 | 
			
		||||
+
 | 
			
		||||
+		reset {
 | 
			
		||||
+			label = "Reset Button";
 | 
			
		||||
+			linux,code = <KEY_RESTART>;
 | 
			
		||||
+			gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
 | 
			
		||||
+		};
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	gpio-leds {
 | 
			
		||||
+		compatible = "gpio-leds";
 | 
			
		||||
+		pinctrl-0 = < &pmx_led_green_power >;
 | 
			
		||||
+		pinctrl-names = "default";
 | 
			
		||||
+
 | 
			
		||||
+		led_power: power {
 | 
			
		||||
+			label = "audi:green:power";
 | 
			
		||||
+			gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
+			default-state = "on";
 | 
			
		||||
+		};
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	switches {
 | 
			
		||||
+		#address-cells = <1>;
 | 
			
		||||
+		#size-cells = <0>;
 | 
			
		||||
+
 | 
			
		||||
+		mvsw61xx@10 {
 | 
			
		||||
+			compatible = "marvell,88e6171";
 | 
			
		||||
+			status = "okay";
 | 
			
		||||
+			reg = <0x10>;
 | 
			
		||||
+
 | 
			
		||||
+			mii-bus = <&mdio>;
 | 
			
		||||
+			cpu-port-0 = <5>;
 | 
			
		||||
+			cpu-port-1 = <6>;
 | 
			
		||||
+			is-indirect;
 | 
			
		||||
+		};
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	dsa {
 | 
			
		||||
+		compatible = "marvell,dsa";
 | 
			
		||||
+		#address-cells = <2>;
 | 
			
		||||
+		#size-cells = <0>;
 | 
			
		||||
+
 | 
			
		||||
+		dsa,ethernet = <ð0port>;
 | 
			
		||||
+		dsa,mii-bus = <&mdio>;
 | 
			
		||||
+
 | 
			
		||||
+		switch@16,0 {
 | 
			
		||||
+			#address-cells = <1>;
 | 
			
		||||
+			#size-cells = <0>;
 | 
			
		||||
+			reg = <16 0>;	/* MDIO address 16, switch 0 in tree */
 | 
			
		||||
+
 | 
			
		||||
+			port@0 {
 | 
			
		||||
+				reg = <0>;
 | 
			
		||||
+				label = "ethernet1";
 | 
			
		||||
+			};
 | 
			
		||||
+
 | 
			
		||||
+			port@1 {
 | 
			
		||||
+				reg = <1>;
 | 
			
		||||
+				label = "ethernet2";
 | 
			
		||||
+			};
 | 
			
		||||
+
 | 
			
		||||
+			port@2 {
 | 
			
		||||
+				reg = <2>;
 | 
			
		||||
+				label = "ethernet3";
 | 
			
		||||
+			};
 | 
			
		||||
+
 | 
			
		||||
+			port@3 {
 | 
			
		||||
+				reg = <3>;
 | 
			
		||||
+				label = "ethernet4";
 | 
			
		||||
+			};
 | 
			
		||||
+
 | 
			
		||||
+			port@4 {
 | 
			
		||||
+				reg = <4>;
 | 
			
		||||
+				label = "internet";
 | 
			
		||||
+			};
 | 
			
		||||
+
 | 
			
		||||
+			port@5 {
 | 
			
		||||
+				reg = <5>;
 | 
			
		||||
+				label = "cpu";
 | 
			
		||||
+			};
 | 
			
		||||
+		};
 | 
			
		||||
+	};
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+&pinctrl {
 | 
			
		||||
+	pmx_led_green_power: pmx-led-green-power {
 | 
			
		||||
+		marvell,pins = "mpp7";
 | 
			
		||||
+		marvell,function = "gpo";
 | 
			
		||||
+	};
 | 
			
		||||
+	pmx_btn_wps: pmx-btn-wps {
 | 
			
		||||
+		marvell,pins = "mpp47";
 | 
			
		||||
+		marvell,function = "gpio";
 | 
			
		||||
+	};
 | 
			
		||||
+	pmx_btn_reset: pmx-btn-reset {
 | 
			
		||||
+		marvell,pins = "mpp48";
 | 
			
		||||
+		marvell,function = "gpio";
 | 
			
		||||
+	};
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+&nand {
 | 
			
		||||
+	status = "okay";
 | 
			
		||||
+	pinctrl-0 = <&pmx_nand>;
 | 
			
		||||
+	pinctrl-names = "default";
 | 
			
		||||
+
 | 
			
		||||
+	partitions {
 | 
			
		||||
+		compatible = "fixed-partitions";
 | 
			
		||||
+		#address-cells = <1>;
 | 
			
		||||
+		#size-cells = <1>;
 | 
			
		||||
+
 | 
			
		||||
+		partition@0 {
 | 
			
		||||
+			label = "u-boot";
 | 
			
		||||
+			reg = <0x0 0x80000>;
 | 
			
		||||
+			read-only;
 | 
			
		||||
+		};
 | 
			
		||||
+
 | 
			
		||||
+		partition@80000 {
 | 
			
		||||
+			label = "u_env";
 | 
			
		||||
+			reg = <0x80000 0x4000>;
 | 
			
		||||
+		};
 | 
			
		||||
+
 | 
			
		||||
+		partition@84000 {
 | 
			
		||||
+			label = "s_env";
 | 
			
		||||
+			reg = <0x84000 0x4000>;
 | 
			
		||||
+		};
 | 
			
		||||
+
 | 
			
		||||
+		partition@200000 {
 | 
			
		||||
+			label = "kernel1";
 | 
			
		||||
+			reg = <0x200000 0x290000>;
 | 
			
		||||
+		};
 | 
			
		||||
+
 | 
			
		||||
+		partition@490000 {
 | 
			
		||||
+			label = "rootfs1";
 | 
			
		||||
+			reg = <0x490000 0x1170000>;
 | 
			
		||||
+		};
 | 
			
		||||
+
 | 
			
		||||
+		partition@1600000 {
 | 
			
		||||
+			label = "kernel2";
 | 
			
		||||
+			reg = <0x1600000 0x290000>;
 | 
			
		||||
+		};
 | 
			
		||||
+
 | 
			
		||||
+		partition@1890000 {
 | 
			
		||||
+			label = "rootfs2";
 | 
			
		||||
+			reg = <0x1890000 0x1170000>;
 | 
			
		||||
+		};
 | 
			
		||||
+
 | 
			
		||||
+		partition@2a00000 {
 | 
			
		||||
+			label = "syscfg";
 | 
			
		||||
+			reg = <0x2a00000  0x1600000>;
 | 
			
		||||
+		};
 | 
			
		||||
+
 | 
			
		||||
+		partition@88000 {
 | 
			
		||||
+			label = "unused";
 | 
			
		||||
+			reg = <0x88000 0x178000>;
 | 
			
		||||
+		};
 | 
			
		||||
+
 | 
			
		||||
+	};
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+&pciec {
 | 
			
		||||
+	status = "okay";
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+&pcie0 {
 | 
			
		||||
+	status = "okay";
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+&pcie1 {
 | 
			
		||||
+	status = "okay";
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+&mdio {
 | 
			
		||||
+	status = "okay";
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+&uart0 {
 | 
			
		||||
+	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 at port 6. However DSA only supports a
 | 
			
		||||
+ * single CPU port. Upstream uses DSA so they disable this port to avoid confusion.
 | 
			
		||||
+ */
 | 
			
		||||
+ð1 {
 | 
			
		||||
+	status = "okay";
 | 
			
		||||
+	ethernet1-port@0 {
 | 
			
		||||
+		speed = <1000>;
 | 
			
		||||
+		duplex = <1>;
 | 
			
		||||
+	};
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+/* There is no battery on the board, so the RTC does not keep
 | 
			
		||||
+ * time when there is no power, making it useless.
 | 
			
		||||
+ */
 | 
			
		||||
+&rtc {
 | 
			
		||||
+	status = "disabled";
 | 
			
		||||
+};
 | 
			
		||||
@@ -1,137 +0,0 @@
 | 
			
		||||
--- a/arch/arm/boot/dts/Makefile
 | 
			
		||||
+++ b/arch/arm/boot/dts/Makefile
 | 
			
		||||
@@ -256,6 +256,7 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \
 | 
			
		||||
 	kirkwood-ds411.dtb \
 | 
			
		||||
 	kirkwood-ds411j.dtb \
 | 
			
		||||
 	kirkwood-ds411slim.dtb \
 | 
			
		||||
+	kirkwood-goflexhome.dtb \
 | 
			
		||||
 	kirkwood-goflexnet.dtb \
 | 
			
		||||
 	kirkwood-guruplug-server-plus.dtb \
 | 
			
		||||
 	kirkwood-ib62x0.dtb \
 | 
			
		||||
--- /dev/null
 | 
			
		||||
+++ b/arch/arm/boot/dts/kirkwood-goflexhome.dts
 | 
			
		||||
@@ -0,0 +1,124 @@
 | 
			
		||||
+/dts-v1/;
 | 
			
		||||
+
 | 
			
		||||
+#include "kirkwood.dtsi"
 | 
			
		||||
+#include "kirkwood-6281.dtsi"
 | 
			
		||||
+
 | 
			
		||||
+/ {
 | 
			
		||||
+	model = "Seagate GoFlex Home";
 | 
			
		||||
+	compatible = "seagate,goflexhome", "marvell,kirkwood-88f6281", "marvell,kirkwood";
 | 
			
		||||
+
 | 
			
		||||
+	aliases {
 | 
			
		||||
+		led-boot = &led_health;
 | 
			
		||||
+		led-failsafe = &led_fault;
 | 
			
		||||
+		led-running = &led_health;
 | 
			
		||||
+		led-upgrade = &led_fault;
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	memory@0 {
 | 
			
		||||
+		device_type = "memory";
 | 
			
		||||
+		reg = <0x00000000 0x8000000>;
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	chosen {
 | 
			
		||||
+		bootargs = "console=ttyS0,115200n8 earlyprintk root=/dev/sda1 rootdelay=10";
 | 
			
		||||
+		stdout-path = &uart0;
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	ocp@f1000000 {
 | 
			
		||||
+		pinctrl: pin-controller@10000 {
 | 
			
		||||
+			pmx_usb_power_enable: pmx-usb-power-enable {
 | 
			
		||||
+				marvell,pins = "mpp29";
 | 
			
		||||
+				marvell,function = "gpio";
 | 
			
		||||
+			};
 | 
			
		||||
+			pmx_led_white: pmx-led-white {
 | 
			
		||||
+				marvell,pins = "mpp40";
 | 
			
		||||
+				marvell,function = "gpio";
 | 
			
		||||
+			};
 | 
			
		||||
+			pmx_led_green: pmx-led_green {
 | 
			
		||||
+				marvell,pins = "mpp46";
 | 
			
		||||
+				marvell,function = "gpio";
 | 
			
		||||
+			};
 | 
			
		||||
+			pmx_led_orange: pmx-led-orange {
 | 
			
		||||
+				marvell,pins = "mpp47";
 | 
			
		||||
+				marvell,function = "gpio";
 | 
			
		||||
+			};
 | 
			
		||||
+		};
 | 
			
		||||
+		serial@12000 {
 | 
			
		||||
+			status = "ok";
 | 
			
		||||
+		};
 | 
			
		||||
+
 | 
			
		||||
+		sata@80000 {
 | 
			
		||||
+			status = "okay";
 | 
			
		||||
+			nr-ports = <2>;
 | 
			
		||||
+		};
 | 
			
		||||
+
 | 
			
		||||
+	};
 | 
			
		||||
+	gpio-leds {
 | 
			
		||||
+		compatible = "gpio-leds";
 | 
			
		||||
+
 | 
			
		||||
+		led_health: health {
 | 
			
		||||
+			label = "status:green:health";
 | 
			
		||||
+			gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
 | 
			
		||||
+			default-state = "on";
 | 
			
		||||
+		};
 | 
			
		||||
+		led_fault: fault {
 | 
			
		||||
+			label = "status:orange:fault";
 | 
			
		||||
+			gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
 | 
			
		||||
+		};
 | 
			
		||||
+		misc {
 | 
			
		||||
+			label = "status:white:misc";
 | 
			
		||||
+			gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
 | 
			
		||||
+			linux,default-trigger = "disk-activity";
 | 
			
		||||
+		};
 | 
			
		||||
+	};
 | 
			
		||||
+	regulators {
 | 
			
		||||
+		compatible = "simple-bus";
 | 
			
		||||
+		#address-cells = <1>;
 | 
			
		||||
+		#size-cells = <0>;
 | 
			
		||||
+		pinctrl-0 = <&pmx_usb_power_enable>;
 | 
			
		||||
+		pinctrl-names = "default";
 | 
			
		||||
+
 | 
			
		||||
+		usb_power: regulator@1 {
 | 
			
		||||
+			compatible = "regulator-fixed";
 | 
			
		||||
+			reg = <1>;
 | 
			
		||||
+			regulator-name = "USB Power";
 | 
			
		||||
+			regulator-min-microvolt = <5000000>;
 | 
			
		||||
+			regulator-max-microvolt = <5000000>;
 | 
			
		||||
+			enable-active-high;
 | 
			
		||||
+			regulator-always-on;
 | 
			
		||||
+			regulator-boot-on;
 | 
			
		||||
+			gpio = <&gpio0 29 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
+		};
 | 
			
		||||
+	};
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+&nand {
 | 
			
		||||
+	chip-delay = <40>;
 | 
			
		||||
+	status = "okay";
 | 
			
		||||
+
 | 
			
		||||
+	partition@0 {
 | 
			
		||||
+		label = "u-boot";
 | 
			
		||||
+		reg = <0x0000000 0x100000>;
 | 
			
		||||
+		read-only;
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	partition@100000 {
 | 
			
		||||
+		label = "ubi";
 | 
			
		||||
+		reg = <0x100000 0x0ff00000>;
 | 
			
		||||
+	};
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+&mdio {
 | 
			
		||||
+	status = "okay";
 | 
			
		||||
+
 | 
			
		||||
+	ethphy0: ethernet-phy@0 {
 | 
			
		||||
+		reg = <0>;
 | 
			
		||||
+	};
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+ð0 {
 | 
			
		||||
+	status = "okay";
 | 
			
		||||
+	ethernet0-port@0 {
 | 
			
		||||
+		phy-handle = <ðphy0>;
 | 
			
		||||
+	};
 | 
			
		||||
+};
 | 
			
		||||
@@ -1,155 +0,0 @@
 | 
			
		||||
kirkwood: add nsa310b dtb, a zyxel nsa310 variant
 | 
			
		||||
 | 
			
		||||
add support to a nsa310 variant with red/green usb led
 | 
			
		||||
and lm85 temp/fan controller
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Alberto Bursi <alberto.bursi@outlook.it>
 | 
			
		||||
 | 
			
		||||
NOTE: this patch can be upstreamed as-is, LEDE-specific
 | 
			
		||||
		nand partitions are set in another patch
 | 
			
		||||
 | 
			
		||||
--- a/arch/arm/boot/dts/Makefile
 | 
			
		||||
+++ b/arch/arm/boot/dts/Makefile
 | 
			
		||||
@@ -287,6 +287,7 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \
 | 
			
		||||
 	kirkwood-ns2mini.dtb \
 | 
			
		||||
 	kirkwood-nsa310.dtb \
 | 
			
		||||
 	kirkwood-nsa310a.dtb \
 | 
			
		||||
+	kirkwood-nsa310b.dtb \
 | 
			
		||||
 	kirkwood-nsa320.dtb \
 | 
			
		||||
 	kirkwood-nsa325.dtb \
 | 
			
		||||
 	kirkwood-openblocks_a6.dtb \
 | 
			
		||||
--- /dev/null
 | 
			
		||||
+++ b/arch/arm/boot/dts/kirkwood-nsa310b.dts
 | 
			
		||||
@@ -0,0 +1,132 @@
 | 
			
		||||
+/dts-v1/;
 | 
			
		||||
+
 | 
			
		||||
+#include "kirkwood-nsa3x0-common.dtsi"
 | 
			
		||||
+
 | 
			
		||||
+/*
 | 
			
		||||
+ * There are at least two different NSA310 designs. This variant has
 | 
			
		||||
+ * a red/green USB Led (same as nsa310) and a lm85 temp/fan controller.
 | 
			
		||||
+ */
 | 
			
		||||
+
 | 
			
		||||
+/ {
 | 
			
		||||
+	model = "ZyXEL NSA310b";
 | 
			
		||||
+	compatible = "zyxel,nsa310b", "zyxel,nsa310", "marvell,kirkwood-88f6281", "marvell,kirkwood";
 | 
			
		||||
+
 | 
			
		||||
+	aliases {
 | 
			
		||||
+		led-boot = &led_green_sys;
 | 
			
		||||
+		led-failsafe = &led_red_sys;
 | 
			
		||||
+		led-running = &led_green_sys;
 | 
			
		||||
+		led-upgrade = &led_red_sys;
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	memory@0 {
 | 
			
		||||
+		device_type = "memory";
 | 
			
		||||
+		reg = <0x00000000 0x10000000>;
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	chosen {
 | 
			
		||||
+		bootargs = "console=ttyS0,115200";
 | 
			
		||||
+		stdout-path = &uart0;
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	ocp@f1000000 {
 | 
			
		||||
+		pinctrl: pin-controller@10000 {
 | 
			
		||||
+			pinctrl-names = "default";
 | 
			
		||||
+
 | 
			
		||||
+			pmx_led_esata_green: pmx-led-esata-green {
 | 
			
		||||
+				marvell,pins = "mpp12";
 | 
			
		||||
+				marvell,function = "gpio";
 | 
			
		||||
+			};
 | 
			
		||||
+
 | 
			
		||||
+			pmx_led_esata_red: pmx-led-esata-red {
 | 
			
		||||
+				marvell,pins = "mpp13";
 | 
			
		||||
+				marvell,function = "gpio";
 | 
			
		||||
+			};
 | 
			
		||||
+
 | 
			
		||||
+			pmx_led_usb_green: pmx-led-usb-green {
 | 
			
		||||
+				marvell,pins = "mpp15";
 | 
			
		||||
+				marvell,function = "gpio";
 | 
			
		||||
+			};
 | 
			
		||||
+
 | 
			
		||||
+			pmx_led_usb_red: pmx-led-usb-red {
 | 
			
		||||
+				marvell,pins = "mpp16";
 | 
			
		||||
+				marvell,function = "gpio";
 | 
			
		||||
+			};
 | 
			
		||||
+
 | 
			
		||||
+			pmx_led_sys_green: pmx-led-sys-green {
 | 
			
		||||
+				marvell,pins = "mpp28";
 | 
			
		||||
+				marvell,function = "gpio";
 | 
			
		||||
+			};
 | 
			
		||||
+
 | 
			
		||||
+			pmx_led_sys_red: pmx-led-sys-red {
 | 
			
		||||
+				marvell,pins = "mpp29";
 | 
			
		||||
+				marvell,function = "gpio";
 | 
			
		||||
+			};
 | 
			
		||||
+
 | 
			
		||||
+			pmx_led_hdd_green: pmx-led-hdd-green {
 | 
			
		||||
+				marvell,pins = "mpp41";
 | 
			
		||||
+				marvell,function = "gpio";
 | 
			
		||||
+			};
 | 
			
		||||
+
 | 
			
		||||
+			pmx_led_hdd_red: pmx-led-hdd-red {
 | 
			
		||||
+				marvell,pins = "mpp42";
 | 
			
		||||
+				marvell,function = "gpio";
 | 
			
		||||
+			};
 | 
			
		||||
+
 | 
			
		||||
+		};
 | 
			
		||||
+
 | 
			
		||||
+		i2c@11000 {
 | 
			
		||||
+			status = "okay";
 | 
			
		||||
+
 | 
			
		||||
+			lm85: lm85@2e {
 | 
			
		||||
+				compatible = "national,lm85";
 | 
			
		||||
+				reg = <0x2e>;
 | 
			
		||||
+			};
 | 
			
		||||
+		};
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	gpio-leds {
 | 
			
		||||
+		compatible = "gpio-leds";
 | 
			
		||||
+
 | 
			
		||||
+		led_green_sys: green-sys {
 | 
			
		||||
+			label = "nsa310:green:sys";
 | 
			
		||||
+			gpios = <&gpio0 28 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
+			default-state = "on";
 | 
			
		||||
+		};
 | 
			
		||||
+		led_red_sys: red-sys {
 | 
			
		||||
+			label = "nsa310:red:sys";
 | 
			
		||||
+			gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
+		};
 | 
			
		||||
+		green-hdd {
 | 
			
		||||
+			label = "nsa310:green:hdd";
 | 
			
		||||
+			gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
+		};
 | 
			
		||||
+		red-hdd {
 | 
			
		||||
+			label = "nsa310:red:hdd";
 | 
			
		||||
+			gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
+		};
 | 
			
		||||
+		green-esata {
 | 
			
		||||
+			label = "nsa310:green:esata";
 | 
			
		||||
+			gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
+		};
 | 
			
		||||
+		red-esata {
 | 
			
		||||
+			label = "nsa310:red:esata";
 | 
			
		||||
+			gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
+		};
 | 
			
		||||
+		green-usb {
 | 
			
		||||
+			label = "nsa310:green:usb";
 | 
			
		||||
+			gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
+		};
 | 
			
		||||
+		red-usb {
 | 
			
		||||
+			label = "nsa310:red:usb";
 | 
			
		||||
+			gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
+		};
 | 
			
		||||
+		green-copy {
 | 
			
		||||
+			label = "nsa310:green:copy";
 | 
			
		||||
+			gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
+		};
 | 
			
		||||
+		red-copy {
 | 
			
		||||
+			label = "nsa310:red:copy";
 | 
			
		||||
+			gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
+		};
 | 
			
		||||
+	};
 | 
			
		||||
+};
 | 
			
		||||
@@ -1,176 +0,0 @@
 | 
			
		||||
--- /dev/null
 | 
			
		||||
+++ b/arch/arm/boot/dts/kirkwood-on100.dts
 | 
			
		||||
@@ -0,0 +1,163 @@
 | 
			
		||||
+/dts-v1/;
 | 
			
		||||
+
 | 
			
		||||
+#include "kirkwood.dtsi"
 | 
			
		||||
+#include "kirkwood-6282.dtsi"
 | 
			
		||||
+
 | 
			
		||||
+/ {
 | 
			
		||||
+	model = "Cisco Systems ON100";
 | 
			
		||||
+	compatible = "cisco,on100", "marvell,kirkwood-88f6282", "marvell,kirkwood";
 | 
			
		||||
+
 | 
			
		||||
+	memory@0 {
 | 
			
		||||
+		device_type = "memory";
 | 
			
		||||
+		reg = <0x00000000 0x20000000>;
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	aliases {
 | 
			
		||||
+		led-boot = &led_health_green;
 | 
			
		||||
+		led-failsafe = &led_health_red;
 | 
			
		||||
+		led-running = &led_health_green;
 | 
			
		||||
+		led-upgrade = &led_health_red;
 | 
			
		||||
+		serial0 = &uart0;
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	chosen {
 | 
			
		||||
+		bootargs = "console=ttyS0,115200n8 earlyprintk";
 | 
			
		||||
+		stdout-path = "serial0:115200n8";
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	gpio_keys {
 | 
			
		||||
+		compatible = "gpio-keys";
 | 
			
		||||
+		pinctrl-0 = <&pmx_btn_reset>;
 | 
			
		||||
+		pinctrl-names = "default";
 | 
			
		||||
+
 | 
			
		||||
+		reset {
 | 
			
		||||
+			label = "Reset Button";
 | 
			
		||||
+			linux,code = <KEY_RESTART>;
 | 
			
		||||
+			gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;
 | 
			
		||||
+		};
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	gpio-leds {
 | 
			
		||||
+		compatible = "gpio-leds";
 | 
			
		||||
+		pinctrl-0 = < &pmx_led_health_r &pmx_led_health_g >;
 | 
			
		||||
+		pinctrl-names = "default";
 | 
			
		||||
+
 | 
			
		||||
+		led_health_green: health_green {
 | 
			
		||||
+			label = "on100:green:health";
 | 
			
		||||
+			gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
 | 
			
		||||
+			default-state = "on";
 | 
			
		||||
+		};
 | 
			
		||||
+
 | 
			
		||||
+		led_health_red: health_red {
 | 
			
		||||
+			label = "on100:red:health";
 | 
			
		||||
+			gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
 | 
			
		||||
+		};
 | 
			
		||||
+
 | 
			
		||||
+		health2_green {
 | 
			
		||||
+			label = "on100:green:health2";
 | 
			
		||||
+			gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
 | 
			
		||||
+		};
 | 
			
		||||
+
 | 
			
		||||
+		health2_red {
 | 
			
		||||
+			label = "on100:red:health2";
 | 
			
		||||
+			gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
 | 
			
		||||
+		};
 | 
			
		||||
+	};
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+ð0 {
 | 
			
		||||
+	status = "okay";
 | 
			
		||||
+
 | 
			
		||||
+	ethernet0-port@0 {
 | 
			
		||||
+		phy-handle = <ðphy0>;
 | 
			
		||||
+		phy-connection-type = "rgmii-id";
 | 
			
		||||
+	};
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+ð1 {
 | 
			
		||||
+	status = "okay";
 | 
			
		||||
+
 | 
			
		||||
+	ethernet1-port@0 {
 | 
			
		||||
+		phy-handle = <ðphy1>;
 | 
			
		||||
+		phy-connection-type = "rgmii-id";
 | 
			
		||||
+	};
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+&mdio {
 | 
			
		||||
+	status = "okay";
 | 
			
		||||
+
 | 
			
		||||
+	ethphy0: ethernet-phy@0 {
 | 
			
		||||
+		/* Marvell 88E1121R */
 | 
			
		||||
+		compatible = "ethernet-phy-id0141.0cb0",
 | 
			
		||||
+			     "ethernet-phy-ieee802.3-c22";
 | 
			
		||||
+		reg = <0>;
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	ethphy1: ethernet-phy@1 {
 | 
			
		||||
+		/* Marvell 88E1121R */
 | 
			
		||||
+		compatible = "ethernet-phy-id0141.0cb0",
 | 
			
		||||
+			     "ethernet-phy-ieee802.3-c22";
 | 
			
		||||
+		reg = <1>;
 | 
			
		||||
+	};
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+&nand {
 | 
			
		||||
+	status = "okay";
 | 
			
		||||
+
 | 
			
		||||
+	partition@0 {
 | 
			
		||||
+		label = "u-boot";
 | 
			
		||||
+		reg = <0x00000000 0x000a0000>;
 | 
			
		||||
+		read-only;
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	partition@a0000 {
 | 
			
		||||
+		label = "u-boot environment";
 | 
			
		||||
+		reg = <0x000a0000 0x00020000>;
 | 
			
		||||
+		read-only;
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	partition@c0000 {
 | 
			
		||||
+		label = "kernel";
 | 
			
		||||
+		reg = <0x000c0000 0x00540000>;
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	partition@600000 {
 | 
			
		||||
+		label = "ubi";
 | 
			
		||||
+		reg = <0x00600000 0x1fa00000>;
 | 
			
		||||
+	};
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+&pinctrl {
 | 
			
		||||
+	pmx_led_health_r: pmx-led-health-r {
 | 
			
		||||
+		marvell,pins = "mpp45";
 | 
			
		||||
+		marvell,function = "gpio";
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	pmx_led_health_g: pmx-led-health-g {
 | 
			
		||||
+		marvell,pins = "mpp44";
 | 
			
		||||
+		marvell,function = "gpio";
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	pmx_led_health2_r: pmx-led-health2-r {
 | 
			
		||||
+		marvell,pins = "mpp47";
 | 
			
		||||
+		marvell,function = "gpio";
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	pmx_led_health2_g: pmx-led-health2-g {
 | 
			
		||||
+		marvell,pins = "mpp46";
 | 
			
		||||
+		marvell,function = "gpio";
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	pmx_btn_reset: pmx-led-reset {
 | 
			
		||||
+		marvell,pins = "mpp31";
 | 
			
		||||
+		marvell,function = "gpio";
 | 
			
		||||
+	};
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+&sdio {
 | 
			
		||||
+	status = "okay";
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+&uart0 {
 | 
			
		||||
+	status = "okay";
 | 
			
		||||
+};
 | 
			
		||||
--- a/arch/arm/boot/dts/Makefile
 | 
			
		||||
+++ b/arch/arm/boot/dts/Makefile
 | 
			
		||||
@@ -290,6 +290,7 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \
 | 
			
		||||
 	kirkwood-nsa310b.dtb \
 | 
			
		||||
 	kirkwood-nsa320.dtb \
 | 
			
		||||
 	kirkwood-nsa325.dtb \
 | 
			
		||||
+	kirkwood-on100.dtb \
 | 
			
		||||
 	kirkwood-openblocks_a6.dtb \
 | 
			
		||||
 	kirkwood-openblocks_a7.dtb \
 | 
			
		||||
 	kirkwood-openrd-base.dtb \
 | 
			
		||||
		Reference in New Issue
	
	Block a user