ESPHome 2026.11.0-dev
Loading...
Searching...
No Matches
tca9555.h
Go to the documentation of this file.
1#pragma once
2
7#include "esphome/core/hal.h"
8
9namespace esphome::tca9555 {
10
12 public:
13 TCA9555Component() = default;
14
16 void setup() override;
17 void pin_mode(uint8_t pin, gpio::Flags flags);
18
19 void dump_config() override;
20
21 protected:
22 // Virtual methods from GpioExpander base class — names come from base
23 bool digital_read_hw(uint8_t pin) override; // NOLINT(readability-identifier-naming)
24 bool digital_read_cache(uint8_t pin) override; // NOLINT(readability-identifier-naming)
25 void digital_write_hw(uint8_t pin, bool value) override; // NOLINT(readability-identifier-naming)
26
28 uint16_t mode_mask_{0x00};
30 uint16_t output_mask_{0x00};
32 uint16_t input_mask_{0x00};
33
34 bool read_gpio_modes_();
35 bool write_gpio_modes_();
36 bool read_gpio_outputs_();
37};
38
40
41} // namespace esphome::tca9555
42
Base for expanders that cache reads per loop. With an interrupt pin the cache stays valid until INT f...
This Class provides the methods to read/write bytes from/to an i2c device.
Definition i2c.h:144
bool digital_read_hw(uint8_t pin) override
Definition tca9555.cpp:69
bool digital_read_cache(uint8_t pin) override
Definition tca9555.cpp:108
uint16_t mode_mask_
Mask for the pin mode - 1 means output, 0 means input.
Definition tca9555.h:28
void setup() override
Check i2c availability and setup masks.
Definition tca9555.cpp:18
uint16_t input_mask_
The state read in digital_read_hw - 1 means HIGH, 0 means LOW.
Definition tca9555.h:32
uint16_t output_mask_
The mask to write as output state - 1 means HIGH, 0 means LOW.
Definition tca9555.h:30
void digital_write_hw(uint8_t pin, bool value) override
Definition tca9555.cpp:91
void pin_mode(uint8_t pin, gpio::Flags flags)
Definition tca9555.cpp:35
uint16_t flags
ESPHOME_EXPANDER_PIN_SUMMARY_DECL(esphome::tca9555::TCA9555Component)