Hardware Reset API.
More...
|
enum | reset_num_rp2040 {
RESET_ADC = 0
, RESET_BUSCTRL = 1
, RESET_DMA = 2
, RESET_I2C0 = 3
,
RESET_I2C1 = 4
, RESET_IO_BANK0 = 5
, RESET_IO_QSPI = 6
, RESET_JTAG = 7
,
RESET_PADS_BANK0 = 8
, RESET_PADS_QSPI = 9
, RESET_PIO0 = 10
, RESET_PIO1 = 11
,
RESET_PLL_SYS = 12
, RESET_PLL_USB = 13
, RESET_PWM = 14
, RESET_RTC = 15
,
RESET_SPI0 = 16
, RESET_SPI1 = 17
, RESET_SYSCFG = 18
, RESET_SYSINFO = 19
,
RESET_TBMAN = 20
, RESET_TIMER = 21
, RESET_UART0 = 22
, RESET_UART1 = 23
,
RESET_USBCTRL = 24
, RESET_COUNT
} |
| Resettable component numbers on RP2040 (used as typedef reset_num_t) More...
|
|
enum | reset_num_rp2350 {
RESET_ADC = 0
, RESET_BUSCTRL = 1
, RESET_DMA = 2
, RESET_HSTX = 3
,
RESET_I2C0 = 4
, RESET_I2C1 = 5
, RESET_IO_BANK0 = 6
, RESET_IO_QSPI = 7
,
RESET_JTAG = 8
, RESET_PADS_BANK0 = 9
, RESET_PADS_QSPI = 10
, RESET_PIO0 = 11
,
RESET_PIO1 = 12
, RESET_PIO2 = 13
, RESET_PLL_SYS = 14
, RESET_PLL_USB = 15
,
RESET_PWM = 16
, RESET_SHA256 = 17
, RESET_SPI0 = 18
, RESET_SPI1 = 19
,
RESET_SYSCFG = 20
, RESET_SYSINFO = 21
, RESET_TBMAN = 22
, RESET_TIMER0 = 23
,
RESET_TIMER1 = 24
, RESET_TRNG = 25
, RESET_UART0 = 26
, RESET_UART1 = 27
,
RESET_USBCTRL = 28
, RESET_COUNT
} |
| Resettable component numbers on RP2350 (used as typedef reset_num_t) More...
|
|
Hardware Reset API.
The reset controller allows software control of the resets to all of the peripherals that are not critical to boot the processor in the RP-series microcontroller.
reset_bitmask
Multiple blocks are referred to using a bitmask as follows:
Block to reset | Bit |
USB | 24 |
UART 1 | 23 |
UART 0 | 22 |
Timer | 21 |
TB Manager | 20 |
SysInfo | 19 |
System Config | 18 |
SPI 1 | 17 |
SPI 0 | 16 |
RTC | 15 |
PWM | 14 |
PLL USB | 13 |
PLL System | 12 |
PIO 1 | 11 |
PIO 0 | 10 |
Pads - QSPI | 9 |
Pads - bank 0 | 8 |
JTAG | 7 |
IO Bank 1 | 6 |
IO Bank 0 | 5 |
I2C 1 | 4 |
I2C 0 | 3 |
DMA | 2 |
Bus Control | 1 |
ADC 0 | 0 |
Example
int main() {
printf("Hello, reset!\n");
reset_block(RESETS_RESET_PWM_BITS);
unreset_block_wait(RESETS_RESET_PWM_BITS);
reset_block(RESETS_RESET_PWM_BITS | RESETS_RESET_RTC_BITS);
unreset_block_wait(RESETS_RESET_PWM_BITS | RESETS_RESET_RTC_BITS);
return 0;
}
bool stdio_init_all(void)
Initialize all of the present standard stdio types that are linked into the binary.
Definition: stdio.c:200
◆ reset_num_rp2040
Resettable component numbers on RP2040 (used as typedef reset_num_t)
Enumerator |
---|
RESET_ADC | Select ADC to be reset.
|
RESET_BUSCTRL | Select BUSCTRL to be reset.
|
RESET_DMA | Select DMA to be reset.
|
RESET_I2C0 | Select I2C0 to be reset.
|
RESET_I2C1 | Select I2C1 to be reset.
|
RESET_IO_BANK0 | Select IO_BANK0 to be reset.
|
RESET_IO_QSPI | Select IO_QSPI to be reset.
|
RESET_JTAG | Select JTAG to be reset.
|
RESET_PADS_BANK0 | Select PADS_BANK0 to be reset.
|
RESET_PADS_QSPI | Select PADS_QSPI to be reset.
|
RESET_PIO0 | Select PIO0 to be reset.
|
RESET_PIO1 | Select PIO1 to be reset.
|
RESET_PLL_SYS | Select PLL_SYS to be reset.
|
RESET_PLL_USB | Select PLL_USB to be reset.
|
RESET_PWM | Select PWM to be reset.
|
RESET_RTC | Select RTC to be reset.
|
RESET_SPI0 | Select SPI0 to be reset.
|
RESET_SPI1 | Select SPI1 to be reset.
|
RESET_SYSCFG | Select SYSCFG to be reset.
|
RESET_SYSINFO | Select SYSINFO to be reset.
|
RESET_TBMAN | Select TBMAN to be reset.
|
RESET_TIMER | Select TIMER to be reset.
|
RESET_UART0 | Select UART0 to be reset.
|
RESET_UART1 | Select UART1 to be reset.
|
RESET_USBCTRL | Select USBCTRL to be reset.
|
◆ reset_num_rp2350
Resettable component numbers on RP2350 (used as typedef reset_num_t)
Enumerator |
---|
RESET_ADC | Select ADC to be reset.
|
RESET_BUSCTRL | Select BUSCTRL to be reset.
|
RESET_DMA | Select DMA to be reset.
|
RESET_HSTX | Select HSTX to be reset.
|
RESET_I2C0 | Select I2C0 to be reset.
|
RESET_I2C1 | Select I2C1 to be reset.
|
RESET_IO_BANK0 | Select IO_BANK0 to be reset.
|
RESET_IO_QSPI | Select IO_QSPI to be reset.
|
RESET_JTAG | Select JTAG to be reset.
|
RESET_PADS_BANK0 | Select PADS_BANK0 to be reset.
|
RESET_PADS_QSPI | Select PADS_QSPI to be reset.
|
RESET_PIO0 | Select PIO0 to be reset.
|
RESET_PIO1 | Select PIO1 to be reset.
|
RESET_PIO2 | Select PIO2 to be reset.
|
RESET_PLL_SYS | Select PLL_SYS to be reset.
|
RESET_PLL_USB | Select PLL_USB to be reset.
|
RESET_PWM | Select PWM to be reset.
|
RESET_SHA256 | Select SHA256 to be reset.
|
RESET_SPI0 | Select SPI0 to be reset.
|
RESET_SPI1 | Select SPI1 to be reset.
|
RESET_SYSCFG | Select SYSCFG to be reset.
|
RESET_SYSINFO | Select SYSINFO to be reset.
|
RESET_TBMAN | Select TBMAN to be reset.
|
RESET_TIMER0 | Select TIMER0 to be reset.
|
RESET_TIMER1 | Select TIMER1 to be reset.
|
RESET_TRNG | Select TRNG to be reset.
|
RESET_UART0 | Select UART0 to be reset.
|
RESET_UART1 | Select UART1 to be reset.
|
RESET_USBCTRL | Select USBCTRL to be reset.
|
◆ reset_block_mask()
Reset the specified HW blocks.
- Parameters
-
◆ reset_block_num()
static void reset_block_num |
( |
uint32_t |
block_num | ) |
|
|
inlinestatic |
Reset the specified HW block.
- Parameters
-
block_num | the block number |
◆ reset_unreset_block_num_wait_blocking()
static void reset_unreset_block_num_wait_blocking |
( |
uint |
block_num | ) |
|
|
inlinestatic |
Reset the specified HW block, and then bring at back out of reset and wait for completion.
- Parameters
-
block_num | the block number |
◆ unreset_block_mask()
bring specified HW blocks out of reset
- Parameters
-
◆ unreset_block_mask_wait_blocking()
static __force_inline void unreset_block_mask_wait_blocking |
( |
uint32_t |
bits | ) |
|
|
static |
Bring specified HW blocks out of reset and wait for completion.
- Parameters
-
◆ unreset_block_num()
static void unreset_block_num |
( |
uint |
block_num | ) |
|
|
inlinestatic |
bring specified HW block out of reset
- Parameters
-
block_num | the block number |
◆ unreset_block_num_wait_blocking()
static void unreset_block_num_wait_blocking |
( |
uint |
block_num | ) |
|
|
inlinestatic |
Bring specified HW block out of reset and wait for completion.
- Parameters
-
block_num | the block number |