ESPHome 2026.3.0-dev
Loading...
Searching...
No Matches
gpio.h
Go to the documentation of this file.
1#pragma once
2
3#ifdef USE_ZEPHYR
4#include "esphome/core/hal.h"
5#include <zephyr/device.h>
6namespace esphome::zephyr {
7
9 public:
10 ZephyrGPIOPin(const device *gpio, int gpio_size, const char *pin_name_prefix) {
11 this->gpio_ = gpio;
12 this->gpio_size_ = gpio_size;
13 this->pin_name_prefix_ = pin_name_prefix;
14 }
15 void set_pin(uint8_t pin) { this->pin_ = pin; }
16 void set_inverted(bool inverted) { this->inverted_ = inverted; }
18
19 void setup() override;
20 void pin_mode(gpio::Flags flags) override;
21 bool digital_read() override;
22 void digital_write(bool value) override;
23 size_t dump_summary(char *buffer, size_t len) const override;
24 void detach_interrupt() const override;
25 ISRInternalGPIOPin to_isr() const override;
26 uint8_t get_pin() const override { return this->pin_; }
27 bool is_inverted() const override { return this->inverted_; }
28 gpio::Flags get_flags() const override { return flags_; }
29
30 protected:
31 void attach_interrupt(void (*func)(void *), void *arg, gpio::InterruptType type) const override;
32 const device *gpio_{nullptr};
33 const char *pin_name_prefix_{nullptr};
35 uint8_t pin_;
36 uint8_t gpio_size_{};
37 bool inverted_{};
38 bool value_{false};
39};
40
41} // namespace esphome::zephyr
42
43#endif // USE_ZEPHYR
Copy of GPIOPin that is safe to use from ISRs (with no virtual functions)
Definition gpio.h:92
const device * gpio_
Definition gpio.h:32
void digital_write(bool value) override
Definition gpio.cpp:82
void attach_interrupt(void(*func)(void *), void *arg, gpio::InterruptType type) const override
Definition gpio.cpp:48
ZephyrGPIOPin(const device *gpio, int gpio_size, const char *pin_name_prefix)
Definition gpio.h:10
const char * pin_name_prefix_
Definition gpio.h:33
void setup() override
Definition gpio.cpp:52
void set_flags(gpio::Flags flags)
Definition gpio.h:17
bool digital_read() override
Definition gpio.cpp:75
bool is_inverted() const override
Definition gpio.h:27
uint8_t get_pin() const override
Definition gpio.h:26
size_t dump_summary(char *buffer, size_t len) const override
Definition gpio.cpp:71
ISRInternalGPIOPin to_isr() const override
Definition gpio.cpp:41
gpio::Flags get_flags() const override
Definition gpio.h:28
void set_pin(uint8_t pin)
Definition gpio.h:15
void detach_interrupt() const override
Definition gpio.cpp:91
void pin_mode(gpio::Flags flags) override
Definition gpio.cpp:60
void set_inverted(bool inverted)
Definition gpio.h:16
uint16_t type
uint16_t flags
std::string size_t len
Definition helpers.h:817