020-v5.17-net-mdio-add-helpers-to-extract-clause-45-regad-and-.patch 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. From c6af53f038aa32cec12e8a305ba07c7ef168f1b0 Mon Sep 17 00:00:00 2001
  2. From: "Russell King (Oracle)" <[email protected]>
  3. Date: Tue, 4 Jan 2022 12:07:00 +0000
  4. Subject: [PATCH 2/3] net: mdio: add helpers to extract clause 45 regad and
  5. devad fields
  6. Add a couple of helpers and definitions to extract the clause 45 regad
  7. and devad fields from the regnum passed into MDIO drivers.
  8. Tested-by: Daniel Golle <[email protected]>
  9. Reviewed-by: Andrew Lunn <[email protected]>
  10. Signed-off-by: Russell King (Oracle) <[email protected]>
  11. Signed-off-by: Daniel Golle <[email protected]>
  12. Signed-off-by: David S. Miller <[email protected]>
  13. ---
  14. include/linux/mdio.h | 12 ++++++++++++
  15. 1 file changed, 12 insertions(+)
  16. --- a/include/linux/mdio.h
  17. +++ b/include/linux/mdio.h
  18. @@ -7,6 +7,7 @@
  19. #define __LINUX_MDIO_H__
  20. #include <uapi/linux/mdio.h>
  21. +#include <linux/bitfield.h>
  22. #include <linux/mod_devicetable.h>
  23. /* Or MII_ADDR_C45 into regnum for read/write on mii_bus to enable the 21 bit
  24. @@ -14,6 +15,7 @@
  25. */
  26. #define MII_ADDR_C45 (1<<30)
  27. #define MII_DEVADDR_C45_SHIFT 16
  28. +#define MII_DEVADDR_C45_MASK GENMASK(20, 16)
  29. #define MII_REGADDR_C45_MASK GENMASK(15, 0)
  30. struct gpio_desc;
  31. @@ -355,6 +357,16 @@ static inline u32 mdiobus_c45_addr(int d
  32. return MII_ADDR_C45 | devad << MII_DEVADDR_C45_SHIFT | regnum;
  33. }
  34. +static inline u16 mdiobus_c45_regad(u32 regnum)
  35. +{
  36. + return FIELD_GET(MII_REGADDR_C45_MASK, regnum);
  37. +}
  38. +
  39. +static inline u16 mdiobus_c45_devad(u32 regnum)
  40. +{
  41. + return FIELD_GET(MII_DEVADDR_C45_MASK, regnum);
  42. +}
  43. +
  44. static inline int __mdiobus_c45_read(struct mii_bus *bus, int prtad, int devad,
  45. u16 regnum)
  46. {