amek proper validator

This commit is contained in:
J. Nick Koston
2026-04-05 09:36:37 -10:00
parent bfb6f2d0fd
commit c2f5b5f770
+8 -7
View File
@@ -234,21 +234,22 @@ def _is_framework_spi_polling_mode_supported() -> bool:
return False
def _validate_spi_interface(config: ConfigType) -> None:
def _validate_spi_interface(config):
"""Set default SPI interface or validate user choice against the variant."""
from esphome.components.esp32 import get_esp32_variant
if not CORE.is_esp32:
return config
from esphome.components.esp32 import VARIANT_ESP32, get_esp32_variant
from esphome.components.spi import get_hw_interface_list
has_spi3 = "spi3" in sum(get_hw_interface_list(), [])
if CONF_INTERFACE not in config:
# Match the original C++ variant-based defaults:
# Only classic ESP32 defaults to spi3; all others default to spi2
variant = get_esp32_variant()
from esphome.components.esp32 import VARIANT_ESP32
config[CONF_INTERFACE] = "spi3" if variant == VARIANT_ESP32 else "spi2"
config[CONF_INTERFACE] = (
"spi3" if get_esp32_variant() == VARIANT_ESP32 else "spi2"
)
elif config[CONF_INTERFACE] == "spi3" and not has_spi3:
raise cv.Invalid("Interface 'spi3' is not available on this variant.")
return config
def _validate(config):