1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- 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;
- @@ -355,6 +357,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)
- {
|