summaryrefslogtreecommitdiff
path: root/target/linux/ar71xx
diff options
context:
space:
mode:
authorjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>2010-10-01 07:09:29 +0000
committerjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>2010-10-01 07:09:29 +0000
commit97627d06c5e817e60371a69661d7cdc4ddda8bc5 (patch)
tree79b3bdde5433826dd39338b0e70cc0ac69231bdb /target/linux/ar71xx
parent5385f3e28728eb33a0fb1cf582836fc2ea954d7a (diff)
ar71xx: initial support for jjPlus JWAP003
Patch-by: Cezary Jackiewicz <cezary@eko.one.pl> (the GPIODEV code has been removed, the sysfs interface can be used to control the GPIO lines instead - juhosg) git-svn-id: svn://svn.openwrt.org/openwrt/trunk@23165 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/ar71xx')
-rw-r--r--target/linux/ar71xx/base-files/etc/defconfig/jwap003/network16
-rwxr-xr-xtarget/linux/ar71xx/base-files/lib/ar71xx.sh3
-rw-r--r--target/linux/ar71xx/config-2.6.321
-rw-r--r--target/linux/ar71xx/config-2.6.331
-rw-r--r--target/linux/ar71xx/config-2.6.341
-rw-r--r--target/linux/ar71xx/config-2.6.351
-rw-r--r--target/linux/ar71xx/files/arch/mips/ar71xx/Kconfig8
-rw-r--r--target/linux/ar71xx/files/arch/mips/ar71xx/Makefile1
-rw-r--r--target/linux/ar71xx/files/arch/mips/ar71xx/mach-jwap003.c81
-rw-r--r--target/linux/ar71xx/files/arch/mips/ar71xx/machtype.h1
-rw-r--r--target/linux/ar71xx/generic/profiles/jjplus.mk17
-rw-r--r--target/linux/ar71xx/image/Makefile5
12 files changed, 136 insertions, 0 deletions
diff --git a/target/linux/ar71xx/base-files/etc/defconfig/jwap003/network b/target/linux/ar71xx/base-files/etc/defconfig/jwap003/network
new file mode 100644
index 0000000000..3ecec8fdd9
--- /dev/null
+++ b/target/linux/ar71xx/base-files/etc/defconfig/jwap003/network
@@ -0,0 +1,16 @@
+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' 'eth1'
+ option 'type' 'bridge'
+ option 'proto' 'static'
+ option 'ipaddr' '192.168.1.1'
+ option 'netmask' '255.255.255.0'
+
+config 'interface' 'wan'
+ option 'ifname' 'eth0'
+ option 'proto' 'dhcp'
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
index ff2e8bd777..fa00516c2e 100755
--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
+++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
@@ -37,6 +37,9 @@ ar71xx_board_name() {
*"Nanostation M")
name="nanostation-m"
;;
+ *JWAP003)
+ name="jwap003"
+ ;;
*LS-SR71)
name="ls-sr71"
;;
diff --git a/target/linux/ar71xx/config-2.6.32 b/target/linux/ar71xx/config-2.6.32
index 9770719af8..0a5410b969 100644
--- a/target/linux/ar71xx/config-2.6.32
+++ b/target/linux/ar71xx/config-2.6.32
@@ -25,6 +25,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_JWAP003=y
CONFIG_AR71XX_MACH_MZK_W04NU=y
CONFIG_AR71XX_MACH_MZK_W300NH=y
CONFIG_AR71XX_MACH_NBG460N=y
diff --git a/target/linux/ar71xx/config-2.6.33 b/target/linux/ar71xx/config-2.6.33
index 87abc8d246..69ec6679a2 100644
--- a/target/linux/ar71xx/config-2.6.33
+++ b/target/linux/ar71xx/config-2.6.33
@@ -25,6 +25,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_JWAP003=y
CONFIG_AR71XX_MACH_MZK_W04NU=y
CONFIG_AR71XX_MACH_MZK_W300NH=y
CONFIG_AR71XX_MACH_NBG460N=y
diff --git a/target/linux/ar71xx/config-2.6.34 b/target/linux/ar71xx/config-2.6.34
index 30c0aff258..598dd3578c 100644
--- a/target/linux/ar71xx/config-2.6.34
+++ b/target/linux/ar71xx/config-2.6.34
@@ -25,6 +25,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_JWAP003=y
CONFIG_AR71XX_MACH_MZK_W04NU=y
CONFIG_AR71XX_MACH_MZK_W300NH=y
CONFIG_AR71XX_MACH_NBG460N=y
diff --git a/target/linux/ar71xx/config-2.6.35 b/target/linux/ar71xx/config-2.6.35
index 30c0aff258..598dd3578c 100644
--- a/target/linux/ar71xx/config-2.6.35
+++ b/target/linux/ar71xx/config-2.6.35
@@ -25,6 +25,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_JWAP003=y
CONFIG_AR71XX_MACH_MZK_W04NU=y
CONFIG_AR71XX_MACH_MZK_W300NH=y
CONFIG_AR71XX_MACH_NBG460N=y
diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/Kconfig b/target/linux/ar71xx/files/arch/mips/ar71xx/Kconfig
index f5d83b676f..6d52eba862 100644
--- a/target/linux/ar71xx/files/arch/mips/ar71xx/Kconfig
+++ b/target/linux/ar71xx/files/arch/mips/ar71xx/Kconfig
@@ -56,6 +56,14 @@ config AR71XX_MACH_DIR_825_B1
select AR71XX_DEV_USB
default n
+config AR71XX_MACH_JWAP003
+ bool "jjPlus JWAP003 board support"
+ select AR71XX_DEV_M25P80
+ select AR71XX_DEV_GPIO_BUTTONS
+ select AR71XX_DEV_PB42_PCI if PCI
+ select AR71XX_DEV_USB
+ default n
+
config AR71XX_MACH_PB42
bool "Atheros PB42 board support"
select AR71XX_DEV_M25P80
diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/Makefile b/target/linux/ar71xx/files/arch/mips/ar71xx/Makefile
index e1fe959c38..991ae92023 100644
--- a/target/linux/ar71xx/files/arch/mips/ar71xx/Makefile
+++ b/target/linux/ar71xx/files/arch/mips/ar71xx/Makefile
@@ -36,6 +36,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_JWAP003) += mach-jwap003.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-jwap003.c b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-jwap003.c
new file mode 100644
index 0000000000..7d64fe96c6
--- /dev/null
+++ b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-jwap003.c
@@ -0,0 +1,81 @@
+/*
+ * jjPlus JWAP003 board support
+ *
+ */
+
+#include <asm/mach-ar71xx/ar71xx.h>
+#include <linux/i2c.h>
+#include <linux/i2c-gpio.h>
+#include <linux/platform_device.h>
+
+#include "machtype.h"
+#include "devices.h"
+#include "dev-m25p80.h"
+#include "dev-gpio-buttons.h"
+#include "dev-pb42-pci.h"
+#include "dev-usb.h"
+
+#define JWAP003_BUTTONS_POLL_INTERVAL 20
+#define JWAP003_GPIO_WPS 11
+#define JWAP003_GPIO_I2C_SCL 0
+#define JWAP003_GPIO_I2C_SDA 1
+
+static struct gpio_button jwap003_gpio_buttons[] __initdata = {
+ {
+ .desc = "wps",
+ .type = EV_KEY,
+ .code = KEY_WPS_BUTTON,
+ .threshold = 3,
+ .gpio = JWAP003_GPIO_WPS,
+ .active_low = 1,
+ }
+};
+
+static struct i2c_gpio_platform_data jwap003_i2c_gpio_data = {
+ .sda_pin = JWAP003_GPIO_I2C_SDA,
+ .scl_pin = JWAP003_GPIO_I2C_SCL,
+};
+
+static struct platform_device jwap003_i2c_gpio_device = {
+ .name = "i2c-gpio",
+ .id = 0,
+ .dev = {
+ .platform_data = &jwap003_i2c_gpio_data,
+ }
+};
+
+#define JWAP003_WAN_PHYMASK BIT(0)
+#define JWAP003_LAN_PHYMASK BIT(4)
+
+static void __init jwap003_init(void)
+{
+ ar71xx_add_device_m25p80(NULL);
+
+ ar71xx_add_device_mdio(0x0);
+
+ ar71xx_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RMII;
+ ar71xx_eth0_data.phy_mask = JWAP003_WAN_PHYMASK;
+ ar71xx_eth0_data.speed = SPEED_100;
+ ar71xx_eth0_data.duplex = DUPLEX_FULL;
+ ar71xx_eth0_data.has_ar8216 = 1;
+
+ ar71xx_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_RMII;
+ ar71xx_eth1_data.phy_mask = JWAP003_LAN_PHYMASK;
+ ar71xx_eth1_data.speed = SPEED_100;
+ ar71xx_eth1_data.duplex = DUPLEX_FULL;
+
+ ar71xx_add_device_eth(0);
+ ar71xx_add_device_eth(1);
+
+ platform_device_register(&jwap003_i2c_gpio_device);
+
+ ar71xx_add_device_usb();
+
+ ar71xx_add_device_gpio_buttons(-1, JWAP003_BUTTONS_POLL_INTERVAL,
+ ARRAY_SIZE(jwap003_gpio_buttons),
+ jwap003_gpio_buttons);
+
+ pb42_pci_init();
+}
+
+MIPS_MACHINE(AR71XX_MACH_JWAP003, "JWAP003", "jjPlus JWAP003", jwap003_init);
diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/machtype.h b/target/linux/ar71xx/files/arch/mips/ar71xx/machtype.h
index b0c3c99ae0..4e2bc90231 100644
--- a/target/linux/ar71xx/files/arch/mips/ar71xx/machtype.h
+++ b/target/linux/ar71xx/files/arch/mips/ar71xx/machtype.h
@@ -22,6 +22,7 @@ enum ar71xx_mach_type {
AR71XX_MACH_DIR_600_A1, /* D-Link DIR-600 rev. A1 */
AR71XX_MACH_DIR_615_C1, /* D-Link DIR-615 rev. C1 */
AR71XX_MACH_DIR_825_B1, /* D-Link DIR-825 rev. B1 */
+ AR71XX_MACH_JWAP003, /* jjPlus JWAP003 */
AR71XX_MACH_RB_411, /* MikroTik RouterBOARD 411/411A/411AH */
AR71XX_MACH_RB_411U, /* MikroTik RouterBOARD 411U */
AR71XX_MACH_RB_433, /* MikroTik RouterBOARD 433/433AH */
diff --git a/target/linux/ar71xx/generic/profiles/jjplus.mk b/target/linux/ar71xx/generic/profiles/jjplus.mk
new file mode 100644
index 0000000000..b74d7a5fbb
--- /dev/null
+++ b/target/linux/ar71xx/generic/profiles/jjplus.mk
@@ -0,0 +1,17 @@
+#
+# Copyright (C) 2010 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define Profile/JWAP003
+ NAME:=jjPlus JWAP0003
+ PACKAGES:=kmod-usb-core kmod-usb-ohci kmod-usb2
+endef
+
+define Profile/JWAP003/Description
+ Package set optimized for the jjPlus JWAP003 board.
+endef
+
+$(eval $(call Profile,JWAP003))
diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile
index 42db6e4943..cb342a1962 100644
--- a/target/linux/ar71xx/image/Makefile
+++ b/target/linux/ar71xx/image/Makefile
@@ -470,6 +470,10 @@ define Image/Build/Profile/EAP7660D
$(call Image/Build/Template/$(fs_128k)/$(1),PB4X,eap7660d,board=EAP7660D)
endef
+define Image/Build/Profile/JWAP003
+ $(call Image/Build/Template/$(fs_64k)/$(1),PB4X,jwap003,board=JWAP003)
+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
@@ -616,6 +620,7 @@ define Image/Build/Profile/Default
$(call Image/Build/Profile/DIR825B1,$(1))
$(call Image/Build/Profile/EAP7660D,$(1))
$(call Image/Build/Profile/FR54RTR,$(1))
+ $(call Image/Build/Profile/JWAP003,$(1))
$(call Image/Build/Profile/MZKW04NU,$(1))
$(call Image/Build/Profile/MZKW300NH,$(1))
$(call Image/Build/Profile/PB42,$(1))