Add LoRa to ESP8266

This commit is contained in:
Theo Arends 2024-02-29 17:12:08 +01:00
parent 021294bcd9
commit ce419cce81
2 changed files with 23 additions and 20 deletions

View File

@ -620,7 +620,6 @@ const uint16_t kGpioNiceList[] PROGMEM = {
#ifdef USE_MCP23XXX_DRV
AGPIO(GPIO_MCP23SXX_CS) + MAX_MCP23XXX,
#endif // USE_MCP23XXX_DRV
#ifdef ESP32
#ifdef USE_SPI_LORA
AGPIO(GPIO_LORA_CS),
AGPIO(GPIO_LORA_RST),
@ -632,7 +631,6 @@ const uint16_t kGpioNiceList[] PROGMEM = {
AGPIO(GPIO_LORA_DI4),
AGPIO(GPIO_LORA_DI5),
#endif // USE_SPI_LORA
#endif // ESP32
#endif // USE_SPI
#if defined(USE_SDCARD) && defined(ESP32)

View File

@ -2103,24 +2103,29 @@ void GpioInit(void)
#ifdef USE_SPI
#ifdef ESP8266
if (!TasmotaGlobal.soft_spi_enabled) {
bool valid_cs = (ValidSpiPinUsed(GPIO_SPI_CS) ||
ValidSpiPinUsed(GPIO_RC522_CS) ||
(ValidSpiPinUsed(GPIO_NRF24_CS) && ValidSpiPinUsed(GPIO_NRF24_DC)) ||
ValidSpiPinUsed(GPIO_ILI9341_CS) ||
ValidSpiPinUsed(GPIO_ILI9341_DC) || // there are also boards without cs
ValidSpiPinUsed(GPIO_EPAPER29_CS) ||
ValidSpiPinUsed(GPIO_EPAPER42_CS) ||
ValidSpiPinUsed(GPIO_ILI9488_CS) ||
ValidSpiPinUsed(GPIO_SSD1351_CS) ||
ValidSpiPinUsed(GPIO_RA8876_CS) ||
ValidSpiPinUsed(GPIO_ST7789_DC) || // ST7789 CS may be omitted so chk DC too
ValidSpiPinUsed(GPIO_ST7789_CS) ||
(ValidSpiPinUsed(GPIO_SSD1331_CS) && ValidSpiPinUsed(GPIO_SSD1331_DC)) ||
ValidSpiPinUsed(GPIO_SDCARD_CS) ||
ValidSpiPinUsed(GPIO_MCP2515_CS)
);
// If SPI_CS and/or SPI_DC is used they must be valid
TasmotaGlobal.spi_enabled = (valid_cs) ? SPI_MOSI_MISO : SPI_NONE;
uint32_t spi_mosi = (14 == Pin(GPIO_SPI_CLK)) && (13 == Pin(GPIO_SPI_MOSI)) ? SPI_MOSI : SPI_NONE;
uint32_t spi_miso = (14 == Pin(GPIO_SPI_CLK)) && (12 == Pin(GPIO_SPI_MISO)) ? SPI_MISO : SPI_NONE;
TasmotaGlobal.spi_enabled = spi_mosi + spi_miso;
if (!TasmotaGlobal.spi_enabled) {
bool valid_cs = (ValidSpiPinUsed(GPIO_SPI_CS) ||
ValidSpiPinUsed(GPIO_RC522_CS) ||
(ValidSpiPinUsed(GPIO_NRF24_CS) && ValidSpiPinUsed(GPIO_NRF24_DC)) ||
ValidSpiPinUsed(GPIO_ILI9341_CS) ||
ValidSpiPinUsed(GPIO_ILI9341_DC) || // there are also boards without cs
ValidSpiPinUsed(GPIO_EPAPER29_CS) ||
ValidSpiPinUsed(GPIO_EPAPER42_CS) ||
ValidSpiPinUsed(GPIO_ILI9488_CS) ||
ValidSpiPinUsed(GPIO_SSD1351_CS) ||
ValidSpiPinUsed(GPIO_RA8876_CS) ||
ValidSpiPinUsed(GPIO_ST7789_DC) || // ST7789 CS may be omitted so chk DC too
ValidSpiPinUsed(GPIO_ST7789_CS) ||
(ValidSpiPinUsed(GPIO_SSD1331_CS) && ValidSpiPinUsed(GPIO_SSD1331_DC)) ||
ValidSpiPinUsed(GPIO_SDCARD_CS) ||
ValidSpiPinUsed(GPIO_MCP2515_CS)
);
// If SPI_CS and/or SPI_DC is used they must be valid
TasmotaGlobal.spi_enabled = (valid_cs) ? SPI_MOSI_MISO : SPI_NONE;
}
if (TasmotaGlobal.spi_enabled) {
TasmotaGlobal.my_module.io[12] = AGPIO(GPIO_SPI_MISO);
SetPin(12, AGPIO(GPIO_SPI_MISO));