5namespace mcp23x08_base {
7static const char *
const TAG =
"mcp23x08_base";
52 switch (interrupt_mode) {
74 uint8_t bit = pin % 8;
75 uint8_t reg_value = 0;
77 reg_value = this->
olat_;
79 this->
read_reg(reg_addr, ®_value);
83 reg_value |= 1 << bit;
85 reg_value &= ~(1 << bit);
91 this->
olat_ = reg_value;
void status_set_warning()
void enable_loop()
Enable this component's loop.
void update_reg(uint8_t pin, bool pin_value, uint8_t reg_a) override
bool digital_read_cache(uint8_t pin) override
void pin_mode(uint8_t pin, gpio::Flags flags) override
bool digital_read_hw(uint8_t pin) override
void digital_write_hw(uint8_t pin, bool value) override
uint8_t input_mask_
State read in digital_read_hw.
void pin_interrupt_mode(uint8_t pin, mcp23xxx_base::MCP23XXXInterruptMode interrupt_mode) override
virtual bool read_reg(uint8_t reg, uint8_t *value)=0
InternalGPIOPin * interrupt_pin_
virtual bool write_reg(uint8_t reg, uint8_t value)=0
Providing packet encoding functions for exchanging data with a remote host.