kirkwood: add 4.4 support
[openwrt.git] / target / linux / kirkwood / patches-4.4 / 160-ea4500.patch
diff --git a/target/linux/kirkwood/patches-4.4/160-ea4500.patch b/target/linux/kirkwood/patches-4.4/160-ea4500.patch
new file mode 100644 (file)
index 0000000..baf6e01
--- /dev/null
@@ -0,0 +1,200 @@
+--- a/arch/arm/boot/dts/Makefile
++++ b/arch/arm/boot/dts/Makefile
+@@ -183,6 +183,7 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \
+       kirkwood-is2.dtb \
+       kirkwood-km_kirkwood.dtb \
+       kirkwood-laplug.dtb \
++      kirkwood-linksys-viper.dtb \
+       kirkwood-lschlv2.dtb \
+       kirkwood-lswvl.dtb \
+       kirkwood-lswxl.dtb \
+--- /dev/null
++++ b/arch/arm/boot/dts/kirkwood-linksys-viper.dts
+@@ -0,0 +1,187 @@
++/*
++ * kirkwood-linksys-viper.dts - Device Tree file for Linksys E4200v2/EA4500
++ *
++ * (c) 2013 Jonas Gorski <jogo@openwrt.org>
++ * (c) 2013 Deutsche Telekom Innovation Laboratories
++ * (c) 2014 Luka Perkov <luka@openwrt.org>
++ *
++ * 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 E4200v2 / EA4500";
++      compatible = "linksys,viper", "marvell,kirkwood-88f6282", "marvell,kirkwood";
++
++      memory {
++              device_type = "memory";
++              reg = <0x00000000 0x8000000>;
++      };
++
++      chosen {
++              bootargs = "console=ttyS0,115200n8 earlyprintk";
++      };
++
++      mbus {
++              pcie-controller {
++                      status = "okay";
++
++                      pcie@1,0 {
++                              status = "okay";
++                      };
++
++                      pcie@2,0 {
++                              status = "okay";
++                      };
++              };
++      };
++
++      ocp@f1000000 {
++              pinctrl: pin-controller@10000 {
++                      pmx_led_white_health: pmx-led-white-health {
++                              marvell,pins = "mpp7";
++                              marvell,function = "gpo";
++                      };
++                      pmx_led_white_pulse: pmx-led-white-pulse {
++                              marvell,pins = "mpp14";
++                              marvell,function = "gpio";
++                      };
++                      pmx_btn_wps: pmx-btn-wps {
++                              marvell,pins = "mpp47";
++                              marvell,function = "gpio";
++                      };
++                      pmx_btn_reset: pmx-btn-reset {
++                              marvell,pins = "mpp48";
++                              marvell,function = "gpio";
++                      };
++              };
++
++              rtc@10300 {
++                      status = "disabled";
++              };
++
++              serial@12000 {
++                      status = "okay";
++              };
++
++      };
++
++      gpio_keys {
++              compatible = "gpio-keys";
++              #address-cells = <1>;
++              #size-cells = <0>;
++              pinctrl-0 = < &pmx_btn_wps &pmx_btn_reset >;
++              pinctrl-names = "default";
++
++              button@15 {
++                      label = "WPS Button";
++                      linux,code = <KEY_WPS_BUTTON>;
++                      gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
++              };
++
++              button@16 {
++                      label = "Reset Button";
++                      linux,code = <KEY_RESTART>;
++                      gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
++              };
++      };
++
++      gpio-leds {
++              compatible = "gpio-leds";
++              pinctrl-0 = < &pmx_led_white_health &pmx_led_white_pulse >;
++              pinctrl-names = "default";
++
++              white-health {
++                      label = "viper:white:health";
++                      gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
++              };
++
++              white-pulse {
++                      label = "viper:white:pulse";
++                      gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
++              };
++      };
++
++      mvsw61xx {
++              compatible = "marvell,88e6171";
++              status = "okay";
++              reg = <0x10>;
++
++              mii-bus = <&mdio>;
++              cpu-port-0 = <5>;
++              cpu-port-1 = <6>;
++              is-indirect;
++      };
++};
++
++&nand {
++      status = "okay";
++      pinctrl-0 = <&pmx_nand>;
++      pinctrl-names = "default";
++
++      partition@0 {
++              label = "u-boot";
++              reg = <0x0 0x80000>;
++      };
++
++      partition@80000 {
++              label = "u_env";
++              reg = <0x80000 0x20000>;
++      };
++
++      partition@a0000 {
++              label = "s_env";
++              reg = <0xa0000 0x20000>;
++      };
++
++      partition@200000 {
++              label = "kernel1";
++              reg = <0x200000 0x1a00000>;
++      };
++
++      partition@4a0000 {
++              label = "rootfs1";
++              reg = <0x4a0000 0x1760000>;
++      };
++
++      partition@1c00000 {
++              label = "kernel2";
++              reg = <0x1c00000 0x1a00000>;
++      };
++
++      partition@1ea0000 {
++              label = "rootfs2";
++              reg = <0x1ea0000 0x1760000>;
++      };
++
++      partition@3600000 {
++              label = "syscfg";
++              reg = <0x3600000 0x4a00000>;
++      };
++};
++
++&mdio {
++      status = "okay";
++};
++
++&eth0 {
++      status = "okay";
++      ethernet0-port@0 {
++              speed = <1000>;
++              duplex = <1>;
++      };
++};
++
++&eth1 {
++      status = "okay";
++      ethernet1-port@0 {
++              speed = <1000>;
++              duplex = <1>;
++      };
++};