|
@@ -764,6 +764,55 @@ static inline int __phy_write(struct phy_device *phydev, u32 regnum, u16 val)
|
|
|
int __phy_modify(struct phy_device *phydev, u32 regnum, u16 mask, u16 set);
|
|
|
int phy_modify(struct phy_device *phydev, u32 regnum, u16 mask, u16 set);
|
|
|
|
|
|
+/**
|
|
|
+ * __phy_set_bits - Convenience function for setting bits in a PHY register
|
|
|
+ * @phydev: the phy_device struct
|
|
|
+ * @regnum: register number to write
|
|
|
+ * @val: bits to set
|
|
|
+ *
|
|
|
+ * The caller must have taken the MDIO bus lock.
|
|
|
+ */
|
|
|
+static inline int __phy_set_bits(struct phy_device *phydev, u32 regnum, u16 val)
|
|
|
+{
|
|
|
+ return __phy_modify(phydev, regnum, 0, val);
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * __phy_clear_bits - Convenience function for clearing bits in a PHY register
|
|
|
+ * @phydev: the phy_device struct
|
|
|
+ * @regnum: register number to write
|
|
|
+ * @val: bits to clear
|
|
|
+ *
|
|
|
+ * The caller must have taken the MDIO bus lock.
|
|
|
+ */
|
|
|
+static inline int __phy_clear_bits(struct phy_device *phydev, u32 regnum,
|
|
|
+ u16 val)
|
|
|
+{
|
|
|
+ return __phy_modify(phydev, regnum, val, 0);
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * phy_set_bits - Convenience function for setting bits in a PHY register
|
|
|
+ * @phydev: the phy_device struct
|
|
|
+ * @regnum: register number to write
|
|
|
+ * @val: bits to set
|
|
|
+ */
|
|
|
+static inline int phy_set_bits(struct phy_device *phydev, u32 regnum, u16 val)
|
|
|
+{
|
|
|
+ return phy_modify(phydev, regnum, 0, val);
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * phy_clear_bits - Convenience function for clearing bits in a PHY register
|
|
|
+ * @phydev: the phy_device struct
|
|
|
+ * @regnum: register number to write
|
|
|
+ * @val: bits to clear
|
|
|
+ */
|
|
|
+static inline int phy_clear_bits(struct phy_device *phydev, u32 regnum, u16 val)
|
|
|
+{
|
|
|
+ return phy_modify(phydev, regnum, val, 0);
|
|
|
+}
|
|
|
+
|
|
|
/**
|
|
|
* phy_interrupt_is_valid - Convenience function for testing a given PHY irq
|
|
|
* @phydev: the phy_device struct
|