}
EXPORT_SYMBOL_GPL(phy_power_off);
+void phy_tune(struct phy *phy)
+{
+ if (phy->ops->tune)
+ phy->ops->tune(phy);
+}
+EXPORT_SYMBOL_GPL(phy_tune);
+
/**
* _of_phy_get() - lookup and obtain a reference to a phy by phandle
* @np: device_node for which to get the phy
* @exit: operation to be performed while exiting
* @power_on: powering on the phy
* @power_off: powering off the phy
+ * @tune: operation to be performed for re-configuring phy
* @owner: the module owner containing the ops
*/
struct phy_ops {
int (*exit)(struct phy *phy);
int (*power_on)(struct phy *phy);
int (*power_off)(struct phy *phy);
+ void (*tune)(struct phy *phy);
struct module *owner;
};
int phy_exit(struct phy *phy);
int phy_power_on(struct phy *phy);
int phy_power_off(struct phy *phy);
+void phy_tune(struct phy *phy);
static inline int phy_get_bus_width(struct phy *phy)
{
return phy->attrs.bus_width;
return -ENOSYS;
}
+static inline void phy_tune(struct phy *phy)
+{
+ return;
+}
+
static inline int phy_get_bus_width(struct phy *phy)
{
return -ENOSYS;