ar71xx: autodetect rtl8366s/rtl8366rb on wzr-hp-g300nh
authorFelix Fietkau <nbd@openwrt.org>
Sun, 24 Jul 2011 14:40:35 +0000 (14:40 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Sun, 24 Jul 2011 14:40:35 +0000 (14:40 +0000)
SVN-Revision: 27756

target/linux/ar71xx/files/arch/mips/ar71xx/Kconfig
target/linux/ar71xx/files/arch/mips/ar71xx/mach-wzr-hp-g300nh.c

index 865fc47ac9c894c053e1195c54d08259735882d2..0864b997eaea525b0de07102a73d921f07864df3 100644 (file)
@@ -151,6 +151,7 @@ config AR71XX_MACH_WZR_HP_G300NH
        select AR71XX_DEV_GPIO_BUTTONS
        select AR71XX_DEV_LEDS_GPIO
        select AR71XX_DEV_USB
+       select RTL8366_SMI
        default y
 
 config AR71XX_MACH_WP543
index 35f2165827f37ba46938953e4e96f82af0b37903..308f93141adb104b38157012c31ce193b239f8f6 100644 (file)
@@ -234,14 +234,18 @@ static struct platform_device wzrhpg301nh_rtl8366rb_device = {
        }
 };
 
-static void __init wzrhpg30xnh_setup(bool hasrtl8366rb)
+static void __init wzrhpg30xnh_setup(void)
 {
        u8 *eeprom = (u8 *) KSEG1ADDR(0x1fff1000);
        u8 *mac = eeprom + WZRHPG300NH_MAC_OFFSET;
+       bool hasrtl8366rb = false;
 
        ar71xx_init_mac(ar71xx_eth0_data.mac_addr, mac, 0);
        ar71xx_init_mac(ar71xx_eth1_data.mac_addr, mac, 1);
 
+       if (rtl8366_smi_detect(&wzrhpg300nh_rtl8366_data) == RTL8366_TYPE_RB)
+               hasrtl8366rb = true;
+
        if (hasrtl8366rb) {
                ar71xx_eth0_pll_data.pll_1000 = 0x1f000000;
                ar71xx_eth0_data.mii_bus_dev = &wzrhpg301nh_rtl8366rb_device.dev;
@@ -284,18 +288,8 @@ static void __init wzrhpg30xnh_setup(bool hasrtl8366rb)
 
 }
 
-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",
-            "Buffalo WZR-HP-G300NH", wzrhpg300nh_setup);
+            "Buffalo WZR-HP-G300NH", wzrhpg30xnh_setup);
 
 MIPS_MACHINE(AR71XX_MACH_WZR_HP_G301NH, "WZR-HP-G301NH",
-            "Buffalo WZR-HP-G301NH", wzrhpg301nh_setup);
+            "Buffalo WZR-HP-G301NH", wzrhpg30xnh_setup);