Messages in this thread Patch in this message | | | From | Swapnil Jakhade <> | Subject | [PATCH v4 1/2] phy: Add new PHY attribute max_link_rate and APIs to get/set PHY attributes | Date | Fri, 17 Jul 2020 08:50:32 +0200 |
| |
Add new PHY attribute max_link_rate to struct phy_attrs. Add a pair of PHY APIs to get/set all the PHY attributes. Use phy_get_attrs() to get attribute values and phy_set_attrs() to set attribute values.
Signed-off-by: Yuti Amonkar <yamonkar@cadence.com> Signed-off-by: Swapnil Jakhade <sjakhade@cadence.com> --- include/linux/phy/phy.h | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+)
diff --git a/include/linux/phy/phy.h b/include/linux/phy/phy.h index bcee8eba62b3..5d8ebb056c1d 100644 --- a/include/linux/phy/phy.h +++ b/include/linux/phy/phy.h @@ -115,10 +115,12 @@ struct phy_ops { /** * struct phy_attrs - represents phy attributes * @bus_width: Data path width implemented by PHY + * @max_link_rate: Maximum link rate supported by PHY (in Mbps) * @mode: PHY mode */ struct phy_attrs { u32 bus_width; + u32 max_link_rate; enum phy_mode mode; }; @@ -231,6 +233,20 @@ static inline void phy_set_bus_width(struct phy *phy, int bus_width) { phy->attrs.bus_width = bus_width; } + +static inline void phy_get_attrs(struct phy *phy, struct phy_attrs *attrs) +{ + mutex_lock(&phy->mutex); + memcpy(attrs, &phy->attrs, sizeof(struct phy_attrs)); + mutex_unlock(&phy->mutex); +} + +static inline void phy_set_attrs(struct phy *phy, struct phy_attrs attrs) +{ + mutex_lock(&phy->mutex); + memcpy(&phy->attrs, &attrs, sizeof(struct phy_attrs)); + mutex_unlock(&phy->mutex); +} struct phy *phy_get(struct device *dev, const char *string); struct phy *phy_optional_get(struct device *dev, const char *string); struct phy *devm_phy_get(struct device *dev, const char *string); @@ -389,6 +405,16 @@ static inline void phy_set_bus_width(struct phy *phy, int bus_width) return; } +static inline void phy_get_attrs(struct phy *phy, struct phy_attrs *attrs) +{ + return; +} + +static inline void phy_set_attrs(struct phy *phy, struct phy_attrs attrs) +{ + return; +} + static inline struct phy *phy_get(struct device *dev, const char *string) { return ERR_PTR(-ENOSYS); -- 2.26.1
| |