20 #define ATOMIC_XOR_WRITE 0x1000u
22 #define ATOMIC_BITMASK_SET_WRITE 0x2000u
24 #define ATOMIC_BITMASK_CLEAR_WRITE 0x3000u
36 static inline void atomic_xor(
volatile uint32_t *reg, uint32_t val) {
46 static inline void atomic_set(
volatile uint32_t *reg, uint32_t val) {
56 static inline void atomic_clear(
volatile uint32_t *reg, uint32_t val) {
67 uint32_t reset_done_value) {
69 while (~RESETS->RESET_DONE & reset_done_value) {
#define ATOMIC_XOR_WRITE
Bit to be set for an atomic XOR operation.
static void atomic_xor(volatile uint32_t *reg, uint32_t val)
Perform an atomic XOR write to a register.
#define ATOMIC_BITMASK_CLEAR_WRITE
Bits to be set for an atomic clear operation.
static void reset_component(uint32_t reset_value, uint32_t reset_done_value)
Reset a component by clearing its reset bits and waiting for the reset to complete.
#define ATOMIC_BITMASK_SET_WRITE
Bit to be set for an atomic set operation.
static void atomic_clear(volatile uint32_t *reg, uint32_t val)
Clear bits in a register atomically.
static void atomic_set(volatile uint32_t *reg, uint32_t val)
Set bits in a register atomically.