ar71xx: initial support for jjPlus JWAP003
authorGabor Juhos <juhosg@openwrt.org>
Fri, 1 Oct 2010 07:09:29 +0000 (07:09 +0000)
committerGabor Juhos <juhosg@openwrt.org>
Fri, 1 Oct 2010 07:09:29 +0000 (07:09 +0000)
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)

SVN-Revision: 23165

12 files changed:
target/linux/ar71xx/base-files/etc/defconfig/jwap003/network [new file with mode: 0644]
target/linux/ar71xx/base-files/lib/ar71xx.sh
target/linux/ar71xx/config-2.6.32
target/linux/ar71xx/config-2.6.33
target/linux/ar71xx/config-2.6.34
target/linux/ar71xx/config-2.6.35
target/linux/ar71xx/files/arch/mips/ar71xx/Kconfig
target/linux/ar71xx/files/arch/mips/ar71xx/Makefile
target/linux/ar71xx/files/arch/mips/ar71xx/mach-jwap003.c [new file with mode: 0644]
target/linux/ar71xx/files/arch/mips/ar71xx/machtype.h
target/linux/ar71xx/generic/profiles/jjplus.mk [new file with mode: 0644]
target/linux/ar71xx/image/Makefile

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 (file)
index 0000000..3ecec8f
--- /dev/null
@@ -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'
index ff2e8bd7773eb64e354fce7980a463e56752651b..fa00516c2e0b4456f5300598b54432d29a249b79 100755 (executable)
@@ -37,6 +37,9 @@ ar71xx_board_name() {
        *"Nanostation M")
                name="nanostation-m"
                ;;
+       *JWAP003)
+               name="jwap003"
+               ;;
        *LS-SR71)
                name="ls-sr71"
                ;;
index 9770719af8fe698a75882f2f400013734c6bb6e5..0a5410b9694da12ecc1f37d88b5ccc18f9cd9581 100644 (file)
@@ -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
index 87abc8d246aadb6252dc26a1fc50b3e6dccc4380..69ec6679a2bcea69affabde10bc79e4a6abb9f86 100644 (file)
@@ -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
index 30c0aff258fa6a24d7e6a717d68f25cfeb82b085..598dd3578c4b8b204b3d95b949bac4f47b0e2f0d 100644 (file)
@@ -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
index 30c0aff258fa6a24d7e6a717d68f25cfeb82b085..598dd3578c4b8b204b3d95b949bac4f47b0e2f0d 100644 (file)
@@ -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
index f5d83b676fc3b38cdfee12131a4b65bd2e5c4cc6..6d52eba862c0b4f24c591c5a93381da822efde7d 100644 (file)
@@ -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
index e1fe959c389259cdc230e9b6ec6fab711106960a..991ae920233841ecc2dcedd4697ab5bbfefcca81 100644 (file)
@@ -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 (file)
index 0000000..7d64fe9
--- /dev/null
@@ -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);
index b0c3c99ae0a5aeda8d690ee588cda4ec60818026..4e2bc90231231d6481ee1595024357e49404c0c1 100644 (file)
@@ -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 (file)
index 0000000..b74d7a5
--- /dev/null
@@ -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))
index 42db6e49432871db0f64e42236225c4f372cba24..cb342a1962ec835b17fa3b695912a6d06deba999 100644 (file)
@@ -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))