Merge pull request #155 from leon-anavi/leon/esp32c6

OneWire_direct_gpio.h: Add support for ESP32-C6
This commit is contained in:
Paul Stoffregen authored and GitHub committed 2025-06-24 09:10:19 -07:00
commit 800f26f3ee
1 file changed
+5 -5
+5 -5
View File
@@ -167,7 +167,7 @@ bool directRead(IO_REG_TYPE mask)
static inline __attribute__((always_inline)) static inline __attribute__((always_inline))
IO_REG_TYPE directRead(IO_REG_TYPE pin) IO_REG_TYPE directRead(IO_REG_TYPE pin)
{ {
#if CONFIG_IDF_TARGET_ESP32C3 #if CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6
return (GPIO.in.val >> pin) & 0x1; return (GPIO.in.val >> pin) & 0x1;
#else // plain ESP32 #else // plain ESP32
if ( pin < 32 ) if ( pin < 32 )
@@ -182,7 +182,7 @@ IO_REG_TYPE directRead(IO_REG_TYPE pin)
static inline __attribute__((always_inline)) static inline __attribute__((always_inline))
void directWriteLow(IO_REG_TYPE pin) void directWriteLow(IO_REG_TYPE pin)
{ {
#if CONFIG_IDF_TARGET_ESP32C3 #if CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6
GPIO.out_w1tc.val = ((uint32_t)1 << pin); GPIO.out_w1tc.val = ((uint32_t)1 << pin);
#else // plain ESP32 #else // plain ESP32
if ( pin < 32 ) if ( pin < 32 )
@@ -195,7 +195,7 @@ void directWriteLow(IO_REG_TYPE pin)
static inline __attribute__((always_inline)) static inline __attribute__((always_inline))
void directWriteHigh(IO_REG_TYPE pin) void directWriteHigh(IO_REG_TYPE pin)
{ {
#if CONFIG_IDF_TARGET_ESP32C3 #if CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6
GPIO.out_w1ts.val = ((uint32_t)1 << pin); GPIO.out_w1ts.val = ((uint32_t)1 << pin);
#else // plain ESP32 #else // plain ESP32
if ( pin < 32 ) if ( pin < 32 )
@@ -208,7 +208,7 @@ void directWriteHigh(IO_REG_TYPE pin)
static inline __attribute__((always_inline)) static inline __attribute__((always_inline))
void directModeInput(IO_REG_TYPE pin) void directModeInput(IO_REG_TYPE pin)
{ {
#if CONFIG_IDF_TARGET_ESP32C3 #if CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6
GPIO.enable_w1tc.val = ((uint32_t)1 << (pin)); GPIO.enable_w1tc.val = ((uint32_t)1 << (pin));
#else #else
if ( digitalPinIsValid(pin) ) if ( digitalPinIsValid(pin) )
@@ -234,7 +234,7 @@ void directModeInput(IO_REG_TYPE pin)
static inline __attribute__((always_inline)) static inline __attribute__((always_inline))
void directModeOutput(IO_REG_TYPE pin) void directModeOutput(IO_REG_TYPE pin)
{ {
#if CONFIG_IDF_TARGET_ESP32C3 #if CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6
GPIO.enable_w1ts.val = ((uint32_t)1 << (pin)); GPIO.enable_w1ts.val = ((uint32_t)1 << (pin));
#else #else
if ( digitalPinIsValid(pin) /* && pin <= 33 */ ) // Use Any In/Out pins if ( digitalPinIsValid(pin) /* && pin <= 33 */ ) // Use Any In/Out pins