Convert CONFIG_SYS_LOAD_ADDR to Kconfig
[platform/kernel/u-boot.git] / include / phy.h
index fedd146..6b92863 100644 (file)
@@ -9,14 +9,17 @@
 #ifndef _PHY_H
 #define _PHY_H
 
-#include <dm.h>
+#include <log.h>
+#include <phy_interface.h>
+#include <dm/ofnode.h>
+#include <dm/read.h>
 #include <linux/errno.h>
 #include <linux/list.h>
 #include <linux/mii.h>
 #include <linux/ethtool.h>
 #include <linux/mdio.h>
-#include <log.h>
-#include <phy_interface.h>
+
+struct udevice;
 
 #define PHY_FIXED_ID           0xa5a55a5a
 #define PHY_NCSI_ID            0xbeefcafe
                                 PHY_100BT_FEATURES | \
                                 PHY_DEFAULT_FEATURES)
 
+#define PHY_100BT1_FEATURES    (SUPPORTED_TP | \
+                                SUPPORTED_MII | \
+                                SUPPORTED_100baseT_Full)
+
 #define PHY_GBIT_FEATURES      (PHY_BASIC_FEATURES | \
                                 PHY_1000BT_FEATURES)
 
@@ -202,7 +209,7 @@ static inline int phy_write(struct phy_device *phydev, int devad, int regnum,
 {
        struct mii_dev *bus = phydev->bus;
 
-       if (!bus || !bus->read) {
+       if (!bus || !bus->write) {
                debug("%s: No bus configured\n", __func__);
                return -1;
        }
@@ -399,6 +406,27 @@ int phy_reset(struct phy_device *phydev);
 struct phy_device *phy_find_by_mask(struct mii_dev *bus, unsigned phy_mask,
                phy_interface_t interface);
 
+#ifdef CONFIG_PHY_FIXED
+
+/**
+ * fixed_phy_create() - create an unconnected fixed-link pseudo-PHY device
+ * @node: OF node for the container of the fixed-link node
+ *
+ * Description: Creates a struct phy_device based on a fixed-link of_node
+ * description. Can be used without phy_connect by drivers which do not expose
+ * a UCLASS_ETH udevice.
+ */
+struct phy_device *fixed_phy_create(ofnode node);
+
+#else
+
+static inline struct phy_device *fixed_phy_create(ofnode node)
+{
+       return NULL;
+}
+
+#endif
+
 #ifdef CONFIG_DM_ETH
 
 /**
@@ -490,6 +518,7 @@ int phy_aquantia_init(void);
 int phy_atheros_init(void);
 int phy_broadcom_init(void);
 int phy_cortina_init(void);
+int phy_cortina_access_init(void);
 int phy_davicom_init(void);
 int phy_et1011c_init(void);
 int phy_lxt_init(void);
@@ -498,6 +527,7 @@ int phy_micrel_ksz8xxx_init(void);
 int phy_micrel_ksz90x1_init(void);
 int phy_meson_gxl_init(void);
 int phy_natsemi_init(void);
+int phy_nxp_tja11xx_init(void);
 int phy_realtek_init(void);
 int phy_smsc_init(void);
 int phy_teranetics_init(void);