diff options
Diffstat (limited to 'include/linux/phy/phy.h')
| -rw-r--r-- | include/linux/phy/phy.h | 31 | 
1 files changed, 29 insertions, 2 deletions
diff --git a/include/linux/phy/phy.h b/include/linux/phy/phy.h index 4f8423a948d5..c9d14eeee7f5 100644 --- a/include/linux/phy/phy.h +++ b/include/linux/phy/phy.h @@ -25,7 +25,15 @@ struct phy;  enum phy_mode {  	PHY_MODE_INVALID,  	PHY_MODE_USB_HOST, +	PHY_MODE_USB_HOST_LS, +	PHY_MODE_USB_HOST_FS, +	PHY_MODE_USB_HOST_HS, +	PHY_MODE_USB_HOST_SS,  	PHY_MODE_USB_DEVICE, +	PHY_MODE_USB_DEVICE_LS, +	PHY_MODE_USB_DEVICE_FS, +	PHY_MODE_USB_DEVICE_HS, +	PHY_MODE_USB_DEVICE_SS,  	PHY_MODE_USB_OTG,  	PHY_MODE_SGMII,  	PHY_MODE_10GKR, @@ -61,6 +69,7 @@ struct phy_ops {   */  struct phy_attrs {  	u32			bus_width; +	enum phy_mode		mode;  };  /** @@ -72,7 +81,8 @@ struct phy_attrs {   * @mutex: mutex to protect phy_ops   * @init_count: used to protect when the PHY is used by multiple consumers   * @power_count: used to protect when the PHY is used by multiple consumers - * @phy_attrs: used to specify PHY specific attributes + * @attrs: used to specify PHY specific attributes + * @pwr: power regulator associated with the phy   */  struct phy {  	struct device		dev; @@ -88,9 +98,10 @@ struct phy {  /**   * struct phy_provider - represents the phy provider   * @dev: phy provider device + * @children: can be used to override the default (dev->of_node) child node   * @owner: the module owner having of_xlate - * @of_xlate: function pointer to obtain phy instance from phy pointer   * @list: to maintain a linked list of PHY providers + * @of_xlate: function pointer to obtain phy instance from phy pointer   */  struct phy_provider {  	struct device		*dev; @@ -101,6 +112,13 @@ struct phy_provider {  		struct of_phandle_args *args);  }; +/** + * struct phy_lookup - PHY association in list of phys managed by the phy driver + * @node: list node + * @dev_id: the device of the association + * @con_id: connection ID string on device + * @phy: the phy of the association + */  struct phy_lookup {  	struct list_head node;  	const char *dev_id; @@ -144,6 +162,10 @@ 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 enum phy_mode phy_get_mode(struct phy *phy) +{ +	return phy->attrs.mode; +}  int phy_reset(struct phy *phy);  int phy_calibrate(struct phy *phy);  static inline int phy_get_bus_width(struct phy *phy) @@ -260,6 +282,11 @@ static inline int phy_set_mode(struct phy *phy, enum phy_mode mode)  	return -ENOSYS;  } +static inline enum phy_mode phy_get_mode(struct phy *phy) +{ +	return PHY_MODE_INVALID; +} +  static inline int phy_reset(struct phy *phy)  {  	if (!phy)  | 
