void bcm43xx_ofdmtab_write32(struct bcm43xx_wldev *dev, u16 table, u16 offset, u32 value) { bcm43xx_phy_write(dev, BCM43xx_PHY_OTABLECTL, table + offset); bcm43xx_phy_write(dev, BCM43xx_PHY_OTABLEI, value); bcm43xx_phy_write(dev, BCM43xx_PHY_OTABLEQ, (value >> 16)); }
u16 bcm43xx_ilt_read(struct bcm43xx_private *bcm, u16 offset) { if (bcm43xx_current_phy(bcm)->type == BCM43xx_PHYTYPE_A) { bcm43xx_phy_write(bcm, BCM43xx_PHY_ILT_A_CTRL, offset); return bcm43xx_phy_read(bcm, BCM43xx_PHY_ILT_A_DATA1); } else { bcm43xx_phy_write(bcm, BCM43xx_PHY_ILT_G_CTRL, offset); return bcm43xx_phy_read(bcm, BCM43xx_PHY_ILT_G_DATA1); } }
void bcm43xx_ilt_write(struct bcm43xx_private *bcm, u16 offset, u16 val) { if (bcm43xx_current_phy(bcm)->type == BCM43xx_PHYTYPE_A) { bcm43xx_phy_write(bcm, BCM43xx_PHY_ILT_A_CTRL, offset); mmiowb(); bcm43xx_phy_write(bcm, BCM43xx_PHY_ILT_A_DATA1, val); } else { bcm43xx_phy_write(bcm, BCM43xx_PHY_ILT_G_CTRL, offset); mmiowb(); bcm43xx_phy_write(bcm, BCM43xx_PHY_ILT_G_DATA1, val); } }
u16 bcm43xx_ofdmtab_read16(struct bcm43xx_wldev *dev, u16 table, u16 offset) { assert_sizes(); bcm43xx_phy_write(dev, BCM43xx_PHY_OTABLECTL, table + offset); return bcm43xx_phy_read(dev, BCM43xx_PHY_OTABLEI); }
u32 bcm43xx_ofdmtab_read32(struct bcm43xx_wldev *dev, u16 table, u16 offset) { u32 ret; bcm43xx_phy_write(dev, BCM43xx_PHY_OTABLECTL, table + offset); ret = bcm43xx_phy_read(dev, BCM43xx_PHY_OTABLEQ); ret <<= 16; ret |= bcm43xx_phy_read(dev, BCM43xx_PHY_OTABLEI); return ret; }
void bcm43xx_gtab_write(struct bcm43xx_wldev *dev, u16 table, u16 offset, u16 value) { bcm43xx_phy_write(dev, BCM43xx_PHY_GTABCTL, table + offset); bcm43xx_phy_write(dev, BCM43xx_PHY_GTABDATA, value); }
u16 bcm43xx_gtab_read(struct bcm43xx_wldev *dev, u16 table, u16 offset) { bcm43xx_phy_write(dev, BCM43xx_PHY_GTABCTL, table + offset); return bcm43xx_phy_read(dev, BCM43xx_PHY_GTABDATA); }