ar71xx: add carambola2 support
authorJohn Crispin <blogic@openwrt.org>
Thu, 11 Jul 2013 21:16:53 +0000 (21:16 +0000)
committerJohn Crispin <blogic@openwrt.org>
Thu, 11 Jul 2013 21:16:53 +0000 (21:16 +0000)
Signed-off-by: John Crispin <blogic@openwrt.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37260 3c298f89-4303-0410-b956-a3cf2f4a3e73

target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
target/linux/ar71xx/base-files/lib/ar71xx.sh
target/linux/ar71xx/base-files/lib/upgrade/platform.sh
target/linux/ar71xx/config-3.10
target/linux/ar71xx/config-3.8
target/linux/ar71xx/files/arch/mips/ath79/mach-carambola2.c [new file with mode: 0644]
target/linux/ar71xx/generic/profiles/8devices.mk [new file with mode: 0644]
target/linux/ar71xx/image/Makefile
target/linux/ar71xx/patches-3.10/610-MIPS-ath79-openwrt-machines.patch
target/linux/ar71xx/patches-3.8/610-MIPS-ath79-openwrt-machines.patch

index c9bcedd..2db8941 100755 (executable)
@@ -38,6 +38,12 @@ cap4200ag)
        ucidef_set_led_wlan "wlan_green" "WLAN_GREEN" "senao:green:wlan" "phy1tpt"
        ;;
 
+carambola2)
+       ucidef_set_led_netdev "lan" "LAN" "carambola2:orange:eth0" "eth0"
+       ucidef_set_led_netdev "wan" "WAN" "carambola2:orange:eth1" "eth1"
+       ucidef_set_led_wlan "wlan" "WLAN" "carambola2:green:wlan" "phy0tpt"
+       ;;
+
 db120)
        ucidef_set_led_usbdev "usb" "USB" "db120:green:usb" "1-1"
        ;;
index 05e1093..19f19e7 100755 (executable)
@@ -525,6 +525,9 @@ ar71xx_board_detect() {
        *EmbWir-Dorin-Router)
                name="ew-dorin-router"
                ;;
+       "8devices Carambola2"*)
+               name="carambola2"
+               ;;
        esac
 
        case "$machine" in
index 26b855f..9542295 100755 (executable)
@@ -133,7 +133,8 @@ platform_check_image() {
        wlae-ag300n | \
        nbg460n_550n_550nh | \
        unifi | \
-       unifi-outdoor )
+       unifi-outdoor | \
+       carambola2 )
                [ "$magic" != "2705" ] && {
                        echo "Invalid image type."
                        return 1
index 71a8a72..b6d065b 100644 (file)
@@ -36,6 +36,7 @@ CONFIG_ATH79_MACH_AP96=y
 CONFIG_ATH79_MACH_ARCHER_C7=y
 CONFIG_ATH79_MACH_AW_NR580=y
 CONFIG_ATH79_MACH_CAP4200AG=y
+CONFIG_ATH79_MACH_CARAMBOLA2=y
 CONFIG_ATH79_MACH_DB120=y
 CONFIG_ATH79_MACH_DIR_600_A1=y
 CONFIG_ATH79_MACH_DIR_615_C1=y
index 8a8d6a6..25a1803 100644 (file)
@@ -36,6 +36,7 @@ CONFIG_ATH79_MACH_AP96=y
 CONFIG_ATH79_MACH_ARCHER_C7=y
 CONFIG_ATH79_MACH_AW_NR580=y
 CONFIG_ATH79_MACH_CAP4200AG=y
+CONFIG_ATH79_MACH_CARAMBOLA2=y
 CONFIG_ATH79_MACH_DB120=y
 CONFIG_ATH79_MACH_DIR_600_A1=y
 CONFIG_ATH79_MACH_DIR_615_C1=y
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-carambola2.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-carambola2.c
new file mode 100644 (file)
index 0000000..e7bc861
--- /dev/null
@@ -0,0 +1,114 @@
+/*
+ *  8devices Carambola2 board support
+ *
+ *  Copyright (C) 2013 Darius Augulis <darius@8devices.com>
+ *
+ *  This program is free software; you can redistribute it and/or modify it
+ *  under the terms of the GNU General Public License version 2 as published
+ *  by the Free Software Foundation.
+ */
+
+#include <asm/mach-ath79/ath79.h>
+#include <asm/mach-ath79/ar71xx_regs.h>
+#include "common.h"
+#include "dev-eth.h"
+#include "dev-gpio-buttons.h"
+#include "dev-leds-gpio.h"
+#include "dev-m25p80.h"
+#include "dev-spi.h"
+#include "dev-usb.h"
+#include "dev-wmac.h"
+#include "machtypes.h"
+
+#define CARAMBOLA2_GPIO_LED_WLAN               0
+#define CARAMBOLA2_GPIO_LED_ETH0               14
+#define CARAMBOLA2_GPIO_LED_ETH1               13
+
+#define CARAMBOLA2_GPIO_BTN_JUMPSTART          11
+#define CARAMBOLA2_GPIO_BTN_RESET              12
+
+#define CARAMBOLA2_KEYS_POLL_INTERVAL          20      /* msecs */
+#define CARAMBOLA2_KEYS_DEBOUNCE_INTERVAL      (3 * CARAMBOLA2_KEYS_POLL_INTERVAL)
+
+#define CARAMBOLA2_MAC0_OFFSET                 0x0000
+#define CARAMBOLA2_MAC1_OFFSET                 0x0006
+#define CARAMBOLA2_CALDATA_OFFSET              0x1000
+#define CARAMBOLA2_WMAC_MAC_OFFSET             0x1002
+
+static struct gpio_led carambola2_leds_gpio[] __initdata = {
+       {
+               .name           = "carambola2:green:wlan",
+               .gpio           = CARAMBOLA2_GPIO_LED_WLAN,
+               .active_low     = 1,
+       }, {
+               .name           = "carambola2:orange:eth0",
+               .gpio           = CARAMBOLA2_GPIO_LED_ETH0,
+               .active_low     = 0,
+       }, {
+               .name           = "carambola2:orange:eth1",
+               .gpio           = CARAMBOLA2_GPIO_LED_ETH1,
+               .active_low     = 0,
+       }
+};
+
+static struct gpio_keys_button carambola2_gpio_keys[] __initdata = {
+       {
+               .desc           = "jumpstart button",
+               .type           = EV_KEY,
+               .code           = KEY_WPS_BUTTON,
+               .debounce_interval = CARAMBOLA2_KEYS_DEBOUNCE_INTERVAL,
+               .gpio           = CARAMBOLA2_GPIO_BTN_JUMPSTART,
+               .active_low     = 1,
+       },
+       {
+               .desc           = "reset button",
+               .type           = EV_KEY,
+               .code           = KEY_RESTART,
+               .debounce_interval = CARAMBOLA2_KEYS_DEBOUNCE_INTERVAL,
+               .gpio           = CARAMBOLA2_GPIO_BTN_RESET,
+               .active_low     = 1,
+       }
+};
+
+static void __init carambola2_common_setup(void)
+{
+       u8 *art = (u8 *) KSEG1ADDR(0x1fff0000);
+
+       ath79_register_m25p80(NULL);
+       ath79_register_wmac(art + CARAMBOLA2_CALDATA_OFFSET,
+                           art + CARAMBOLA2_WMAC_MAC_OFFSET);
+
+       ath79_setup_ar933x_phy4_switch(true, true);
+
+       ath79_init_mac(ath79_eth0_data.mac_addr, art + CARAMBOLA2_MAC0_OFFSET, 0);
+       ath79_init_mac(ath79_eth1_data.mac_addr, art + CARAMBOLA2_MAC1_OFFSET, 0);
+
+       ath79_register_mdio(0, 0x0);
+
+       /* LAN ports */
+       ath79_register_eth(1);
+
+       /* WAN port */
+       ath79_register_eth(0);
+}
+
+static void __init carambola2_setup(void)
+{
+       carambola2_common_setup();
+
+       ath79_gpio_function_disable(AR724X_GPIO_FUNC_ETH_SWITCH_LED0_EN |
+                               AR724X_GPIO_FUNC_ETH_SWITCH_LED1_EN |
+                               AR724X_GPIO_FUNC_ETH_SWITCH_LED2_EN |
+                               AR724X_GPIO_FUNC_ETH_SWITCH_LED3_EN |
+                               AR724X_GPIO_FUNC_ETH_SWITCH_LED4_EN);
+
+       ath79_register_leds_gpio(-1, ARRAY_SIZE(carambola2_leds_gpio),
+                                carambola2_leds_gpio);
+       ath79_register_gpio_keys_polled(-1, CARAMBOLA2_KEYS_POLL_INTERVAL,
+                                       ARRAY_SIZE(carambola2_gpio_keys),
+                                       carambola2_gpio_keys);
+       ath79_register_usb();
+}
+
+MIPS_MACHINE(ATH79_MACH_CARAMBOLA2, "CARAMBOLA2", "8devices Carambola2 board",
+               carambola2_setup);
diff --git a/target/linux/ar71xx/generic/profiles/8devices.mk b/target/linux/ar71xx/generic/profiles/8devices.mk
new file mode 100644 (file)
index 0000000..209403a
--- /dev/null
@@ -0,0 +1,17 @@
+#
+# Copyright (C) 2013 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define Profile/CARAMBOLA2
+        NAME:=Carambola2 board from 8Devices
+        PACKAGES:=kmod-usb-core kmod-usb2
+endef
+
+define Profile/CARAMBOLA2/Description
+        Package set optimized for the 8devices Carambola2 board.
+endef
+
+$(eval $(call Profile,CARAMBOLA2))
index 2ed63d0..dce68da 100644 (file)
@@ -157,6 +157,7 @@ ap96_mtdlayout=mtdparts=spi0.0:192k(u-boot)ro,64k(u-boot-env)ro,6144k(rootfs),17
 ap113_mtd_layout=mtdparts=spi0.0:64k(u-boot),3008k(rootfs),896k(uImage),64k(NVRAM),64k(ART),3904k@0x10000(firmware)
 ap121_mtdlayout_2M=mtdparts=spi0.0:64k(u-boot)ro,1216k(rootfs),704k(kernel),64k(art)ro,1920k@0x10000(firmware)
 ap121_mtdlayout_4M=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,2752k(rootfs),896k(kernel),64k(nvram),64k(art)ro,3648k@0x50000(firmware)
+carambola2_mtdlayout_16M=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,2048k(kernel),13888k(rootfs),64k(nvram),64k(art)ro,15936k@0x50000(firmware)
 ap132_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,1408k(kernel),6400k(rootfs),64k(art),7808k@0x50000(firmware)
 ap135_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,14528k(rootfs),1472k(kernel),64k(art)ro,16000k@0x50000(firmware)
 ap136_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,6336k(rootfs),1408k(kernel),64k(mib0),64k(art)ro,7744k@0x50000(firmware)
@@ -852,6 +853,7 @@ $(eval $(call SingleProfile,AthLzma,$(fs_256k),ALL0315N,all0315n,ALL0315N,ttyS0,
 $(eval $(call SingleProfile,AthLzma,$(fs_64k),AP113,ap113,AP113,ttyS0,115200,$$(ap113_mtd_layout),917504,3080192,RK))
 $(eval $(call SingleProfile,AthLzma,$(fs_64k),AP121_2M,ap121-2M,AP121,ttyATH0,115200,$$(ap121_mtdlayout_2M),720896,1245184,RKuImage))
 $(eval $(call SingleProfile,AthLzma,$(fs_64k),AP121_4M,ap121-4M,AP121,ttyATH0,115200,$$(ap121_mtdlayout_4M),917504,2818048,RKuImage))
+$(eval $(call SingleProfile,AthLzma,$(fs_64k),CARAMBOLA2,carambola2,CARAMBOLA2,ttyATH0,115200,$$(carambola2_mtdlayout_16M),2097152,14221312,KRuImage))
 $(eval $(call SingleProfile,AthLzma,$(fs_64k),AP121MINI,ap121-mini,AP121-MINI,ttyATH0,115200,$$(ap121_mtdlayout_4M),917504,2818048,RKuImage))
 $(eval $(call SingleProfile,AthLzma,$(fs_64k),AP132,ap132,AP132,ttyS0,115200,$$(ap132_mtdlayout),1441792,6553600,KRuImage))
 $(eval $(call SingleProfile,AthLzma,$(fs_64k),AP135,ap135-020,AP135-020,ttyS0,115200,$$(ap135_mtdlayout),1507328,14876672,RKuImage))
index d2dbb59..12e24f0 100644 (file)
@@ -1,6 +1,8 @@
---- a/arch/mips/ath79/machtypes.h
-+++ b/arch/mips/ath79/machtypes.h
-@@ -16,22 +16,124 @@
+Index: linux-3.10/arch/mips/ath79/machtypes.h
+===================================================================
+--- linux-3.10.orig/arch/mips/ath79/machtypes.h        2013-07-11 22:29:04.592988418 +0200
++++ linux-3.10/arch/mips/ath79/machtypes.h     2013-07-11 22:42:15.781006779 +0200
+@@ -16,22 +16,125 @@
  
  enum ath79_mach_type {
        ATH79_MACH_GENERIC = 0,
@@ -22,6 +24,7 @@
 +      ATH79_MACH_ARCHER_C7,           /* TP-LINK Archer C7 board */
 +      ATH79_MACH_AW_NR580,            /* AzureWave AW-NR580 */
 +      ATH79_MACH_CAP4200AG,           /* Senao CAP4200AG */
++      ATH79_MACH_CARAMBOLA2,          /* 8devices Carambola2 */
        ATH79_MACH_DB120,               /* Atheros DB120 reference board */
        ATH79_MACH_PB44,                /* Atheros PB44 reference board */
 +      ATH79_MACH_DIR_600_A1,          /* D-Link DIR-600 rev. A1 */
  };
  
  #endif /* _ATH79_MACHTYPE_H */
---- a/arch/mips/ath79/Kconfig
-+++ b/arch/mips/ath79/Kconfig
-@@ -2,6 +2,61 @@ if ATH79
+Index: linux-3.10/arch/mips/ath79/Kconfig
+===================================================================
+--- linux-3.10.orig/arch/mips/ath79/Kconfig    2013-07-11 22:29:04.592988418 +0200
++++ linux-3.10/arch/mips/ath79/Kconfig 2013-07-11 22:41:53.245006256 +0200
+@@ -2,6 +2,61 @@
  
  menu "Atheros AR71XX/AR724X/AR913X machine selection"
  
  config ATH79_MACH_AP121
        bool "Atheros AP121 reference board"
        select SOC_AR933X
-@@ -15,6 +70,18 @@ config ATH79_MACH_AP121
-         Say 'Y' here if you want your kernel to support the
-         Atheros AP121 reference board.
+@@ -11,62 +66,654 @@
+       select ATH79_DEV_M25P80
+       select ATH79_DEV_USB
+       select ATH79_DEV_WMAC
+-      help
+-        Say 'Y' here if you want your kernel to support the
+-        Atheros AP121 reference board.
++      help
++        Say 'Y' here if you want your kernel to support the
++        Atheros AP121 reference board.
++
 +config ATH79_MACH_AP132
 +      bool "Atheros AP132 reference board"
 +      select SOC_QCA955X
 +        Say 'Y' here if you want your kernel to support the
 +        Atheros AP132 reference boards.
 +
- config ATH79_MACH_AP136
-       bool "Atheros AP136/AP135 reference board"
-       select SOC_QCA955X
-@@ -41,6 +108,24 @@ config ATH79_MACH_AP81
-         Say 'Y' here if you want your kernel to support the
-         Atheros AP81 reference board.
++config ATH79_MACH_AP136
++      bool "Atheros AP136/AP135 reference board"
++      select SOC_QCA955X
++      select ATH79_DEV_GPIO_BUTTONS
++      select ATH79_DEV_LEDS_GPIO
++      select ATH79_DEV_NFC
++      select ATH79_DEV_SPI
++      select ATH79_DEV_USB
++      select ATH79_DEV_WMAC
++      help
++        Say 'Y' here if you want your kernel to support the
++        Atheros AP136 or AP135 reference boards.
++
++config ATH79_MACH_AP81
++      bool "Atheros AP81 reference board"
++      select SOC_AR913X
++      select ATH79_DEV_ETH
++      select ATH79_DEV_GPIO_BUTTONS
++      select ATH79_DEV_LEDS_GPIO
++      select ATH79_DEV_M25P80
++      select ATH79_DEV_USB
++      select ATH79_DEV_WMAC
++      help
++        Say 'Y' here if you want your kernel to support the
++        Atheros AP81 reference board.
++
 +config ATH79_MACH_AP83
 +      bool "Atheros AP83 board support"
 +      select SOC_AR913X
 +      select ATH79_DEV_M25P80
 +      select ATH79_DEV_USB
 +
- config ATH79_MACH_DB120
-       bool "Atheros DB120 reference board"
-       select SOC_AR934X
-@@ -56,6 +141,13 @@ config ATH79_MACH_DB120
-         Say 'Y' here if you want your kernel to support the
-         Atheros DB120 reference board.
++config ATH79_MACH_DB120
++      bool "Atheros DB120 reference board"
++      select SOC_AR934X
++      select ATH79_DEV_AP9X_PCI if PCI
++      select ATH79_DEV_ETH
++      select ATH79_DEV_GPIO_BUTTONS
++      select ATH79_DEV_LEDS_GPIO
++      select ATH79_DEV_M25P80
++      select ATH79_DEV_NFC
++      select ATH79_DEV_USB
++      select ATH79_DEV_WMAC
++      help
++        Say 'Y' here if you want your kernel to support the
++        Atheros DB120 reference board.
++
 +config ATH79_MACH_PB42
 +      bool "Atheros PB42 board support"
 +      select SOC_AR71XX
 +      select ATH79_DEV_GPIO_BUTTONS
 +      select ATH79_DEV_M25P80
 +
- config ATH79_MACH_PB44
-       bool "Atheros PB44 reference board"
-       select SOC_AR71XX
-@@ -68,6 +160,561 @@ config ATH79_MACH_PB44
-         Say 'Y' here if you want your kernel to support the
-         Atheros PB44 reference board.
++config ATH79_MACH_PB44
++      bool "Atheros PB44 reference board"
++      select SOC_AR71XX
++      select ATH79_DEV_ETH
++      select ATH79_DEV_GPIO_BUTTONS
++      select ATH79_DEV_LEDS_GPIO
++      select ATH79_DEV_SPI
++      select ATH79_DEV_USB
++      help
++        Say 'Y' here if you want your kernel to support the
++        Atheros PB44 reference board.
++
 +config ATH79_MACH_PB92
 +      bool "Atheros PB92 board support"
 +      select SOC_AR724X
 +      select ATH79_DEV_M25P80
 +      select ATH79_DEV_USB
 +      select ATH79_DEV_WMAC
-+
+-config ATH79_MACH_AP136
+-      bool "Atheros AP136/AP135 reference board"
 +config ATH79_MACH_MZK_W300NH
 +      bool "Planex MZK-W300NH board support"
 +      select SOC_AR913X
 +
 +config ATH79_MACH_ARCHER_C7
 +      bool "TP-LINK Archer C7 board support"
-+      select SOC_QCA955X
+       select SOC_QCA955X
 +      select ATH79_DEV_ETH
-+      select ATH79_DEV_GPIO_BUTTONS
-+      select ATH79_DEV_LEDS_GPIO
-+      select ATH79_DEV_SPI
-+      select ATH79_DEV_USB
-+      select ATH79_DEV_WMAC
-+
+       select ATH79_DEV_GPIO_BUTTONS
+       select ATH79_DEV_LEDS_GPIO
+-      select ATH79_DEV_NFC
+       select ATH79_DEV_SPI
+       select ATH79_DEV_USB
+       select ATH79_DEV_WMAC
+-      help
+-        Say 'Y' here if you want your kernel to support the
+-        Atheros AP136 or AP135 reference boards.
+-config ATH79_MACH_AP81
+-      bool "Atheros AP81 reference board"
 +config ATH79_MACH_TL_MR11U
 +      bool "TP-LINK TL-MR11U/TL-MR3040 support"
 +      select SOC_AR933X
 +
 +config ATH79_MACH_TL_WA901ND_V2
 +      bool "TP-LINK TL-WA901ND v2 support"
-+      select SOC_AR913X
-+      select ATH79_DEV_ETH
-+      select ATH79_DEV_GPIO_BUTTONS
-+      select ATH79_DEV_LEDS_GPIO
-+      select ATH79_DEV_M25P80
+       select SOC_AR913X
+       select ATH79_DEV_ETH
+       select ATH79_DEV_GPIO_BUTTONS
+       select ATH79_DEV_LEDS_GPIO
+       select ATH79_DEV_M25P80
 +      select ATH79_DEV_WMAC
 +
 +config ATH79_MACH_TL_WDR3500
 +      select ATH79_DEV_GPIO_BUTTONS
 +      select ATH79_DEV_LEDS_GPIO
 +      select ATH79_DEV_M25P80
-+      select ATH79_DEV_USB
-+      select ATH79_DEV_WMAC
-+
+       select ATH79_DEV_USB
+       select ATH79_DEV_WMAC
+-      help
+-        Say 'Y' here if you want your kernel to support the
+-        Atheros AP81 reference board.
+-config ATH79_MACH_DB120
+-      bool "Atheros DB120 reference board"
 +config ATH79_MACH_TL_WDR4300
 +      bool "TP-LINK TL-WDR3600/4300/4310 board support"
-+      select SOC_AR934X
-+      select ATH79_DEV_AP9X_PCI if PCI
-+      select ATH79_DEV_ETH
-+      select ATH79_DEV_GPIO_BUTTONS
-+      select ATH79_DEV_LEDS_GPIO
-+      select ATH79_DEV_M25P80
-+      select ATH79_DEV_USB
-+      select ATH79_DEV_WMAC
-+
+       select SOC_AR934X
+       select ATH79_DEV_AP9X_PCI if PCI
+       select ATH79_DEV_ETH
+       select ATH79_DEV_GPIO_BUTTONS
+       select ATH79_DEV_LEDS_GPIO
+       select ATH79_DEV_M25P80
+-      select ATH79_DEV_NFC
+       select ATH79_DEV_USB
+       select ATH79_DEV_WMAC
+-      help
+-        Say 'Y' here if you want your kernel to support the
+-        Atheros DB120 reference board.
+-config ATH79_MACH_PB44
+-      bool "Atheros PB44 reference board"
 +config ATH79_MACH_TL_WR703N
 +      bool "TP-LINK TL-WR703N support"
 +      select SOC_AR933X
 +
 +config ATH79_MACH_TL_WR841N_V1
 +      bool "TP-LINK TL-WR841N v1 support"
-+      select SOC_AR71XX
+       select SOC_AR71XX
 +      select ATH79_DEV_DSA
-+      select ATH79_DEV_ETH
-+      select ATH79_DEV_GPIO_BUTTONS
-+      select ATH79_DEV_LEDS_GPIO
+       select ATH79_DEV_ETH
+       select ATH79_DEV_GPIO_BUTTONS
+       select ATH79_DEV_LEDS_GPIO
+-      select ATH79_DEV_SPI
 +      select ATH79_DEV_M25P80
 +
 +config ATH79_MACH_TL_WR841N_V8
 +      select ATH79_DEV_GPIO_BUTTONS
 +      select ATH79_DEV_LEDS_GPIO
 +      select ATH79_DEV_M25P80
-+      select ATH79_DEV_USB
-+
+       select ATH79_DEV_USB
+-      help
+-        Say 'Y' here if you want your kernel to support the
+-        Atheros PB44 reference board.
  config ATH79_MACH_UBNT_XM
        bool "Ubiquiti Networks XM/UniFi boards"
-       select SOC_AR724X
-@@ -83,6 +730,24 @@ config ATH79_MACH_UBNT_XM
+@@ -83,6 +730,34 @@
          Say 'Y' here if you want your kernel to support the
          Ubiquiti Networks XM (rev 1.0) board.
  
 +      select ATH79_DEV_M25P80
 +      select ATH79_DEV_WMAC
 +
++config ATH79_MACH_CARAMBOLA2
++      bool "8devices Carambola2 board"
++      select SOC_AR933X
++      select ATH79_DEV_ETH
++      select ATH79_DEV_GPIO_BUTTONS
++      select ATH79_DEV_LEDS_GPIO
++      select ATH79_DEV_M25P80
++      select ATH79_DEV_USB
++      select ATH79_DEV_WMAC
++
  endmenu
  
  config SOC_AR71XX
-@@ -132,7 +797,10 @@ config ATH79_DEV_DSA
+@@ -132,7 +807,10 @@
  config ATH79_DEV_ETH
        def_bool n
  
        def_bool n
  
  config ATH79_DEV_GPIO_BUTTONS
-@@ -164,4 +832,7 @@ config ATH79_PCI_ATH9K_FIXUP
+@@ -164,4 +842,7 @@
  config ATH79_ROUTERBOOT
        def_bool n
  
 +      def_bool n
 +
  endif
---- a/arch/mips/ath79/Makefile
-+++ b/arch/mips/ath79/Makefile
-@@ -38,9 +38,78 @@ obj-$(CONFIG_ATH79_ROUTERBOOT)              += route
+Index: linux-3.10/arch/mips/ath79/Makefile
+===================================================================
+--- linux-3.10.orig/arch/mips/ath79/Makefile   2013-07-11 22:29:04.400988414 +0200
++++ linux-3.10/arch/mips/ath79/Makefile        2013-07-11 22:42:39.673007333 +0200
+@@ -38,9 +38,79 @@
  #
  # Machines
  #
 +obj-$(CONFIG_ATH79_MACH_WZR_HP_AG300H)        += mach-wzr-hp-ag300h.o
 +obj-$(CONFIG_ATH79_MACH_WZR_HP_G450H) += mach-wzr-hp-g450h.o
 +obj-$(CONFIG_ATH79_MACH_ZCN_1523H)    += mach-zcn-1523h.o
---- a/arch/mips/ath79/prom.c
-+++ b/arch/mips/ath79/prom.c
-@@ -180,6 +180,11 @@ void __init prom_init(void)
++obj-$(CONFIG_ATH79_MACH_CARAMBOLA2)   += mach-carambola2.o
+Index: linux-3.10/arch/mips/ath79/prom.c
+===================================================================
+--- linux-3.10.orig/arch/mips/ath79/prom.c     2013-07-11 22:29:04.128988408 +0200
++++ linux-3.10/arch/mips/ath79/prom.c  2013-07-11 22:29:04.620988419 +0200
+@@ -180,6 +180,11 @@
                        ath79_prom_append_cmdline("board", env);
                }
        }
index d2dbb59..b1ffda3 100644 (file)
@@ -1,6 +1,8 @@
---- a/arch/mips/ath79/machtypes.h
-+++ b/arch/mips/ath79/machtypes.h
-@@ -16,22 +16,124 @@
+Index: linux-3.8.13/arch/mips/ath79/machtypes.h
+===================================================================
+--- linux-3.8.13.orig/arch/mips/ath79/machtypes.h      2013-07-11 21:39:45.340919744 +0200
++++ linux-3.8.13/arch/mips/ath79/machtypes.h   2013-07-11 22:02:50.208951883 +0200
+@@ -16,22 +16,125 @@
  
  enum ath79_mach_type {
        ATH79_MACH_GENERIC = 0,
@@ -22,6 +24,7 @@
 +      ATH79_MACH_ARCHER_C7,           /* TP-LINK Archer C7 board */
 +      ATH79_MACH_AW_NR580,            /* AzureWave AW-NR580 */
 +      ATH79_MACH_CAP4200AG,           /* Senao CAP4200AG */
++      ATH79_MACH_CARAMBOLA2,          /* 8devices Carambola2 */
        ATH79_MACH_DB120,               /* Atheros DB120 reference board */
        ATH79_MACH_PB44,                /* Atheros PB44 reference board */
 +      ATH79_MACH_DIR_600_A1,          /* D-Link DIR-600 rev. A1 */
 +      ATH79_MACH_TL_WR941ND,          /* TP-LINK TL-WR941ND */
        ATH79_MACH_UBNT_AIRROUTER,      /* Ubiquiti AirRouter */
        ATH79_MACH_UBNT_BULLET_M,       /* Ubiquiti Bullet M */
+-      ATH79_MACH_UBNT_NANO_M,         /* Ubiquiti NanoStation M */
 +      ATH79_MACH_UBNT_LSSR71,         /* Ubiquiti LS-SR71 */
 +      ATH79_MACH_UBNT_LSX,            /* Ubiquiti LSX */
-       ATH79_MACH_UBNT_NANO_M,         /* Ubiquiti NanoStation M */
++      ATH79_MACH_UBNT_NANO_M,         /* Ubiquiti NanoStation M */
        ATH79_MACH_UBNT_ROCKET_M,       /* Ubiquiti Rocket M */
 +      ATH79_MACH_UBNT_RSPRO,          /* Ubiquiti RouterStation Pro */
 +      ATH79_MACH_UBNT_RS,             /* Ubiquiti RouterStation */
        ATH79_MACH_UBNT_UAP_PRO,        /* Ubiquiti UniFi AP Pro */
-       ATH79_MACH_UBNT_UNIFI,          /* Ubiquiti Unifi */
+-      ATH79_MACH_UBNT_UNIFI,          /* Ubiquiti Unifi */
++      ATH79_MACH_UBNT_UNIFI,          /* Ubiquiti Unifi */
        ATH79_MACH_UBNT_UNIFI_OUTDOOR,  /* Ubiquiti UnifiAP Outdoor */
        ATH79_MACH_UBNT_XM,             /* Ubiquiti Networks XM board rev 1.0 */
 +      ATH79_MACH_WHR_G301N,           /* Buffalo WHR-G301N */
  };
  
  #endif /* _ATH79_MACHTYPE_H */
---- a/arch/mips/ath79/Kconfig
-+++ b/arch/mips/ath79/Kconfig
-@@ -2,6 +2,61 @@ if ATH79
+Index: linux-3.8.13/arch/mips/ath79/Kconfig
+===================================================================
+--- linux-3.8.13.orig/arch/mips/ath79/Kconfig  2013-07-11 21:39:45.340919744 +0200
++++ linux-3.8.13/arch/mips/ath79/Kconfig       2013-07-11 21:57:12.076944035 +0200
+@@ -2,6 +2,61 @@
  
  menu "Atheros AR71XX/AR724X/AR913X machine selection"
  
  config ATH79_MACH_AP121
        bool "Atheros AP121 reference board"
        select SOC_AR933X
-@@ -15,6 +70,18 @@ config ATH79_MACH_AP121
-         Say 'Y' here if you want your kernel to support the
-         Atheros AP121 reference board.
+@@ -11,62 +66,654 @@
+       select ATH79_DEV_M25P80
+       select ATH79_DEV_USB
+       select ATH79_DEV_WMAC
+-      help
+-        Say 'Y' here if you want your kernel to support the
+-        Atheros AP121 reference board.
++      help
++        Say 'Y' here if you want your kernel to support the
++        Atheros AP121 reference board.
++
 +config ATH79_MACH_AP132
 +      bool "Atheros AP132 reference board"
 +      select SOC_QCA955X
 +        Say 'Y' here if you want your kernel to support the
 +        Atheros AP132 reference boards.
 +
- config ATH79_MACH_AP136
-       bool "Atheros AP136/AP135 reference board"
-       select SOC_QCA955X
-@@ -41,6 +108,24 @@ config ATH79_MACH_AP81
-         Say 'Y' here if you want your kernel to support the
-         Atheros AP81 reference board.
++config ATH79_MACH_AP136
++      bool "Atheros AP136/AP135 reference board"
++      select SOC_QCA955X
++      select ATH79_DEV_GPIO_BUTTONS
++      select ATH79_DEV_LEDS_GPIO
++      select ATH79_DEV_NFC
++      select ATH79_DEV_SPI
++      select ATH79_DEV_USB
++      select ATH79_DEV_WMAC
++      help
++        Say 'Y' here if you want your kernel to support the
++        Atheros AP136 or AP135 reference boards.
++
++config ATH79_MACH_AP81
++      bool "Atheros AP81 reference board"
++      select SOC_AR913X
++      select ATH79_DEV_ETH
++      select ATH79_DEV_GPIO_BUTTONS
++      select ATH79_DEV_LEDS_GPIO
++      select ATH79_DEV_M25P80
++      select ATH79_DEV_USB
++      select ATH79_DEV_WMAC
++      help
++        Say 'Y' here if you want your kernel to support the
++        Atheros AP81 reference board.
++
 +config ATH79_MACH_AP83
 +      bool "Atheros AP83 board support"
 +      select SOC_AR913X
 +      select ATH79_DEV_M25P80
 +      select ATH79_DEV_USB
 +
- config ATH79_MACH_DB120
-       bool "Atheros DB120 reference board"
-       select SOC_AR934X
-@@ -56,6 +141,13 @@ config ATH79_MACH_DB120
-         Say 'Y' here if you want your kernel to support the
-         Atheros DB120 reference board.
++config ATH79_MACH_DB120
++      bool "Atheros DB120 reference board"
++      select SOC_AR934X
++      select ATH79_DEV_AP9X_PCI if PCI
++      select ATH79_DEV_ETH
++      select ATH79_DEV_GPIO_BUTTONS
++      select ATH79_DEV_LEDS_GPIO
++      select ATH79_DEV_M25P80
++      select ATH79_DEV_NFC
++      select ATH79_DEV_USB
++      select ATH79_DEV_WMAC
++      help
++        Say 'Y' here if you want your kernel to support the
++        Atheros DB120 reference board.
++
 +config ATH79_MACH_PB42
 +      bool "Atheros PB42 board support"
 +      select SOC_AR71XX
 +      select ATH79_DEV_GPIO_BUTTONS
 +      select ATH79_DEV_M25P80
 +
- config ATH79_MACH_PB44
-       bool "Atheros PB44 reference board"
-       select SOC_AR71XX
-@@ -68,6 +160,561 @@ config ATH79_MACH_PB44
-         Say 'Y' here if you want your kernel to support the
-         Atheros PB44 reference board.
++config ATH79_MACH_PB44
++      bool "Atheros PB44 reference board"
++      select SOC_AR71XX
++      select ATH79_DEV_ETH
++      select ATH79_DEV_GPIO_BUTTONS
++      select ATH79_DEV_LEDS_GPIO
++      select ATH79_DEV_SPI
++      select ATH79_DEV_USB
++      help
++        Say 'Y' here if you want your kernel to support the
++        Atheros PB44 reference board.
++
 +config ATH79_MACH_PB92
 +      bool "Atheros PB92 board support"
 +      select SOC_AR724X
 +      select ATH79_DEV_M25P80
 +      select ATH79_DEV_USB
 +      select ATH79_DEV_WMAC
-+
+-config ATH79_MACH_AP136
+-      bool "Atheros AP136/AP135 reference board"
 +config ATH79_MACH_MZK_W300NH
 +      bool "Planex MZK-W300NH board support"
 +      select SOC_AR913X
 +
 +config ATH79_MACH_ARCHER_C7
 +      bool "TP-LINK Archer C7 board support"
-+      select SOC_QCA955X
+       select SOC_QCA955X
 +      select ATH79_DEV_ETH
-+      select ATH79_DEV_GPIO_BUTTONS
-+      select ATH79_DEV_LEDS_GPIO
-+      select ATH79_DEV_SPI
-+      select ATH79_DEV_USB
-+      select ATH79_DEV_WMAC
-+
+       select ATH79_DEV_GPIO_BUTTONS
+       select ATH79_DEV_LEDS_GPIO
+-      select ATH79_DEV_NFC
+       select ATH79_DEV_SPI
+       select ATH79_DEV_USB
+       select ATH79_DEV_WMAC
+-      help
+-        Say 'Y' here if you want your kernel to support the
+-        Atheros AP136 or AP135 reference boards.
+-config ATH79_MACH_AP81
+-      bool "Atheros AP81 reference board"
 +config ATH79_MACH_TL_MR11U
 +      bool "TP-LINK TL-MR11U/TL-MR3040 support"
 +      select SOC_AR933X
 +
 +config ATH79_MACH_TL_WA901ND_V2
 +      bool "TP-LINK TL-WA901ND v2 support"
-+      select SOC_AR913X
-+      select ATH79_DEV_ETH
-+      select ATH79_DEV_GPIO_BUTTONS
-+      select ATH79_DEV_LEDS_GPIO
-+      select ATH79_DEV_M25P80
+       select SOC_AR913X
+       select ATH79_DEV_ETH
+       select ATH79_DEV_GPIO_BUTTONS
+       select ATH79_DEV_LEDS_GPIO
+       select ATH79_DEV_M25P80
 +      select ATH79_DEV_WMAC
 +
 +config ATH79_MACH_TL_WDR3500
 +      select ATH79_DEV_GPIO_BUTTONS
 +      select ATH79_DEV_LEDS_GPIO
 +      select ATH79_DEV_M25P80
-+      select ATH79_DEV_USB
-+      select ATH79_DEV_WMAC
-+
+       select ATH79_DEV_USB
+       select ATH79_DEV_WMAC
+-      help
+-        Say 'Y' here if you want your kernel to support the
+-        Atheros AP81 reference board.
+-config ATH79_MACH_DB120
+-      bool "Atheros DB120 reference board"
 +config ATH79_MACH_TL_WDR4300
 +      bool "TP-LINK TL-WDR3600/4300/4310 board support"
-+      select SOC_AR934X
-+      select ATH79_DEV_AP9X_PCI if PCI
-+      select ATH79_DEV_ETH
-+      select ATH79_DEV_GPIO_BUTTONS
-+      select ATH79_DEV_LEDS_GPIO
-+      select ATH79_DEV_M25P80
-+      select ATH79_DEV_USB
-+      select ATH79_DEV_WMAC
-+
+       select SOC_AR934X
+       select ATH79_DEV_AP9X_PCI if PCI
+       select ATH79_DEV_ETH
+       select ATH79_DEV_GPIO_BUTTONS
+       select ATH79_DEV_LEDS_GPIO
+       select ATH79_DEV_M25P80
+-      select ATH79_DEV_NFC
+       select ATH79_DEV_USB
+       select ATH79_DEV_WMAC
+-      help
+-        Say 'Y' here if you want your kernel to support the
+-        Atheros DB120 reference board.
+-config ATH79_MACH_PB44
+-      bool "Atheros PB44 reference board"
 +config ATH79_MACH_TL_WR703N
 +      bool "TP-LINK TL-WR703N support"
 +      select SOC_AR933X
 +
 +config ATH79_MACH_TL_WR841N_V1
 +      bool "TP-LINK TL-WR841N v1 support"
-+      select SOC_AR71XX
+       select SOC_AR71XX
 +      select ATH79_DEV_DSA
-+      select ATH79_DEV_ETH
-+      select ATH79_DEV_GPIO_BUTTONS
-+      select ATH79_DEV_LEDS_GPIO
+       select ATH79_DEV_ETH
+       select ATH79_DEV_GPIO_BUTTONS
+       select ATH79_DEV_LEDS_GPIO
+-      select ATH79_DEV_SPI
 +      select ATH79_DEV_M25P80
 +
 +config ATH79_MACH_TL_WR841N_V8
 +      select ATH79_DEV_GPIO_BUTTONS
 +      select ATH79_DEV_LEDS_GPIO
 +      select ATH79_DEV_M25P80
-+      select ATH79_DEV_USB
-+
+       select ATH79_DEV_USB
+-      help
+-        Say 'Y' here if you want your kernel to support the
+-        Atheros PB44 reference board.
  config ATH79_MACH_UBNT_XM
        bool "Ubiquiti Networks XM/UniFi boards"
-       select SOC_AR724X
-@@ -83,6 +730,24 @@ config ATH79_MACH_UBNT_XM
+@@ -83,6 +730,34 @@
          Say 'Y' here if you want your kernel to support the
          Ubiquiti Networks XM (rev 1.0) board.
  
 +      select ATH79_DEV_M25P80
 +      select ATH79_DEV_WMAC
 +
++config ATH79_MACH_CARAMBOLA2
++      bool "8devices Carambola2 board"
++      select SOC_AR933X
++      select ATH79_DEV_ETH
++      select ATH79_DEV_GPIO_BUTTONS
++      select ATH79_DEV_LEDS_GPIO
++      select ATH79_DEV_M25P80
++      select ATH79_DEV_USB
++      select ATH79_DEV_WMAC
++
  endmenu
  
  config SOC_AR71XX
-@@ -132,7 +797,10 @@ config ATH79_DEV_DSA
+@@ -132,7 +807,10 @@
  config ATH79_DEV_ETH
        def_bool n
  
        def_bool n
  
  config ATH79_DEV_GPIO_BUTTONS
-@@ -164,4 +832,7 @@ config ATH79_PCI_ATH9K_FIXUP
+@@ -164,4 +842,7 @@
  config ATH79_ROUTERBOOT
        def_bool n
  
 +      def_bool n
 +
  endif
---- a/arch/mips/ath79/Makefile
-+++ b/arch/mips/ath79/Makefile
-@@ -38,9 +38,78 @@ obj-$(CONFIG_ATH79_ROUTERBOOT)              += route
+Index: linux-3.8.13/arch/mips/ath79/Makefile
+===================================================================
+--- linux-3.8.13.orig/arch/mips/ath79/Makefile 2013-07-11 21:39:45.288919744 +0200
++++ linux-3.8.13/arch/mips/ath79/Makefile      2013-07-11 22:02:13.884951040 +0200
+@@ -38,9 +38,79 @@
  #
  # Machines
  #
 +obj-$(CONFIG_ATH79_MACH_WZR_HP_AG300H)        += mach-wzr-hp-ag300h.o
 +obj-$(CONFIG_ATH79_MACH_WZR_HP_G450H) += mach-wzr-hp-g450h.o
 +obj-$(CONFIG_ATH79_MACH_ZCN_1523H)    += mach-zcn-1523h.o
---- a/arch/mips/ath79/prom.c
-+++ b/arch/mips/ath79/prom.c
-@@ -180,6 +180,11 @@ void __init prom_init(void)
++obj-$(CONFIG_ATH79_MACH_CARAMBOLA2)   += mach-carambola2.o
+Index: linux-3.8.13/arch/mips/ath79/prom.c
+===================================================================
+--- linux-3.8.13.orig/arch/mips/ath79/prom.c   2013-07-11 21:39:45.212919741 +0200
++++ linux-3.8.13/arch/mips/ath79/prom.c        2013-07-11 21:39:45.344919744 +0200
+@@ -180,6 +180,11 @@
                        ath79_prom_append_cmdline("board", env);
                }
        }