2010.06.18. 0:51 keltezéssel, Daniel Golle írta: > This patch adds support for Senao EAP7660D board to backfire. The board > can be found in Senao and EnGenius products. > The previous patch I attached to ticket #7478 is obsoleted by this one, > which now supports buttons and LEDs and is cleaned up according to > Gabor's suggestions. > Another patch against trunk will follow as soon as I finished testing. > > Signed-off-by: Daniel Golle<daniel.go...@gmail.com> > > --- > >Index: target/linux/ar71xx/files/arch/mips/ar71xx/Kconfig >=================================================================== >--- target/linux/ar71xx/files/arch/mips/ar71xx/Kconfig (revision 21809) >+++ target/linux/ar71xx/files/arch/mips/ar71xx/Kconfig (working copy) >@@ -215,6 +215,14 @@ > 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 >Index: target/linux/ar71xx/files/arch/mips/ar71xx/mach-eap7660d.c >=================================================================== >--- target/linux/ar71xx/files/arch/mips/ar71xx/mach-eap7660d.c (revision 0) >+++ target/linux/ar71xx/files/arch/mips/ar71xx/mach-eap7660d.c (revision 0) >@@ -0,0 +1,97 @@ >+/* >+ * Senao EAP7660D board support >+ * >+ * Copyright (C) 2010 Daniel Golle<daniel.go...@gmail.com> >+ * Copyright (C) 2008 Gabor Juhos<juh...@openwrt.org> >+ * Copyright (C) 2008 Imre Kaloz<ka...@openwrt.org> >+ * >+ * 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-ar71xx/ar71xx.h> >+ >+#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) >+ >+/* LEDs (in order) >+ * DS3 Power >+ * DS6 LAN >+ * DS8 GPIO 0 >+ * DS5 GPIO 2 >+ * DS7 GPIO 4 >+ * DS4 GPIO 7 >+ */
The GPIO numbers for the DS[4578] are obvious from the above definitions, so you don't have to put them again in a comment. Additionally, the values in the comment don't match with the definitions. >+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 = "sw1", >+ .type = EV_KEY, >+ .code = BTN_0, >+ .threshold = 3, >+ .gpio = EAP7660D_GPIO_SW1, >+ .active_low = 1, >+ }, >+ { >+ .desc = "sw3", >+ .type = EV_KEY, >+ .code = BTN_2, >+ .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); >Index: target/linux/ar71xx/files/arch/mips/ar71xx/Makefile >=================================================================== >--- target/linux/ar71xx/files/arch/mips/ar71xx/Makefile (revision 21809) >+++ target/linux/ar71xx/files/arch/mips/ar71xx/Makefile (working copy) >@@ -33,6 +33,7 @@ > 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_PB42) += mach-pb42.o This hunk contains superfluous spaces at the beginning of each original lines. >Index: target/linux/ar71xx/files/arch/mips/ar71xx/machtype.h >=================================================================== >--- target/linux/ar71xx/files/arch/mips/ar71xx/machtype.h (revision 21809) >+++ target/linux/ar71xx/files/arch/mips/ar71xx/machtype.h (working copy) >@@ -54,6 +54,7 @@ > 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 */ This one too. >Index: target/linux/ar71xx/image/Makefile >=================================================================== >--- target/linux/ar71xx/image/Makefile (revision 21809) >+++ target/linux/ar71xx/image/Makefile (working copy) >@@ -425,6 +425,10 @@ > $(call > Image/Build/Template/$(fs_64k)/$(1),Cameo7240,dir-600-a1,board=DIR-600-A1,"AP91-AR7240-RT-090223-00") > endef > >+define Image/Build/Profile/EAP7660D >+ $(call >Image/Build/Template/$(fs_128k)/$(1),PB4X,eap7660d,board=EAP7660D) >+endef >+ > define Image/Build/Profile/FR54RTR > $(call > Image/Build/Template/$(fs_64k)/$(1),Cameo7240,fr-54rtr,board=DIR-600-A1,"AP91-AR7240-RT-090223-01") > endef >@@ -545,6 +549,7 @@ > $(call Image/Build/Profile/DIR600A1,$(1)) > $(call Image/Build/Profile/DIR615C1,$(1)) > $(call Image/Build/Profile/DIR825B1,$(1)) >+ $(call Image/Build/Profile/EAP7660D,$(1)) > $(call Image/Build/Profile/FR54RTR,$(1)) > $(call Image/Build/Profile/MZKW04NU,$(1)) > $(call Image/Build/Profile/MZKW300NH,$(1)) Same here... >Index: target/linux/ar71xx/base-files/lib/ar71xx.sh >=================================================================== >--- target/linux/ar71xx/base-files/lib/ar71xx.sh (revision 21809) >+++ target/linux/ar71xx/base-files/lib/ar71xx.sh (working copy) >@@ -25,6 +25,9 @@ > *"DIR-825 rev. B1") > name="dir-825-b1" > ;; >+ *EAP7660D) >+ name="eap7660d" >+ ;; > *"Bullet M") > name="bullet-m" > ;; ... and here. >Index: target/linux/ar71xx/base-files/etc/defconfig/eap7660d/network >=================================================================== >--- target/linux/ar71xx/base-files/etc/defconfig/eap7660d/network >(revision 0) >+++ target/linux/ar71xx/base-files/etc/defconfig/eap7660d/network >(revision 0) >@@ -0,0 +1,12 @@ >+config interface loopback >+ option ifname lo >+ option proto static >+ option ipaddr 127.0.0.1 >+ option netmask 255.0.0.0 >+ >+config interface lan >+ option ifname eth0 >+ option type bridge >+ option proto static >+ option ipaddr 192.168.1.1 >+ option netmask 255.255.255.0 >Index: target/linux/ar71xx/config-2.6.32 >=================================================================== >--- target/linux/ar71xx/config-2.6.32 (revision 21809) >+++ target/linux/ar71xx/config-2.6.32 (working copy) >@@ -23,6 +23,7 @@ > CONFIG_AR71XX_MACH_DIR_600_A1=y > CONFIG_AR71XX_MACH_DIR_615_C1=y > CONFIG_AR71XX_MACH_DIR_825_B1=y >+CONFIG_AR71XX_MACH_EAP7660D=y > CONFIG_AR71XX_MACH_MZK_W04NU=y > CONFIG_AR71XX_MACH_MZK_W300NH=y > CONFIG_AR71XX_MACH_PB42=y >@@ -190,6 +191,7 @@ > CONFIG_PCI_DISABLE_COMMON_QUIRKS=y > CONFIG_PCI_DOMAINS=y > CONFIG_PHYLIB=y >+CONFIG_MARVELL_PHY=y > # CONFIG_PMC_MSP is not set > # CONFIG_PMC_YOSEMITE is not set > # CONFIG_PNX8550_JBS is not set Ditto. _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel