kirkwood: switch to kernel 4.9
[openwrt/staging/blogic.git] / target / linux / kirkwood / patches-4.9 / 104-ea3500.patch
diff --git a/target/linux/kirkwood/patches-4.9/104-ea3500.patch b/target/linux/kirkwood/patches-4.9/104-ea3500.patch
new file mode 100644 (file)
index 0000000..3659f87
--- /dev/null
@@ -0,0 +1,258 @@
+--- a/arch/arm/boot/dts/Makefile
++++ b/arch/arm/boot/dts/Makefile
+@@ -220,6 +220,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,245 @@
++/*
++ * 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 {
++              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";
++
++              green-power {
++                      label = "audi:green:power";
++                      gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
++              };
++      };
++
++      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 = <&eth0port>;
++              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.
++ */
++&eth0 {
++      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.
++ */
++&eth1 {
++      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";
++};