ESPHome 2025.12.0-dev
Loading...
Searching...
No Matches
i2c_bus_zephyr.h
Go to the documentation of this file.
1#pragma once
2
3#ifdef USE_ZEPHYR
4
5#include "i2c_bus.h"
7
8struct device;
9
10namespace esphome::i2c {
11
12class ZephyrI2CBus : public InternalI2CBus, public Component {
13 public:
14 explicit ZephyrI2CBus(const device *i2c_dev) : i2c_dev_(i2c_dev) {}
15 void setup() override;
16 void dump_config() override;
17 ErrorCode write_readv(uint8_t address, const uint8_t *write_buffer, size_t write_count, uint8_t *read_buffer,
18 size_t read_count) override;
19 float get_setup_priority() const override { return setup_priority::BUS; }
20
21 void set_scan(bool scan) { scan_ = scan; }
22 void set_sda_pin(uint8_t sda_pin) { this->sda_pin_ = sda_pin; }
23 void set_scl_pin(uint8_t scl_pin) { this->scl_pin_ = scl_pin; }
24 void set_frequency(uint32_t frequency);
25
26 int get_port() const override { return 0; }
27
28 protected:
29 const device *i2c_dev_;
31 uint8_t sda_pin_{};
32 uint8_t scl_pin_{};
33 uint32_t dev_config_{};
34};
35
36} // namespace esphome::i2c
37
38#endif
uint8_t address
Definition bl0906.h:4
uint16_le_t frequency
Definition bl0942.h:6
bool scan_
Should we scan ? Can be set in the yaml.
Definition i2c_bus.h:136
float get_setup_priority() const override
int get_port() const override
void set_scl_pin(uint8_t scl_pin)
void set_frequency(uint32_t frequency)
void set_sda_pin(uint8_t sda_pin)
ErrorCode write_readv(uint8_t address, const uint8_t *write_buffer, size_t write_count, uint8_t *read_buffer, size_t read_count) override
ZephyrI2CBus(const device *i2c_dev)
ErrorCode
Error codes returned by I2CBus and I2CDevice methods.
Definition i2c_bus.h:31
const float BUS
For communication buses like i2c/spi.
Definition component.cpp:56