|
|
@@ -0,0 +1,53 @@
|
|
|
+From c6af53f038aa32cec12e8a305ba07c7ef168f1b0 Mon Sep 17 00:00:00 2001
|
|
|
+From: "Russell King (Oracle)" <[email protected]>
|
|
|
+Date: Tue, 4 Jan 2022 12:07:00 +0000
|
|
|
+Subject: [PATCH 2/3] net: mdio: add helpers to extract clause 45 regad and
|
|
|
+ devad fields
|
|
|
+
|
|
|
+Add a couple of helpers and definitions to extract the clause 45 regad
|
|
|
+and devad fields from the regnum passed into MDIO drivers.
|
|
|
+
|
|
|
+Tested-by: Daniel Golle <[email protected]>
|
|
|
+Reviewed-by: Andrew Lunn <[email protected]>
|
|
|
+Signed-off-by: Russell King (Oracle) <[email protected]>
|
|
|
+Signed-off-by: Daniel Golle <[email protected]>
|
|
|
+Signed-off-by: David S. Miller <[email protected]>
|
|
|
+---
|
|
|
+ include/linux/mdio.h | 12 ++++++++++++
|
|
|
+ 1 file changed, 12 insertions(+)
|
|
|
+
|
|
|
+--- a/include/linux/mdio.h
|
|
|
++++ b/include/linux/mdio.h
|
|
|
+@@ -7,6 +7,7 @@
|
|
|
+ #define __LINUX_MDIO_H__
|
|
|
+
|
|
|
+ #include <uapi/linux/mdio.h>
|
|
|
++#include <linux/bitfield.h>
|
|
|
+ #include <linux/mod_devicetable.h>
|
|
|
+
|
|
|
+ /* Or MII_ADDR_C45 into regnum for read/write on mii_bus to enable the 21 bit
|
|
|
+@@ -14,6 +15,7 @@
|
|
|
+ */
|
|
|
+ #define MII_ADDR_C45 (1<<30)
|
|
|
+ #define MII_DEVADDR_C45_SHIFT 16
|
|
|
++#define MII_DEVADDR_C45_MASK GENMASK(20, 16)
|
|
|
+ #define MII_REGADDR_C45_MASK GENMASK(15, 0)
|
|
|
+
|
|
|
+ struct gpio_desc;
|
|
|
+@@ -342,6 +344,16 @@ static inline u32 mdiobus_c45_addr(int d
|
|
|
+ return MII_ADDR_C45 | devad << MII_DEVADDR_C45_SHIFT | regnum;
|
|
|
+ }
|
|
|
+
|
|
|
++static inline u16 mdiobus_c45_regad(u32 regnum)
|
|
|
++{
|
|
|
++ return FIELD_GET(MII_REGADDR_C45_MASK, regnum);
|
|
|
++}
|
|
|
++
|
|
|
++static inline u16 mdiobus_c45_devad(u32 regnum)
|
|
|
++{
|
|
|
++ return FIELD_GET(MII_DEVADDR_C45_MASK, regnum);
|
|
|
++}
|
|
|
++
|
|
|
+ static inline int __mdiobus_c45_read(struct mii_bus *bus, int prtad, int devad,
|
|
|
+ u16 regnum)
|
|
|
+ {
|