summaryrefslogtreecommitdiff
path: root/include/linux/phy/phy.h
diff options
context:
space:
mode:
authorKishon Vijay Abraham I <kishon@ti.com>2016-07-04 18:07:25 +0530
committerKishon Vijay Abraham I <kishon@ti.com>2016-07-04 18:07:25 +0530
commit6f7d2346cb9cc1f5b8a4881f06934f1cc50f02db (patch)
tree822ce55db89fbcedfeffa9970d9678d0eebd551a /include/linux/phy/phy.h
parent04e59a0211ff012ba60c00baca673482570784e9 (diff)
parent300eb0139cf27044c67f6005ff17b8434c7843f0 (diff)
downloadlinux-6f7d2346cb9cc1f5b8a4881f06934f1cc50f02db.tar.gz
linux-6f7d2346cb9cc1f5b8a4881f06934f1cc50f02db.tar.bz2
linux-6f7d2346cb9cc1f5b8a4881f06934f1cc50f02db.zip
Merge tag 'phy-set-mode-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/kishon/linux-phy into next
Add new set_mode phy ops Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Diffstat (limited to 'include/linux/phy/phy.h')
-rw-r--r--include/linux/phy/phy.h17
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;