Commit Graph
24760 Commits
Author SHA1 Message Date
J. Nick Koston 65e4c752a7 Merge remote-tracking branch 'origin/ethernet-rp2040-w5500-impl' into integration 2026-03-14 17:09:04 -10:00
J. Nick Koston 90c10103b8 [ethernet] Throttle RP2040 link polling, fix defines.h warnings
- Throttle linkStatus()/connected() polling to 500ms intervals to
  avoid excessive SPI transactions on every loop iteration
- Guard USE_ETHERNET/USE_ETHERNET_SPI in RP2040 defines.h block
  with #ifndef to prevent macro redefinition warnings
2026-03-14 17:08:42 -10:00
J. Nick Koston 9bb28b198e Merge branch 'ethernet-rp2040-w5500-impl' into integration 2026-03-14 16:59:08 -10:00
J. Nick Koston f109473707 [ethernet] Document lock-free polling rationale in RP2040 loop
Explain why linkStatus() and connected() are called without
LwIPLock — linkStatus() only reads the W5500 PHY via SPI, and
connected() does a single atomic 32-bit read of netif->ip_addr.
2026-03-14 16:57:00 -10:00
J. Nick Koston 7fd801fe45 [ethernet] Fix lwIP locking races in RP2040 ethernet
- Copy dns_getserver() values (not pointers) under LwIPLock in
  dump_connect_params_() to avoid dereferencing stale pointers
- Read netif ip_addr/netmask/gw under LwIPLock to prevent races
  with DHCP callbacks from IRQ context
- Remove duplicate connect_begin_ assignment in start_connect_()
- Remove duplicate status_set_warning() call in start_connect_()
2026-03-14 16:55:01 -10:00
J. Nick Koston 6dd463f7db Merge branch 'status-set-warning-no-arg' into integration 2026-03-14 16:48:48 -10:00
J. Nick Koston 159485f8a9 [core] Add no-arg status_set_warning() overload, use LOG_STR for static strings
Add a separate no-argument status_set_warning() that delegates to the
LogString* overload, matching the existing status_set_error() pattern.
This allows the linker to garbage-collect the const char* overload in
firmware that only uses no-arg or LOG_STR() calls.

Migrate static string literal callers to LOG_STR() so the const char*
overload can be eliminated in most builds.
2026-03-14 16:42:54 -10:00
J. Nick Koston b24ca802be Merge branch 'ethernet-rp2040-w5500-impl' into integration 2026-03-14 16:28:07 -10:00
J. Nick Koston b457a28c53 [ethernet] Use SplitDefault for clock_speed, add typing to _to_code
- Use cv.SplitDefault for clock_speed (default only on ESP32)
- Use cv.only_on_esp32 for clock_speed and polling_interval validators
- Single SPI_SCHEMA works for both ESP32 and RP2040
- Add type annotations to _to_code_esp32 and _to_code_rp2040
2026-03-14 16:27:47 -10:00
J. Nick Koston 09d4b44ab4 Merge remote-tracking branch 'origin/integration' into integration 2026-03-14 16:21:38 -10:00
J. Nick Koston 4aae82b598 Merge branch 'ethernet-rp2040-w5500-impl' into integration 2026-03-14 16:21:23 -10:00
J. Nick Koston ad0eb6aad5 [ethernet] Make clock_speed and polling_interval ESP32-only
These options are handled by arduino-pico internally on RP2040.
Use cv.only_on([Platform.ESP32]) in the schema validators instead
of rejecting them in _validate().
2026-03-14 16:21:00 -10:00
J. Nick Koston 502728edc1 Merge branch 'ethernet-rp2040-w5500-impl' into integration 2026-03-14 16:18:18 -10:00
J. Nick Koston 54d4910795 [ethernet] Address review feedback for RP2040 W5500
- Clean up eth_ on begin() failure to prevent leak and stale pointer
- Add LwIPLock around dns_getserver() in get_dns_address()
- Add LwIPLock around dns_setserver() in start_connect_()
- Add LwIPLock around dns_getserver() in dump_connect_params_()
- Reject clock_speed and polling_interval config options on RP2040
2026-03-14 16:17:57 -10:00
J. Nick Koston 162835d6da Merge remote-tracking branch 'origin/integration' into integration 2026-03-14 15:45:18 -10:00
J. Nick Koston b285f640ac Merge remote-tracking branch 'origin/ethernet-rp2040-w5500-impl' into integration 2026-03-14 15:44:18 -10:00
J. Nick Koston e20b8a9fa1 adjust 2026-03-14 15:42:58 -10:00
J. Nick Koston 3e4cb84585 adjust 2026-03-14 15:41:09 -10:00
J. Nick Koston 90a8116cc1 Merge branch 'integration' of https://github.com/esphome/esphome into integration 2026-03-14 15:25:38 -10:00
J. Nick Koston fdfbcd03af Merge remote-tracking branch 'origin/ethernet-rp2040-w5500-impl' into integration 2026-03-14 15:18:59 -10:00
J. Nick Koston c9cba2b070 [ethernet] Fix clang-tidy errors in ESP32 ethernet
- Add CONFIG_ETH_SPI_ETHERNET_W5500, CONFIG_ETH_SPI_ETHERNET_DM9051,
  CONFIG_ETH_USE_ESP32_EMAC to defines.h for clang-tidy visibility
- Fix %lu format to PRIu32 for polling_interval_
2026-03-14 15:18:02 -10:00
J. Nick Koston 0acd4ef50b Merge branch 'ethernet-rp2040-w5500' into integration 2026-03-14 14:43:24 -10:00
J. Nick Koston 4c0ab1e38a Merge branch 'ethernet-rp2040-w5500' into ethernet-rp2040-w5500-impl 2026-03-14 14:41:46 -10:00
J. Nick Koston 31a787eae1 [ethernet] Restore SPI polling version comment and add return type
Add back the useful comment about which ESP-IDF versions
support SPI Ethernet without IRQ. Add return type annotation.
2026-03-14 14:41:33 -10:00
J. Nick Koston 8ab3e8fa89 [ethernet] Add RP2040 W5500 Ethernet support
Add W5500 SPI Ethernet support for RP2040 boards using arduino-pico's
Wiznet5500lwIP class. Tested on WIZnet W5500-EVB-Pico hardware.

- Add ethernet_component_rp2040.cpp with W5500 implementation
- Add RP2040 members and setters to ethernet_component.h
- Enable RP2040 platform in SPI_SCHEMA and FILTER_SOURCE_FILES
- Add RP2040 validation, code generation, and lwIP_w5500 library
- Add W5500 RP2040 test YAML
2026-03-14 14:38:48 -10:00
J. Nick Koston 0cbd2a2009 [ethernet] Restructure for multi-platform support
Restructure the ethernet component from ESP32-only to multi-platform,
following the same pattern as the wifi component (FILTER_SOURCE_FILES
with platform-specific .cpp files).

- Split ethernet_component.cpp into common code + ethernet_component_esp32.cpp
- Remove DEPENDENCIES = ["esp32"], add platform validators per type
- Add FILTER_SOURCE_FILES to select platform-specific .cpp
- Move ESP32 imports inside platform-conditional functions
- Update ethernet_info guards from USE_ESP32 to USE_ETHERNET
- Add USE_ETHERNET_SPI/OPENETH/SPI_POLLING_SUPPORT to defines.h
- Guard ethernet_helpers.c with USE_ESP32

No behavioral changes for ESP32 — this is a pure restructuring to
enable adding non-ESP32 platform support.
2026-03-14 14:37:34 -10:00
J. Nick Koston d7f4f2b4c5 [ethernet] Restructure for multi-platform support
Restructure the ethernet component from ESP32-only to multi-platform,
following the same pattern as the wifi component (FILTER_SOURCE_FILES
with platform-specific .cpp files).

- Split ethernet_component.cpp into common code + ethernet_component_esp32.cpp
- Remove DEPENDENCIES = ["esp32"], add platform validators per type
- Add FILTER_SOURCE_FILES to select platform-specific .cpp
- Move ESP32 imports inside platform-conditional functions
- Update ethernet_info guards from USE_ESP32 to USE_ETHERNET
- Add USE_ETHERNET_SPI/OPENETH/SPI_POLLING_SUPPORT to defines.h
- Guard ethernet_helpers.c with USE_ESP32

No behavioral changes for ESP32 — this is a pure restructuring to
enable adding non-ESP32 platform support.
2026-03-14 14:37:34 -10:00
J. Nick Koston ea1b1913d9 [ethernet] Restructure for multi-platform support
Restructure the ethernet component from ESP32-only to multi-platform,
following the same pattern as the wifi component (FILTER_SOURCE_FILES
with platform-specific .cpp files).

- Split ethernet_component.cpp into common code + ethernet_component_esp32.cpp
- Remove DEPENDENCIES = ["esp32"], add platform validators per type
- Add FILTER_SOURCE_FILES to select platform-specific .cpp
- Move ESP32 imports inside platform-conditional functions
- Update ethernet_info guards from USE_ESP32 to USE_ETHERNET
- Add USE_ETHERNET_SPI/OPENETH/SPI_POLLING_SUPPORT to defines.h
- Guard ethernet_helpers.c with USE_ESP32

No behavioral changes for ESP32 — this is a pure restructuring to
enable adding non-ESP32 platform support.
2026-03-14 14:37:18 -10:00
J. Nick Koston d37f8876d7 [bthome_mithermometer][xiaomi_ble] Migrate CCM to PSA AEAD API for ESP-IDF 6.0 (#14816) 2026-03-14 13:39:07 -10:00
J. Nick Koston d7c42bc9ec [debug] Fix ESP-IDF 6.0 compatibility for wakeup cause API (#14812) 2026-03-14 13:38:51 -10:00
J. Nick Koston efc508a82b [dlms_meter] Migrate GCM to PSA AEAD API for ESP-IDF 6.0 (#14817) 2026-03-14 13:18:40 -10:00
J. Nick Koston 0edc0fd9c8 [esp32_ble_tracker] Migrate to PSA Crypto API for ESP-IDF 6.0 (#14811) 2026-03-14 13:17:56 -10:00
J. Nick Koston cc4c13930f [hmac_sha256] Migrate to PSA Crypto MAC API for ESP-IDF 6.0 (#14814) 2026-03-14 13:17:43 -10:00
J. Nick Koston 234ca7c951 [debug] Fix shared buffer between reset reason and wakeup cause (#14813) 2026-03-14 13:17:32 -10:00
J. Nick Koston 610068e538 Merge remote-tracking branch 'upstream/dev' into integration 2026-03-14 12:33:57 -10:00
J. Nick Koston 447c4669b1 [esp32] Disable SHA-512 in mbedTLS on IDF 6.0+ and add idf_version() helper (#14810) 2026-03-14 11:26:20 -10:00
J. Nick Koston 27942f1973 [helpers] Replace deprecated std::is_trivial in FixedRingBuffer (#14808) 2026-03-14 11:05:39 -10:00
J. Nick Koston 158a119a5a [sha256] Migrate to PSA Crypto API for ESP-IDF 6.0 (#14809) 2026-03-14 10:43:04 -10:00
Jonathan SwobodaandClaude Opus 4.6 b126f3af3b [ledc] Fix ESP-IDF 6.0 compatibility for peripheral reset (#14790)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-14 15:02:13 -04:00
Jonathan SwobodaandClaude Opus 4.6 d4e1e32a30 [mipi_dsi] Fix ESP-IDF 6.0 compatibility for use_dma2d flag (#14792)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-14 15:02:06 -04:00
Jonathan SwobodaandClaude Opus 4.6 271b423b22 [psram] Fix ESP-IDF 6.0 compatibility for PSRAM sdkconfig options (#14794)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-14 15:01:58 -04:00
Jonathan SwobodaandClaude Opus 4.6 417858f098 [psram] Add ESP32-C61 PSRAM support (#14795)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-14 15:01:49 -04:00
Jonathan SwobodaandClaude Opus 4.6 c52042e023 [tinyusb][usb_cdc_acm] Bump esp_tinyusb to 2.1.1 (#14796)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-14 15:01:29 -04:00
Jonathan SwobodaandClaude Opus 4.6 f12531e7e0 [esp32_camera] Bump esp32-camera to 2.1.5 (#14806)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-14 08:32:17 -10:00
ca279110c9 [output] Inline trivial FloatOutput accessors (#14786)
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-03-14 08:31:50 -10:00
J. Nick Koston f2968e0449 [api] Reduce API code size with buffer and nodelay optimizations (#14797) 2026-03-14 08:13:50 -10:00
J. Nick KostonandCopilot Autofix powered by AI 0043be6165 [core] Inline trivial EntityBase accessors (#14782)
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-03-14 08:13:01 -10:00
J. Nick Koston 0716c9f722 [core] Inline LwIPLock as no-op on platforms without lwIP core locking (#14787) 2026-03-14 08:12:04 -10:00
leccelecce fcf5637aa5 [online_image] Log download duration in milliseconds instead of seconds (#14803) 2026-03-14 09:15:54 -04:00
J. Nick Koston 6239046c70 Merge remote-tracking branch 'origin/inline-mutex-single-threaded' into integration 2026-03-13 22:26:39 -10:00