Loading drivers/phy/phy-core.c +15 −0 Original line number Diff line number Diff line Loading @@ -342,6 +342,21 @@ int phy_power_off(struct phy *phy) } EXPORT_SYMBOL_GPL(phy_power_off); int phy_set_mode(struct phy *phy, enum phy_mode mode) { int ret; if (!phy || !phy->ops->set_mode) return 0; mutex_lock(&phy->mutex); ret = phy->ops->set_mode(phy, mode); mutex_unlock(&phy->mutex); return ret; } EXPORT_SYMBOL_GPL(phy_set_mode); /** * _of_phy_get() - lookup and obtain a reference to a phy by phandle * @np: device_node for which to get the phy Loading drivers/phy/phy-xgene.c +2 −2 Original line number Diff line number Diff line Loading @@ -518,7 +518,7 @@ enum clk_type_t { CLK_INT_SING = 2, /* Internal single ended */ }; enum phy_mode { enum xgene_phy_mode { MODE_SATA = 0, /* List them for simple reference */ MODE_SGMII = 1, MODE_PCIE = 2, Loading @@ -542,7 +542,7 @@ struct xgene_sata_override_param { struct xgene_phy_ctx { struct device *dev; struct phy *phy; enum phy_mode mode; /* Mode of operation */ enum xgene_phy_mode mode; /* Mode of operation */ enum clk_type_t clk_type; /* Input clock selection */ void __iomem *sds_base; /* PHY CSR base addr */ struct clk *clk; /* Optional clock */ Loading include/linux/phy/phy.h +17 −0 Original line number Diff line number Diff line Loading @@ -22,12 +22,20 @@ struct phy; enum phy_mode { PHY_MODE_INVALID, PHY_MODE_USB_HOST, PHY_MODE_USB_DEVICE, PHY_MODE_USB_OTG, }; /** * struct phy_ops - set of function pointers for performing phy operations * @init: operation to be performed for initializing phy * @exit: operation to be performed while exiting * @power_on: powering on the phy * @power_off: powering off the phy * @set_mode: set the mode of the phy * @owner: the module owner containing the ops */ struct phy_ops { Loading @@ -35,6 +43,7 @@ struct phy_ops { int (*exit)(struct phy *phy); int (*power_on)(struct phy *phy); int (*power_off)(struct phy *phy); int (*set_mode)(struct phy *phy, enum phy_mode mode); struct module *owner; }; Loading Loading @@ -126,6 +135,7 @@ int phy_init(struct phy *phy); int phy_exit(struct phy *phy); int phy_power_on(struct phy *phy); int phy_power_off(struct phy *phy); int phy_set_mode(struct phy *phy, enum phy_mode mode); static inline int phy_get_bus_width(struct phy *phy) { return phy->attrs.bus_width; Loading Loading @@ -233,6 +243,13 @@ static inline int phy_power_off(struct phy *phy) return -ENOSYS; } static inline int phy_set_mode(struct phy *phy, enum phy_mode mode) { if (!phy) return 0; return -ENOSYS; } static inline int phy_get_bus_width(struct phy *phy) { return -ENOSYS; Loading Loading
drivers/phy/phy-core.c +15 −0 Original line number Diff line number Diff line Loading @@ -342,6 +342,21 @@ int phy_power_off(struct phy *phy) } EXPORT_SYMBOL_GPL(phy_power_off); int phy_set_mode(struct phy *phy, enum phy_mode mode) { int ret; if (!phy || !phy->ops->set_mode) return 0; mutex_lock(&phy->mutex); ret = phy->ops->set_mode(phy, mode); mutex_unlock(&phy->mutex); return ret; } EXPORT_SYMBOL_GPL(phy_set_mode); /** * _of_phy_get() - lookup and obtain a reference to a phy by phandle * @np: device_node for which to get the phy Loading
drivers/phy/phy-xgene.c +2 −2 Original line number Diff line number Diff line Loading @@ -518,7 +518,7 @@ enum clk_type_t { CLK_INT_SING = 2, /* Internal single ended */ }; enum phy_mode { enum xgene_phy_mode { MODE_SATA = 0, /* List them for simple reference */ MODE_SGMII = 1, MODE_PCIE = 2, Loading @@ -542,7 +542,7 @@ struct xgene_sata_override_param { struct xgene_phy_ctx { struct device *dev; struct phy *phy; enum phy_mode mode; /* Mode of operation */ enum xgene_phy_mode mode; /* Mode of operation */ enum clk_type_t clk_type; /* Input clock selection */ void __iomem *sds_base; /* PHY CSR base addr */ struct clk *clk; /* Optional clock */ Loading
include/linux/phy/phy.h +17 −0 Original line number Diff line number Diff line Loading @@ -22,12 +22,20 @@ struct phy; enum phy_mode { PHY_MODE_INVALID, PHY_MODE_USB_HOST, PHY_MODE_USB_DEVICE, PHY_MODE_USB_OTG, }; /** * struct phy_ops - set of function pointers for performing phy operations * @init: operation to be performed for initializing phy * @exit: operation to be performed while exiting * @power_on: powering on the phy * @power_off: powering off the phy * @set_mode: set the mode of the phy * @owner: the module owner containing the ops */ struct phy_ops { Loading @@ -35,6 +43,7 @@ struct phy_ops { int (*exit)(struct phy *phy); int (*power_on)(struct phy *phy); int (*power_off)(struct phy *phy); int (*set_mode)(struct phy *phy, enum phy_mode mode); struct module *owner; }; Loading Loading @@ -126,6 +135,7 @@ int phy_init(struct phy *phy); int phy_exit(struct phy *phy); int phy_power_on(struct phy *phy); int phy_power_off(struct phy *phy); int phy_set_mode(struct phy *phy, enum phy_mode mode); static inline int phy_get_bus_width(struct phy *phy) { return phy->attrs.bus_width; Loading Loading @@ -233,6 +243,13 @@ static inline int phy_power_off(struct phy *phy) return -ENOSYS; } static inline int phy_set_mode(struct phy *phy, enum phy_mode mode) { if (!phy) return 0; return -ENOSYS; } static inline int phy_get_bus_width(struct phy *phy) { return -ENOSYS; Loading