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

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

commit 50daf242424e57b0b1a6334e8c9572761fc228d9
Author: Sara Souza <[email protected]>
AuthorDate: Wed Apr 28 08:36:13 2021 -0300

    esp32/esp32-c3: Adds two helpers to extract and include a field value
---
 arch/risc-v/src/esp32c3/hardware/esp32c3_soc.h | 8 ++++++++
 arch/xtensa/src/esp32/hardware/esp32_soc.h     | 8 ++++++++
 2 files changed, 16 insertions(+)

diff --git a/arch/risc-v/src/esp32c3/hardware/esp32c3_soc.h 
b/arch/risc-v/src/esp32c3/hardware/esp32c3_soc.h
index dca4a1d..efb5bf3 100644
--- a/arch/risc-v/src/esp32c3/hardware/esp32c3_soc.h
+++ b/arch/risc-v/src/esp32c3/hardware/esp32c3_soc.h
@@ -257,4 +257,12 @@
 
 #define BIT(nr)                     (1UL << (nr))
 
+/* Extract the field from the register and shift it to avoid wrong reading */
+
+#define REG_MASK(_reg, _field) (((_reg) & (_field##_M)) >> (_field##_S))
+
+/* Helper to place a value in a field */
+
+#define VALUE_TO_FIELD(_value, _field) (((_value) << (_field##_S)) & 
(_field##_M))
+
 #endif /* __ARCH_RISCV_SRC_ESP32C3_HARDWARE_ESP32C3_SOC_H */
diff --git a/arch/xtensa/src/esp32/hardware/esp32_soc.h 
b/arch/xtensa/src/esp32/hardware/esp32_soc.h
index 2d2b037..ada46e8 100644
--- a/arch/xtensa/src/esp32/hardware/esp32_soc.h
+++ b/arch/xtensa/src/esp32/hardware/esp32_soc.h
@@ -183,6 +183,14 @@
 
 #define GET_PERI_REG_BITS2(reg, mask,shift)      
((READ_PERI_REG(reg)>>(shift))&(mask))
 
+/* Extract the field from the register and shift it to avoid wrong reading */
+
+#define REG_MASK(_reg, _field) (((_reg) & (_field##_M)) >> (_field##_S))
+
+/* Helper to place a value in a field */
+
+#define VALUE_TO_FIELD(_value, _field) (((_value) << (_field##_S)) & 
(_field##_M))
+
 /* Periheral Clock */
 
 #define APB_CLK_FREQ_ROM                        26 * 1000000

Reply via email to