44template <
typename Derived>
47 bool Write(uint8_t addr, uint8_t reg,
const uint8_t* data,
size_t len)
noexcept {
48 return static_cast<Derived*
>(
this)->
Write(addr, reg, data, len);
51 bool Read(uint8_t addr, uint8_t reg, uint8_t* data,
size_t len)
noexcept {
52 return static_cast<Derived*
>(
this)->
Read(addr, reg, data, len);
60 static_cast<Derived*
>(
this)->
GpioSet(pin, signal);
CRTP template interface for PF1550 bus and strap pins.
Definition pf1550_i2c_interface.hpp:45
BusInterface(BusInterface &&)=delete
BusInterface(const BusInterface &)=delete
BusInterface & operator=(BusInterface &&)=delete
bool Write(uint8_t addr, uint8_t reg, const uint8_t *data, size_t len) noexcept
Definition pf1550_i2c_interface.hpp:47
void GpioSetInactive(CtrlPin pin) noexcept
Definition pf1550_i2c_interface.hpp:65
void GpioSetActive(CtrlPin pin) noexcept
Definition pf1550_i2c_interface.hpp:63
bool EnsureInitialized() noexcept
Definition pf1550_i2c_interface.hpp:55
bool Read(uint8_t addr, uint8_t reg, uint8_t *data, size_t len) noexcept
Definition pf1550_i2c_interface.hpp:51
void GpioSet(CtrlPin pin, GpioSignal signal) noexcept
Definition pf1550_i2c_interface.hpp:59
void DelayUs(uint32_t us) noexcept
Optional delay hook — override in derived bus for profile pacing.
Definition pf1550_i2c_interface.hpp:68
BusInterface & operator=(const BusInterface &)=delete
CtrlPin
Platform-wired PF1550 control signals (beyond I2C).
Definition pf1550_i2c_interface.hpp:23
GpioSignal
Definition pf1550_i2c_interface.hpp:30
PowerMode
Definition pf1550_i2c_interface.hpp:35