5 #include "itk/regmem.hpp"
6 #include "itk/commander.hpp"
7 #include "itk/register.hpp"
8 #include "itk/field.hpp"
9 #include "itk/chip.hpp"
14 namespace itk::lpgbt {
15 using reg_t = uint8_t;
16 using fld_t = uint64_t;
19 using RegMem = itk::intf::RegMem<reg_t>;
23 virtual void write_reg(uint16_t addr) = 0;
24 virtual void write_block(uint16_t i2c_addr, uint16_t mem_addr,
const std::vector<uint8_t> &data) = 0;
25 virtual void read_block(uint16_t i2c_addr, uint16_t mem_addr, uint16_t
size) = 0;
29 using Register = itk::intf::Register<RegMem, Commander>;
30 using Field = itk::intf::Field<fld_t, Register>;
31 using Chip = itk::intf::Chip<Field>;
35 typedef const intf::Register& ref_t;
37 #include "lpgbt/reglist.hpp"
38 ref_t REG_LIST(PROC_NAME);
40 RegMap(REG_LIST(PROC_REFT)) : REG_LIST(PROC_INIT) {}
44 typedef const intf::Field& ref_t;
46 #include "lpgbt/fldlist.hpp"
47 ref_t FLD_LIST(PROC_NAME);
49 FldMap(FLD_LIST(PROC_REFT)) : FLD_LIST(PROC_INIT) {}