33 RSTN [[deprecated(
"PCA9555/PCAL9555A have no reset pin; use ResetToDefault()")]]
71template <
typename Derived>
84 bool Write(uint8_t addr, uint8_t reg,
const uint8_t* data,
size_t len)
noexcept {
85 return static_cast<Derived*
>(
this)->
Write(addr, reg, data, len);
97 bool Read(uint8_t addr, uint8_t reg, uint8_t* data,
size_t len)
noexcept {
98 return static_cast<Derived*
>(
this)->
Read(addr, reg, data, len);
CRTP-based template interface for I2C bus operations.
Definition pcal95555_i2c_interface.hpp:72
bool GpioRead(CtrlPin pin, GpioSignal &signal) noexcept
Read the current state of a control pin.
Definition pcal95555_i2c_interface.hpp:227
bool RegisterInterruptHandler(std::function< void()> handler) noexcept
Definition pcal95555_i2c_interface.hpp:189
void GpioSetInactive(CtrlPin pin) noexcept
Deassert a control pin (set to INACTIVE).
Definition pcal95555_i2c_interface.hpp:243
I2cInterface(const I2cInterface &)=delete
~I2cInterface()=default
Protected destructor.
bool SetAddressPins(bool a0_level, bool a1_level, bool a2_level) noexcept
Definition pcal95555_i2c_interface.hpp:124
I2cInterface & operator=(const I2cInterface &)=delete
void GpioSet(CtrlPin pin, GpioSignal signal) noexcept
Set a control pin to the specified signal state.
Definition pcal95555_i2c_interface.hpp:210
I2cInterface()=default
Protected constructor to prevent direct instantiation.
I2cInterface(I2cInterface &&)=default
I2cInterface & operator=(I2cInterface &&)=default
void GpioSetActive(CtrlPin pin) noexcept
Assert a control pin (set to ACTIVE).
Definition pcal95555_i2c_interface.hpp:237
bool Read(uint8_t addr, uint8_t reg, uint8_t *data, size_t len) noexcept
Read bytes from a device register.
Definition pcal95555_i2c_interface.hpp:97
bool EnsureInitialized() noexcept
Definition pcal95555_i2c_interface.hpp:156
bool Write(uint8_t addr, uint8_t reg, const uint8_t *data, size_t len) noexcept
Write bytes to a device register.
Definition pcal95555_i2c_interface.hpp:84
Definition pcal95555.hpp:21
GpioSignal
Abstract signal level for control pins.
Definition pcal95555_i2c_interface.hpp:43
@ ACTIVE
Pin function is asserted.
@ INACTIVE
Pin function is deasserted.
CtrlPin
Identifies the hardware control pins of the PCAL95555.
Definition pcal95555_i2c_interface.hpp:31
@ RSTN
No such pin on these parts; never driven by the driver.
@ INTN
Interrupt output (active-low, open-drain, read-only)