rename GPIO_DISPLAY_RESET and update GPIOs (#24742)

This commit is contained in:
s-hadinger
2026-05-13 22:42:25 +02:00
committed by GitHub
parent 4bd1e22b2e
commit 7a21f72f70
7 changed files with 152 additions and 15 deletions
+19 -1
View File
@@ -153,6 +153,9 @@ uDisplay::uDisplay(char *lp) : Renderer(800, 600) {
digitalWrite(reset, HIGH);
delay(50);
reset_pin(50, 200);
#ifdef UDSP_DEBUG
AddLog(LOG_LEVEL_DEBUG, "UDisplay: RGB/SSPI resetting device on pin %d", reset);
#endif
}
#ifdef UDSP_DEBUG
AddLog(LOG_LEVEL_DEBUG, "UDisplay: SSPI_MOSI:%d SSPI_SCLK:%d SSPI_CS:%d DSP_RESET:%d", spiController->spi_config.mosi, spiController->spi_config.clk, spiController->spi_config.dc, reset);
@@ -1161,6 +1164,18 @@ Renderer *uDisplay::Init(void) {
#endif // ESP32
if (wire) {
// Apply hardware reset pulse if a reset pin is configured
// (e.g. some OLED modules with an RST line)
if (reset >= 0) {
pinMode(reset, OUTPUT);
digitalWrite(reset, HIGH);
delay(10);
reset_pin(10, 200);
#ifdef UDSP_DEBUG
AddLog(LOG_LEVEL_DEBUG, "UDisplay: I2C resetting device on pin %d", reset);
#endif
}
// Populate remaining I2C config fields (most already parsed directly into union)
panel_config->i2c.width = gxs;
panel_config->i2c.height = gys;
@@ -1188,7 +1203,7 @@ if (interface == _UDSP_SPI) {
delay(50);
reset_pin(50, 200);
#ifdef UDSP_DEBUG
AddLog(LOG_LEVEL_DEBUG, "UDisplay: resetting device");
AddLog(LOG_LEVEL_DEBUG, "UDisplay: SPI resetting device on pin %d", reset);
#endif
}
@@ -1322,6 +1337,9 @@ if (interface == _UDSP_SPI) {
digitalWrite(reset, HIGH);
delay(50);
reset_pin(50, 200);
#ifdef UDSP_DEBUG
AddLog(LOG_LEVEL_DEBUG, "UDisplay: PAR resetting device on pin %d", reset);
#endif
}
// Populate remaining I80 config fields (most already parsed directly into union)
+52 -3
View File
@@ -15,6 +15,7 @@ const be_const_member_t lv_gpio_constants[] = {
{ "ADC_BUTTON", (int32_t) GPIO_ADC_BUTTON },
{ "ADC_BUTTON_INV", (int32_t) GPIO_ADC_BUTTON_INV },
{ "ADC_CT_POWER", (int32_t) GPIO_ADC_CT_POWER },
{ "ADC_CURRENT", (int32_t) GPIO_ADC_CURRENT },
{ "ADC_INPUT", (int32_t) GPIO_ADC_INPUT },
{ "ADC_JOY", (int32_t) GPIO_ADC_JOY },
{ "ADC_LIGHT", (int32_t) GPIO_ADC_LIGHT },
@@ -22,6 +23,7 @@ const be_const_member_t lv_gpio_constants[] = {
{ "ADC_PH", (int32_t) GPIO_ADC_PH },
{ "ADC_RANGE", (int32_t) GPIO_ADC_RANGE },
{ "ADC_TEMP", (int32_t) GPIO_ADC_TEMP },
{ "ADC_VOLTAGE", (int32_t) GPIO_ADC_VOLTAGE },
{ "ADE7880_IRQ", (int32_t) GPIO_ADE7880_IRQ },
{ "ADE7953_CS", (int32_t) GPIO_ADE7953_CS },
{ "ADE7953_IRQ", (int32_t) GPIO_ADE7953_IRQ },
@@ -31,12 +33,15 @@ const be_const_member_t lv_gpio_constants[] = {
{ "AS3935", (int32_t) GPIO_AS3935 },
{ "AS608_RX", (int32_t) GPIO_AS608_RX },
{ "AS608_TX", (int32_t) GPIO_AS608_TX },
{ "ASR650X_RX", (int32_t) GPIO_ASR650X_RX },
{ "ASR650X_TX", (int32_t) GPIO_ASR650X_TX },
{ "AZ_RXD", (int32_t) GPIO_AZ_RXD },
{ "AZ_TXD", (int32_t) GPIO_AZ_TXD },
{ "BACKLIGHT", (int32_t) GPIO_BACKLIGHT },
{ "BIOPDU_BIT", (int32_t) GPIO_BIOPDU_BIT },
{ "BIOPDU_PZEM016_RX", (int32_t) GPIO_BIOPDU_PZEM016_RX },
{ "BIOPDU_PZEM0XX_TX", (int32_t) GPIO_BIOPDU_PZEM0XX_TX },
{ "BL0906_RX", (int32_t) GPIO_BL0906_RX },
{ "BL0939_RX", (int32_t) GPIO_BL0939_RX },
{ "BL0940_RX", (int32_t) GPIO_BL0940_RX },
{ "BL0942_RX", (int32_t) GPIO_BL0942_RX },
@@ -44,14 +49,16 @@ const be_const_member_t lv_gpio_constants[] = {
{ "BL6523_TX", (int32_t) GPIO_BL6523_TX },
{ "BOILER_OT_RX", (int32_t) GPIO_BOILER_OT_RX },
{ "BOILER_OT_TX", (int32_t) GPIO_BOILER_OT_TX },
{ "BP1658CJ_CLK", (int32_t) GPIO_BP1658CJ_CLK },
{ "BP1658CJ_DAT", (int32_t) GPIO_BP1658CJ_DAT },
{ "BP5758D_CLK", (int32_t) GPIO_BP5758D_CLK },
{ "BP5758D_DAT", (int32_t) GPIO_BP5758D_DAT },
{ "BS814_CLK", (int32_t) GPIO_BS814_CLK },
{ "BS814_DAT", (int32_t) GPIO_BS814_DAT },
{ "BUZZER", (int32_t) GPIO_BUZZER },
{ "BUZZER_INV", (int32_t) GPIO_BUZZER_INV },
{ "C8_CO2_5K_TX", (int32_t) GPIO_C8_CO2_5K_TX },
{ "C8_CO2_5K_RX", (int32_t) GPIO_C8_CO2_5K_RX },
{ "C8_CO2_5K_TX", (int32_t) GPIO_C8_CO2_5K_TX },
{ "CC1101_GDO0", (int32_t) GPIO_CC1101_GDO0 },
{ "CC1101_GDO2", (int32_t) GPIO_CC1101_GDO2 },
{ "CHANGE", CHANGE },
@@ -64,6 +71,10 @@ const be_const_member_t lv_gpio_constants[] = {
{ "CSE7766_RX", (int32_t) GPIO_CSE7766_RX },
{ "CSE7766_TX", (int32_t) GPIO_CSE7766_TX },
{ "DAC", (int32_t) -1 },
{ "DALI_RX", (int32_t) GPIO_DALI_RX },
{ "DALI_RX_INV", (int32_t) GPIO_DALI_RX_INV },
{ "DALI_TX", (int32_t) GPIO_DALI_TX },
{ "DALI_TX_INV", (int32_t) GPIO_DALI_TX_INV },
{ "DCKI", (int32_t) GPIO_DCKI },
{ "DDS2382_RX", (int32_t) GPIO_DDS2382_RX },
{ "DDS2382_TX", (int32_t) GPIO_DDS2382_TX },
@@ -74,7 +85,13 @@ const be_const_member_t lv_gpio_constants[] = {
{ "DHT11_OUT", (int32_t) GPIO_DHT11_OUT },
{ "DHT22", (int32_t) GPIO_DHT22 },
{ "DI", (int32_t) GPIO_DI },
{ "DINGTIAN_CLK", (int32_t) GPIO_DINGTIAN_CLK },
{ "DINGTIAN_OE", (int32_t) GPIO_DINGTIAN_OE },
{ "DINGTIAN_PL", (int32_t) GPIO_DINGTIAN_PL },
{ "DINGTIAN_Q7", (int32_t) GPIO_DINGTIAN_Q7 },
{ "DINGTIAN_RCK", (int32_t) GPIO_DINGTIAN_RCK },
{ "DINGTIAN_SDI", (int32_t) GPIO_DINGTIAN_SDI },
{ "DISPLAY_RESET", (int32_t) GPIO_DISPLAY_RESET },
{ "DSB", (int32_t) GPIO_DSB },
{ "DSB_OUT", (int32_t) GPIO_DSB_OUT },
{ "DYP_RX", (int32_t) GPIO_DYP_RX },
@@ -89,7 +106,8 @@ const be_const_member_t lv_gpio_constants[] = {
{ "FALLING", FALLING },
{ "FLOWRATEMETER_SIGNAL", (int32_t) GPIO_FLOWRATEMETER_IN },
{ "FTC532", (int32_t) GPIO_FTC532 },
{ "GM861_TX", (int32_t) GPIO_GM861_RX },
{ "GM861_RX", (int32_t) GPIO_GM861_RX },
{ "GM861_TX", (int32_t) GPIO_GM861_TX },
{ "GPIO_INPUT", (int32_t) GPIO_INPUT },
{ "GPS_RX", (int32_t) GPIO_GPS_RX },
{ "GPS_TX", (int32_t) GPIO_GPS_TX },
@@ -110,10 +128,19 @@ const be_const_member_t lv_gpio_constants[] = {
{ "HRE_DATA", (int32_t) GPIO_HRE_DATA },
{ "HRG15_TX", (int32_t) GPIO_HRG15_TX },
{ "HRXL_RX", (int32_t) GPIO_HRXL_RX },
{ "HSDIO_CLK", (int32_t) GPIO_HSDIO_CLK },
{ "HSDIO_CMD", (int32_t) GPIO_HSDIO_CMD },
{ "HSDIO_D0", (int32_t) GPIO_HSDIO_D0 },
{ "HSDIO_D1", (int32_t) GPIO_HSDIO_D1 },
{ "HSDIO_D2", (int32_t) GPIO_HSDIO_D2 },
{ "HSDIO_D3", (int32_t) GPIO_HSDIO_D3 },
{ "HSDIO_RST", (int32_t) GPIO_HSDIO_RST },
{ "HX711_DAT", (int32_t) GPIO_HX711_DAT },
{ "HX711_SCK", (int32_t) GPIO_HX711_SCK },
{ "I2C_SCL", (int32_t) GPIO_I2C_SCL },
{ "I2C_SDA", (int32_t) GPIO_I2C_SDA },
{ "I2C_SER_RX", (int32_t) GPIO_I2C_SER_RX },
{ "I2C_SER_TX", (int32_t) GPIO_I2C_SER_TX },
{ "I2S_DAC", (int32_t) GPIO_I2S_DAC },
{ "I2S_IN_CLK", (int32_t) GPIO_I2S_BCLK_IN },
{ "I2S_IN_DATA", (int32_t) GPIO_I2S_DIN },
@@ -142,6 +169,12 @@ const be_const_member_t lv_gpio_constants[] = {
{ "KEY1_NP", (int32_t) GPIO_KEY1_NP },
{ "KEY1_PD", (int32_t) GPIO_KEY1_PD },
{ "KEY1_TC", (int32_t) GPIO_KEY1_TC },
{ "LD2402_RX", (int32_t) GPIO_LD2402_RX },
{ "LD2402_TX", (int32_t) GPIO_LD2402_TX },
{ "LD2410S_RX", (int32_t) GPIO_LD2410S_RX },
{ "LD2410S_TX", (int32_t) GPIO_LD2410S_TX },
{ "LD2410_RX", (int32_t) GPIO_LD2410_RX },
{ "LD2410_TX", (int32_t) GPIO_LD2410_TX },
{ "LE01MR_RX", (int32_t) GPIO_LE01MR_RX },
{ "LE01MR_TX", (int32_t) GPIO_LE01MR_TX },
{ "LED1", (int32_t) GPIO_LED1 },
@@ -171,6 +204,10 @@ const be_const_member_t lv_gpio_constants[] = {
{ "MAX_RMT", MAX_RMT },
{ "MBR_RX", (int32_t) GPIO_MBR_RX },
{ "MBR_TX", (int32_t) GPIO_MBR_TX },
{ "MBR_TX_ENA", (int32_t) GPIO_MBR_TX_ENA },
{ "MBS_RX_ENA", (int32_t) GPIO_MBS_RX_ENA },
{ "MCP23SXX_CS", (int32_t) GPIO_MCP23SXX_CS },
{ "MCP23XXX_INT", (int32_t) GPIO_MCP23XXX_INT },
{ "MCP2515_CS", (int32_t) GPIO_MCP2515_CS },
{ "MCP39F5_RST", (int32_t) GPIO_MCP39F5_RST },
{ "MCP39F5_RX", (int32_t) GPIO_MCP39F5_RX },
@@ -183,6 +220,8 @@ const be_const_member_t lv_gpio_constants[] = {
{ "MHZ_TXD", (int32_t) GPIO_MHZ_TXD },
{ "MIEL_HVAC_RX", (int32_t) GPIO_MIEL_HVAC_RX },
{ "MIEL_HVAC_TX", (int32_t) GPIO_MIEL_HVAC_TX },
{ "MKSKYBLU_RX", (int32_t) GPIO_MKSKYBLU_RX },
{ "MKSKYBLU_TX", (int32_t) GPIO_MKSKYBLU_TX },
{ "MP3_DFR562", (int32_t) GPIO_MP3_DFR562 },
{ "MP3_DFR562_BUSY", (int32_t) GPIO_MP3_DFR562_BUSY },
{ "MS01", (int32_t) GPIO_MS01 },
@@ -194,9 +233,10 @@ const be_const_member_t lv_gpio_constants[] = {
{ "NRG_CF1", (int32_t) GPIO_NRG_CF1 },
{ "NRG_MBS_RX", (int32_t) GPIO_NRG_MBS_RX },
{ "NRG_MBS_TX", (int32_t) GPIO_NRG_MBS_TX },
{ "NRG_MBS_TX_ENA", (int32_t) GPIO_NRG_MBS_TX_ENA },
{ "NRG_SEL", (int32_t) GPIO_NRG_SEL },
{ "NRG_SEL_INV", (int32_t) GPIO_NRG_SEL_INV },
{ "OLED_RESET", (int32_t) GPIO_OLED_RESET },
{ "OLED_RESET", (int32_t) GPIO_DISPLAY_RESET },
{ "OPEN_DRAIN", OPEN_DRAIN },
{ "OPTION_A", (int32_t) GPIO_OPTION_A },
{ "OPTION_E", (int32_t) GPIO_OPTION_E },
@@ -206,6 +246,7 @@ const be_const_member_t lv_gpio_constants[] = {
{ "OUTPUT_OPEN_DRAIN", OUTPUT_OPEN_DRAIN },
{ "P9813_CLK", (int32_t) GPIO_P9813_CLK },
{ "P9813_DAT", (int32_t) GPIO_P9813_DAT },
{ "PCF8574_INT", (int32_t) GPIO_PCF8574_INT },
{ "PIPSOLAR_RX", (int32_t) GPIO_PIPSOLAR_RX },
{ "PIPSOLAR_TX", (int32_t) GPIO_PIPSOLAR_TX },
{ "PMS5003_RX", (int32_t) GPIO_PMS5003_RX },
@@ -324,6 +365,8 @@ const be_const_member_t lv_gpio_constants[] = {
{ "TM1638CLK", (int32_t) GPIO_TM1638CLK },
{ "TM1638DIO", (int32_t) GPIO_TM1638DIO },
{ "TM1638STB", (int32_t) GPIO_TM1638STB },
{ "TM1640CLK", (int32_t) GPIO_TM1640CLK },
{ "TM1640DIN", (int32_t) GPIO_TM1640DIN },
{ "TS_IRQ", (int32_t) GPIO_TS_IRQ },
{ "TS_RST", (int32_t) GPIO_TS_RST },
{ "TS_SPI_CS", (int32_t) GPIO_TS_SPI_CS },
@@ -331,10 +374,16 @@ const be_const_member_t lv_gpio_constants[] = {
{ "TUYAMCUBR_TX", (int32_t) GPIO_TUYAMCUBR_TX },
{ "TUYA_RX", (int32_t) GPIO_TUYA_RX },
{ "TUYA_TX", (int32_t) GPIO_TUYA_TX },
{ "TWAI_BO", (int32_t) GPIO_TWAI_BO },
{ "TWAI_CLK", (int32_t) GPIO_TWAI_CLK },
{ "TWAI_RX", (int32_t) GPIO_TWAI_RX },
{ "TWAI_TX", (int32_t) GPIO_TWAI_TX },
{ "TX2X_TXD_BLACK", (int32_t) GPIO_TX2X_TXD_BLACK },
{ "TXD", (int32_t) GPIO_TXD },
{ "V9240_RX", (int32_t) GPIO_V9240_RX },
{ "V9240_TX", (int32_t) GPIO_V9240_TX },
{ "VID6608_CW", (int32_t) GPIO_VID6608_CW },
{ "VID6608_F", (int32_t) GPIO_VID6608_F },
{ "VINDRIKTNING_RX", (int32_t) GPIO_VINDRIKTNING_RX },
{ "VL53LXX_XSHUT1", (int32_t) GPIO_VL53LXX_XSHUT1 },
{ "WE517_RX", (int32_t) GPIO_WE517_RX },
+2 -2
View File
@@ -37,7 +37,7 @@ enum UserSelectablePins {
GPIO_SPI_MISO, GPIO_SPI_MOSI, GPIO_SPI_CLK, GPIO_SPI_CS, GPIO_SPI_DC, // Hardware SPI
GPIO_SSPI_MISO, GPIO_SSPI_MOSI, GPIO_SSPI_SCLK, GPIO_SSPI_CS, GPIO_SSPI_DC, // Software SPI
GPIO_BACKLIGHT, // Display backlight control
GPIO_OLED_RESET, // OLED Display Reset
GPIO_DISPLAY_RESET, // Display Reset (renamed from OLED_RESET)
GPIO_IRSEND, GPIO_IRRECV, // IR interface
GPIO_RFSEND, GPIO_RFRECV, // RF interface
GPIO_DHT11, GPIO_DHT22, GPIO_SI7021, GPIO_DHT11_OUT, // DHT11, DHT21, DHT22, AM2301, AM2302, AM2321
@@ -756,7 +756,7 @@ const uint16_t kGpioNiceList[] PROGMEM = {
AGPIO(GPIO_TM1640DIN),
#endif // USE_DISPLAY_TM1640
AGPIO(GPIO_BACKLIGHT), // Display backlight control
AGPIO(GPIO_OLED_RESET), // OLED Display Reset
AGPIO(GPIO_DISPLAY_RESET), // Display Reset (renamed from OLED_RESET)
#ifdef ESP32
AGPIO(GPIO_EPD_DATA), // Base connection EPD driver
#endif
+2 -2
View File
@@ -187,7 +187,7 @@ enum LegacyUserSelectablePins {
GPI8_ARIRFSEL, // Arilux RF Receive input selected
GPI8_BUZZER, // Buzzer
GPI8_BUZZER_INV, // Inverted buzzer
GPI8_OLED_RESET, // OLED Display Reset
GPI8_DISPLAY_RESET, // Display Reset (renamed from OLED_RESET)
GPI8_SOLAXX1_TX, // Solax Inverter tx pin
GPI8_SOLAXX1_RX, // Solax Inverter rx pin
GPI8_ZIGBEE_TX, // Zigbee Serial interface
@@ -417,7 +417,7 @@ const uint16_t kGpioConvert[] PROGMEM = {
AGPIO(GPIO_ARIRFSEL), // Arilux RF Receive input selected
AGPIO(GPIO_BUZZER), // Buzzer
AGPIO(GPIO_BUZZER_INV), // Inverted buzzer
AGPIO(GPIO_OLED_RESET), // OLED Display Reset
AGPIO(GPIO_DISPLAY_RESET), // Display Reset (renamed from OLED_RESET)
AGPIO(GPIO_SOLAXX1_TX), // Solax Inverter tx pin
AGPIO(GPIO_SOLAXX1_RX), // Solax Inverter rx pin
AGPIO(GPIO_ZIGBEE_TX), // Zigbee Serial interface
@@ -62,10 +62,10 @@ void EpdInitDriver29(void) {
// whiten display with full update, takes 3 seconds
if (TasmotaGlobal.soft_spi_enabled) {
epd->Begin(Pin(GPIO_EPAPER29_CS), Pin(GPIO_SSPI_MOSI), Pin(GPIO_SSPI_SCLK), Pin(GPIO_OLED_RESET), Pin(GPIO_SSPI_MISO));
epd->Begin(Pin(GPIO_EPAPER29_CS), Pin(GPIO_SSPI_MOSI), Pin(GPIO_SSPI_SCLK), Pin(GPIO_DISPLAY_RESET), Pin(GPIO_SSPI_MISO));
}
else if (TasmotaGlobal.spi_enabled) {
epd->Begin(Pin(GPIO_EPAPER29_CS), Pin(GPIO_SPI_MOSI), Pin(GPIO_SPI_CLK), Pin(GPIO_OLED_RESET));
epd->Begin(Pin(GPIO_EPAPER29_CS), Pin(GPIO_SPI_MOSI), Pin(GPIO_SPI_CLK), Pin(GPIO_DISPLAY_RESET));
}
renderer = epd;
@@ -173,7 +173,7 @@ Renderer *Init_uDisplay(const char *desc) {
// 22,21,-1
int8_t scl = replacepin(&cp, Pin(GPIO_I2C_SCL, wire_n));
int8_t sda = replacepin(&cp, Pin(GPIO_I2C_SDA, wire_n));
replacepin(&cp, Pin(GPIO_OLED_RESET));
replacepin(&cp, Pin(GPIO_DISPLAY_RESET));
if (wire_n == 0) {
if (!TasmotaGlobal.i2c_enabled[0]) {
@@ -225,7 +225,7 @@ Renderer *Init_uDisplay(const char *desc) {
replacepin(&cp, Pin(GPIO_SPI_MOSI, spi_type));
replacepin(&cp, Pin(GPIO_SPI_DC, spi_type));
replacepin(&cp, Pin(GPIO_BACKLIGHT));
replacepin(&cp, Pin(GPIO_OLED_RESET));
replacepin(&cp, Pin(GPIO_DISPLAY_RESET));
replacepin(&cp, Pin(GPIO_SPI_MISO, spi_type));
} else { // SPI,3 is software SPI
replacepin(&cp, Pin(GPIO_SSPI_CS));
@@ -233,7 +233,7 @@ Renderer *Init_uDisplay(const char *desc) {
replacepin(&cp, Pin(GPIO_SSPI_MOSI));
replacepin(&cp, Pin(GPIO_SSPI_DC));
replacepin(&cp, Pin(GPIO_BACKLIGHT));
replacepin(&cp, Pin(GPIO_OLED_RESET));
replacepin(&cp, Pin(GPIO_DISPLAY_RESET));
replacepin(&cp, Pin(GPIO_SSPI_MISO));
}
}
+72 -2
View File
@@ -55,7 +55,8 @@ SSPI_SCLK = GPIO_SSPI_SCLK
SSPI_CS = GPIO_SSPI_CS
SSPI_DC = GPIO_SSPI_DC
BACKLIGHT = GPIO_BACKLIGHT
OLED_RESET = GPIO_OLED_RESET
DISPLAY_RESET = GPIO_DISPLAY_RESET
OLED_RESET = GPIO_DISPLAY_RESET // backward-compat alias
IRSEND = GPIO_IRSEND
IRRECV = GPIO_IRRECV
RFSEND = GPIO_RFSEND
@@ -338,7 +339,8 @@ BIOPDU_PZEM0XX_TX = GPIO_BIOPDU_PZEM0XX_TX
BIOPDU_PZEM016_RX = GPIO_BIOPDU_PZEM016_RX
BIOPDU_BIT = GPIO_BIOPDU_BIT
LOX_O2_RX = GPIO_LOX_O2_RX
GM861_TX = GPIO_GM861_RX
GM861_TX = GPIO_GM861_TX
GM861_RX = GPIO_GM861_RX
DINGTIAN_OE = GPIO_DINGTIAN_OE
HDMI_CEC = GPIO_HDMI_CEC
HC8_RXD = GPIO_HC8_RXD
@@ -370,4 +372,72 @@ WOOLIIS_RX = GPIO_WOOLIIS_RX
C8_CO2_5K_TX = GPIO_C8_CO2_5K_TX
C8_CO2_5K_RX = GPIO_C8_CO2_5K_RX
ADC_VOLTAGE = GPIO_ADC_VOLTAGE
ADC_CURRENT = GPIO_ADC_CURRENT
ASR650X_TX = GPIO_ASR650X_TX
ASR650X_RX = GPIO_ASR650X_RX
BL0906_RX = GPIO_BL0906_RX
BP1658CJ_CLK = GPIO_BP1658CJ_CLK
BP1658CJ_DAT = GPIO_BP1658CJ_DAT
DALI_RX = GPIO_DALI_RX
DALI_TX = GPIO_DALI_TX
DALI_RX_INV = GPIO_DALI_RX_INV
DALI_TX_INV = GPIO_DALI_TX_INV
DINGTIAN_CLK = GPIO_DINGTIAN_CLK
DINGTIAN_SDI = GPIO_DINGTIAN_SDI
DINGTIAN_Q7 = GPIO_DINGTIAN_Q7
DINGTIAN_PL = GPIO_DINGTIAN_PL
DINGTIAN_RCK = GPIO_DINGTIAN_RCK
HSDIO_CMD = GPIO_HSDIO_CMD
HSDIO_CLK = GPIO_HSDIO_CLK
HSDIO_RST = GPIO_HSDIO_RST
HSDIO_D0 = GPIO_HSDIO_D0
HSDIO_D1 = GPIO_HSDIO_D1
HSDIO_D2 = GPIO_HSDIO_D2
HSDIO_D3 = GPIO_HSDIO_D3
I2C_SER_TX = GPIO_I2C_SER_TX
I2C_SER_RX = GPIO_I2C_SER_RX
LD2402_TX = GPIO_LD2402_TX
LD2402_RX = GPIO_LD2402_RX
LD2410_TX = GPIO_LD2410_TX
LD2410_RX = GPIO_LD2410_RX
LD2410S_TX = GPIO_LD2410S_TX
LD2410S_RX = GPIO_LD2410S_RX
MBR_TX_ENA = GPIO_MBR_TX_ENA
NRG_MBS_TX_ENA = GPIO_NRG_MBS_TX_ENA
MBS_RX_ENA = GPIO_MBS_RX_ENA
MCP23XXX_INT = GPIO_MCP23XXX_INT
MCP23SXX_CS = GPIO_MCP23SXX_CS
MKSKYBLU_TX = GPIO_MKSKYBLU_TX
MKSKYBLU_RX = GPIO_MKSKYBLU_RX
PCF8574_INT = GPIO_PCF8574_INT
TM1640CLK = GPIO_TM1640CLK
TM1640DIN = GPIO_TM1640DIN
TWAI_TX = GPIO_TWAI_TX
TWAI_RX = GPIO_TWAI_RX
TWAI_BO = GPIO_TWAI_BO
TWAI_CLK = GPIO_TWAI_CLK
V9240_TX = GPIO_V9240_TX
V9240_RX = GPIO_V9240_RX
VID6608_F = GPIO_VID6608_F
VID6608_CW = GPIO_VID6608_CW
SENSOR_END = GPIO_SENSOR_END