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: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
656bcd5db8
commit
8e20f591f2
@ -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
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user