ar71xx: add carambola2 support
authorJohn Crispin <john@openwrt.org>
Thu, 11 Jul 2013 21:16:53 +0000 (21:16 +0000)
committerJohn Crispin <john@openwrt.org>
Thu, 11 Jul 2013 21:16:53 +0000 (21:16 +0000)
Signed-off-by: John Crispin <blogic@openwrt.org>
SVN-Revision: 37260

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 c9bcedd5b94ba9b6ff02e137c6b25f59ed69cb12..2db8941a67a1e90ab85bb17e37b66e855b981df1 100755 (executable)
@@ -38,6 +38,12 @@ cap4200ag)
        ucidef_set_led_wlan "wlan_green" "WLAN_GREEN" "senao:green:wlan" "phy1tpt"
        ;;
 
        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"
        ;;
 db120)
        ucidef_set_led_usbdev "usb" "USB" "db120:green:usb" "1-1"
        ;;
index 05e109373790694653b64d578ea996a8f3da8cf8..19f19e7ae79193a486093b9094df6a17611a06d7 100755 (executable)
@@ -525,6 +525,9 @@ ar71xx_board_detect() {
        *EmbWir-Dorin-Router)
                name="ew-dorin-router"
                ;;
        *EmbWir-Dorin-Router)
                name="ew-dorin-router"
                ;;
+       "8devices Carambola2"*)
+               name="carambola2"
+               ;;
        esac
 
        case "$machine" in
        esac
 
        case "$machine" in
index 26b855f0a3c4f04cd9258b6d353e40582fd1bc88..95422954768e3993092ac15bf34489d486c1340a 100755 (executable)
@@ -133,7 +133,8 @@ platform_check_image() {
        wlae-ag300n | \
        nbg460n_550n_550nh | \
        unifi | \
        wlae-ag300n | \
        nbg460n_550n_550nh | \
        unifi | \
-       unifi-outdoor )
+       unifi-outdoor | \
+       carambola2 )
                [ "$magic" != "2705" ] && {
                        echo "Invalid image type."
                        return 1
                [ "$magic" != "2705" ] && {
                        echo "Invalid image type."
                        return 1
index 71a8a724d7c67aaec6faa4dff6a9b4ba8d272a2c..b6d065b475bb94daa1a9a768797a62a2f3c6c2db 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_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
 CONFIG_ATH79_MACH_DB120=y
 CONFIG_ATH79_MACH_DIR_600_A1=y
 CONFIG_ATH79_MACH_DIR_615_C1=y
index 8a8d6a60c03f0874264ea785f070c45627d96c31..25a18034fb4849b7553ed75d5163016a64367390 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_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
 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 2ed63d0590f8d0185ddd580787a1b15037f9b4b2..dce68dac2d318eb20fac0a5e4395c7ec4fb29af6 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)
 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)
 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),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))
 $(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 d2dbb597eaf0ff58e0222e29c5e6947d852736a2..12e24f07089464d4e2c83dcb0df7ee990d14d429 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,
  
  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_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_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 */
  };
  
  #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"
  
  
  menu "Atheros AR71XX/AR724X/AR913X machine selection"
  
  config ATH79_MACH_AP121
        bool "Atheros AP121 reference board"
        select SOC_AR933X
  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
 +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.
 +
 +        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
 +config ATH79_MACH_AP83
 +      bool "Atheros AP83 board support"
 +      select SOC_AR913X
 +      select ATH79_DEV_M25P80
 +      select ATH79_DEV_USB
 +
 +      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
 +config ATH79_MACH_PB42
 +      bool "Atheros PB42 board support"
 +      select SOC_AR71XX
 +      select ATH79_DEV_GPIO_BUTTONS
 +      select ATH79_DEV_M25P80
 +
 +      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
 +config ATH79_MACH_PB92
 +      bool "Atheros PB92 board support"
 +      select SOC_AR724X
 +      select ATH79_DEV_M25P80
 +      select ATH79_DEV_USB
 +      select ATH79_DEV_WMAC
 +      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_MZK_W300NH
 +      bool "Planex MZK-W300NH board support"
 +      select SOC_AR913X
 +
 +config ATH79_MACH_ARCHER_C7
 +      bool "TP-LINK Archer C7 board support"
 +
 +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_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_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"
 +
 +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_WMAC
 +
 +config ATH79_MACH_TL_WDR3500
 +      select ATH79_DEV_GPIO_BUTTONS
 +      select ATH79_DEV_LEDS_GPIO
 +      select ATH79_DEV_M25P80
 +      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"
 +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_WR703N
 +      bool "TP-LINK TL-WR703N support"
 +      select SOC_AR933X
 +
 +config ATH79_MACH_TL_WR841N_V1
 +      bool "TP-LINK TL-WR841N v1 support"
 +
 +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_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_M25P80
 +
 +config ATH79_MACH_TL_WR841N_V8
 +      select ATH79_DEV_GPIO_BUTTONS
 +      select ATH79_DEV_LEDS_GPIO
 +      select ATH79_DEV_M25P80
 +      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"
  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.
  
          Say 'Y' here if you want your kernel to support the
          Ubiquiti Networks XM (rev 1.0) board.
  
 +      select ATH79_DEV_LEDS_GPIO
 +      select ATH79_DEV_M25P80
 +      select ATH79_DEV_WMAC
 +      select ATH79_DEV_LEDS_GPIO
 +      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
 +
  endmenu
  
  config SOC_AR71XX
-@@ -132,7 +797,10 @@ config ATH79_DEV_DSA
+@@ -132,7 +807,10 @@
  config ATH79_DEV_ETH
        def_bool n
  
  config ATH79_DEV_ETH
        def_bool n
  
        def_bool n
  
  config ATH79_DEV_GPIO_BUTTONS
        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
  
  config ATH79_ROUTERBOOT
        def_bool n
  
 +      def_bool n
 +
  endif
 +      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
  #
  #
  # 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
 +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);
                }
        }
                        ath79_prom_append_cmdline("board", env);
                }
        }
index d2dbb597eaf0ff58e0222e29c5e6947d852736a2..b1ffda3bc82c3d4db4e61c63188ef7991565ef53 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,
  
  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_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_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_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_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_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 */
        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 */
  };
  
  #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"
  
  
  menu "Atheros AR71XX/AR724X/AR913X machine selection"
  
  config ATH79_MACH_AP121
        bool "Atheros AP121 reference board"
        select SOC_AR933X
  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
 +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.
 +
 +        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
 +config ATH79_MACH_AP83
 +      bool "Atheros AP83 board support"
 +      select SOC_AR913X
 +      select ATH79_DEV_M25P80
 +      select ATH79_DEV_USB
 +
 +      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
 +config ATH79_MACH_PB42
 +      bool "Atheros PB42 board support"
 +      select SOC_AR71XX
 +      select ATH79_DEV_GPIO_BUTTONS
 +      select ATH79_DEV_M25P80
 +
 +      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
 +config ATH79_MACH_PB92
 +      bool "Atheros PB92 board support"
 +      select SOC_AR724X
 +      select ATH79_DEV_M25P80
 +      select ATH79_DEV_USB
 +      select ATH79_DEV_WMAC
 +      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_MZK_W300NH
 +      bool "Planex MZK-W300NH board support"
 +      select SOC_AR913X
 +
 +config ATH79_MACH_ARCHER_C7
 +      bool "TP-LINK Archer C7 board support"
 +
 +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_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_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"
 +
 +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_WMAC
 +
 +config ATH79_MACH_TL_WDR3500
 +      select ATH79_DEV_GPIO_BUTTONS
 +      select ATH79_DEV_LEDS_GPIO
 +      select ATH79_DEV_M25P80
 +      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"
 +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_WR703N
 +      bool "TP-LINK TL-WR703N support"
 +      select SOC_AR933X
 +
 +config ATH79_MACH_TL_WR841N_V1
 +      bool "TP-LINK TL-WR841N v1 support"
 +
 +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_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_M25P80
 +
 +config ATH79_MACH_TL_WR841N_V8
 +      select ATH79_DEV_GPIO_BUTTONS
 +      select ATH79_DEV_LEDS_GPIO
 +      select ATH79_DEV_M25P80
 +      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"
  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.
  
          Say 'Y' here if you want your kernel to support the
          Ubiquiti Networks XM (rev 1.0) board.
  
 +      select ATH79_DEV_LEDS_GPIO
 +      select ATH79_DEV_M25P80
 +      select ATH79_DEV_WMAC
 +      select ATH79_DEV_LEDS_GPIO
 +      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
 +
  endmenu
  
  config SOC_AR71XX
-@@ -132,7 +797,10 @@ config ATH79_DEV_DSA
+@@ -132,7 +807,10 @@
  config ATH79_DEV_ETH
        def_bool n
  
  config ATH79_DEV_ETH
        def_bool n
  
        def_bool n
  
  config ATH79_DEV_GPIO_BUTTONS
        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
  
  config ATH79_ROUTERBOOT
        def_bool n
  
 +      def_bool n
 +
  endif
 +      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
  #
  #
  # 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
 +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);
                }
        }
                        ath79_prom_append_cmdline("board", env);
                }
        }