ESPHome 2026.5.0b1
Loading...
Searching...
No Matches
esp_ldo.h
Go to the documentation of this file.
1#pragma once
2#ifdef USE_ESP32_VARIANT_ESP32P4
5#include "esp_ldo_regulator.h"
6
7namespace esphome::esp_ldo {
8
9class EspLdo : public Component {
10 public:
11 EspLdo(int channel) : channel_(channel) {}
12
13 void setup() override;
14 void dump_config() override;
15
16 void set_adjustable(bool adjustable) { this->adjustable_ = adjustable; }
17 void set_voltage(int voltage_mv) { this->voltage_mv_ = voltage_mv; }
18 void adjust_voltage(float voltage);
19 float get_setup_priority() const override {
20 return setup_priority::BUS; // LDO setup should be done early
21 }
22
23 protected:
25 int voltage_mv_{2700};
26 bool adjustable_{false};
27 esp_ldo_channel_handle_t handle_{};
28};
29
30template<typename... Ts> class AdjustAction : public Action<Ts...> {
31 public:
32 explicit AdjustAction(EspLdo *ldo) : ldo_(ldo) {}
33
34 TEMPLATABLE_VALUE(float, voltage)
35
36 void play(const Ts &...x) override { this->ldo_->adjust_voltage(this->voltage_.value(x...)); }
37
38 protected:
40};
41
42} // namespace esphome::esp_ldo
43
44#endif // USE_ESP32_VARIANT_ESP32P4
virtual void play(const Ts &...x)=0
TEMPLATABLE_VALUE(float, voltage) void play(const Ts &...x) override
Definition esp_ldo.h:34
float get_setup_priority() const override
Definition esp_ldo.h:19
void adjust_voltage(float voltage)
Definition esp_ldo.cpp:30
void setup() override
Definition esp_ldo.cpp:9
void dump_config() override
Definition esp_ldo.cpp:22
void set_adjustable(bool adjustable)
Definition esp_ldo.h:16
EspLdo(int channel)
Definition esp_ldo.h:11
void set_voltage(int voltage_mv)
Definition esp_ldo.h:17
esp_ldo_channel_handle_t handle_
Definition esp_ldo.h:27
constexpr float BUS
For communication buses like i2c/spi.
Definition component.h:37
uint16_t x
Definition tt21100.cpp:5