Patchwork [OpenWrt-Devel] PATCH: Backport jjPlus JWAP003 to Backfire

login
register
Submitter Artur Wronowski
Date 2012-07-17 19:04:39
Message ID <CAM-pJsXrQ-merFOZc8+=725sYBdz7pnF0sf6fpekaNzeRdTxnA@mail.gmail.com>
Download mbox | patch
Permalink /patch/2391/
State New
Headers show

Comments

Artur Wronowski - 2012-07-17 19:04:39
Hello,

Support for jjPlus JWAP003 in Backfire

Signed-off-by: Artur Wronowski <arteqw@gmail.com>

Patch

Index: target/linux/ar71xx/base-files/lib/upgrade/platform.sh
===================================================================
--- target/linux/ar71xx/base-files/lib/upgrade/platform.sh	(wersja 32765)
+++ target/linux/ar71xx/base-files/lib/upgrade/platform.sh	(kopia robocza)
@@ -104,7 +104,7 @@ 
 		}
 		return 0
 		;;
-	routerstation | routerstation-pro | ls-sr71 | pb42 | pb44)
+	routerstation | routerstation-pro | jwap003 | ls-sr71 | pb42 | pb44)
 		[ "$magic" != "4349" ] && {
 			echo "Invalid image. Use *-sysupgrade.bin files on this board"
 			return 1
@@ -131,7 +131,7 @@ 
 	local board=$(ar71xx_board_name)

 	case "$board" in
-	routerstation | routerstation-pro | ls-sr71)
+	routerstation | routerstation-pro | ls-sr71 | jwap003)
 		platform_do_upgrade_combined "$ARGV"
 		;;
 	*)
Index: target/linux/ar71xx/base-files/lib/ar71xx.sh
===================================================================
--- target/linux/ar71xx/base-files/lib/ar71xx.sh	(wersja 32765)
+++ target/linux/ar71xx/base-files/lib/ar71xx.sh	(kopia robocza)
@@ -121,6 +121,9 @@ 
 	*WZR-HP-G300NH)
 		name="wzr-hp-g300nh"
 		;;
+	*"jjPlus JWAP003")
+		name="jwap003"
+		;;
 	*)
 		name="generic"
 		;;
Index: target/linux/ar71xx/base-files/etc/diag.sh
===================================================================
--- target/linux/ar71xx/base-files/etc/diag.sh	(wersja 32765)
+++ target/linux/ar71xx/base-files/etc/diag.sh	(kopia robocza)
@@ -51,6 +51,9 @@ 
 	dir-825-b1)
 		status_led="dir825b1:orange:power"
 		;;
+	jwap003)
+		status_led="jwap003:green:system"
+		;;
 	ls-sr71)
 		status_led="ubnt:green:d22"
 		;;
Index: target/linux/ar71xx/config-2.6.32
===================================================================
--- target/linux/ar71xx/config-2.6.32	(wersja 32765)
+++ target/linux/ar71xx/config-2.6.32	(kopia robocza)
@@ -1,7 +1,7 @@ 
 CONFIG_32BIT=y
 # CONFIG_64BIT is not set
 CONFIG_AG71XX=y
-CONFIG_AG71XX_AR8216_SUPPORT=y
+# CONFIG_AG71XX_AR8216_SUPPORT
 # CONFIG_AG71XX_DEBUG is not set
 # CONFIG_AG71XX_DEBUG_FS is not set
 # CONFIG_ALCHEMY_GPIO_INDIRECT is not set
@@ -42,9 +42,10 @@ 
 CONFIG_AR71XX_MACH_WRT160NL=y
 CONFIG_AR71XX_MACH_WRT400N=y
 CONFIG_AR71XX_MACH_WZR_HP_G300NH=y
+CONFIG_AR71XX_MACH_JWAP003=y
 CONFIG_AR71XX_NVRAM=y
 CONFIG_AR71XX_WDT=y
-CONFIG_AR8216_PHY=y
+# CONFIG_AR8216_PHY
 # CONFIG_ARCH_HAS_ILOG2_U32 is not set
 # CONFIG_ARCH_HAS_ILOG2_U64 is not set
 CONFIG_ARCH_HIBERNATION_POSSIBLE=y
Index: target/linux/ar71xx/files/arch/mips/ar71xx/machtype.h
===================================================================
--- target/linux/ar71xx/files/arch/mips/ar71xx/machtype.h	(wersja 32765)
+++ target/linux/ar71xx/files/arch/mips/ar71xx/machtype.h	(kopia robocza)
@@ -22,6 +22,7 @@ 
 	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 */
Index: target/linux/ar71xx/files/arch/mips/ar71xx/Kconfig
===================================================================
--- target/linux/ar71xx/files/arch/mips/ar71xx/Kconfig	(wersja 32765)
+++ target/linux/ar71xx/files/arch/mips/ar71xx/Kconfig	(kopia robocza)
@@ -46,6 +46,15 @@ 
 	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_LEDS_GPIO
+	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: target/linux/ar71xx/files/arch/mips/ar71xx/mach-jwap003.c
===================================================================
--- target/linux/ar71xx/files/arch/mips/ar71xx/mach-jwap003.c	(wersja 0)
+++ target/linux/ar71xx/files/arch/mips/ar71xx/mach-jwap003.c	(wersja 0)
@@ -0,0 +1,121 @@ 
+/*
+ *  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-leds-gpio.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
+#define JWAP003_GPIO_LED_POWER 5
+#define JWAP003_GPIO_LED_USB0 2
+#define JWAP003_GPIO_LED_USB1 3
+#define JWAP003_GPIO_LED_WPS 4
+
+
+static struct gpio_led jwap003_leds_gpio[] __initdata = {
+	{
+		.name		= "jwap003:green:system",
+		.gpio		= JWAP003_GPIO_LED_POWER,
+		.active_low	= 1,
+	}, {
+		.name		= "jwap003:green:wps",
+		.gpio		= JWAP003_GPIO_LED_WPS,
+	}, {
+		.name		= "jwap003:green:usb0",
+		.gpio		= JWAP003_GPIO_LED_USB0,
+	}, {
+		.name		= "jwap003:green:usb1",
+		.gpio		= JWAP003_GPIO_LED_USB1,
+	}
+};
+
+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,
+	}
+};
+
+static struct resource jwap003_gpio_resource = {
+               .name   = "gpio",
+               .start  = (1 << 7) | (1 << 8) | (1 << 0),
+               .flags  = 0,
+};
+
+static struct platform_device jwap003_gpio = {
+       .name                   = "GPIODEV",
+       .id                     = -1,
+       .num_resources          = 1,
+       .resource               = &jwap003_gpio_resource,
+};
+
+#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);
+	platform_device_register(&jwap003_gpio);
+
+	ar71xx_add_device_usb();
+	
+	ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(jwap003_leds_gpio),
+					jwap003_leds_gpio);
+
+	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: target/linux/ar71xx/files/arch/mips/ar71xx/Makefile
===================================================================
--- target/linux/ar71xx/files/arch/mips/ar71xx/Makefile	(wersja 32765)
+++ target/linux/ar71xx/files/arch/mips/ar71xx/Makefile	(kopia robocza)
@@ -32,6 +32,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_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_PB42)		+= mach-pb42.o
Index: target/linux/ar71xx/image/Makefile
===================================================================
--- target/linux/ar71xx/image/Makefile	(wersja 32765)
+++ target/linux/ar71xx/image/Makefile	(kopia robocza)
@@ -556,6 +556,11 @@ 
 	$(call Image/Build/Template/$(fs_128k)/$(1),WZRHPG300NH,wzr-hp-g300nh,board=WZR-HP-G300NH)
 endef

+define Image/Build/Profile/JWAP003
+	$(call Image/Build/Template/$(fs_64k)/$(1),PB4X,jwap003,board=JWAP003)
+endef
+
+
 define Image/Build/Profile/Default
 	$(call Image/Build/Profile/AP81,$(1))
 	$(call Image/Build/Profile/AP83,$(1))
@@ -586,6 +591,7 @@ 
 	$(call Image/Build/Profile/WRT400N,$(1))
 	$(call Image/Build/Profile/WRT160NL,$(1))
 	$(call Image/Build/Profile/WZRHPG300NH,$(1))
+	$(call Image/Build/Profile/JWAP003,$(1))
 endef

 define Image/Build/Profile/Madwifi