]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/arm/mach-kirkwood/rd88f6281-setup.c
Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm
[linux-2.6-omap-h63xx.git] / arch / arm / mach-kirkwood / rd88f6281-setup.c
index 175054abd630d59cbae7e4698adaba474adaf250..9a0e905d10cd04e6841f8dc7f5cc7bb6c57fa705 100644 (file)
@@ -80,24 +80,38 @@ static struct dsa_platform_data rd88f6281_switch_data = {
        .port_names[1]  = "lan2",
        .port_names[2]  = "lan3",
        .port_names[3]  = "lan4",
-       .port_names[4]  = "wan",
        .port_names[5]  = "cpu",
 };
 
+static struct mv643xx_eth_platform_data rd88f6281_ge01_data = {
+       .phy_addr       = MV643XX_ETH_PHY_ADDR(11),
+};
+
 static struct mv_sata_platform_data rd88f6281_sata_data = {
        .n_ports        = 2,
 };
 
 static void __init rd88f6281_init(void)
 {
+       u32 dev, rev;
+
        /*
         * Basic setup. Needs to be called early.
         */
        kirkwood_init();
 
        kirkwood_ehci_init();
+
        kirkwood_ge00_init(&rd88f6281_ge00_data);
+       kirkwood_pcie_id(&dev, &rev);
+       if (rev == MV88F6281_REV_A0) {
+               rd88f6281_switch_data.sw_addr = 10;
+               kirkwood_ge01_init(&rd88f6281_ge01_data);
+       } else {
+               rd88f6281_switch_data.port_names[4] = "wan";
+       }
        kirkwood_ge00_switch_init(&rd88f6281_switch_data, NO_IRQ);
+
        kirkwood_rtc_init();
        kirkwood_sata_init(&rd88f6281_sata_data);
        kirkwood_uart0_init();