diff options
Diffstat (limited to 'drivers/of/of_net.c')
| -rw-r--r-- | drivers/of/of_net.c | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/drivers/of/of_net.c b/drivers/of/of_net.c deleted file mode 100644 index d820f3edd431..000000000000 --- a/drivers/of/of_net.c +++ /dev/null @@ -1,82 +0,0 @@ -/* - * OF helpers for network devices. - * - * This file is released under the GPLv2 - * - * Initially copied out of arch/powerpc/kernel/prom_parse.c - */ -#include <linux/etherdevice.h> -#include <linux/kernel.h> -#include <linux/of_net.h> -#include <linux/phy.h> -#include <linux/export.h> - -/** - * of_get_phy_mode - Get phy mode for given device_node - * @np: Pointer to the given device_node - * - * The function gets phy interface string from property 'phy-mode' or - * 'phy-connection-type', and return its index in phy_modes table, or errno in - * error case. - */ -int of_get_phy_mode(struct device_node *np) -{ - const char *pm; - int err, i; - - err = of_property_read_string(np, "phy-mode", &pm); - if (err < 0) - err = of_property_read_string(np, "phy-connection-type", &pm); - if (err < 0) - return err; - - for (i = 0; i < PHY_INTERFACE_MODE_MAX; i++) - if (!strcasecmp(pm, phy_modes(i))) - return i; - - return -ENODEV; -} -EXPORT_SYMBOL_GPL(of_get_phy_mode); - -static const void *of_get_mac_addr(struct device_node *np, const char *name) -{ - struct property *pp = of_find_property(np, name, NULL); - - if (pp && pp->length == ETH_ALEN && is_valid_ether_addr(pp->value)) - return pp->value; - return NULL; -} - -/** - * Search the device tree for the best MAC address to use. 'mac-address' is - * checked first, because that is supposed to contain to "most recent" MAC - * address. If that isn't set, then 'local-mac-address' is checked next, - * because that is the default address. If that isn't set, then the obsolete - * 'address' is checked, just in case we're using an old device tree. - * - * Note that the 'address' property is supposed to contain a virtual address of - * the register set, but some DTS files have redefined that property to be the - * MAC address. - * - * All-zero MAC addresses are rejected, because those could be properties that - * exist in the device tree, but were not set by U-Boot. For example, the - * DTS could define 'mac-address' and 'local-mac-address', with zero MAC - * addresses. Some older U-Boots only initialized 'local-mac-address'. In - * this case, the real MAC is in 'local-mac-address', and 'mac-address' exists - * but is all zeros. -*/ -const void *of_get_mac_address(struct device_node *np) -{ - const void *addr; - - addr = of_get_mac_addr(np, "mac-address"); - if (addr) - return addr; - - addr = of_get_mac_addr(np, "local-mac-address"); - if (addr) - return addr; - - return of_get_mac_addr(np, "address"); -} -EXPORT_SYMBOL(of_get_mac_address); |
