Commit 8e20f591 authored by Russell King (Oracle)'s avatar Russell King (Oracle) Committed by David S. Miller

net: phy: add phy_interface_t bitmap support

Add support for a bitmap for phy interface modes, which includes:
- a macro to declare the interface bitmap
- an inline helper to zero the interface bitmap
- an inline helper to detect an empty interface bitmap
- inline helpers to do a bitwise AND and OR operations on two interface
  bitmaps
Signed-off-by: default avatarRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 656bcd5d
......@@ -155,6 +155,40 @@ typedef enum {
PHY_INTERFACE_MODE_MAX,
} phy_interface_t;
/* PHY interface mode bitmap handling */
#define DECLARE_PHY_INTERFACE_MASK(name) \
DECLARE_BITMAP(name, PHY_INTERFACE_MODE_MAX)
static inline void phy_interface_zero(unsigned long *intf)
{
bitmap_zero(intf, PHY_INTERFACE_MODE_MAX);
}
static inline bool phy_interface_empty(const unsigned long *intf)
{
return bitmap_empty(intf, PHY_INTERFACE_MODE_MAX);
}
static inline void phy_interface_and(unsigned long *dst, const unsigned long *a,
const unsigned long *b)
{
bitmap_and(dst, a, b, PHY_INTERFACE_MODE_MAX);
}
static inline void phy_interface_or(unsigned long *dst, const unsigned long *a,
const unsigned long *b)
{
bitmap_or(dst, a, b, PHY_INTERFACE_MODE_MAX);
}
static inline void phy_interface_set_rgmii(unsigned long *intf)
{
__set_bit(PHY_INTERFACE_MODE_RGMII, intf);
__set_bit(PHY_INTERFACE_MODE_RGMII_ID, intf);
__set_bit(PHY_INTERFACE_MODE_RGMII_RXID, intf);
__set_bit(PHY_INTERFACE_MODE_RGMII_TXID, intf);
}
/*
* phy_supported_speeds - return all speeds currently supported by a PHY device
*/
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment