23typedef uint32_t gpio_t;
30#define GPIO_PIN(port, pin) (((port) & 0) | (pin))
33#define _u(x) ((uint32_t)(x))
35#ifdef RP2350_USE_RISCV
36# include "periph_cpu_common.h"
48#if !(defined(RP2350_USE_ARM) || defined(RP2350_USE_RISCV))
49# error "Either RP2350_USE_ARM or RP2350_USE_RISCV must be defined"
52#if (defined(RP2350_USE_ARM) && defined(RP2350_USE_RISCV))
53# error "Only one of RP2350_USE_ARM or RP2350_USE_RISCV can be defined"
61#define OSC_DEBUG_PIN_ID 15u
64#define RESET_PLL_SYS (1u << 14u)
67#define RESET_PADS_BANK0 (1u << 9u)
70#define RESET_UART0 (1u << 26u)
73#define RESET_UART1 (1u << 27u)
76#define RESET_IO_BANK0 (1u << 6u)
79#define PADS_BANK0_GPIO0_IE_BITS (1u << 6u)
82#define PADS_BANK0_ISO_BITS (1u << 8u)
100 return (uint32_t*) (PADS_BANK0_BASE + (4 * (pin + 1)));
110 return IO_BANK0_BASE + (8 * pin);
Clock configuration for the RP2350.
void rp2350_init(void)
Initialize RP2350 specific CPU peripherals that are not architecture specific.
static uint32_t calculate_gpio_io_status_register_addr(gpio_t pin)
Calculate the address of the GPIO IO status register for a given pin.
static uint32_t * calculate_gpio_pad_register_addr(gpio_t pin)
Calculate the address of the GPIO pad register for a given pin.
static uint32_t * calculate_gpio_io_ctrl_register_addr(gpio_t pin)
Calculate the address of the GPIO IO control register for a given pin.
GPIO configuration for the RP2350.
Helper functions for atomic register operations.
Adds include for missing inttype definitions.
CPU configuration for the RP2350.
UART configuration for the RP2350.
xh3irq.h interrupt controller support