linux/include/linux/of_mdio.h
<<
>>
Prefs
   1/*
   2 * OF helpers for the MDIO (Ethernet PHY) API
   3 *
   4 * Copyright (c) 2009 Secret Lab Technologies, Ltd.
   5 *
   6 * This file is released under the GPLv2
   7 */
   8
   9#ifndef __LINUX_OF_MDIO_H
  10#define __LINUX_OF_MDIO_H
  11
  12#include <linux/phy.h>
  13#include <linux/of.h>
  14
  15#ifdef CONFIG_OF
  16extern int of_mdiobus_register(struct mii_bus *mdio, struct device_node *np);
  17extern struct phy_device *of_phy_find_device(struct device_node *phy_np);
  18extern struct phy_device *of_phy_connect(struct net_device *dev,
  19                                         struct device_node *phy_np,
  20                                         void (*hndlr)(struct net_device *),
  21                                         u32 flags, phy_interface_t iface);
  22struct phy_device *of_phy_attach(struct net_device *dev,
  23                                 struct device_node *phy_np, u32 flags,
  24                                 phy_interface_t iface);
  25
  26extern struct mii_bus *of_mdio_find_bus(struct device_node *mdio_np);
  27
  28#else /* CONFIG_OF */
  29static inline int of_mdiobus_register(struct mii_bus *mdio, struct device_node *np)
  30{
  31        /*
  32         * Fall back to the non-DT function to register a bus.
  33         * This way, we don't have to keep compat bits around in drivers.
  34         */
  35
  36        return mdiobus_register(mdio);
  37}
  38
  39static inline struct phy_device *of_phy_find_device(struct device_node *phy_np)
  40{
  41        return NULL;
  42}
  43
  44static inline struct phy_device *of_phy_connect(struct net_device *dev,
  45                                                struct device_node *phy_np,
  46                                                void (*hndlr)(struct net_device *),
  47                                                u32 flags, phy_interface_t iface)
  48{
  49        return NULL;
  50}
  51
  52static inline struct phy_device *of_phy_attach(struct net_device *dev,
  53                                               struct device_node *phy_np,
  54                                               u32 flags, phy_interface_t iface)
  55{
  56        return NULL;
  57}
  58
  59static inline struct mii_bus *of_mdio_find_bus(struct device_node *mdio_np)
  60{
  61        return NULL;
  62}
  63#endif /* CONFIG_OF */
  64
  65#if defined(CONFIG_OF) && defined(CONFIG_FIXED_PHY)
  66extern int of_phy_register_fixed_link(struct device_node *np);
  67extern bool of_phy_is_fixed_link(struct device_node *np);
  68#else
  69static inline int of_phy_register_fixed_link(struct device_node *np)
  70{
  71        return -ENOSYS;
  72}
  73static inline bool of_phy_is_fixed_link(struct device_node *np)
  74{
  75        return false;
  76}
  77#endif
  78
  79
  80#endif /* __LINUX_OF_MDIO_H */
  81