Skip to content

Commit 5bd36e9

Browse files
committed
refactor(hardware): unify Ethernet SPI pin lease names with target hosts
- Include `"hal/spi_types.h"` to resolve SPI host definitions. - Update `HomeKitLock::initializeETH()` to assign lease names (`SPI2_...` or `SPI3_...`) based on the active `spiHost` and the target chip's `SOC_SPI_PERIPH_NUM`. - Unify the lease identifiers so the validation layer correctly recognizes Ethernet SPI pins as relocatable SPI-family leases.
1 parent feafdce commit 5bd36e9

1 file changed

Lines changed: 10 additions & 4 deletions

File tree

‎main/HomeKitLock.cpp‎

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
#include "ReaderDataManager.hpp"
1717
#include "HK_HomeKit.h"
1818
#include "esp_mac.h"
19+
#include "hal/spi_types.h"
1920
#include "utils.hpp"
2021

2122
const char* HomeKitLock::TAG = "HomeKitBridge";
@@ -223,10 +224,15 @@ void HomeKitLock::initializeETH() {
223224
return;
224225
}
225226

226-
auto lease_sck = GPIOAllocator::instance().acquire(gpio_num_t(eth_sck), GPIO_MODE_DISABLE, "ETH_SPI_SCK");
227-
auto lease_miso = GPIOAllocator::instance().acquire(gpio_num_t(eth_miso), GPIO_MODE_DISABLE, "ETH_SPI_MISO");
228-
auto lease_mosi = GPIOAllocator::instance().acquire(gpio_num_t(eth_mosi), GPIO_MODE_DISABLE, "ETH_SPI_MOSI");
229-
227+
#if SOC_SPI_PERIPH_NUM > 2
228+
auto lease_sck = GPIOAllocator::instance().acquire(gpio_num_t(eth_sck), GPIO_MODE_DISABLE, spiHost == SPI2_HOST ? "SPI2_SCK" : spiHost == SPI3_HOST ? "SPI3_SCK" : "ETH_SCK");
229+
auto lease_miso = GPIOAllocator::instance().acquire(gpio_num_t(eth_miso), GPIO_MODE_DISABLE, spiHost == SPI2_HOST ? "SPI2_MISO" : spiHost == SPI3_HOST ? "SPI3_MISO" : "ETH_MISO");
230+
auto lease_mosi = GPIOAllocator::instance().acquire(gpio_num_t(eth_mosi), GPIO_MODE_DISABLE, spiHost == SPI2_HOST ? "SPI2_MOSI" : spiHost == SPI3_HOST ? "SPI3_MOSI" : "ETH_MOSI");
231+
#else
232+
auto lease_sck = GPIOAllocator::instance().acquire(gpio_num_t(eth_sck), GPIO_MODE_DISABLE, "SPI2_SCK");
233+
auto lease_miso = GPIOAllocator::instance().acquire(gpio_num_t(eth_miso), GPIO_MODE_DISABLE, "SPI2_MISO");
234+
auto lease_mosi = GPIOAllocator::instance().acquire(gpio_num_t(eth_mosi), GPIO_MODE_DISABLE, "SPI2_MOSI");
235+
#endif
230236
if (lease_sck.has_value() && lease_miso.has_value() && lease_mosi.has_value()) {
231237
eth_leases.push_back(std::move(lease_sck.value()));
232238
eth_leases.push_back(std::move(lease_miso.value()));

0 commit comments

Comments
 (0)