12static constexpr uint8_t PIN_COUNT = 40;
14static constexpr uint8_t BANK_COUNT = PIN_COUNT / 8;
22 void setup()
override;
54 void setup()
override;
Helper class to easily give an object a parent of type T.
A class to cache the read state of a GPIO expander.
This Class provides the methods to read/write bytes from/to an i2c device.
I2CRegister reg(uint8_t a_register)
calls the I2CRegister constructor
bool write_all_banks_(uint8_t reg, uint8_t value)
uint8_t output_[BANK_COUNT]
The output state per bank - 1 means HIGH, 0 means LOW.
bool read_bank_(uint8_t bank)
static void IRAM_ATTR gpio_intr(PCA9505Component *arg)
InternalGPIOPin * interrupt_pin_
uint8_t config_[BANK_COUNT]
The pin config per bank - 1 means OUTPUT, 0 means INPUT.
void pin_mode(uint8_t pin, gpio::Flags flags)
void set_interrupt_pin(InternalGPIOPin *pin)
uint8_t mask_[BANK_COUNT]
Which pins may pull INT low - 1 means masked, matching the chip.
float get_setup_priority() const override
bool digital_read_cache(uint8_t pin) override
uint8_t input_[BANK_COUNT]
The input pin states per bank - 1 means HIGH, 0 means LOW.
void dump_config() override
bool write_bank_(uint8_t reg, uint8_t bank, uint8_t value)
void digital_write_hw(uint8_t pin, bool value) override
bool digital_read_hw(uint8_t pin) override
void digital_write(bool value) override
void pin_mode(gpio::Flags flags) override
bool digital_read() override
void set_flags(gpio::Flags flags)
size_t dump_summary(char *buffer, size_t len) const override
void set_inverted(bool inverted)
gpio::Flags get_flags() const override
void set_pin(uint8_t pin)