diff options
author | Imre Kaloz <kaloz@openwrt.org> | 2015-12-10 12:08:13 +0000 |
---|---|---|
committer | Imre Kaloz <kaloz@openwrt.org> | 2015-12-10 12:08:13 +0000 |
commit | b17844d21af30b467e108c765c7010eba2b2b28e (patch) | |
tree | 0608fa421a6fb924cc5c1b4f768aa7904b650005 /target/linux/mvebu/patches-4.1/000-new_linksys_boards.patch | |
parent | f1d3b08fc0c58d60b692bc1d5447f22de7074151 (diff) | |
download | mtk-20170518-b17844d21af30b467e108c765c7010eba2b2b28e.zip mtk-20170518-b17844d21af30b467e108c765c7010eba2b2b28e.tar.gz mtk-20170518-b17844d21af30b467e108c765c7010eba2b2b28e.tar.bz2 |
mvebu: add support for 4.1 and switch over
Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
SVN-Revision: 47818
Diffstat (limited to 'target/linux/mvebu/patches-4.1/000-new_linksys_boards.patch')
-rw-r--r-- | target/linux/mvebu/patches-4.1/000-new_linksys_boards.patch | 613 |
1 files changed, 613 insertions, 0 deletions
diff --git a/target/linux/mvebu/patches-4.1/000-new_linksys_boards.patch b/target/linux/mvebu/patches-4.1/000-new_linksys_boards.patch new file mode 100644 index 0000000..7a9bfed --- /dev/null +++ b/target/linux/mvebu/patches-4.1/000-new_linksys_boards.patch @@ -0,0 +1,613 @@ +From 3abdd583312a2830129dc42e1e3d98368a8fda47 Mon Sep 17 00:00:00 2001 +From: Imre Kaloz <kaloz@openwrt.org> +Date: Wed, 20 May 2015 23:14:16 +0200 +Subject: ARM: mvebu: add support for the new Armada 385 based Linksys boards + +This patch adds support for the Linksys WRT1200AC (Caiman) and +the Linksys WRT1900AC v2 (Cobra). + +Both boards have: + +- 2 Marvell 88W8864 radios +- 1 USB 3.0 port +- 1 USB 2.0/eSATAp port +- 2 Ethernet interfaces connected to a 88E6176 switch (1x WAN + 4x LAN) +- 128MB NAND flash +- 512MB RAM + +gregory.clement@free-electrons.com: use serial0:115200n8 in +stdout-path and remove the bootargs part in the chosen node + +Signed-off-by: Imre Kaloz <kaloz@openwrt.org> +Acked-by: Andrew Lunn <andrew@lunn.ch> +Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com> +--- + arch/arm/boot/dts/Makefile | 2 + + arch/arm/boot/dts/armada-385-linksys-caiman.dts | 114 ++++++++ + arch/arm/boot/dts/armada-385-linksys-cobra.dts | 114 ++++++++ + arch/arm/boot/dts/armada-385-linksys.dtsi | 332 ++++++++++++++++++++++++ + 4 files changed, 562 insertions(+) + create mode 100644 arch/arm/boot/dts/armada-385-linksys-caiman.dts + create mode 100644 arch/arm/boot/dts/armada-385-linksys-cobra.dts + create mode 100644 arch/arm/boot/dts/armada-385-linksys.dtsi + +--- a/arch/arm/boot/dts/Makefile ++++ b/arch/arm/boot/dts/Makefile +@@ -633,6 +633,8 @@ dtb-$(CONFIG_MACH_ARMADA_375) += \ + armada-375-db.dtb + dtb-$(CONFIG_MACH_ARMADA_38X) += \ + armada-385-db-ap.dtb \ ++ armada-385-linksys-caiman.dtb \ ++ armada-385-linksys-cobra.dtb \ + armada-388-db.dtb \ + armada-388-gp.dtb \ + armada-388-rd.dtb +--- /dev/null ++++ b/arch/arm/boot/dts/armada-385-linksys-caiman.dts +@@ -0,0 +1,114 @@ ++/* ++ * Device Tree include for the Linksys WRT1200AC (Caiman) ++ * ++ * Copyright (C) 2015 Imre Kaloz <kaloz@openwrt.org> ++ * ++ * ++ * This file is dual-licensed: you can use it either under the terms ++ * of the GPL or the X11 license, at your option. Note that this dual ++ * licensing only applies to this file, and not this project as a ++ * whole. ++ * ++ * a) 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. ++ * ++ * Or, alternatively, ++ * ++ * b) Permission is hereby granted, free of charge, to any person ++ * obtaining a copy of this software and associated documentation ++ * files (the "Software"), to deal in the Software without ++ * restriction, including without limitation the rights to use, ++ * copy, modify, merge, publish, distribute, sublicense, and/or ++ * sell copies of the Software, and to permit persons to whom the ++ * Software is furnished to do so, subject to the following ++ * conditions: ++ * ++ * The above copyright notice and this permission notice shall be ++ * included in all copies or substantial portions of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES ++ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ++ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT ++ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, ++ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR ++ * OTHER DEALINGS IN THE SOFTWARE. ++ */ ++ ++/dts-v1/; ++#include "armada-385-linksys.dtsi" ++ ++/ { ++ model = "Linksys WRT1200AC"; ++ compatible = "linksys,caiman", "linksys,armada385", "marvell,armada385", ++ "marvell,armada380"; ++ ++ soc { ++ internal-regs{ ++ i2c@11000 { ++ ++ pca9635@68 { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ wan_amber@0 { ++ label = "caiman:amber:wan"; ++ reg = <0x0>; ++ }; ++ ++ wan_white@1 { ++ label = "caiman:white:wan"; ++ reg = <0x1>; ++ }; ++ ++ wlan_2g@2 { ++ label = "caiman:white:wlan_2g"; ++ reg = <0x2>; ++ }; ++ ++ wlan_5g@3 { ++ label = "caiman:white:wlan_5g"; ++ reg = <0x3>; ++ }; ++ ++ usb2@5 { ++ label = "caiman:white:usb2"; ++ reg = <0x5>; ++ }; ++ ++ usb3_1@6 { ++ label = "caiman:white:usb3_1"; ++ reg = <0x6>; ++ }; ++ ++ usb3_2@7 { ++ label = "caiman:white:usb3_2"; ++ reg = <0x7>; ++ }; ++ ++ wps_white@8 { ++ label = "caiman:white:wps"; ++ reg = <0x8>; ++ }; ++ ++ wps_amber@9 { ++ label = "caiman:amber:wps"; ++ reg = <0x9>; ++ }; ++ }; ++ }; ++ }; ++ }; ++ ++ gpio-leds { ++ power { ++ label = "caiman:white:power"; ++ }; ++ ++ sata { ++ label = "caiman:white:sata"; ++ }; ++ }; ++}; +--- /dev/null ++++ b/arch/arm/boot/dts/armada-385-linksys-cobra.dts +@@ -0,0 +1,114 @@ ++/* ++ * Device Tree file for the Linksys WRT1900ACv2 (Cobra) ++ * ++ * Copyright (C) 2015 Imre Kaloz <kaloz@openwrt.org> ++ * ++ * ++ * This file is dual-licensed: you can use it either under the terms ++ * of the GPL or the X11 license, at your option. Note that this dual ++ * licensing only applies to this file, and not this project as a ++ * whole. ++ * ++ * a) 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. ++ * ++ * Or, alternatively, ++ * ++ * b) Permission is hereby granted, free of charge, to any person ++ * obtaining a copy of this software and associated documentation ++ * files (the "Software"), to deal in the Software without ++ * restriction, including without limitation the rights to use, ++ * copy, modify, merge, publish, distribute, sublicense, and/or ++ * sell copies of the Software, and to permit persons to whom the ++ * Software is furnished to do so, subject to the following ++ * conditions: ++ * ++ * The above copyright notice and this permission notice shall be ++ * included in all copies or substantial portions of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES ++ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ++ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT ++ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, ++ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR ++ * OTHER DEALINGS IN THE SOFTWARE. ++ */ ++ ++/dts-v1/; ++#include "armada-385-linksys.dtsi" ++ ++/ { ++ model = "Linksys WRT1900ACv2"; ++ compatible = "linksys,cobra", "linksys,armada385", "marvell,armada385", ++ "marvell,armada380"; ++ ++ soc { ++ internal-regs{ ++ i2c@11000 { ++ ++ pca9635@68 { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ wan_amber@0 { ++ label = "cobra:amber:wan"; ++ reg = <0x0>; ++ }; ++ ++ wan_white@1 { ++ label = "cobra:white:wan"; ++ reg = <0x1>; ++ }; ++ ++ wlan_2g@2 { ++ label = "cobra:white:wlan_2g"; ++ reg = <0x2>; ++ }; ++ ++ wlan_5g@3 { ++ label = "cobra:white:wlan_5g"; ++ reg = <0x3>; ++ }; ++ ++ usb2@5 { ++ label = "cobra:white:usb2"; ++ reg = <0x5>; ++ }; ++ ++ usb3_1@6 { ++ label = "cobra:white:usb3_1"; ++ reg = <0x6>; ++ }; ++ ++ usb3_2@7 { ++ label = "cobra:white:usb3_2"; ++ reg = <0x7>; ++ }; ++ ++ wps_white@8 { ++ label = "cobra:white:wps"; ++ reg = <0x8>; ++ }; ++ ++ wps_amber@9 { ++ label = "cobra:amber:wps"; ++ reg = <0x9>; ++ }; ++ }; ++ }; ++ }; ++ }; ++ ++ gpio-leds { ++ power { ++ label = "cobra:white:power"; ++ }; ++ ++ sata { ++ label = "cobra:white:sata"; ++ }; ++ }; ++}; +--- /dev/null ++++ b/arch/arm/boot/dts/armada-385-linksys.dtsi +@@ -0,0 +1,332 @@ ++/* ++ * Device Tree include file for Armada 385 based Linksys boards ++ * ++ * Copyright (C) 2015 Imre Kaloz <kaloz@openwrt.org> ++ * ++ * ++ * This file is dual-licensed: you can use it either under the terms ++ * of the GPL or the X11 license, at your option. Note that this dual ++ * licensing only applies to this file, and not this project as a ++ * whole. ++ * ++ * a) 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. ++ * ++ * Or, alternatively, ++ * ++ * b) Permission is hereby granted, free of charge, to any person ++ * obtaining a copy of this software and associated documentation ++ * files (the "Software"), to deal in the Software without ++ * restriction, including without limitation the rights to use, ++ * copy, modify, merge, publish, distribute, sublicense, and/or ++ * sell copies of the Software, and to permit persons to whom the ++ * Software is furnished to do so, subject to the following ++ * conditions: ++ * ++ * The above copyright notice and this permission notice shall be ++ * included in all copies or substantial portions of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES ++ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ++ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT ++ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, ++ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR ++ * OTHER DEALINGS IN THE SOFTWARE. ++ */ ++ ++#include <dt-bindings/gpio/gpio.h> ++#include <dt-bindings/input/input.h> ++#include "armada-385.dtsi" ++ ++/ { ++ model = "Linksys boards based on Armada 385"; ++ compatible = "linksys,armada385", "marvell,armada385", ++ "marvell,armada380"; ++ ++ chosen { ++ stdout-path = "serial0:115200n8"; ++ }; ++ ++ memory { ++ device_type = "memory"; ++ reg = <0x00000000 0x20000000>; /* 512 MB */ ++ }; ++ ++ soc { ++ ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000 ++ MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000>; ++ ++ internal-regs { ++ ++ spi@10600 { ++ status = "disabled"; ++ }; ++ ++ i2c@11000 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&i2c0_pins>; ++ status = "okay"; ++ ++ tmp421@4c { ++ compatible = "ti,tmp421"; ++ reg = <0x4c>; ++ }; ++ ++ pca9635@68 { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ compatible = "nxp,pca9635"; ++ reg = <0x68>; ++ }; ++ }; ++ ++ /* J10: VCC, NC, RX, NC, TX, GND */ ++ serial@12000 { ++ status = "okay"; ++ }; ++ ++ ethernet@70000 { ++ status = "okay"; ++ phy-mode = "rgmii-id"; ++ fixed-link { ++ speed = <1000>; ++ full-duplex; ++ }; ++ }; ++ ++ ethernet@34000 { ++ status = "okay"; ++ phy-mode = "sgmii"; ++ fixed-link { ++ speed = <1000>; ++ full-duplex; ++ }; ++ }; ++ ++ mdio { ++ status = "okay"; ++ }; ++ ++ sata@a8000 { ++ status = "okay"; ++ }; ++ ++ /* USB part of the eSATA/USB 2.0 port */ ++ usb@50000 { ++ status = "okay"; ++ }; ++ ++ usb3@f8000 { ++ status = "okay"; ++ usb-phy = <&usb3_phy>; ++ }; ++ ++ flash@d0000 { ++ status = "okay"; ++ num-cs = <1>; ++ marvell,nand-keep-config; ++ marvell,nand-enable-arbiter; ++ nand-on-flash-bbt; ++ ++ partition@0 { ++ label = "u-boot"; ++ reg = <0x0000000 0x200000>; /* 2MB */ ++ read-only; ++ }; ++ ++ partition@100000 { ++ label = "u_env"; ++ reg = <0x200000 0x40000>; /* 256KB */ ++ }; ++ ++ partition@140000 { ++ label = "s_env"; ++ reg = <0x240000 0x40000>; /* 256KB */ ++ }; ++ ++ partition@900000 { ++ label = "devinfo"; ++ reg = <0x900000 0x100000>; /* 1MB */ ++ read-only; ++ }; ++ ++ /* kernel1 overlaps with rootfs1 by design */ ++ partition@a00000 { ++ label = "kernel1"; ++ reg = <0xa00000 0x2800000>; /* 40MB */ ++ }; ++ ++ partition@1000000 { ++ label = "rootfs1"; ++ reg = <0x1000000 0x2200000>; /* 34MB */ ++ }; ++ ++ /* kernel2 overlaps with rootfs2 by design */ ++ partition@3200000 { ++ label = "kernel2"; ++ reg = <0x3200000 0x2800000>; /* 40MB */ ++ }; ++ ++ partition@3800000 { ++ label = "rootfs2"; ++ reg = <0x3800000 0x2200000>; /* 34MB */ ++ }; ++ ++ /* ++ * 38MB, last MB is for the BBT, not writable ++ */ ++ partition@5a00000 { ++ label = "syscfg"; ++ reg = <0x5a00000 0x2600000>; ++ }; ++ ++ /* ++ * Unused area between "s_env" and "devinfo". ++ * Moved here because otherwise the renumbered ++ * partitions would break the bootloader ++ * supplied bootargs ++ */ ++ partition@180000 { ++ label = "unused_area"; ++ reg = <0x280000 0x680000>; /* 6.5MB */ ++ }; ++ }; ++ }; ++ ++ pcie-controller { ++ status = "okay"; ++ ++ pcie@1,0 { ++ /* Marvell 88W8864, 5GHz-only */ ++ status = "okay"; ++ }; ++ ++ pcie@2,0 { ++ /* Marvell 88W8864, 2GHz-only */ ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ usb3_phy: usb3_phy { ++ compatible = "usb-nop-xceiv"; ++ vcc-supply = <®_xhci0_vbus>; ++ }; ++ ++ reg_xhci0_vbus: xhci0-vbus { ++ compatible = "regulator-fixed"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&xhci0_vbus_pins>; ++ regulator-name = "xhci0-vbus"; ++ regulator-min-microvolt = <5000000>; ++ regulator-max-microvolt = <5000000>; ++ enable-active-high; ++ gpio = <&gpio1 18 GPIO_ACTIVE_HIGH>; ++ }; ++ ++ gpio_keys { ++ compatible = "gpio-keys"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ pinctrl-0 = <&keys_pin>; ++ pinctrl-names = "default"; ++ ++ button@1 { ++ label = "WPS"; ++ linux,code = <KEY_WPS_BUTTON>; ++ gpios = <&gpio0 24 GPIO_ACTIVE_LOW>; ++ }; ++ ++ button@2 { ++ label = "Factory Reset Button"; ++ linux,code = <KEY_RESTART>; ++ gpios = <&gpio1 15 GPIO_ACTIVE_LOW>; ++ }; ++ }; ++ ++ gpio-leds { ++ compatible = "gpio-leds"; ++ pinctrl-0 = <&power_led_pin &sata_led_pin>; ++ pinctrl-names = "default"; ++ ++ power { ++ gpios = <&gpio1 23 GPIO_ACTIVE_HIGH>; ++ default-state = "on"; ++ }; ++ ++ sata { ++ gpios = <&gpio1 22 GPIO_ACTIVE_HIGH>; ++ default-state = "off"; ++ }; ++ }; ++ ++ dsa@0 { ++ compatible = "marvell,dsa"; ++ #address-cells = <2>; ++ #size-cells = <0>; ++ ++ dsa,ethernet = <ð2>; ++ dsa,mii-bus = <&mdio>; ++ ++ switch@0 { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ reg = <0x0 0>; /* MDIO address 0, switch 0 in tree */ ++ ++ port@0 { ++ reg = <0>; ++ label = "lan4"; ++ }; ++ ++ port@1 { ++ reg = <1>; ++ label = "lan3"; ++ }; ++ ++ port@2 { ++ reg = <2>; ++ label = "lan2"; ++ }; ++ ++ port@3 { ++ reg = <3>; ++ label = "lan1"; ++ }; ++ ++ port@4 { ++ reg = <4>; ++ label = "wan"; ++ }; ++ ++ port@5 { ++ reg = <5>; ++ label = "cpu"; ++ }; ++ }; ++ }; ++}; ++ ++&pinctrl { ++ keys_pin: keys-pin { ++ marvell,pins = "mpp24", "mpp47"; ++ marvell,function = "gpio"; ++ }; ++ ++ power_led_pin: power-led-pin { ++ marvell,pins = "mpp55"; ++ marvell,function = "gpio"; ++ }; ++ ++ sata_led_pin: sata-led-pin { ++ marvell,pins = "mpp54"; ++ marvell,function = "gpio"; ++ }; ++ ++ xhci0_vbus_pins: xhci0-vbus-pins { ++ marvell,pins = "mpp50"; ++ marvell,function = "gpio"; ++ }; ++}; |