|
|
@@ -1,61 +0,0 @@
|
|
|
-/*
|
|
|
- * Atheros AP91 reference board ethernet initialization
|
|
|
- *
|
|
|
- * Copyright (C) 2010 Gabor Juhos <[email protected]>
|
|
|
- *
|
|
|
- * 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 "devices.h"
|
|
|
-#include "dev-dsa.h"
|
|
|
-#include "dev-ap91-eth.h"
|
|
|
-
|
|
|
-static struct dsa_chip_data ap91_dsa_chip = {
|
|
|
- .port_names[0] = "cpu",
|
|
|
- .port_names[1] = "lan1",
|
|
|
- .port_names[2] = "lan2",
|
|
|
- .port_names[3] = "lan3",
|
|
|
- .port_names[4] = "lan4",
|
|
|
-};
|
|
|
-
|
|
|
-static struct dsa_platform_data ap91_dsa_data = {
|
|
|
- .nr_chips = 1,
|
|
|
- .chip = &ap91_dsa_chip,
|
|
|
-};
|
|
|
-
|
|
|
-static void ap91_eth_set_port_name(unsigned port, const char *name)
|
|
|
-{
|
|
|
- if (port < 1 || port > 5)
|
|
|
- return;
|
|
|
-
|
|
|
- if (name)
|
|
|
- ap91_dsa_chip.port_names[port] = (char *) name;
|
|
|
-}
|
|
|
-
|
|
|
-void __init ap91_eth_init(const char *port_names[])
|
|
|
-{
|
|
|
- if (port_names) {
|
|
|
- int i;
|
|
|
-
|
|
|
- for (i = 0; i < AP91_ETH_NUM_PORT_NAMES; i++)
|
|
|
- ap91_eth_set_port_name(i + 1, port_names[i]);
|
|
|
- }
|
|
|
-
|
|
|
- /* WAN port */
|
|
|
- ar71xx_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RMII;
|
|
|
- ar71xx_eth0_data.speed = SPEED_100;
|
|
|
- ar71xx_eth0_data.duplex = DUPLEX_FULL;
|
|
|
-
|
|
|
- /* LAN ports */
|
|
|
- ar71xx_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_RMII;
|
|
|
- ar71xx_eth1_data.speed = SPEED_1000;
|
|
|
- ar71xx_eth1_data.duplex = DUPLEX_FULL;
|
|
|
-
|
|
|
- ar71xx_add_device_mdio(0x0);
|
|
|
- ar71xx_add_device_eth(1);
|
|
|
- ar71xx_add_device_eth(0);
|
|
|
-
|
|
|
- ar71xx_add_device_dsa(1, &ap91_dsa_data);
|
|
|
-}
|