diff options
| -rw-r--r-- | target/linux/ar71xx/config-3.3 | 1 | ||||
| -rw-r--r-- | target/linux/ar71xx/files/arch/mips/ath79/mach-all0315n.c | 95 | ||||
| -rw-r--r-- | target/linux/ar71xx/patches-3.3/612-ALL0315N-support.patch | 44 | 
3 files changed, 140 insertions, 0 deletions
| diff --git a/target/linux/ar71xx/config-3.3 b/target/linux/ar71xx/config-3.3 index 09d9f06ee..f3466130f 100644 --- a/target/linux/ar71xx/config-3.3 +++ b/target/linux/ar71xx/config-3.3 @@ -21,6 +21,7 @@ CONFIG_ATH79_DEV_WMAC=y  CONFIG_ATH79_MACH_ALFA_AP96=y  CONFIG_ATH79_MACH_ALFA_NX=y  CONFIG_ATH79_MACH_ALL0258N=y +CONFIG_ATH79_MACH_ALL0315N=y  CONFIG_ATH79_MACH_AP113=y  CONFIG_ATH79_MACH_AP121=y  CONFIG_ATH79_MACH_AP136=y diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-all0315n.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-all0315n.c new file mode 100644 index 000000000..7d5377480 --- /dev/null +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-all0315n.c @@ -0,0 +1,95 @@ +/* + *  Allnet ALL0315N support + * + *  Copyright (C) 2012 Daniel Golle <dgolle@allnet.de> + * + * + *  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-ap9x-pci.h" +#include "dev-gpio-buttons.h" +#include "dev-m25p80.h" +#include "dev-leds-gpio.h" +#include "machtypes.h" +#include "pci.h" + +#define ALL0315N_GPIO_BTN_RESET		0 +#define ALL0315N_GPIO_LED_RSSIHIGH	14 +#define ALL0315N_GPIO_LED_RSSIMEDIUM	15 +#define ALL0315N_GPIO_LED_RSSILOW	16 + +#define ALL0315N_KEYS_POLL_INTERVAL	20	/* msecs */ +#define ALL0315N_KEYS_DEBOUNCE_INTERVAL	(3 * ALL0315N_KEYS_POLL_INTERVAL) + +static struct gpio_led all0315n_leds_gpio[] __initdata = { +	{ +		.name		= "all0315n:green:rssihigh", +		.gpio		= ALL0315N_GPIO_LED_RSSIHIGH, +		.active_low	= 1, +	}, { +		.name		= "all0315n:yellow:rssimedium", +		.gpio		= ALL0315N_GPIO_LED_RSSIMEDIUM, +		.active_low	= 1, +	}, { +		.name		= "all0315n:red:rssilow", +		.gpio		= ALL0315N_GPIO_LED_RSSILOW, +		.active_low	= 1, +	} +}; + +static struct gpio_keys_button all0315n_gpio_keys[] __initdata = { +	{ +		.desc		= "reset", +		.type		= EV_KEY, +		.code		= KEY_RESTART, +		.debounce_interval = ALL0315N_KEYS_DEBOUNCE_INTERVAL, +		.gpio		= ALL0315N_GPIO_BTN_RESET, +		.active_low	= 1, +	} +}; + +static void __init all0315n_setup(void) +{ +	u8 *mac = (u8 *) KSEG1ADDR(0x1ffc0000); +	u8 *ee =  (u8 *) KSEG1ADDR(0x1ffc1000); + +	ath79_register_m25p80(NULL); + +	ath79_init_mac(ath79_eth0_data.mac_addr, mac, 0); +	ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RGMII; +	ath79_eth0_data.speed = SPEED_1000; +	ath79_eth0_data.duplex = DUPLEX_FULL; +	ath79_eth0_data.phy_mask = BIT(0); + +	ath79_init_mac(ath79_eth1_data.mac_addr, mac, 1); +	ath79_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_RGMII; +	ath79_eth1_data.speed = SPEED_1000; +	ath79_eth1_data.duplex = DUPLEX_FULL; +	ath79_eth1_data.phy_mask = BIT(4); + +	ath79_register_mdio(0, ~(BIT(0) | BIT(4))); +	ath79_register_eth(0); +	ath79_register_eth(1); + + +	ath79_register_leds_gpio(-1, ARRAY_SIZE(all0315n_leds_gpio), +					all0315n_leds_gpio); + +	ath79_register_gpio_keys_polled(-1, ALL0315N_KEYS_POLL_INTERVAL, +					ARRAY_SIZE(all0315n_gpio_keys), +					all0315n_gpio_keys); + +	ap9x_pci_setup_wmac_led_pin(0, 1); +	ap91_pci_init(ee, mac); +} + +MIPS_MACHINE(ATH79_MACH_ALL0315N, "ALL0315N", "Allnet ALL0315N", +	     all0315n_setup); diff --git a/target/linux/ar71xx/patches-3.3/612-ALL0315N-support.patch b/target/linux/ar71xx/patches-3.3/612-ALL0315N-support.patch new file mode 100644 index 000000000..9c054da5b --- /dev/null +++ b/target/linux/ar71xx/patches-3.3/612-ALL0315N-support.patch @@ -0,0 +1,44 @@ +Index: linux-3.3.8/arch/mips/ath79/Kconfig +=================================================================== +--- linux-3.3.8.orig/arch/mips/ath79/Kconfig ++++ linux-3.3.8/arch/mips/ath79/Kconfig +@@ -38,6 +38,15 @@ config ATH79_MACH_ALL0258N + 	select ATH79_DEV_LEDS_GPIO + 	select ATH79_DEV_M25P80 +  ++config ATH79_MACH_ALL0315N ++	bool "Allnet ALL0315N support" ++	select SOC_AR724X ++	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 ++ + config ATH79_MACH_AP113 + 	bool "Atheros AP113 board support" + 	select SOC_AR724X +Index: linux-3.3.8/arch/mips/ath79/Makefile +=================================================================== +--- linux-3.3.8.orig/arch/mips/ath79/Makefile ++++ linux-3.3.8/arch/mips/ath79/Makefile +@@ -39,6 +39,7 @@ obj-$(CONFIG_ATH79_PCI_ATH9K_FIXUP)	+= p + obj-$(CONFIG_ATH79_MACH_ALFA_AP96)	+= mach-alfa-ap96.o + obj-$(CONFIG_ATH79_MACH_ALFA_NX)	+= mach-alfa-nx.o + obj-$(CONFIG_ATH79_MACH_ALL0258N)	+= mach-all0258n.o ++obj-$(CONFIG_ATH79_MACH_ALL0315N)	+= mach-all0315n.o + obj-$(CONFIG_ATH79_MACH_AP113)		+= mach-ap113.o + obj-$(CONFIG_ATH79_MACH_AP121)		+= mach-ap121.o + obj-$(CONFIG_ATH79_MACH_AP136)		+= mach-ap136.o +Index: linux-3.3.8/arch/mips/ath79/machtypes.h +=================================================================== +--- linux-3.3.8.orig/arch/mips/ath79/machtypes.h ++++ linux-3.3.8/arch/mips/ath79/machtypes.h +@@ -20,6 +20,7 @@ enum ath79_mach_type { + 	ATH79_MACH_ALFA_NX,		/* ALFA Network N2/N5 board */ + 	ATH79_MACH_ALL0258N,		/* Allnet ALL0258N */ + 	ATH79_MACH_ALL0305,		/* Allnet ALL0305 */ ++	ATH79_MACH_ALL0315N,		/* Allnet ALL0315N */ + 	ATH79_MACH_AP113,		/* Atheros AP113 reference board */ + 	ATH79_MACH_AP121,		/* Atheros AP121 reference board */ + 	ATH79_MACH_AP121_MINI,		/* Atheros AP121-MINI reference board */ | 
