Merge branch 'master' of git://git.denx.de/u-boot-sunxi
[platform/kernel/u-boot.git] / include / phy.h
index 09645a8..f23ca63 100644 (file)
@@ -9,6 +9,7 @@
 #ifndef _PHY_H
 #define _PHY_H
 
+#include <dm.h>
 #include <linux/list.h>
 #include <linux/mii.h>
 #include <linux/ethtool.h>
@@ -112,6 +113,7 @@ struct phy_device {
 
 #ifdef CONFIG_DM_ETH
        struct udevice *dev;
+       ofnode node;
 #else
        struct eth_device *dev;
 #endif
@@ -136,6 +138,7 @@ struct phy_device {
        int pause;
        int asym_pause;
        u32 phy_id;
+       bool is_c45;
        u32 flags;
 };
 
@@ -182,11 +185,22 @@ void phy_connect_dev(struct phy_device *phydev, struct udevice *dev);
 struct phy_device *phy_connect(struct mii_dev *bus, int addr,
                                struct udevice *dev,
                                phy_interface_t interface);
+static inline ofnode phy_get_ofnode(struct phy_device *phydev)
+{
+       if (ofnode_valid(phydev->node))
+               return phydev->node;
+       else
+               return dev_ofnode(phydev->dev);
+}
 #else
 void phy_connect_dev(struct phy_device *phydev, struct eth_device *dev);
 struct phy_device *phy_connect(struct mii_dev *bus, int addr,
                                struct eth_device *dev,
                                phy_interface_t interface);
+static inline ofnode phy_get_ofnode(struct phy_device *phydev)
+{
+       return ofnode_null();
+}
 #endif
 int phy_startup(struct phy_device *phydev);
 int phy_config(struct phy_device *phydev);
@@ -262,8 +276,9 @@ static inline bool phy_interface_is_sgmii(struct phy_device *phydev)
 }
 
 /* PHY UIDs for various PHYs that are referenced in external code */
-#define PHY_UID_CS4340  0x13e51002
-#define PHY_UID_CS4223  0x03e57003
-#define PHY_UID_TN2020 0x00a19410
+#define PHY_UID_CS4340         0x13e51002
+#define PHY_UID_CS4223         0x03e57003
+#define PHY_UID_TN2020         0x00a19410
+#define PHY_UID_IN112525_S03   0x02107440
 
 #endif