[PATCH v2 1/4] PHY: Add function set_speed to generic PHY framework
Loc Ho
lho at apm.com
Tue Nov 19 18:53:14 EST 2013
PHY: Add function set_speed to generic PHY framework
This patch adds function set_speed to the generic PHY
framework operation structure. This function can be
called to instruct the PHY underlying layer at specified
lane to configure for specified speed in hertz.
Signed-off-by: Loc Ho <lho at apm.com>
---
include/linux/phy/phy.h | 22 ++++++++++++++++++++++
1 files changed, 22 insertions(+), 0 deletions(-)
diff --git a/include/linux/phy/phy.h b/include/linux/phy/phy.h
index 9351a16..df9b1d1 100644
--- a/include/linux/phy/phy.h
+++ b/include/linux/phy/phy.h
@@ -32,6 +32,7 @@ struct phy;
* @exit: operation to be performed while exiting
* @power_on: powering on the phy
* @power_off: powering off the phy
+ * @set_speed: set operation speed in hz
* @owner: the module owner containing the ops
*/
struct phy_ops {
@@ -39,6 +40,7 @@ struct phy_ops {
int (*exit)(struct phy *phy);
int (*power_on)(struct phy *phy);
int (*power_off)(struct phy *phy);
+ int (*set_speed)(struct phy *phy, int lane, u64 speed);
struct module *owner;
};
@@ -341,4 +343,24 @@ out:
return ret;
}
+static inline int phy_set_speed(struct phy *phy, int lane, u64 speed)
+{
+ int ret = -ENOTSUPP;
+
+ mutex_lock(&phy->mutex);
+ if (phy->ops->set_speed) {
+ ret = phy->ops->set_speed(phy, lane, speed);
+ if (ret < 0) {
+ dev_err(&phy->dev, "phy set speed failed --> %d\n",
+ ret);
+ goto out;
+ }
+ }
+
+out:
+ mutex_unlock(&phy->mutex);
+
+ return ret;
+}
+
#endif /* __DRIVERS_PHY_H */
--
1.5.5
More information about the linux-arm-kernel
mailing list