22 #define ATOMIC_XOR_WRITE 0x1000u
24 #define ATOMIC_BITMASK_SET_WRITE 0x2000u
26 #define ATOMIC_BITMASK_CLEAR_WRITE 0x3000u
38 static inline void atomic_xor(
volatile uint32_t *reg, uint32_t val) {
48 static inline void atomic_set(
volatile uint32_t *reg, uint32_t val) {
58 static inline void atomic_clear(
volatile uint32_t *reg, uint32_t val) {
69 uint32_t reset_done_value) {
71 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.