Commit 0888707f authored by Michael Buesch's avatar Michael Buesch Committed by John W. Linville

b43: Add LP-PHY read/write phyops

This adds read/write phyops for the LP-PHY and LP-PHY radios.
Signed-off-by: default avatarMichael Buesch <mb@bu3sch.de>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent e63e4363
...@@ -66,19 +66,29 @@ static void b43_lpphy_op_exit(struct b43_wldev *dev) ...@@ -66,19 +66,29 @@ static void b43_lpphy_op_exit(struct b43_wldev *dev)
static u16 b43_lpphy_op_read(struct b43_wldev *dev, u16 reg) static u16 b43_lpphy_op_read(struct b43_wldev *dev, u16 reg)
{ {
//TODO b43_write16(dev, B43_MMIO_PHY_CONTROL, reg);
return 0; return b43_read16(dev, B43_MMIO_PHY_DATA);
} }
static void b43_lpphy_op_write(struct b43_wldev *dev, u16 reg, u16 value) static void b43_lpphy_op_write(struct b43_wldev *dev, u16 reg, u16 value)
{ {
//TODO b43_write16(dev, B43_MMIO_PHY_CONTROL, reg);
b43_write16(dev, B43_MMIO_PHY_DATA, value);
} }
static u16 b43_lpphy_op_radio_read(struct b43_wldev *dev, u16 reg) static u16 b43_lpphy_op_radio_read(struct b43_wldev *dev, u16 reg)
{ {
//TODO /* Register 1 is a 32-bit register. */
return 0; B43_WARN_ON(reg == 1);
/* LP-PHY needs a special bit set for read access */
if (dev->phy.rev < 2) {
if (reg != 0x4001)
reg |= 0x100;
} else
reg |= 0x200;
b43_write16(dev, B43_MMIO_RADIO_CONTROL, reg);
return b43_read16(dev, B43_MMIO_RADIO_DATA_LOW);
} }
static void b43_lpphy_op_radio_write(struct b43_wldev *dev, u16 reg, u16 value) static void b43_lpphy_op_radio_write(struct b43_wldev *dev, u16 reg, u16 value)
...@@ -86,7 +96,8 @@ static void b43_lpphy_op_radio_write(struct b43_wldev *dev, u16 reg, u16 value) ...@@ -86,7 +96,8 @@ static void b43_lpphy_op_radio_write(struct b43_wldev *dev, u16 reg, u16 value)
/* Register 1 is a 32-bit register. */ /* Register 1 is a 32-bit register. */
B43_WARN_ON(reg == 1); B43_WARN_ON(reg == 1);
//TODO b43_write16(dev, B43_MMIO_RADIO_CONTROL, reg);
b43_write16(dev, B43_MMIO_RADIO_DATA_LOW, value);
} }
static void b43_lpphy_op_software_rfkill(struct b43_wldev *dev, static void b43_lpphy_op_software_rfkill(struct b43_wldev *dev,
......
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