From a069981ab9d28e823d427627297dcd7e79940b5b Mon Sep 17 00:00:00 2001 From: Gabor Juhos Date: Fri, 18 Jun 2010 16:22:05 +0000 Subject: ar71xx: add support for the Senao EAP7660D board This patch adds support for the Senao EAP7660D board to trunk. Signed-off-by: Daniel Golle git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21837 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- target/linux/ar71xx/files/arch/mips/ar71xx/Kconfig | 8 ++ .../linux/ar71xx/files/arch/mips/ar71xx/Makefile | 1 + .../ar71xx/files/arch/mips/ar71xx/mach-eap7660d.c | 89 ++++++++++++++++++++++ .../linux/ar71xx/files/arch/mips/ar71xx/machtype.h | 1 + 4 files changed, 99 insertions(+) create mode 100644 target/linux/ar71xx/files/arch/mips/ar71xx/mach-eap7660d.c (limited to 'target/linux/ar71xx/files/arch') diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/Kconfig b/target/linux/ar71xx/files/arch/mips/ar71xx/Kconfig index 29448ac65b..95c65bc88f 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/Kconfig +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/Kconfig @@ -223,6 +223,14 @@ config AR71XX_MACH_UBNT select AR71XX_DEV_USB default n +config AR71XX_MACH_EAP7660D + bool "Senao EAP7660D support" + select AR71XX_DEV_M25P80 + select AR71XX_DEV_PB42_PCI if PCI + select AR71XX_DEV_GPIO_BUTTONS + select AR71XX_DEV_LEDS_GPIO + default n + endmenu config AR71XX_DEV_M25P80 diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/Makefile b/target/linux/ar71xx/files/arch/mips/ar71xx/Makefile index 5c9e2c6df7..fb6953a36a 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/Makefile +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/Makefile @@ -33,6 +33,7 @@ obj-$(CONFIG_AR71XX_MACH_AW_NR580) += mach-aw-nr580.o obj-$(CONFIG_AR71XX_MACH_DIR_600_A1) += mach-dir-600-a1.o obj-$(CONFIG_AR71XX_MACH_DIR_615_C1) += mach-dir-615-c1.o obj-$(CONFIG_AR71XX_MACH_DIR_825_B1) += mach-dir-825-b1.o +obj-$(CONFIG_AR71XX_MACH_EAP7660D) += mach-eap7660d.o obj-$(CONFIG_AR71XX_MACH_MZK_W04NU) += mach-mzk-w04nu.o obj-$(CONFIG_AR71XX_MACH_MZK_W300NH) += mach-mzk-w300nh.o obj-$(CONFIG_AR71XX_MACH_NBG460N) += mach-nbg460n.o diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-eap7660d.c b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-eap7660d.c new file mode 100644 index 0000000000..f7e72563ff --- /dev/null +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-eap7660d.c @@ -0,0 +1,89 @@ +/* + * Senao EAP7660D board support + * + * Copyright (C) 2010 Daniel Golle + * Copyright (C) 2008 Gabor Juhos + * Copyright (C) 2008 Imre Kaloz + * + * 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 + +#include "machtype.h" +#include "devices.h" +#include "dev-gpio-buttons.h" +#include "dev-leds-gpio.h" +#include "dev-pb42-pci.h" +#include "dev-m25p80.h" + +#define EAP7660D_BUTTONS_POLL_INTERVAL 20 +#define EAP7660D_GPIO_DS4 7 +#define EAP7660D_GPIO_DS5 2 +#define EAP7660D_GPIO_DS7 0 +#define EAP7660D_GPIO_DS8 4 +#define EAP7660D_GPIO_SW1 3 +#define EAP7660D_GPIO_SW3 8 +#define EAP7660D_PHYMASK BIT(20) + +static struct gpio_led eap7660d_leds_gpio[] __initdata = { + { + .name = "eap7660d:green:ds8", + .gpio = EAP7660D_GPIO_DS8, + .active_low = 0, + }, + { + .name = "eap7660d:green:ds5", + .gpio = EAP7660D_GPIO_DS5, + .active_low = 0, + }, + { + .name = "eap7660d:green:ds7", + .gpio = EAP7660D_GPIO_DS7, + .active_low = 0, + }, + { + .name = "eap7660d:green:ds4", + .gpio = EAP7660D_GPIO_DS4, + .active_low = 0, + } +}; + +static struct gpio_button eap7660d_gpio_buttons[] __initdata = { + { + .desc = "reset", + .type = EV_KEY, + .code = KEY_RESTART, + .threshold = 3, + .gpio = EAP7660D_GPIO_SW1, + .active_low = 1, + }, + { + .desc = "wps", + .type = EV_KEY, + .code = KEY_WPS_BUTTON, + .threshold = 3, + .gpio = EAP7660D_GPIO_SW3, + .active_low = 1, + } +}; + +static void __init eap7660d_setup(void) +{ + ar71xx_add_device_mdio(~EAP7660D_PHYMASK); + ar71xx_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RGMII; + ar71xx_eth0_data.phy_mask = EAP7660D_PHYMASK; + ar71xx_add_device_eth(0); + ar71xx_add_device_m25p80(NULL); + ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(eap7660d_leds_gpio), + eap7660d_leds_gpio); + ar71xx_add_device_gpio_buttons(-1, EAP7660D_BUTTONS_POLL_INTERVAL, + ARRAY_SIZE(eap7660d_gpio_buttons), + eap7660d_gpio_buttons); + pb42_pci_init(); +}; + +MIPS_MACHINE(AR71XX_MACH_EAP7660D, "EAP7660D", "Senao EAP7660D", + eap7660d_setup); diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/machtype.h b/target/linux/ar71xx/files/arch/mips/ar71xx/machtype.h index 37ed7d8eca..9bbc69afce 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/machtype.h +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/machtype.h @@ -54,6 +54,7 @@ enum ar71xx_mach_type { AR71XX_MACH_WRT160NL, /* Linksys WRT160NL */ AR71XX_MACH_WRT400N, /* Linksys WRT400N */ AR71XX_MACH_WZR_HP_G300NH, /* Buffalo WZR-HP-G300NH */ + AR71XX_MACH_EAP7660D, /* Senao EAP7660D */ }; #endif /* _AR71XX_MACHTYPE_H */ -- cgit v1.2.3