From b314430c6e6a83035315410e25484267c980f761 Mon Sep 17 00:00:00 2001 From: ure Date: Tue, 19 Mar 2024 10:17:56 +0100 Subject: [PATCH 1/6] add RFGuru PICO board --- ports/raspberrypi/boards/rfguru_pico/board.c | 29 ++++++++++++ .../boards/rfguru_pico/mpconfigboard.h | 2 + .../boards/rfguru_pico/mpconfigboard.mk | 11 +++++ .../boards/rfguru_pico/pico-sdk-configboard.h | 1 + ports/raspberrypi/boards/rfguru_pico/pins.c | 44 +++++++++++++++++++ 5 files changed, 87 insertions(+) create mode 100644 ports/raspberrypi/boards/rfguru_pico/board.c create mode 100644 ports/raspberrypi/boards/rfguru_pico/mpconfigboard.h create mode 100644 ports/raspberrypi/boards/rfguru_pico/mpconfigboard.mk create mode 100644 ports/raspberrypi/boards/rfguru_pico/pico-sdk-configboard.h create mode 100644 ports/raspberrypi/boards/rfguru_pico/pins.c diff --git a/ports/raspberrypi/boards/rfguru_pico/board.c b/ports/raspberrypi/boards/rfguru_pico/board.c new file mode 100644 index 0000000000000..331653173ecd1 --- /dev/null +++ b/ports/raspberrypi/boards/rfguru_pico/board.c @@ -0,0 +1,29 @@ +/* + * This file is part of the MicroPython project, http://micropython.org/ + * + * The MIT License (MIT) + * + * Copyright (c) 2021 Scott Shawcroft for Adafruit Industries + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#include "supervisor/board.h" + +// Use the MP_WEAK supervisor/shared/board.c versions of routines not defined here. diff --git a/ports/raspberrypi/boards/rfguru_pico/mpconfigboard.h b/ports/raspberrypi/boards/rfguru_pico/mpconfigboard.h new file mode 100644 index 0000000000000..58888dbb9c61b --- /dev/null +++ b/ports/raspberrypi/boards/rfguru_pico/mpconfigboard.h @@ -0,0 +1,2 @@ +#define MICROPY_HW_BOARD_NAME "RFGuru-Pico" +#define MICROPY_HW_MCU_NAME "rp2040" diff --git a/ports/raspberrypi/boards/rfguru_pico/mpconfigboard.mk b/ports/raspberrypi/boards/rfguru_pico/mpconfigboard.mk new file mode 100644 index 0000000000000..ea2e8e0d56202 --- /dev/null +++ b/ports/raspberrypi/boards/rfguru_pico/mpconfigboard.mk @@ -0,0 +1,11 @@ +USB_VID = 0x239A +USB_PID = 0x80F4 +USB_PRODUCT = "RFGuru-Pico" +USB_MANUFACTURER = "Raspberry Pi" + +CHIP_VARIANT = RP2040 +CHIP_FAMILY = rp2 + +EXTERNAL_FLASH_DEVICES = "W25Q128JVxQ" + +CIRCUITPY__EVE = 1 diff --git a/ports/raspberrypi/boards/rfguru_pico/pico-sdk-configboard.h b/ports/raspberrypi/boards/rfguru_pico/pico-sdk-configboard.h new file mode 100644 index 0000000000000..36da55d457197 --- /dev/null +++ b/ports/raspberrypi/boards/rfguru_pico/pico-sdk-configboard.h @@ -0,0 +1 @@ +// Put board-specific pico-sdk definitions here. This file must exist. diff --git a/ports/raspberrypi/boards/rfguru_pico/pins.c b/ports/raspberrypi/boards/rfguru_pico/pins.c new file mode 100644 index 0000000000000..f2c094cb4d999 --- /dev/null +++ b/ports/raspberrypi/boards/rfguru_pico/pins.c @@ -0,0 +1,44 @@ +#include "shared-bindings/board/__init__.h" + +STATIC const mp_rom_map_elem_t board_module_globals_table[] = { + CIRCUITPYTHON_BOARD_DICT_STANDARD_ITEMS + { MP_ROM_QSTR(MP_QSTR_GP0), MP_ROM_PTR(&pin_GPIO0) }, + { MP_ROM_QSTR(MP_QSTR_GP1), MP_ROM_PTR(&pin_GPIO1) }, + { MP_ROM_QSTR(MP_QSTR_GP2), MP_ROM_PTR(&pin_GPIO2) }, + { MP_ROM_QSTR(MP_QSTR_GP3), MP_ROM_PTR(&pin_GPIO3) }, + { MP_ROM_QSTR(MP_QSTR_GP4), MP_ROM_PTR(&pin_GPIO4) }, + { MP_ROM_QSTR(MP_QSTR_GP5), MP_ROM_PTR(&pin_GPIO5) }, + { MP_ROM_QSTR(MP_QSTR_GP6), MP_ROM_PTR(&pin_GPIO6) }, + { MP_ROM_QSTR(MP_QSTR_GP7), MP_ROM_PTR(&pin_GPIO7) }, + { MP_ROM_QSTR(MP_QSTR_GP8), MP_ROM_PTR(&pin_GPIO8) }, + { MP_ROM_QSTR(MP_QSTR_GP9), MP_ROM_PTR(&pin_GPIO9) }, + { MP_ROM_QSTR(MP_QSTR_GP10), MP_ROM_PTR(&pin_GPIO10) }, + { MP_ROM_QSTR(MP_QSTR_GP11), MP_ROM_PTR(&pin_GPIO11) }, + { MP_ROM_QSTR(MP_QSTR_GP12), MP_ROM_PTR(&pin_GPIO12) }, + { MP_ROM_QSTR(MP_QSTR_GP13), MP_ROM_PTR(&pin_GPIO13) }, + { MP_ROM_QSTR(MP_QSTR_GP14), MP_ROM_PTR(&pin_GPIO14) }, + { MP_ROM_QSTR(MP_QSTR_GP15), MP_ROM_PTR(&pin_GPIO15) }, + { MP_ROM_QSTR(MP_QSTR_GP16), MP_ROM_PTR(&pin_GPIO16) }, + { MP_ROM_QSTR(MP_QSTR_GP17), MP_ROM_PTR(&pin_GPIO17) }, + { MP_ROM_QSTR(MP_QSTR_GP18), MP_ROM_PTR(&pin_GPIO18) }, + { MP_ROM_QSTR(MP_QSTR_GP19), MP_ROM_PTR(&pin_GPIO19) }, + { MP_ROM_QSTR(MP_QSTR_GP20), MP_ROM_PTR(&pin_GPIO20) }, + { MP_ROM_QSTR(MP_QSTR_GP21), MP_ROM_PTR(&pin_GPIO21) }, + { MP_ROM_QSTR(MP_QSTR_GP22), MP_ROM_PTR(&pin_GPIO22) }, + { MP_ROM_QSTR(MP_QSTR_GP23), MP_ROM_PTR(&pin_GPIO23) }, + { MP_ROM_QSTR(MP_QSTR_GP24), MP_ROM_PTR(&pin_GPIO24) }, + { MP_ROM_QSTR(MP_QSTR_GP25), MP_ROM_PTR(&pin_GPIO25) }, + { MP_ROM_QSTR(MP_QSTR_GP26_A0), MP_ROM_PTR(&pin_GPIO26) }, + { MP_ROM_QSTR(MP_QSTR_GP26), MP_ROM_PTR(&pin_GPIO26) }, + { MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_GPIO26) }, + { MP_ROM_QSTR(MP_QSTR_GP27_A1), MP_ROM_PTR(&pin_GPIO27) }, + { MP_ROM_QSTR(MP_QSTR_GP27), MP_ROM_PTR(&pin_GPIO27) }, + { MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_GPIO27) }, + { MP_ROM_QSTR(MP_QSTR_GP28_A2), MP_ROM_PTR(&pin_GPIO28) }, + { MP_ROM_QSTR(MP_QSTR_GP28), MP_ROM_PTR(&pin_GPIO28) }, + { MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_GPIO28) }, + { MP_ROM_QSTR(MP_QSTR_GP29_A3), MP_ROM_PTR(&pin_GPIO29) }, + { MP_ROM_QSTR(MP_QSTR_GP29), MP_ROM_PTR(&pin_GPIO29) }, + { MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_GPIO29) }, +}; +MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table); From 751fbf0d310bb3478e9cc74bb350b384253782f5 Mon Sep 17 00:00:00 2001 From: Joeri van Dooren Date: Tue, 26 Mar 2024 01:57:29 +0100 Subject: [PATCH 2/6] Update mpconfigboard.mk --- ports/raspberrypi/boards/rfguru_pico/mpconfigboard.mk | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ports/raspberrypi/boards/rfguru_pico/mpconfigboard.mk b/ports/raspberrypi/boards/rfguru_pico/mpconfigboard.mk index ea2e8e0d56202..59c93f67b648f 100644 --- a/ports/raspberrypi/boards/rfguru_pico/mpconfigboard.mk +++ b/ports/raspberrypi/boards/rfguru_pico/mpconfigboard.mk @@ -1,7 +1,7 @@ -USB_VID = 0x239A -USB_PID = 0x80F4 -USB_PRODUCT = "RFGuru-Pico" -USB_MANUFACTURER = "Raspberry Pi" +USB_VID = 0x1209 +USB_PID = 0xFF40 +USB_PRODUCT = "Pico" +USB_MANUFACTURER = "RF.Guru" CHIP_VARIANT = RP2040 CHIP_FAMILY = rp2 From 21fba25a06a9f721487a81e14c672d2b0e297ff9 Mon Sep 17 00:00:00 2001 From: ure Date: Tue, 26 Mar 2024 19:38:43 +0100 Subject: [PATCH 3/6] cleanup naming --- ports/raspberrypi/boards/rfguru_pico/mpconfigboard.h | 2 -- .../raspberrypi/boards/{rfguru_pico => rfguru_rp2040}/board.c | 0 ports/raspberrypi/boards/rfguru_rp2040/mpconfigboard.h | 2 ++ .../boards/{rfguru_pico => rfguru_rp2040}/mpconfigboard.mk | 4 ++-- .../{rfguru_pico => rfguru_rp2040}/pico-sdk-configboard.h | 0 .../raspberrypi/boards/{rfguru_pico => rfguru_rp2040}/pins.c | 0 6 files changed, 4 insertions(+), 4 deletions(-) delete mode 100644 ports/raspberrypi/boards/rfguru_pico/mpconfigboard.h rename ports/raspberrypi/boards/{rfguru_pico => rfguru_rp2040}/board.c (100%) create mode 100644 ports/raspberrypi/boards/rfguru_rp2040/mpconfigboard.h rename ports/raspberrypi/boards/{rfguru_pico => rfguru_rp2040}/mpconfigboard.mk (68%) rename ports/raspberrypi/boards/{rfguru_pico => rfguru_rp2040}/pico-sdk-configboard.h (100%) rename ports/raspberrypi/boards/{rfguru_pico => rfguru_rp2040}/pins.c (100%) diff --git a/ports/raspberrypi/boards/rfguru_pico/mpconfigboard.h b/ports/raspberrypi/boards/rfguru_pico/mpconfigboard.h deleted file mode 100644 index 58888dbb9c61b..0000000000000 --- a/ports/raspberrypi/boards/rfguru_pico/mpconfigboard.h +++ /dev/null @@ -1,2 +0,0 @@ -#define MICROPY_HW_BOARD_NAME "RFGuru-Pico" -#define MICROPY_HW_MCU_NAME "rp2040" diff --git a/ports/raspberrypi/boards/rfguru_pico/board.c b/ports/raspberrypi/boards/rfguru_rp2040/board.c similarity index 100% rename from ports/raspberrypi/boards/rfguru_pico/board.c rename to ports/raspberrypi/boards/rfguru_rp2040/board.c diff --git a/ports/raspberrypi/boards/rfguru_rp2040/mpconfigboard.h b/ports/raspberrypi/boards/rfguru_rp2040/mpconfigboard.h new file mode 100644 index 0000000000000..3543c24907321 --- /dev/null +++ b/ports/raspberrypi/boards/rfguru_rp2040/mpconfigboard.h @@ -0,0 +1,2 @@ +#define MICROPY_HW_BOARD_NAME "RF.Guru RP2040" +#define MICROPY_HW_MCU_NAME "rp2040" diff --git a/ports/raspberrypi/boards/rfguru_pico/mpconfigboard.mk b/ports/raspberrypi/boards/rfguru_rp2040/mpconfigboard.mk similarity index 68% rename from ports/raspberrypi/boards/rfguru_pico/mpconfigboard.mk rename to ports/raspberrypi/boards/rfguru_rp2040/mpconfigboard.mk index ea2e8e0d56202..04754d36c9401 100644 --- a/ports/raspberrypi/boards/rfguru_pico/mpconfigboard.mk +++ b/ports/raspberrypi/boards/rfguru_rp2040/mpconfigboard.mk @@ -1,7 +1,7 @@ USB_VID = 0x239A USB_PID = 0x80F4 -USB_PRODUCT = "RFGuru-Pico" -USB_MANUFACTURER = "Raspberry Pi" +USB_PRODUCT = "RF.Guru RP2040" +USB_MANUFACTURER = "RF.Guru" CHIP_VARIANT = RP2040 CHIP_FAMILY = rp2 diff --git a/ports/raspberrypi/boards/rfguru_pico/pico-sdk-configboard.h b/ports/raspberrypi/boards/rfguru_rp2040/pico-sdk-configboard.h similarity index 100% rename from ports/raspberrypi/boards/rfguru_pico/pico-sdk-configboard.h rename to ports/raspberrypi/boards/rfguru_rp2040/pico-sdk-configboard.h diff --git a/ports/raspberrypi/boards/rfguru_pico/pins.c b/ports/raspberrypi/boards/rfguru_rp2040/pins.c similarity index 100% rename from ports/raspberrypi/boards/rfguru_pico/pins.c rename to ports/raspberrypi/boards/rfguru_rp2040/pins.c From 465698e5615e6eefa9dfc03ed483d3bf9be28d10 Mon Sep 17 00:00:00 2001 From: Joeri van Dooren Date: Wed, 27 Mar 2024 01:21:16 +0100 Subject: [PATCH 4/6] Update ports/raspberrypi/boards/rfguru_rp2040/pins.c Co-authored-by: Dan Halbert --- ports/raspberrypi/boards/rfguru_rp2040/pins.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ports/raspberrypi/boards/rfguru_rp2040/pins.c b/ports/raspberrypi/boards/rfguru_rp2040/pins.c index f2c094cb4d999..016c3477ae92e 100644 --- a/ports/raspberrypi/boards/rfguru_rp2040/pins.c +++ b/ports/raspberrypi/boards/rfguru_rp2040/pins.c @@ -28,15 +28,19 @@ STATIC const mp_rom_map_elem_t board_module_globals_table[] = { { MP_ROM_QSTR(MP_QSTR_GP23), MP_ROM_PTR(&pin_GPIO23) }, { MP_ROM_QSTR(MP_QSTR_GP24), MP_ROM_PTR(&pin_GPIO24) }, { MP_ROM_QSTR(MP_QSTR_GP25), MP_ROM_PTR(&pin_GPIO25) }, + { MP_ROM_QSTR(MP_QSTR_GP26_A0), MP_ROM_PTR(&pin_GPIO26) }, { MP_ROM_QSTR(MP_QSTR_GP26), MP_ROM_PTR(&pin_GPIO26) }, { MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_GPIO26) }, + { MP_ROM_QSTR(MP_QSTR_GP27_A1), MP_ROM_PTR(&pin_GPIO27) }, { MP_ROM_QSTR(MP_QSTR_GP27), MP_ROM_PTR(&pin_GPIO27) }, { MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_GPIO27) }, + { MP_ROM_QSTR(MP_QSTR_GP28_A2), MP_ROM_PTR(&pin_GPIO28) }, { MP_ROM_QSTR(MP_QSTR_GP28), MP_ROM_PTR(&pin_GPIO28) }, { MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_GPIO28) }, + { MP_ROM_QSTR(MP_QSTR_GP29_A3), MP_ROM_PTR(&pin_GPIO29) }, { MP_ROM_QSTR(MP_QSTR_GP29), MP_ROM_PTR(&pin_GPIO29) }, { MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_GPIO29) }, From 9d96cd153d0ec9b520f7a8b2cda012327847f5e8 Mon Sep 17 00:00:00 2001 From: ure Date: Wed, 27 Mar 2024 01:26:29 +0100 Subject: [PATCH 5/6] @dhalbert hinted this to prevent start issues --- ports/raspberrypi/boards/rfguru_rp2040/pico-sdk-configboard.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ports/raspberrypi/boards/rfguru_rp2040/pico-sdk-configboard.h b/ports/raspberrypi/boards/rfguru_rp2040/pico-sdk-configboard.h index 36da55d457197..cd30f7aea2fe4 100644 --- a/ports/raspberrypi/boards/rfguru_rp2040/pico-sdk-configboard.h +++ b/ports/raspberrypi/boards/rfguru_rp2040/pico-sdk-configboard.h @@ -1 +1,3 @@ // Put board-specific pico-sdk definitions here. This file must exist. +// Allow extra time for xosc to start. +#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64 From 9d38a6ec9b3258207fe9498a5dbf542383231b06 Mon Sep 17 00:00:00 2001 From: ure Date: Wed, 27 Mar 2024 12:55:29 +0100 Subject: [PATCH 6/6] remove trailing whitespaces --- .../boards/rfguru_rp2040/pico-sdk-configboard.h | 5 +++-- ports/raspberrypi/boards/rfguru_rp2040/pins.c | 8 ++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/ports/raspberrypi/boards/rfguru_rp2040/pico-sdk-configboard.h b/ports/raspberrypi/boards/rfguru_rp2040/pico-sdk-configboard.h index cd30f7aea2fe4..a41131dd22b7e 100644 --- a/ports/raspberrypi/boards/rfguru_rp2040/pico-sdk-configboard.h +++ b/ports/raspberrypi/boards/rfguru_rp2040/pico-sdk-configboard.h @@ -1,3 +1,4 @@ // Put board-specific pico-sdk definitions here. This file must exist. -// Allow extra time for xosc to start. -#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64 + +// Allow extra time for xosc to start. +#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64 diff --git a/ports/raspberrypi/boards/rfguru_rp2040/pins.c b/ports/raspberrypi/boards/rfguru_rp2040/pins.c index 016c3477ae92e..1c67d863762fc 100644 --- a/ports/raspberrypi/boards/rfguru_rp2040/pins.c +++ b/ports/raspberrypi/boards/rfguru_rp2040/pins.c @@ -28,19 +28,19 @@ STATIC const mp_rom_map_elem_t board_module_globals_table[] = { { MP_ROM_QSTR(MP_QSTR_GP23), MP_ROM_PTR(&pin_GPIO23) }, { MP_ROM_QSTR(MP_QSTR_GP24), MP_ROM_PTR(&pin_GPIO24) }, { MP_ROM_QSTR(MP_QSTR_GP25), MP_ROM_PTR(&pin_GPIO25) }, - + { MP_ROM_QSTR(MP_QSTR_GP26_A0), MP_ROM_PTR(&pin_GPIO26) }, { MP_ROM_QSTR(MP_QSTR_GP26), MP_ROM_PTR(&pin_GPIO26) }, { MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_GPIO26) }, - + { MP_ROM_QSTR(MP_QSTR_GP27_A1), MP_ROM_PTR(&pin_GPIO27) }, { MP_ROM_QSTR(MP_QSTR_GP27), MP_ROM_PTR(&pin_GPIO27) }, { MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_GPIO27) }, - + { MP_ROM_QSTR(MP_QSTR_GP28_A2), MP_ROM_PTR(&pin_GPIO28) }, { MP_ROM_QSTR(MP_QSTR_GP28), MP_ROM_PTR(&pin_GPIO28) }, { MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_GPIO28) }, - + { MP_ROM_QSTR(MP_QSTR_GP29_A3), MP_ROM_PTR(&pin_GPIO29) }, { MP_ROM_QSTR(MP_QSTR_GP29), MP_ROM_PTR(&pin_GPIO29) }, { MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_GPIO29) },