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