From 50daf242424e57b0b1a6334e8c9572761fc228d9 Mon Sep 17 00:00:00 2001 From: Sara Souza Date: Wed, 28 Apr 2021 08:36:13 -0300 Subject: [PATCH] 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 dca4a1d80f..efb5bf32d2 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 2d2b0376ad..ada46e8af6 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