def writeSelectedBits(self, devAddr, portAddr, regAddr, mask, data): mdio_data = self.read(devAddr, portAddr, regAddr) mdio_data &= invert(mask) mdio_data |= data # mdio data is only 16 bits in width mdio_data &= 0xffff self.write(devAddr, portAddr, regAddr, mdio_data)
def setFEC(self, enable): """ set FEC configuration """ # get back data first data = self.mdio.cfp_adaptor_read(DEVICE_1, FEC_CONTROL) # only set the configuration if it has changed value = (data | bit(3)) if enable else (data & invert(bit(3))) self.mdio.cfp_adaptor_write(DEVICE_1, FEC_CONTROL, value) time.sleep(0.5) return ""
def writeSelectedBits(self, address, mask, data): """ function to write only selected bits """ # read back value first value = self.read(address) # get all bits that are high and not in mask value &= invert(mask) # get bits that are high in mask value |= (data & mask) # write back what we want self.write(address, value)