31I2CExpanderSlave::~I2CExpanderSlave() {}
36I2CExpanderSlave::ensure_valid_bank_id(uint8_t bank_id)
const
38 if (bank_id == 0 || bank_id == 1)
41 throw SFPExpanderBankIDError(
ERS_HERE, std::to_string(bank_id));
47I2CExpanderSlave::set_inversion(uint8_t bank_id, uint32_t inversion_mask)
const
50 this->ensure_valid_bank_id(bank_id);
51 this->write_i2c(0x4 + bank_id, inversion_mask);
57I2CExpanderSlave::set_io(uint8_t bank_id, uint32_t io_mask)
const
60 this->ensure_valid_bank_id(bank_id);
61 this->write_i2c(0x6 + bank_id, io_mask);
67I2CExpanderSlave::set_outputs(uint8_t bank_id, uint32_t output_values)
const
70 this->ensure_valid_bank_id(bank_id);
71 this->write_i2c(0x2 + bank_id, output_values);
77I2CExpanderSlave::read_inputs(uint8_t bank_id)
const
80 this->ensure_valid_bank_id(bank_id);
81 return this->read_i2c(0x0 + bank_id);
87I2CExpanderSlave::read_outputs_config(uint8_t bank_id)
const {
89 this->ensure_valid_bank_id(bank_id);
90 return this->read_i2c(0x2 + bank_id);
97I2CExpanderSlave::debug()
const
100 std::vector<uint32_t> values(8);
102 for (
size_t a(0); a < 8; ++a) {
103 values[a] = this->read_i2c(a);
OpenCode I2C interface to a ipbus node.
Class to provide OpenCode I2C interface to a ipbus node.