[multiple] Fix implicit int-to-gpio_num_t conversions for GCC 15 (#14830)

This commit is contained in:
Jonathan Swoboda
2026-03-15 14:57:52 -04:00
committed by GitHub
parent fe9f19d9ed
commit 7f418d969e
5 changed files with 28 additions and 23 deletions
+2 -1
View File
@@ -3,6 +3,7 @@
#ifdef USE_ESP32 #ifdef USE_ESP32
#include <driver/gpio.h>
#include <driver/ledc.h> #include <driver/ledc.h>
#include <cinttypes> #include <cinttypes>
#include <esp_idf_version.h> #include <esp_idf_version.h>
@@ -189,7 +190,7 @@ void LEDCOutput::setup() {
this->phase_angle_, hpoint); this->phase_angle_, hpoint);
ledc_channel_config_t chan_conf{}; ledc_channel_config_t chan_conf{};
chan_conf.gpio_num = this->pin_->get_pin(); chan_conf.gpio_num = static_cast<gpio_num_t>(this->pin_->get_pin());
chan_conf.speed_mode = speed_mode; chan_conf.speed_mode = speed_mode;
chan_conf.channel = chan_num; chan_conf.channel = chan_num;
chan_conf.intr_type = LEDC_INTR_DISABLE; chan_conf.intr_type = LEDC_INTR_DISABLE;
+9 -8
View File
@@ -4,7 +4,8 @@
#include "esphome/core/hal.h" #include "esphome/core/hal.h"
#include "esphome/core/helpers.h" #include "esphome/core/helpers.h"
#include "esphome/core/log.h" #include "esphome/core/log.h"
#include "esp_lcd_panel_rgb.h" #include <driver/gpio.h>
#include <esp_lcd_panel_rgb.h>
#include <span> #include <span>
namespace esphome { namespace esphome {
@@ -153,18 +154,18 @@ void MipiRgb::common_setup_() {
config.clk_src = LCD_CLK_SRC_PLL160M; config.clk_src = LCD_CLK_SRC_PLL160M;
size_t data_pin_count = sizeof(this->data_pins_) / sizeof(this->data_pins_[0]); size_t data_pin_count = sizeof(this->data_pins_) / sizeof(this->data_pins_[0]);
for (size_t i = 0; i != data_pin_count; i++) { for (size_t i = 0; i != data_pin_count; i++) {
config.data_gpio_nums[i] = this->data_pins_[i]->get_pin(); config.data_gpio_nums[i] = static_cast<gpio_num_t>(this->data_pins_[i]->get_pin());
} }
config.data_width = data_pin_count; config.data_width = data_pin_count;
config.disp_gpio_num = -1; config.disp_gpio_num = GPIO_NUM_NC;
config.hsync_gpio_num = this->hsync_pin_->get_pin(); config.hsync_gpio_num = static_cast<gpio_num_t>(this->hsync_pin_->get_pin());
config.vsync_gpio_num = this->vsync_pin_->get_pin(); config.vsync_gpio_num = static_cast<gpio_num_t>(this->vsync_pin_->get_pin());
if (this->de_pin_) { if (this->de_pin_) {
config.de_gpio_num = this->de_pin_->get_pin(); config.de_gpio_num = static_cast<gpio_num_t>(this->de_pin_->get_pin());
} else { } else {
config.de_gpio_num = -1; config.de_gpio_num = GPIO_NUM_NC;
} }
config.pclk_gpio_num = this->pclk_pin_->get_pin(); config.pclk_gpio_num = static_cast<gpio_num_t>(this->pclk_pin_->get_pin());
esp_err_t err = esp_lcd_new_rgb_panel(&config, &this->handle_); esp_err_t err = esp_lcd_new_rgb_panel(&config, &this->handle_);
if (err == ESP_OK) if (err == ESP_OK)
err = esp_lcd_panel_reset(this->handle_); err = esp_lcd_panel_reset(this->handle_);
@@ -2,6 +2,7 @@
#include "esphome/core/log.h" #include "esphome/core/log.h"
#ifdef HAS_PCNT #ifdef HAS_PCNT
#include <driver/gpio.h>
#include <esp_private/esp_clk.h> #include <esp_private/esp_clk.h>
#include <hal/pcnt_ll.h> #include <hal/pcnt_ll.h>
#endif #endif
@@ -76,8 +77,8 @@ bool HwPulseCounterStorage::pulse_counter_setup(InternalGPIOPin *pin) {
} }
pcnt_chan_config_t chan_config = { pcnt_chan_config_t chan_config = {
.edge_gpio_num = this->pin->get_pin(), .edge_gpio_num = static_cast<gpio_num_t>(this->pin->get_pin()),
.level_gpio_num = -1, .level_gpio_num = GPIO_NUM_NC,
}; };
error = pcnt_new_channel(this->pcnt_unit, &chan_config, &this->pcnt_channel); error = pcnt_new_channel(this->pcnt_unit, &chan_config, &this->pcnt_channel);
if (error != ESP_OK) { if (error != ESP_OK) {
@@ -2,6 +2,7 @@
#include "rpi_dpi_rgb.h" #include "rpi_dpi_rgb.h"
#include "esphome/core/gpio.h" #include "esphome/core/gpio.h"
#include "esphome/core/log.h" #include "esphome/core/log.h"
#include <driver/gpio.h>
namespace esphome { namespace esphome {
namespace rpi_dpi_rgb { namespace rpi_dpi_rgb {
@@ -25,14 +26,14 @@ void RpiDpiRgb::setup() {
config.clk_src = LCD_CLK_SRC_PLL160M; config.clk_src = LCD_CLK_SRC_PLL160M;
size_t data_pin_count = sizeof(this->data_pins_) / sizeof(this->data_pins_[0]); size_t data_pin_count = sizeof(this->data_pins_) / sizeof(this->data_pins_[0]);
for (size_t i = 0; i != data_pin_count; i++) { for (size_t i = 0; i != data_pin_count; i++) {
config.data_gpio_nums[i] = this->data_pins_[i]->get_pin(); config.data_gpio_nums[i] = static_cast<gpio_num_t>(this->data_pins_[i]->get_pin());
} }
config.data_width = data_pin_count; config.data_width = data_pin_count;
config.disp_gpio_num = -1; config.disp_gpio_num = GPIO_NUM_NC;
config.hsync_gpio_num = this->hsync_pin_->get_pin(); config.hsync_gpio_num = static_cast<gpio_num_t>(this->hsync_pin_->get_pin());
config.vsync_gpio_num = this->vsync_pin_->get_pin(); config.vsync_gpio_num = static_cast<gpio_num_t>(this->vsync_pin_->get_pin());
config.de_gpio_num = this->de_pin_->get_pin(); config.de_gpio_num = static_cast<gpio_num_t>(this->de_pin_->get_pin());
config.pclk_gpio_num = this->pclk_pin_->get_pin(); config.pclk_gpio_num = static_cast<gpio_num_t>(this->pclk_pin_->get_pin());
esp_err_t err = esp_lcd_new_rgb_panel(&config, &this->handle_); esp_err_t err = esp_lcd_new_rgb_panel(&config, &this->handle_);
if (err != ESP_OK) { if (err != ESP_OK) {
ESP_LOGE(TAG, "lcd_new_rgb_panel failed: %s", esp_err_to_name(err)); ESP_LOGE(TAG, "lcd_new_rgb_panel failed: %s", esp_err_to_name(err));
+7 -6
View File
@@ -2,6 +2,7 @@
#include "st7701s.h" #include "st7701s.h"
#include "esphome/core/gpio.h" #include "esphome/core/gpio.h"
#include "esphome/core/log.h" #include "esphome/core/log.h"
#include <driver/gpio.h>
namespace esphome { namespace esphome {
namespace st7701s { namespace st7701s {
@@ -27,14 +28,14 @@ void ST7701S::setup() {
config.clk_src = LCD_CLK_SRC_PLL160M; config.clk_src = LCD_CLK_SRC_PLL160M;
size_t data_pin_count = sizeof(this->data_pins_) / sizeof(this->data_pins_[0]); size_t data_pin_count = sizeof(this->data_pins_) / sizeof(this->data_pins_[0]);
for (size_t i = 0; i != data_pin_count; i++) { for (size_t i = 0; i != data_pin_count; i++) {
config.data_gpio_nums[i] = this->data_pins_[i]->get_pin(); config.data_gpio_nums[i] = static_cast<gpio_num_t>(this->data_pins_[i]->get_pin());
} }
config.data_width = data_pin_count; config.data_width = data_pin_count;
config.disp_gpio_num = -1; config.disp_gpio_num = GPIO_NUM_NC;
config.hsync_gpio_num = this->hsync_pin_->get_pin(); config.hsync_gpio_num = static_cast<gpio_num_t>(this->hsync_pin_->get_pin());
config.vsync_gpio_num = this->vsync_pin_->get_pin(); config.vsync_gpio_num = static_cast<gpio_num_t>(this->vsync_pin_->get_pin());
config.de_gpio_num = this->de_pin_->get_pin(); config.de_gpio_num = static_cast<gpio_num_t>(this->de_pin_->get_pin());
config.pclk_gpio_num = this->pclk_pin_->get_pin(); config.pclk_gpio_num = static_cast<gpio_num_t>(this->pclk_pin_->get_pin());
esp_err_t err = esp_lcd_new_rgb_panel(&config, &this->handle_); esp_err_t err = esp_lcd_new_rgb_panel(&config, &this->handle_);
if (err != ESP_OK) { if (err != ESP_OK) {
esph_log_e(TAG, "lcd_new_rgb_panel failed: %s", esp_err_to_name(err)); esph_log_e(TAG, "lcd_new_rgb_panel failed: %s", esp_err_to_name(err));