ar71xx: Add support for WZR-HP-G301NH

Add support for the Buffalo WZR-HP-G301NH. The only difference between it
and the WZR-HP-G00NH is that it has a RTL8366RB instead of a RTL8366S.
Since we don't do runtime detection of the switch, we need a separate
machine definition for it.

While we are at it, also rename the profile to reflect that it now is for
more than one device.

Signed-off-by: Jonas Gorski <jonas.gorski+openwrt@gmail.com>

SVN-Revision: 26601
This commit is contained in:
Gabor Juhos 2011-04-12 09:29:10 +00:00
parent f358166236
commit 54ede24829
9 changed files with 90 additions and 19 deletions

View File

@ -0,0 +1,26 @@
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 eth0.1
option type bridge
option proto static
option ipaddr 192.168.1.1
option netmask 255.255.255.0
config interface wan
option ifname eth1
option proto dhcp
config switch
option name rtl8366rb
option reset 1
option enable_vlan 1
config switch_vlan
option device rtl8366rb
option vlan 1
option ports "0 1 2 3 5t"

View File

@ -123,7 +123,7 @@ get_status_led() {
wrt160nl) wrt160nl)
status_led="wrt160nl:blue:wps" status_led="wrt160nl:blue:wps"
;; ;;
wzr-hp-g300nh) wzr-hp-g300nh | wzr-hp-g301nh)
status_led="wzr-hp-g300nh:green:router" status_led="wzr-hp-g300nh:green:router"
;; ;;
zcn-1523h-2 | zcn-1523h-5) zcn-1523h-2 | zcn-1523h-5)

View File

@ -32,6 +32,6 @@ commit system
EOF EOF
} }
if [ "${board}" == "wzr-hp-g300nh" ]; then if [ "${board}" == "wzr-hp-g300nh" || "${board}" == "wzr-hp-g301nh" ]; then
wzrhpg300nh_set_leds wzrhpg300nh_set_leds
fi fi

View File

@ -148,6 +148,9 @@ ar71xx_board_name() {
*WZR-HP-G300NH) *WZR-HP-G300NH)
name="wzr-hp-g300nh" name="wzr-hp-g300nh"
;; ;;
*WZR-HP-G301NH)
name="wzr-hp-g301nh"
;;
*ZCN-1523H-2) *ZCN-1523H-2)
name="zcn-1523h-2" name="zcn-1523h-2"
;; ;;

View File

@ -69,7 +69,7 @@ platform_check_image() {
[ "$ARGC" -gt 1 ] && return 1 [ "$ARGC" -gt 1 ] && return 1
case "$board" in case "$board" in
ap81 | ap83 | dir-600-a1 | dir-615-c1 | dir-825-b1 | mzk-w04nu | mzk-w300nh | tew-632brp | wrt400n | bullet-m | nanostation-m | rocket-m | wzr-hp-g300nh | nbg460n_550n_550nh | unifi ) ap81 | ap83 | dir-600-a1 | dir-615-c1 | dir-825-b1 | mzk-w04nu | mzk-w300nh | tew-632brp | wrt400n | bullet-m | nanostation-m | rocket-m | wzr-hp-g300nh | wzr-hp-g301nh | nbg460n_550n_550nh | unifi )
[ "$magic" != "2705" ] && { [ "$magic" != "2705" ] && {
echo "Invalid image type." echo "Invalid image type."
return 1 return 1

View File

@ -13,6 +13,7 @@
#include <linux/mtd/partitions.h> #include <linux/mtd/partitions.h>
#include <linux/nxp_74hc153.h> #include <linux/nxp_74hc153.h>
#include <linux/rtl8366s.h> #include <linux/rtl8366s.h>
#include <linux/rtl8366rb.h>
#include <asm/mips_machine.h> #include <asm/mips_machine.h>
#include <asm/mach-ar71xx/ar71xx.h> #include <asm/mach-ar71xx/ar71xx.h>
@ -225,21 +226,43 @@ static struct platform_device wzrhpg300nh_rtl8366s_device = {
} }
}; };
static void __init wzrhpg300nh_setup(void) static struct rtl8366rb_platform_data wzrhpg301nh_rtl8366rb_data = {
.gpio_sda = WZRHPG300NH_GPIO_RTL8366_SDA,
.gpio_sck = WZRHPG300NH_GPIO_RTL8366_SCK,
};
static struct platform_device wzrhpg301nh_rtl8366rb_device = {
.name = RTL8366RB_DRIVER_NAME,
.id = -1,
.dev = {
.platform_data = &wzrhpg301nh_rtl8366rb_data,
}
};
static void __init wzrhpg30xnh_setup(bool hasrtl8366rb)
{ {
u8 *eeprom = (u8 *) KSEG1ADDR(0x1fff1000); u8 *eeprom = (u8 *) KSEG1ADDR(0x1fff1000);
u8 *mac = eeprom + WZRHPG300NH_MAC_OFFSET; u8 *mac = eeprom + WZRHPG300NH_MAC_OFFSET;
ar71xx_init_mac(ar71xx_eth0_data.mac_addr, mac, 0); ar71xx_init_mac(ar71xx_eth0_data.mac_addr, mac, 0);
ar71xx_init_mac(ar71xx_eth1_data.mac_addr, mac, 1);
if (hasrtl8366rb) {
ar71xx_eth0_pll_data.pll_1000 = 0x1f000000;
ar71xx_eth0_data.mii_bus_dev = &wzrhpg301nh_rtl8366rb_device.dev;
ar71xx_eth1_pll_data.pll_1000 = 0x100;
ar71xx_eth1_data.mii_bus_dev = &wzrhpg301nh_rtl8366rb_device.dev;
} else {
ar71xx_eth0_pll_data.pll_1000 = 0x1e000100; ar71xx_eth0_pll_data.pll_1000 = 0x1e000100;
ar71xx_eth0_data.mii_bus_dev = &wzrhpg300nh_rtl8366s_device.dev; ar71xx_eth0_data.mii_bus_dev = &wzrhpg300nh_rtl8366s_device.dev;
ar71xx_eth1_pll_data.pll_1000 = 0x1e000100;
ar71xx_eth1_data.mii_bus_dev = &wzrhpg300nh_rtl8366s_device.dev;
}
ar71xx_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RGMII; ar71xx_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RGMII;
ar71xx_eth0_data.speed = SPEED_1000; ar71xx_eth0_data.speed = SPEED_1000;
ar71xx_eth0_data.duplex = DUPLEX_FULL; ar71xx_eth0_data.duplex = DUPLEX_FULL;
ar71xx_init_mac(ar71xx_eth1_data.mac_addr, mac, 1);
ar71xx_eth1_pll_data.pll_1000 = 0x1e000100;
ar71xx_eth1_data.mii_bus_dev = &wzrhpg300nh_rtl8366s_device.dev;
ar71xx_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_RGMII; ar71xx_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_RGMII;
ar71xx_eth1_data.phy_mask = 0x10; ar71xx_eth1_data.phy_mask = 0x10;
@ -251,6 +274,10 @@ static void __init wzrhpg300nh_setup(void)
platform_device_register(&wzrhpg300nh_74hc153_device); platform_device_register(&wzrhpg300nh_74hc153_device);
platform_device_register(&wzrhpg300nh_flash_device); platform_device_register(&wzrhpg300nh_flash_device);
if (hasrtl8366rb)
platform_device_register(&wzrhpg301nh_rtl8366rb_device);
else
platform_device_register(&wzrhpg300nh_rtl8366s_device); platform_device_register(&wzrhpg300nh_rtl8366s_device);
ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(wzrhpg300nh_leds_gpio), ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(wzrhpg300nh_leds_gpio),
@ -262,5 +289,18 @@ static void __init wzrhpg300nh_setup(void)
} }
static void __init wzrhpg300nh_setup(void)
{
wzrhpg30xnh_setup(false);
}
static void __init wzrhpg301nh_setup(void)
{
wzrhpg30xnh_setup(true);
}
MIPS_MACHINE(AR71XX_MACH_WZR_HP_G300NH, "WZR-HP-G300NH", MIPS_MACHINE(AR71XX_MACH_WZR_HP_G300NH, "WZR-HP-G300NH",
"Buffalo WZR-HP-G300NH", wzrhpg300nh_setup); "Buffalo WZR-HP-G300NH", wzrhpg300nh_setup);
MIPS_MACHINE(AR71XX_MACH_WZR_HP_G301NH, "WZR-HP-G301NH",
"Buffalo WZR-HP-G301NH", wzrhpg301nh_setup);

View File

@ -61,6 +61,7 @@ enum ar71xx_mach_type {
AR71XX_MACH_WRT160NL, /* Linksys WRT160NL */ AR71XX_MACH_WRT160NL, /* Linksys WRT160NL */
AR71XX_MACH_WRT400N, /* Linksys WRT400N */ AR71XX_MACH_WRT400N, /* Linksys WRT400N */
AR71XX_MACH_WZR_HP_G300NH, /* Buffalo WZR-HP-G300NH */ AR71XX_MACH_WZR_HP_G300NH, /* Buffalo WZR-HP-G300NH */
AR71XX_MACH_WZR_HP_G301NH, /* Buffalo WZR-HP-G301NH */
AR71XX_MACH_EAP7660D, /* Senao EAP7660D */ AR71XX_MACH_EAP7660D, /* Senao EAP7660D */
AR71XX_MACH_ZCN_1523H_2, /* Zcomax ZCN-1523H-2-xx */ AR71XX_MACH_ZCN_1523H_2, /* Zcomax ZCN-1523H-2-xx */
AR71XX_MACH_ZCN_1523H_5, /* Zcomax ZCN-1523H-5-xx */ AR71XX_MACH_ZCN_1523H_5, /* Zcomax ZCN-1523H-5-xx */

View File

@ -5,13 +5,13 @@
# See /LICENSE for more information. # See /LICENSE for more information.
# #
define Profile/WZRHPG300NH define Profile/WZRHPG30XNH
NAME:=Buffalo WZR-HP-G300NH NAME:=Buffalo WZR-HP-G30XNH
PACKAGES:=kmod-ath9k wpad-mini kmod-usb-core kmod-usb2 kmod-ledtrig-usbdev PACKAGES:=kmod-ath9k wpad-mini kmod-usb-core kmod-usb2 kmod-ledtrig-usbdev
endef endef
define Profile/WZRHPG300NH/Description define Profile/WZRHPG30XNH/Description
Package set optimized for the Buffalo WZR-HP-G300NH Package set optimized for the Buffalo WZR-HP-G300NH and WZR-HP-G301NH
endef endef
$(eval $(call Profile,WZRHPG300NH)) $(eval $(call Profile,WZRHPG30XNH))

View File

@ -118,7 +118,7 @@ define Image/Build/DIR825B1
fi; fi fi; fi
endef endef
define Image/Build/WZRHPG300NH define Image/Build/WZRHPG30XNH
$(call PatchKernelLzma,$(2),$(3)) $(call PatchKernelLzma,$(2),$(3))
if [ `stat -c%s "$(KDIR)/vmlinux-$(2).bin.lzma"` -gt 1048576 ]; then \ if [ `stat -c%s "$(KDIR)/vmlinux-$(2).bin.lzma"` -gt 1048576 ]; then \
echo "Warning: $(KDIR)/vmlinux-$(2).bin.lzma is too big"; \ echo "Warning: $(KDIR)/vmlinux-$(2).bin.lzma is too big"; \
@ -688,8 +688,9 @@ define Image/Build/Profile/WRT160NL
$(call Image/Build/Template/$(fs_64k)/$(1),CyberTAN,wrt160nl,board=WRT160NL,1.00.01) $(call Image/Build/Template/$(fs_64k)/$(1),CyberTAN,wrt160nl,board=WRT160NL,1.00.01)
endef endef
define Image/Build/Profile/WZRHPG300NH define Image/Build/Profile/WZRHPG30XNH
$(call Image/Build/Template/$(fs_128k)/$(1),WZRHPG300NH,wzr-hp-g300nh,board=WZR-HP-G300NH) $(call Image/Build/Template/$(fs_128k)/$(1),WZRHPG30XNH,wzr-hp-g300nh,board=WZR-HP-G300NH)
$(call Image/Build/Template/$(fs_128k)/$(1),WZRHPG30XNH,wzr-hp-g301nh,board=WZR-HP-G301NH)
endef endef
define Image/Build/Profile/ZCN1523H28 define Image/Build/Profile/ZCN1523H28
@ -740,7 +741,7 @@ define Image/Build/Profile/Default
$(call Image/Build/Profile/AP96,$(1)) $(call Image/Build/Profile/AP96,$(1))
$(call Image/Build/Profile/WRT400N,$(1)) $(call Image/Build/Profile/WRT400N,$(1))
$(call Image/Build/Profile/WRT160NL,$(1)) $(call Image/Build/Profile/WRT160NL,$(1))
$(call Image/Build/Profile/WZRHPG300NH,$(1)) $(call Image/Build/Profile/WZRHPG30XNH,$(1))
$(call Image/Build/Profile/ZCN1523H28,$(1)) $(call Image/Build/Profile/ZCN1523H28,$(1))
$(call Image/Build/Profile/ZCN1523H516,$(1)) $(call Image/Build/Profile/ZCN1523H516,$(1))
endef endef