@@ -68,21 +68,11 @@ extern "C" {
6868#define ONLOW_WE 0x0C
6969#define ONHIGH_WE 0x0D
7070
71- typedef struct {
72- uint8_t reg ; /*!< GPIO register offset from DR_REG_IO_MUX_BASE */
73- int8_t rtc ; /*!< RTC GPIO number (-1 if not RTC GPIO pin) */
74- int8_t adc ; /*!< ADC Channel number (-1 if not ADC pin) */
75- int8_t touch ; /*!< Touch Channel number (-1 if not Touch pin) */
76- } esp32_gpioMux_t ;
77-
78- extern const esp32_gpioMux_t esp32_gpioMux [SOC_GPIO_PIN_COUNT ];
79- extern const int8_t esp32_adc2gpio [20 ];
80-
81- #define digitalPinIsValid (pin ) ((pin) < SOC_GPIO_PIN_COUNT && esp32_gpioMux[(pin)].reg)
82- #define digitalPinCanOutput (pin ) ((pin) < NUM_OUPUT_PINS && esp32_gpioMux[(pin)].reg)
83- #define digitalPinToRtcPin (pin ) (((pin) < SOC_GPIO_PIN_COUNT)?esp32_gpioMux[(pin)].rtc:-1)
84- #define digitalPinToAnalogChannel (pin ) (((pin) < SOC_GPIO_PIN_COUNT)?esp32_gpioMux[(pin)].adc:-1)
85- #define digitalPinToDacChannel (pin ) (((pin) == PIN_DAC1)?0:((pin) == PIN_DAC2)?1:-1)
71+ #define digitalPinIsValid (pin ) GPIO_IS_VALID_GPIO(pin)
72+ #define digitalPinCanOutput (pin ) GPIO_IS_VALID_OUTPUT_GPIO(pin)
73+
74+ #define digitalPinToRtcPin (pin ) ((RTC_GPIO_IS_VALID_GPIO(pin))?rtc_io_number_get(pin):-1)
75+ #define digitalPinToDacChannel (pin ) (((pin) == DAC_CHANNEL_1_GPIO_NUM)?0:((pin) == DAC_CHANNEL_2_GPIO_NUM)?1:-1)
8676
8777void pinMode (uint8_t pin , uint8_t mode );
8878void digitalWrite (uint8_t pin , uint8_t val );
@@ -93,6 +83,8 @@ void attachInterruptArg(uint8_t pin, void (*)(void*), void * arg, int mode);
9383void detachInterrupt (uint8_t pin );
9484
9585int8_t digitalPinToTouchChannel (uint8_t pin );
86+ int8_t digitalPinToAnalogChannel (uint8_t pin );
87+ int8_t analogChannelToDigitalPin (uint8_t channel );
9688
9789#ifdef __cplusplus
9890}
0 commit comments