Skip to content

Commit 8c0ca59

Browse files
arturo182tannewt
authored andcommitted
Add support for the RP2350 B-variant
1 parent 5376443 commit 8c0ca59

File tree

12 files changed

+78
-6
lines changed

12 files changed

+78
-6
lines changed

ports/raspberrypi/Makefile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,9 @@ CFLAGS += \
221221
-msoft-float \
222222
-mfloat-abi=soft
223223

224+
CFLAGS += \
225+
-DPICO_RP2040
226+
224227
SRC_SDK_CHIP_VARIANT := \
225228
src/rp2_common/hardware_rtc/rtc.c \
226229
src/rp2_common/pico_double/double_init_rom_rp2040.c \

ports/raspberrypi/boards/adafruit_feather_rp2350/mpconfigboard.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#define MICROPY_HW_BOARD_NAME "Adafruit Feather RP2350"
2-
#define MICROPY_HW_MCU_NAME "rp2350"
2+
#define MICROPY_HW_MCU_NAME "rp2350a"
33

44
#define MICROPY_HW_NEOPIXEL (&pin_GPIO21)
55

ports/raspberrypi/boards/adafruit_feather_rp2350/mpconfigboard.mk

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ USB_PRODUCT = "Feather RP2350"
44
USB_MANUFACTURER = "Adafruit"
55

66
CHIP_VARIANT = RP2350
7+
CHIP_PACKAGE = A
78
CHIP_FAMILY = rp2
89

910
EXTERNAL_FLASH_DEVICES = "GD25Q64C,W25Q64JVxQ"

ports/raspberrypi/boards/adafruit_metro_rp2350/mpconfigboard.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#define MICROPY_HW_BOARD_NAME "Adafruit Metro RP2350"
2-
#define MICROPY_HW_MCU_NAME "rp2350"
2+
#define MICROPY_HW_MCU_NAME "rp2350a"
33

44
#define MICROPY_HW_NEOPIXEL (&pin_GPIO14)
55

ports/raspberrypi/boards/adafruit_metro_rp2350/mpconfigboard.mk

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ USB_PRODUCT = "Metro RP2350"
44
USB_MANUFACTURER = "Adafruit"
55

66
CHIP_VARIANT = RP2350
7+
CHIP_PACKAGE = A
78
CHIP_FAMILY = rp2
89

910
EXTERNAL_FLASH_DEVICES = "W25Q128JVxQ"

ports/raspberrypi/boards/raspberry_pi_pico2/mpconfigboard.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#define MICROPY_HW_BOARD_NAME "Raspberry Pi Pico 2"
2-
#define MICROPY_HW_MCU_NAME "rp2350"
2+
#define MICROPY_HW_MCU_NAME "rp2350a"
33

44
#define MICROPY_HW_LED_STATUS (&pin_GPIO25)
55

ports/raspberrypi/boards/raspberry_pi_pico2/mpconfigboard.mk

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ USB_PRODUCT = "Pico 2"
44
USB_MANUFACTURER = "Raspberry Pi"
55

66
CHIP_VARIANT = RP2350
7+
CHIP_PACKAGE = A
78
CHIP_FAMILY = rp2
89

910
EXTERNAL_FLASH_DEVICES = "W25Q32JVxQ"

ports/raspberrypi/common-hal/analogio/AnalogIn.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,13 @@
1212

1313
#include "src/rp2_common/hardware_adc/include/hardware/adc.h"
1414

15+
#define ADC_PIN_COUNT (NUM_ADC_CHANNELS - 1)
16+
17+
#if ADC_PIN_COUNT == 4
1518
#define ADC_FIRST_PIN_NUMBER 26
16-
#define ADC_PIN_COUNT 4
19+
#else
20+
#define ADC_FIRST_PIN_NUMBER 40
21+
#endif
1722

1823
// Voltage monitor is special on Pico W, because this pin is shared between the
1924
// voltage monitor function and the wifi function. Special handling is required

ports/raspberrypi/common-hal/microcontroller/Pin.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
#include "src/rp2_common/hardware_gpio/include/hardware/gpio.h"
1313

14-
static uint32_t gpio_bank0_pin_claimed;
14+
static uint64_t gpio_bank0_pin_claimed;
1515

1616
#if CIRCUITPY_CYW43
1717
#include "bindings/cyw43/__init__.h"
@@ -25,7 +25,7 @@ void reset_pin_number_cyw(uint8_t pin_no) {
2525
}
2626
#endif
2727

28-
static uint32_t never_reset_pins;
28+
static uint64_t never_reset_pins;
2929

3030
void reset_all_pins(void) {
3131
for (size_t i = 0; i < NUM_BANK0_GPIOS; i++) {

ports/raspberrypi/common-hal/microcontroller/__init__.c

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,26 @@ const mp_rom_map_elem_t mcu_pin_global_dict_table[] = {
165165
{ MP_ROM_QSTR(MP_QSTR_GPIO27), MP_ROM_PTR(&pin_GPIO27) },
166166
{ MP_ROM_QSTR(MP_QSTR_GPIO28), MP_ROM_PTR(&pin_GPIO28) },
167167
{ MP_ROM_QSTR(MP_QSTR_GPIO29), MP_ROM_PTR(&pin_GPIO29) },
168+
#if NUM_BANK0_GPIOS == 48
169+
{ MP_ROM_QSTR(MP_QSTR_GPIO30), MP_ROM_PTR(&pin_GPIO30) },
170+
{ MP_ROM_QSTR(MP_QSTR_GPIO31), MP_ROM_PTR(&pin_GPIO31) },
171+
{ MP_ROM_QSTR(MP_QSTR_GPIO32), MP_ROM_PTR(&pin_GPIO32) },
172+
{ MP_ROM_QSTR(MP_QSTR_GPIO33), MP_ROM_PTR(&pin_GPIO33) },
173+
{ MP_ROM_QSTR(MP_QSTR_GPIO34), MP_ROM_PTR(&pin_GPIO34) },
174+
{ MP_ROM_QSTR(MP_QSTR_GPIO35), MP_ROM_PTR(&pin_GPIO35) },
175+
{ MP_ROM_QSTR(MP_QSTR_GPIO36), MP_ROM_PTR(&pin_GPIO36) },
176+
{ MP_ROM_QSTR(MP_QSTR_GPIO37), MP_ROM_PTR(&pin_GPIO37) },
177+
{ MP_ROM_QSTR(MP_QSTR_GPIO38), MP_ROM_PTR(&pin_GPIO38) },
178+
{ MP_ROM_QSTR(MP_QSTR_GPIO39), MP_ROM_PTR(&pin_GPIO39) },
179+
{ MP_ROM_QSTR(MP_QSTR_GPIO40), MP_ROM_PTR(&pin_GPIO40) },
180+
{ MP_ROM_QSTR(MP_QSTR_GPIO41), MP_ROM_PTR(&pin_GPIO41) },
181+
{ MP_ROM_QSTR(MP_QSTR_GPIO42), MP_ROM_PTR(&pin_GPIO42) },
182+
{ MP_ROM_QSTR(MP_QSTR_GPIO43), MP_ROM_PTR(&pin_GPIO43) },
183+
{ MP_ROM_QSTR(MP_QSTR_GPIO44), MP_ROM_PTR(&pin_GPIO44) },
184+
{ MP_ROM_QSTR(MP_QSTR_GPIO45), MP_ROM_PTR(&pin_GPIO45) },
185+
{ MP_ROM_QSTR(MP_QSTR_GPIO46), MP_ROM_PTR(&pin_GPIO46) },
186+
{ MP_ROM_QSTR(MP_QSTR_GPIO47), MP_ROM_PTR(&pin_GPIO47) },
187+
#endif
168188
#if CIRCUITPY_CYW43
169189
{ MP_ROM_QSTR(MP_QSTR_CYW0), MP_ROM_PTR(&pin_CYW0) },
170190
{ MP_ROM_QSTR(MP_QSTR_CYW1), MP_ROM_PTR(&pin_CYW1) },

0 commit comments

Comments
 (0)