diff mbox series

[05/14] net: phy: Port set/clear bits from Linux

Message ID 20241024152448.102-6-paul.barker.ct@bp.renesas.com
State Superseded
Delegated to: Marek Vasut
Headers show
Series Add support for Ethernet interfaces on RZ/G2L | expand

Commit Message

Paul Barker Oct. 24, 2024, 3:24 p.m. UTC
To simply porting phy drivers from Linux to U-Boot, define
phy_set_bits() and phy_clear_bits() functions with a similar API to
those used in Linux.

The U-Boot versions of these functions include the `devad` argument
which is not present in the Linux versions, to keep them aligned with
the other phy functions in U-Boot.

Signed-off-by: Paul Barker <paul.barker.ct@bp.renesas.com>
---
 include/phy.h | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

Comments

Marek Vasut Oct. 27, 2024, 4:17 p.m. UTC | #1
On 10/24/24 5:24 PM, Paul Barker wrote:
> To simply porting phy drivers from Linux to U-Boot, define
> phy_set_bits() and phy_clear_bits() functions with a similar API to
> those used in Linux.
> 
> The U-Boot versions of these functions include the `devad` argument
> which is not present in the Linux versions, to keep them aligned with
> the other phy functions in U-Boot.
> 
> Signed-off-by: Paul Barker <paul.barker.ct@bp.renesas.com>
Reviewed-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
diff mbox series

Patch

diff --git a/include/phy.h b/include/phy.h
index 36785031eeb0..510b0a21831b 100644
--- a/include/phy.h
+++ b/include/phy.h
@@ -333,6 +333,28 @@  int gen10g_startup(struct phy_device *phydev);
 int gen10g_shutdown(struct phy_device *phydev);
 int gen10g_discover_mmds(struct phy_device *phydev);
 
+/**
+ * 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, int devad, u32 regnum, u16 val)
+{
+	return phy_modify(phydev, devad, 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, int devad, u32 regnum, u16 val)
+{
+	return phy_modify(phydev, devad, regnum, val, 0);
+}
+
 /**
  * U_BOOT_PHY_DRIVER() - Declare a new U-Boot driver
  * @__name: name of the driver