zephyr/boards/raspberrypi/rpi_pico
Benjamin Cabé 5c39bb22a0 boards: Add initial support for the Raspberry Pi Pico 2
The Raspberry Pi Pico 2 is Raspberry Pi's first board fitted with their
RP2350A SoC.

This adds a minimal board definition, sufficient to build and run
`samples/hello_world` and `samples/basic/blinky` on the board. Images
can be run on the target using OpenOCD. Raspberry Pi's `picotool` can
create a UF2 binary, which ensures that errata RP2350-E10 is avoided
e.g.

```
> picotool uf2 convert build\rpi_pico2\hello_world\zephyr\zephyr.elf \
    build\rpi_pico2\hello_world\zephyr\zephyr.uf2 \
    --family rp2350-arm-s --abs-block`
```

Raspberry Pi Pico 2 is a low-cost, high-performance microcontroller
board with flexible digital interfaces. Key features include:

- RP2350A microcontroller chip designed by Raspberry Pi in the United
  Kingdom
- Dual Cortex-M33 or Hazard3 processors at up to 150MHz
- 520KB of SRAM, and 4MB of on-board flash memory
- USB 1.1 with device and host support
- Low-power sleep and dormant modes
- Drag-and-drop programming using mass storage over USB
- 26x multi-function GPIO pins including 3 that can be used for ADC
- 2x SPI, 2x I2C, 2x UART, 3x 12-bit 500ksps Analogue to Digital
  Converter (ADC), 24x controllable PWM channels
- 2x Timer with 4 alarms, 1x AON Timer
- Temperature sensor
- 3x Programmable IO (PIO) blocks, 12 state machines total for custom
  peripheral support
    - Flexible, user-programmable high-speed IO
    - Can emulate interfaces such as SD Card and VGA

The Raspberry Pi Pico 2 comes as a castellated module which allows
soldering direct to carrier boards.

Only enable timer 0 for now. Timer 1 won't work correctly until the
rpi_pico HAL has picked up the fix for `hardware_alarm_irq_handler`. See
https://github.com/raspberrypi/pico-sdk/pull/1949 .

Added some documentation for the board itself (mostly aiming to refer to
canonical sources of information rather duplicate). Add entries in the
release notes where applicable.

boards/raspberrypi/rpi_pico2/doc/img/rpi_pico2.webp is a cropped and
compressed version of https://www.raspberrypi.com/documentation/microcontrollers/images/pico-2.png
which is released under the CC-BY-SA-4.0 license. See https://github.com/raspberrypi/documentation/blob/develop/LICENSE.md

Signed-off-by: Andrew Featherstone <andrew.featherstone@gmail.com>
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2024-12-23 23:57:57 +01:00
..
doc boards: Add initial support for the Raspberry Pi Pico 2 2024-12-23 23:57:57 +01:00
support boards: Spelling and grammar fix in openocd comment 2024-04-03 12:10:06 -05:00
board.cmake boards: rp2040: Lint whitespace in board.cmake files 2024-12-05 12:29:33 +01:00
board.yml boards: Set full_name for all boards 2024-10-10 20:22:21 -04:00
Kconfig boards: rpi: Fix selection of symbol 2024-10-23 16:52:36 +02:00
Kconfig.defconfig boards: rpi_pico: WiFi configuration for Pico W 2024-12-10 16:23:36 +01:00
Kconfig.rpi_pico
rpi_pico-common.dtsi drivers: clock_control: rpi_pico: Make pinctrl-0 optional 2024-12-05 12:29:33 +01:00
rpi_pico-pinctrl.dtsi boards: Add initial support for the Raspberry Pi Pico 2 2024-12-23 23:57:57 +01:00
rpi_pico.dts boards: Add initial support for the Raspberry Pi Pico 2 2024-12-23 23:57:57 +01:00
rpi_pico.yaml boards: rpi_pico: add usbd test feature 2024-09-05 16:57:46 -04:00
rpi_pico_defconfig
rpi_pico_rp2040_w.dts pinctrl: raspberrypi: rp2350: Add support for RP2350X 2024-12-23 23:57:57 +01:00
rpi_pico_rp2040_w.yaml
rpi_pico_rp2040_w_defconfig boards: rpi_pico: WiFi configuration for Pico W 2024-12-10 16:23:36 +01:00