Skip to content

Commit c7cc5c9

Browse files
authoredFeb 16, 2022
GPIO refactoring (espressif#6259)
* GPIO refactoring GPIO now using ESP-IDF API on all chips. LEDC interrupt fix removed - no longer needed. Edited pins_arduino.h in variants according to changes in gpio. * Edited analog channels functions
1 parent 70b7c3a commit c7cc5c9

File tree

124 files changed

+179
-517
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

124 files changed

+179
-517
lines changed
 

‎cores/esp32/esp32-hal-gpio.c

+49-373
Large diffs are not rendered by default.

‎cores/esp32/esp32-hal-gpio.h

+7-15
Original file line numberDiff line numberDiff line change
@@ -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

8777
void pinMode(uint8_t pin, uint8_t mode);
8878
void digitalWrite(uint8_t pin, uint8_t val);
@@ -93,6 +83,8 @@ void attachInterruptArg(uint8_t pin, void (*)(void*), void * arg, int mode);
9383
void detachInterrupt(uint8_t pin);
9484

9585
int8_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

Comments
 (0)
Please sign in to comment.