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);
  27extern int of_mdio_parse_addr(struct device *dev, const struct device_node *np);
  28
  29#else /* CONFIG_OF */
  30static inline int of_mdiobus_register(struct mii_bus *mdio, struct device_node *np)
  31{
  32        /*
  33         * Fall back to the non-DT function to register a bus.
  34         * This way, we don't have to keep compat bits around in drivers.
  35         */
  36
  37        return mdiobus_register(mdio);
  38}
  39
  40static inline struct phy_device *of_phy_find_device(struct device_node *phy_np)
  41{
  42        return NULL;
  43}
  44
  45static inline struct phy_device *of_phy_connect(struct net_device *dev,
  46                                                struct device_node *phy_np,
  47                                                void (*hndlr)(struct net_device *),
  48                                                u32 flags, phy_interface_t iface)
  49{
  50        return NULL;
  51}
  52
  53static inline struct phy_device *of_phy_attach(struct net_device *dev,
  54                                               struct device_node *phy_np,
  55                                               u32 flags, phy_interface_t iface)
  56{
  57        return NULL;
  58}
  59
  60static inline struct mii_bus *of_mdio_find_bus(struct device_node *mdio_np)
  61{
  62        return NULL;
  63}
  64
  65static inline int of_mdio_parse_addr(struct device *dev,
  66                                     const struct device_node *np)
  67{
  68        return -ENOSYS;
  69}
  70#endif /* CONFIG_OF */
  71
  72#if defined(CONFIG_OF) && defined(CONFIG_FIXED_PHY)
  73extern int of_phy_register_fixed_link(struct device_node *np);
  74extern bool of_phy_is_fixed_link(struct device_node *np);
  75#else
  76static inline int of_phy_register_fixed_link(struct device_node *np)
  77{
  78        return -ENOSYS;
  79}
  80static inline bool of_phy_is_fixed_link(struct device_node *np)
  81{
  82        return false;
  83}
  84#endif
  85
  86
  87#endif /* __LINUX_OF_MDIO_H */
  88