You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by ma...@apache.org on 2020/10/08 00:29:09 UTC

[incubator-nuttx] 02/02: arch/xtensa/src/esp/esp32/esp32_gpio.c: Fix the function's mask test condition and the functions' values.

This is an automated email from the ASF dual-hosted git repository.

masayuki pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git

commit 605a49e9af09ab0c0b4866aee5b4526f65b367ce
Author: Abdelatif Guettouche <ab...@espressif.com>
AuthorDate: Thu Oct 8 00:47:34 2020 +0100

    arch/xtensa/src/esp/esp32/esp32_gpio.c: Fix the function's mask test
    condition and the functions' values.
    
    Signed-off-by: Abdelatif Guettouche <ab...@espressif.com>
---
 arch/xtensa/src/esp32/esp32_gpio.c  |  6 +++---
 arch/xtensa/src/esp32/esp32_gpio.h  | 12 ++++++------
 arch/xtensa/src/esp32/esp32_psram.c |  8 ++++----
 3 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/arch/xtensa/src/esp32/esp32_gpio.c b/arch/xtensa/src/esp32/esp32_gpio.c
index 7bee9ef..09737c7 100644
--- a/arch/xtensa/src/esp32/esp32_gpio.c
+++ b/arch/xtensa/src/esp32/esp32_gpio.c
@@ -213,12 +213,12 @@ int esp32_configgpio(int pin, gpio_pinattr_t attr)
   func |= FUN_IE;
 
   /* Select the pad's function.  If no function was given, consider it a
-   * normal input or output (i.e. function2).
+   * normal input or output (i.e. function3).
    */
 
-  if ((attr & FUNCTION) != 0)
+  if ((attr & FUNCTION_MASK) != 0)
     {
-      func |= (uint32_t)((attr >> FUNCTION_SHIFT) << MCU_SEL_S);
+      func |= (uint32_t)(((attr >> FUNCTION_SHIFT) - 1) << MCU_SEL_S);
     }
   else
     {
diff --git a/arch/xtensa/src/esp32/esp32_gpio.h b/arch/xtensa/src/esp32/esp32_gpio.h
index 5a2440d..e9182df 100644
--- a/arch/xtensa/src/esp32/esp32_gpio.h
+++ b/arch/xtensa/src/esp32/esp32_gpio.h
@@ -60,12 +60,12 @@
 #define OPEN_DRAIN          (1 << 5)
 #define FUNCTION_SHIFT      6
 #define FUNCTION_MASK       (7 << FUNCTION_SHIFT)
-#  define FUNCTION_1        (0 << FUNCTION_SHIFT)
-#  define FUNCTION_2        (1 << FUNCTION_SHIFT)
-#  define FUNCTION_3        (2 << FUNCTION_SHIFT)
-#  define FUNCTION_4        (3 << FUNCTION_SHIFT)
-#  define FUNCTION_5        (4 << FUNCTION_SHIFT)
-#  define FUNCTION_6        (5 << FUNCTION_SHIFT)
+#  define FUNCTION_1        (1 << FUNCTION_SHIFT)
+#  define FUNCTION_2        (2 << FUNCTION_SHIFT)
+#  define FUNCTION_3        (3 << FUNCTION_SHIFT)
+#  define FUNCTION_4        (4 << FUNCTION_SHIFT)
+#  define FUNCTION_5        (5 << FUNCTION_SHIFT)
+#  define FUNCTION_6        (6 << FUNCTION_SHIFT)
 
 #define INPUT_PULLUP        (INPUT | PULLUP)
 #define INPUT_PULLDOWN      (INPUT | PULLDOWN)
diff --git a/arch/xtensa/src/esp32/esp32_psram.c b/arch/xtensa/src/esp32/esp32_psram.c
index d22c56f..1617bd3 100644
--- a/arch/xtensa/src/esp32/esp32_psram.c
+++ b/arch/xtensa/src/esp32/esp32_psram.c
@@ -1205,10 +1205,10 @@ static void IRAM_ATTR psram_gpio_config(psram_io_t *psram_io,
   esp32_configgpio(psram_io->psram_clk_io, OUTPUT | FUNCTION_3);
   esp32_configgpio(psram_io->psram_spiq_sd0_io, OUTPUT | INPUT | FUNCTION_3);
   esp32_configgpio(psram_io->psram_spid_sd1_io, OUTPUT | INPUT | FUNCTION_3);
-  esp32_configgpio(psram_io->psram_spihd_sd2_io, OUTPUT | INPUT | \
-                   FUNCTION_3);
-  esp32_configgpio(psram_io->psram_spiwp_sd3_io, OUTPUT | INPUT | \
-                   FUNCTION_3);
+  esp32_configgpio(psram_io->psram_spihd_sd2_io,
+                   OUTPUT | INPUT | FUNCTION_3);
+  esp32_configgpio(psram_io->psram_spiwp_sd3_io,
+                   OUTPUT | INPUT | FUNCTION_3);
 
 #if 0
   uint32_t flash_id = g_rom_flashchip.device_id;