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)

SVN-Revision: 23165
This commit is contained in:
Gabor Juhos 2010-10-01 07:09:29 +00:00
parent 1cbea05927
commit 697f5d0bdd
12 changed files with 136 additions and 0 deletions

View file

@ -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'

View file

@ -37,6 +37,9 @@ ar71xx_board_name() {
*"Nanostation M")
name="nanostation-m"
;;
*JWAP003)
name="jwap003"
;;
*LS-SR71)
name="ls-sr71"
;;

View 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

View 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

View 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

View 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

View 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

View 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

View file

@ -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);

View 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 */

View file

@ -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))

View 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))