ESPHome 2026.11.0-dev
Loading...
Searching...
No Matches
pca6416a.h
Go to the documentation of this file.
1#pragma once
2
4#include "esphome/core/hal.h"
8
9namespace esphome::pca6416a {
10
12 public:
13 PCA6416AComponent() = default;
14
16 void setup() override;
18 void pin_mode(uint8_t pin, gpio::Flags flags);
19
20 void dump_config() override;
21
22 protected:
23 // Virtual methods from CachedGpioExpander
24 bool digital_read_hw(uint8_t pin) override;
25 bool digital_read_cache(uint8_t pin) override;
26 void digital_write_hw(uint8_t pin, bool value) override;
27
28 bool read_register_(uint8_t reg, uint8_t *value);
29 bool write_register_(uint8_t reg, uint8_t value);
30 void update_register_(uint8_t pin, bool pin_value, uint8_t reg_addr);
31
33 uint8_t output_0_{0x00};
34 uint8_t output_1_{0x00};
36 uint16_t input_mask_{0x00};
40 bool has_pullup_{false};
41};
42
44
45} // namespace esphome::pca6416a
46
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
I2CRegister reg(uint8_t a_register)
calls the I2CRegister constructor
Definition i2c.h:164
void digital_write_hw(uint8_t pin, bool value) override
Definition pca6416a.cpp:84
bool write_register_(uint8_t reg, uint8_t value)
Definition pca6416a.cpp:128
bool read_register_(uint8_t reg, uint8_t *value)
Definition pca6416a.cpp:114
esphome::i2c::ErrorCode last_error_
Storage for last I2C error seen.
Definition pca6416a.h:38
void update_register_(uint8_t pin, bool pin_value, uint8_t reg_addr)
Definition pca6416a.cpp:142
uint16_t input_mask_
Cache for input values (16-bit combined for both banks)
Definition pca6416a.h:36
bool has_pullup_
Only the PCAL6416A has pull-up resistors.
Definition pca6416a.h:40
void pin_mode(uint8_t pin, gpio::Flags flags)
Helper function to set the pin mode of a pin.
Definition pca6416a.cpp:89
void setup() override
Check i2c availability and setup masks.
Definition pca6416a.cpp:26
bool digital_read_hw(uint8_t pin) override
Definition pca6416a.cpp:66
bool digital_read_cache(uint8_t pin) override
Definition pca6416a.cpp:82
uint8_t output_0_
The mask to write as output state - 1 means HIGH, 0 means LOW.
Definition pca6416a.h:33
uint16_t flags
ErrorCode
Error codes returned by I2CBus and I2CDevice methods.
Definition i2c_bus.h:13
ESPHOME_EXPANDER_PIN_SUMMARY_DECL(esphome::pca6416a::PCA6416AComponent)