7#ifndef _HARDWARE_RESETS_H
8#define _HARDWARE_RESETS_H
11#include "hardware/structs/resets.h"
98#ifndef PARAM_ASSERTIONS_ENABLED_HARDWARE_RESETS
99#ifdef PARAM_ASSERTIONS_ENABLED_RESET
100#define PARAM_ASSERTIONS_ENABLED_HARDWARE_RESETS PARAM_ASSERTIONS_ENABLED_RESET
102#define PARAM_ASSERTIONS_ENABLED_HARDWARE_RESETS 0
109static __force_inline void reset_block_reg_mask(io_rw_32 *reset, uint32_t mask) {
113static __force_inline void unreset_block_reg_mask(io_rw_32 *reset, uint32_t mask) {
117static __force_inline void unreset_block_reg_mask_wait_blocking(io_rw_32 *reset, io_ro_32 *reset_done, uint32_t mask) {
119 while (~*reset_done & mask)
131 reset_block_reg_mask(&resets_hw->reset, bits);
140 unreset_block_reg_mask(&resets_hw->reset, bits);
149 unreset_block_reg_mask_wait_blocking(&resets_hw->reset, &resets_hw->reset_done, bits);
154#ifndef HARDWARE_RESETS_ENABLE_SDK1XX_COMPATIBILITY
155#define HARDWARE_RESETS_ENABLE_SDK1XX_COMPATIBILITY 1
158#if HARDWARE_RESETS_ENABLE_SDK1XX_COMPATIBILITY
178 reset_block_reg_mask(&resets_hw->reset, 1u << block_num);
187 invalid_params_if(HARDWARE_RESETS, block_num > NUM_RESETS);
188 unreset_block_reg_mask(&resets_hw->reset, 1u << block_num);
197 invalid_params_if(HARDWARE_RESETS, block_num > NUM_RESETS);
198 unreset_block_reg_mask_wait_blocking(&resets_hw->reset, &resets_hw->reset_done, 1u << block_num);
207 invalid_params_if(HARDWARE_RESETS, block_num > NUM_RESETS);
208 reset_block_reg_mask(&resets_hw->reset, 1u << block_num);
209 unreset_block_reg_mask_wait_blocking(&resets_hw->reset, &resets_hw->reset_done, 1u << block_num);
static __force_inline void hw_set_bits(io_rw_32 *addr, uint32_t mask)
Atomically set the specified bits to 1 in a HW register.
Definition address_mapped.h:135
static __force_inline void hw_clear_bits(io_rw_32 *addr, uint32_t mask)
Atomically clear the specified bits to 0 in a HW register.
Definition address_mapped.h:145
static void unreset_block_num(uint block_num)
bring specified HW block out of reset
Definition resets.h:186
static __force_inline void unreset_block_mask(uint32_t bits)
bring specified HW blocks out of reset
Definition resets.h:139
static void reset_block_num(uint32_t block_num)
Reset the specified HW block.
Definition resets.h:177
static __force_inline void reset_block_mask(uint32_t bits)
Reset the specified HW blocks.
Definition resets.h:130
static void reset_unreset_block_num_wait_blocking(uint block_num)
Reset the specified HW block, and then bring at back out of reset and wait for completion.
Definition resets.h:206
static void unreset_block_num_wait_blocking(uint block_num)
Bring specified HW block out of reset and wait for completion.
Definition resets.h:196
static __force_inline void unreset_block_mask_wait_blocking(uint32_t bits)
Bring specified HW blocks out of reset and wait for completion.
Definition resets.h:148