diff options
Diffstat (limited to 'include/linux/phy')
| -rw-r--r-- | include/linux/phy/phy.h | 17 | 
1 files changed, 17 insertions, 0 deletions
| diff --git a/include/linux/phy/phy.h b/include/linux/phy/phy.h index a810f2a18842..f08b67238b58 100644 --- a/include/linux/phy/phy.h +++ b/include/linux/phy/phy.h @@ -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 { @@ -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;  }; @@ -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; @@ -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; |