Commit d4bcd99c authored by Marek Vasut's avatar Marek Vasut Committed by David S. Miller

net: dsa: microchip: Replace ad-hoc bit manipulation with regmap

Regmap provides bit manipulation functions to set/clear bits, use those
insted of reimplementing them.
Signed-off-by: default avatarMarek Vasut <marex@denx.de>
Cc: Andrew Lunn <andrew@lunn.ch>
Cc: Florian Fainelli <f.fainelli@gmail.com>
Cc: Tristram Ha <Tristram.Ha@microchip.com>
Cc: Woojung Huh <Woojung.Huh@microchip.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 255b59ad
...@@ -67,60 +67,26 @@ static const struct { ...@@ -67,60 +67,26 @@ static const struct {
static void ksz_cfg(struct ksz_device *dev, u32 addr, u8 bits, bool set) static void ksz_cfg(struct ksz_device *dev, u32 addr, u8 bits, bool set)
{ {
u8 data; regmap_update_bits(dev->regmap[0], addr, bits, set ? bits : 0);
ksz_read8(dev, addr, &data);
if (set)
data |= bits;
else
data &= ~bits;
ksz_write8(dev, addr, data);
} }
static void ksz_port_cfg(struct ksz_device *dev, int port, int offset, u8 bits, static void ksz_port_cfg(struct ksz_device *dev, int port, int offset, u8 bits,
bool set) bool set)
{ {
u32 addr; regmap_update_bits(dev->regmap[0], PORT_CTRL_ADDR(port, offset),
u8 data; bits, set ? bits : 0);
addr = PORT_CTRL_ADDR(port, offset);
ksz_read8(dev, addr, &data);
if (set)
data |= bits;
else
data &= ~bits;
ksz_write8(dev, addr, data);
} }
static void ksz9477_cfg32(struct ksz_device *dev, u32 addr, u32 bits, bool set) static void ksz9477_cfg32(struct ksz_device *dev, u32 addr, u32 bits, bool set)
{ {
u32 data; regmap_update_bits(dev->regmap[2], addr, bits, set ? bits : 0);
ksz_read32(dev, addr, &data);
if (set)
data |= bits;
else
data &= ~bits;
ksz_write32(dev, addr, data);
} }
static void ksz9477_port_cfg32(struct ksz_device *dev, int port, int offset, static void ksz9477_port_cfg32(struct ksz_device *dev, int port, int offset,
u32 bits, bool set) u32 bits, bool set)
{ {
u32 addr; regmap_update_bits(dev->regmap[2], PORT_CTRL_ADDR(port, offset),
u32 data; bits, set ? bits : 0);
addr = PORT_CTRL_ADDR(port, offset);
ksz_read32(dev, addr, &data);
if (set)
data |= bits;
else
data &= ~bits;
ksz_write32(dev, addr, data);
} }
static int ksz9477_wait_vlan_ctrl_ready(struct ksz_device *dev, u32 waiton, static int ksz9477_wait_vlan_ctrl_ready(struct ksz_device *dev, u32 waiton,
......
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