ramips: Ralink RT305x, support for Prolink PWH2004 (Abocom5205)
The attached patch adds a preliminary support for Prolink PWH2004 board (Ralink RT305x based). LAN and flash appear to work. However, the USB port and WLAN I have not managed to activate properly yet, but that problem appears to be present with other rt305x targets as well(?). Signed-off-by: Esa Hyytia <esa at netlab.tkk.fi> SVN-Revision: 23129
This commit is contained in:
		
							parent
							
								
									39c57eeb31
								
							
						
					
					
						commit
						e5b081335e
					
				@ -21,6 +21,7 @@ enum ramips_mach_type {
 | 
			
		||||
	RAMIPS_MACH_DIR_300_REVB,	/* D-Link DIR-300 rev B */
 | 
			
		||||
 | 
			
		||||
	/* RT3052 based machines */
 | 
			
		||||
	RAMIPS_MACH_PWH2004,		/* Prolink 2004H / Abocom 5205 */
 | 
			
		||||
	RAMIPS_MACH_WCR150GN,		/* Sparklan WCR-150GN */
 | 
			
		||||
	RAMIPS_MACH_V22RW_2X2,		/* Ralink AP-RT3052-V22RW-2X2 */
 | 
			
		||||
	RAMIPS_MACH_WHR_G300N,		/* Buffalo WHR-G300N */
 | 
			
		||||
 | 
			
		||||
@ -32,6 +32,12 @@ config RT305X_MACH_FONERA20N
 | 
			
		||||
	select RALINK_DEV_GPIO_BUTTONS
 | 
			
		||||
	select RALINK_DEV_GPIO_LEDS
 | 
			
		||||
 | 
			
		||||
config RT305X_MACH_PWH2004
 | 
			
		||||
	bool "Prolink PWH2004 / Abocom WR5205 support (32M RAM, 8M flash)"
 | 
			
		||||
	default y
 | 
			
		||||
	select RALINK_DEV_GPIO_BUTTONS
 | 
			
		||||
	select RALINK_DEV_GPIO_LEDS
 | 
			
		||||
 | 
			
		||||
endmenu
 | 
			
		||||
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
@ -16,3 +16,4 @@ obj-$(CONFIG_RT305X_MACH_V22RW_2X2)	+= mach-v22rw-2x2.o
 | 
			
		||||
obj-$(CONFIG_RT305X_MACH_WCR150GN)	+= mach-wcr150gn.o
 | 
			
		||||
obj-$(CONFIG_RT305X_MACH_WHR_G300N)	+= mach-whr-g300n.o
 | 
			
		||||
obj-$(CONFIG_RT305X_MACH_FONERA20N)	+= mach-fonera20n.o
 | 
			
		||||
obj-$(CONFIG_RT305X_MACH_PWH2004)	+= mach-pwh2004.o
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										103
									
								
								target/linux/ramips/files/arch/mips/ralink/rt305x/mach-pwh2004.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										103
									
								
								target/linux/ramips/files/arch/mips/ralink/rt305x/mach-pwh2004.c
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,103 @@
 | 
			
		||||
/*
 | 
			
		||||
 *  Prolink PWH2004 support (or Abocom WR5205)
 | 
			
		||||
 *
 | 
			
		||||
 *  Copyright (C) 2010 Esa Hyytia <esa@netlab.tkk.fi>
 | 
			
		||||
 *
 | 
			
		||||
 *  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 <linux/init.h>
 | 
			
		||||
#include <linux/platform_device.h>
 | 
			
		||||
#include <linux/mtd/mtd.h>
 | 
			
		||||
#include <linux/mtd/partitions.h>
 | 
			
		||||
#include <linux/mtd/physmap.h>
 | 
			
		||||
 | 
			
		||||
#include <asm/mach-ralink/machine.h>
 | 
			
		||||
#include <asm/mach-ralink/dev-gpio-buttons.h>
 | 
			
		||||
#include <asm/mach-ralink/dev-gpio-leds.h>
 | 
			
		||||
#include <asm/mach-ralink/rt305x.h>
 | 
			
		||||
#include <asm/mach-ralink/rt305x_regs.h>
 | 
			
		||||
 | 
			
		||||
#include "devices.h"
 | 
			
		||||
 | 
			
		||||
#define PWH2004_GPIO_BUTTON_WPS		12
 | 
			
		||||
#define PWH2004_GPIO_LED_POWER		9
 | 
			
		||||
#define PWH2004_GPIO_LED_WIFI		14
 | 
			
		||||
#define PWH2004_BUTTONS_POLL_INTERVAL	20
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_MTD_PARTITIONS
 | 
			
		||||
static struct mtd_partition pwh2004_partitions[] = {
 | 
			
		||||
	{
 | 
			
		||||
		.name	= "u-boot",
 | 
			
		||||
		.offset	= 0,
 | 
			
		||||
		.size	= 0x030000,
 | 
			
		||||
		.mask_flags = MTD_WRITEABLE,
 | 
			
		||||
	}, {
 | 
			
		||||
		.name	= "config",
 | 
			
		||||
		.offset	= 0x030000,
 | 
			
		||||
		.size	= 0x010000,
 | 
			
		||||
		.mask_flags = MTD_WRITEABLE,
 | 
			
		||||
	}, {
 | 
			
		||||
		.name	= "factory",
 | 
			
		||||
		.offset	= 0x040000,
 | 
			
		||||
		.size	= 0x010000,
 | 
			
		||||
		.mask_flags = MTD_WRITEABLE,
 | 
			
		||||
	}, {
 | 
			
		||||
		.name	= "kernel",
 | 
			
		||||
		.offset	= 0x050000,
 | 
			
		||||
		.size	= 0x7b0000,
 | 
			
		||||
	}, {
 | 
			
		||||
		.name	= "openwrt",
 | 
			
		||||
		.offset	= 0x050000,
 | 
			
		||||
		.size	= 0x7b0000,
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
#endif /* CONFIG_MTD_PARTITIONS */
 | 
			
		||||
 | 
			
		||||
static struct physmap_flash_data pwh2004_flash_data = {
 | 
			
		||||
#ifdef CONFIG_MTD_PARTITIONS
 | 
			
		||||
	.nr_parts	= ARRAY_SIZE(pwh2004_partitions),
 | 
			
		||||
	.parts		= pwh2004_partitions,
 | 
			
		||||
#endif
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static struct gpio_led pwh2004_leds_gpio[] __initdata = {
 | 
			
		||||
	{
 | 
			
		||||
		.name		= "pwh2004:red:wifi",
 | 
			
		||||
		.gpio		= PWH2004_GPIO_LED_WIFI,
 | 
			
		||||
		.active_low	= 1,
 | 
			
		||||
	}, {
 | 
			
		||||
		.name		= "pwh2004:green:power",
 | 
			
		||||
		.gpio		= PWH2004_GPIO_LED_POWER,
 | 
			
		||||
		.active_low	= 1,
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static struct gpio_button pwh2004_gpio_buttons[] __initdata = {
 | 
			
		||||
	{
 | 
			
		||||
		.desc		= "wps",
 | 
			
		||||
		.type		= EV_KEY,
 | 
			
		||||
		.code		= KEY_RESTART,
 | 
			
		||||
		.threshold	= 3,
 | 
			
		||||
		.gpio		= PWH2004_GPIO_BUTTON_WPS,
 | 
			
		||||
		.active_low	= 1,
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static void __init pwh2004_init(void)
 | 
			
		||||
{
 | 
			
		||||
	rt305x_gpio_init(RT305X_GPIO_MODE_GPIO << RT305X_GPIO_MODE_UART0_SHIFT);
 | 
			
		||||
	rt305x_register_flash(0, &pwh2004_flash_data);
 | 
			
		||||
	ramips_register_gpio_leds(-1, ARRAY_SIZE(pwh2004_leds_gpio),
 | 
			
		||||
				  pwh2004_leds_gpio);
 | 
			
		||||
	ramips_register_gpio_buttons(-1, PWH2004_BUTTONS_POLL_INTERVAL,
 | 
			
		||||
				     ARRAY_SIZE(pwh2004_gpio_buttons),
 | 
			
		||||
				     pwh2004_gpio_buttons);
 | 
			
		||||
	rt305x_register_ethernet();
 | 
			
		||||
	rt305x_register_wifi();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
MIPS_MACHINE(RAMIPS_MACH_PWH2004, "PWH2004", "Prolink PWH2004",
 | 
			
		||||
	     pwh2004_init);
 | 
			
		||||
@ -88,6 +88,10 @@ define Image/Build/Profile/FONERA20N
 | 
			
		||||
	$(call Image/Build/Template/GENERIC_8M,$(1),fonera20n,FONERA20N)
 | 
			
		||||
endef
 | 
			
		||||
 | 
			
		||||
define Image/Build/Template/PWH2004
 | 
			
		||||
	$(call Image/Build/Template/GENERIC_8M,$(1),pwh2004,PWH2004)
 | 
			
		||||
endef
 | 
			
		||||
 | 
			
		||||
define Image/Build/Profile/V22RW2X2
 | 
			
		||||
	$(call Image/Build/Template/GENERIC_4M,$(1),v22rw-2x2,V22RW-2X2)
 | 
			
		||||
endef
 | 
			
		||||
@ -114,6 +118,7 @@ define Image/Build/Profile/Default
 | 
			
		||||
	$(call Image/Build/Profile/DIR300B1,$(1))
 | 
			
		||||
	$(call Image/Build/Profile/FONERA20N,$(1))
 | 
			
		||||
	$(call Image/Build/Profile/V22RW2X2,$(1))
 | 
			
		||||
	$(call Image/Build/Profile/PWH2004,$(1))
 | 
			
		||||
	$(call Image/Build/Profile/WHRG300N,$(1))
 | 
			
		||||
	$(call Image/Build/Profile/WCR150GN,$(1))
 | 
			
		||||
endef
 | 
			
		||||
 | 
			
		||||
@ -119,6 +119,7 @@ CONFIG_RALINK_RT305X=y
 | 
			
		||||
CONFIG_RT305X_MACH_DIR_300_REVB=y
 | 
			
		||||
CONFIG_RT305X_MACH_FONERA20N=y
 | 
			
		||||
CONFIG_RT305X_MACH_V22RW_2X2=y
 | 
			
		||||
CONFIG_RT305X_MACH_PWH2004=y
 | 
			
		||||
CONFIG_RT305X_MACH_WCR150GN=y
 | 
			
		||||
CONFIG_RT305X_MACH_WHR_G300N=y
 | 
			
		||||
CONFIG_SCHED_OMIT_FRAME_POINTER=y
 | 
			
		||||
 | 
			
		||||
@ -129,6 +129,7 @@ CONFIG_RALINK_RT305X=y
 | 
			
		||||
CONFIG_RT305X_MACH_DIR_300_REVB=y
 | 
			
		||||
CONFIG_RT305X_MACH_FONERA20N=y
 | 
			
		||||
CONFIG_RT305X_MACH_V22RW_2X2=y
 | 
			
		||||
CONFIG_RT305X_MACH_PWH2004=y
 | 
			
		||||
CONFIG_RT305X_MACH_WCR150GN=y
 | 
			
		||||
CONFIG_RT305X_MACH_WHR_G300N=y
 | 
			
		||||
CONFIG_SCHED_OMIT_FRAME_POINTER=y
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user