From 91ddc9e9f4b163370c860d6a78fe34e4425b1240 Mon Sep 17 00:00:00 2001 From: Kong Wai Weng Date: Sat, 10 Aug 2024 00:40:52 +0800 Subject: [PATCH 1/3] Added IRIV IO Controller. --- .gitmodules | 6 ++ frozen/Adafruit_CircuitPython_Wiznet5k | 1 + .../boards/cytron_iriv_io_controller/board.c | 29 ++++++ .../cytron_iriv_io_controller/mpconfigboard.h | 12 +++ .../mpconfigboard.mk | 23 +++++ .../pico-sdk-configboard.h | 4 + .../boards/cytron_iriv_io_controller/pins.c | 94 +++++++++++++++++++ 7 files changed, 169 insertions(+) create mode 160000 frozen/Adafruit_CircuitPython_Wiznet5k create mode 100644 ports/raspberrypi/boards/cytron_iriv_io_controller/board.c create mode 100644 ports/raspberrypi/boards/cytron_iriv_io_controller/mpconfigboard.h create mode 100644 ports/raspberrypi/boards/cytron_iriv_io_controller/mpconfigboard.mk create mode 100644 ports/raspberrypi/boards/cytron_iriv_io_controller/pico-sdk-configboard.h create mode 100644 ports/raspberrypi/boards/cytron_iriv_io_controller/pins.c diff --git a/.gitmodules b/.gitmodules index f8ad481cba13..3dd08d483236 100644 --- a/.gitmodules +++ b/.gitmodules @@ -395,3 +395,9 @@ [submodule "frozen/Adafruit_CircuitPython_LED_Animation"] path = frozen/Adafruit_CircuitPython_LED_Animation url = https://github.com/adafruit/Adafruit_CircuitPython_LED_Animation +[submodule "frozen/Adafruit_CircuitPython_Wiznet5k"] + path = frozen/Adafruit_CircuitPython_Wiznet5k + url = https://github.com/adafruit/Adafruit_CircuitPython_Wiznet5k +[submodule "Adafruit_CircuitPython_Wiznet5k"] + path = Adafruit_CircuitPython_Wiznet5k + url = https://github.com/adafruit/Adafruit_CircuitPython_Wiznet5k diff --git a/frozen/Adafruit_CircuitPython_Wiznet5k b/frozen/Adafruit_CircuitPython_Wiznet5k new file mode 160000 index 000000000000..6abacdf33260 --- /dev/null +++ b/frozen/Adafruit_CircuitPython_Wiznet5k @@ -0,0 +1 @@ +Subproject commit 6abacdf332602afb35fce0e68763c1b47e0c0297 diff --git a/ports/raspberrypi/boards/cytron_iriv_io_controller/board.c b/ports/raspberrypi/boards/cytron_iriv_io_controller/board.c new file mode 100644 index 000000000000..9f2a6634aa48 --- /dev/null +++ b/ports/raspberrypi/boards/cytron_iriv_io_controller/board.c @@ -0,0 +1,29 @@ +/* + * This file is part of the MicroPython project, http://micropython.org/ + * + * The MIT License (MIT) + * + * Copyright (c) 2024 Wai Weng for Cytron Technologies + * + * 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/cytron_iriv_io_controller/mpconfigboard.h b/ports/raspberrypi/boards/cytron_iriv_io_controller/mpconfigboard.h new file mode 100644 index 000000000000..fe6b97b22c98 --- /dev/null +++ b/ports/raspberrypi/boards/cytron_iriv_io_controller/mpconfigboard.h @@ -0,0 +1,12 @@ +#define MICROPY_HW_BOARD_NAME "Cytron IRIV IO Controller" +#define MICROPY_HW_MCU_NAME "rp2350a" + +#define DEFAULT_I2C_BUS_SCL (&pin_GPIO17) +#define DEFAULT_I2C_BUS_SDA (&pin_GPIO16) + +#define DEFAULT_SPI_BUS_SCK (&pin_GPIO22) +#define DEFAULT_SPI_BUS_MOSI (&pin_GPIO19) +#define DEFAULT_SPI_BUS_MISO (&pin_GPIO20) + +#define DEFAULT_UART_BUS_RX (&pin_GPIO25) +#define DEFAULT_UART_BUS_TX (&pin_GPIO24) diff --git a/ports/raspberrypi/boards/cytron_iriv_io_controller/mpconfigboard.mk b/ports/raspberrypi/boards/cytron_iriv_io_controller/mpconfigboard.mk new file mode 100644 index 000000000000..e5589a3dd258 --- /dev/null +++ b/ports/raspberrypi/boards/cytron_iriv_io_controller/mpconfigboard.mk @@ -0,0 +1,23 @@ +USB_VID = 0x2E8A +USB_PID = 0x1093 +USB_PRODUCT = "IRIV IO Controller" +USB_MANUFACTURER = "Cytron" + +CHIP_VARIANT = RP2350 +CHIP_PACKAGE = A +CHIP_FAMILY = rp2 + +EXTERNAL_FLASH_DEVICES = "W25Q16JVxQ" + +CIRCUITPY__EVE = 1 +CIRCUITPY_ALARM = 0 +CIRCUITPY_RGBMATRIX = 0 +CIRCUITPY_USB_HOST = 0 + +# Include these Python libraries in firmware. +FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_SimpleIO +FROZEN_MPY_DIRS += $(TOP)/frozen/circuitpython-pcf85063a +FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Wiznet5k +FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Requests +FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_FakeRequests +FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_ConnectionManager diff --git a/ports/raspberrypi/boards/cytron_iriv_io_controller/pico-sdk-configboard.h b/ports/raspberrypi/boards/cytron_iriv_io_controller/pico-sdk-configboard.h new file mode 100644 index 000000000000..a41131dd22b7 --- /dev/null +++ b/ports/raspberrypi/boards/cytron_iriv_io_controller/pico-sdk-configboard.h @@ -0,0 +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 diff --git a/ports/raspberrypi/boards/cytron_iriv_io_controller/pins.c b/ports/raspberrypi/boards/cytron_iriv_io_controller/pins.c new file mode 100644 index 000000000000..e440aafcbbc2 --- /dev/null +++ b/ports/raspberrypi/boards/cytron_iriv_io_controller/pins.c @@ -0,0 +1,94 @@ +#include "shared-bindings/board/__init__.h" + +STATIC const mp_rom_map_elem_t board_module_globals_table[] = { + CIRCUITPYTHON_BOARD_DICT_STANDARD_ITEMS + + { MP_OBJ_NEW_QSTR(MP_QSTR_GP0), MP_ROM_PTR(&pin_GPIO0) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_GP1), MP_ROM_PTR(&pin_GPIO1) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_GP2), MP_ROM_PTR(&pin_GPIO2) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_GP3), MP_ROM_PTR(&pin_GPIO3) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_GP4), MP_ROM_PTR(&pin_GPIO4) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_GP5), MP_ROM_PTR(&pin_GPIO5) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_GP6), MP_ROM_PTR(&pin_GPIO6) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_GP7), MP_ROM_PTR(&pin_GPIO7) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_GP8), MP_ROM_PTR(&pin_GPIO8) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_GP9), MP_ROM_PTR(&pin_GPIO9) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_GP10), MP_ROM_PTR(&pin_GPIO10) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_GP11), MP_ROM_PTR(&pin_GPIO11) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_GP12), MP_ROM_PTR(&pin_GPIO12) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_GP13), MP_ROM_PTR(&pin_GPIO13) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_GP14), MP_ROM_PTR(&pin_GPIO14) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_GP15), MP_ROM_PTR(&pin_GPIO15) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_GP16), MP_ROM_PTR(&pin_GPIO16) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_GP17), MP_ROM_PTR(&pin_GPIO17) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_GP18), MP_ROM_PTR(&pin_GPIO18) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_GP19), MP_ROM_PTR(&pin_GPIO19) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_GP20), MP_ROM_PTR(&pin_GPIO20) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_GP21), MP_ROM_PTR(&pin_GPIO21) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_GP22), MP_ROM_PTR(&pin_GPIO22) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_GP23), MP_ROM_PTR(&pin_GPIO23) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_GP24), MP_ROM_PTR(&pin_GPIO24) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_GP25), MP_ROM_PTR(&pin_GPIO25) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_GP26), MP_ROM_PTR(&pin_GPIO26) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_GP27), MP_ROM_PTR(&pin_GPIO27) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_GP28), MP_ROM_PTR(&pin_GPIO28) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_GP29), MP_ROM_PTR(&pin_GPIO29) }, + + // Digital inputs. + { MP_OBJ_NEW_QSTR(MP_QSTR_DI0), MP_ROM_PTR(&pin_GPIO0) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_DI1), MP_ROM_PTR(&pin_GPIO1) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_DI2), MP_ROM_PTR(&pin_GPIO2) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_DI3), MP_ROM_PTR(&pin_GPIO3) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_DI4), MP_ROM_PTR(&pin_GPIO4) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_DI5), MP_ROM_PTR(&pin_GPIO5) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_DI6), MP_ROM_PTR(&pin_GPIO6) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_DI7), MP_ROM_PTR(&pin_GPIO7) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_DI8), MP_ROM_PTR(&pin_GPIO8) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_DI9), MP_ROM_PTR(&pin_GPIO9) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_DI10), MP_ROM_PTR(&pin_GPIO10) }, + + // Digital outputs. + { MP_OBJ_NEW_QSTR(MP_QSTR_DO0), MP_ROM_PTR(&pin_GPIO12) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_DO1), MP_ROM_PTR(&pin_GPIO13) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_DO2), MP_ROM_PTR(&pin_GPIO14) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_DO3), MP_ROM_PTR(&pin_GPIO15) }, + + // Analog inputs. + { MP_OBJ_NEW_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_GPIO26) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_AN0), MP_ROM_PTR(&pin_GPIO26) }, + + { MP_OBJ_NEW_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_GPIO27) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_AN1), MP_ROM_PTR(&pin_GPIO27) }, + + // Button, LED & Buzzer. + { MP_OBJ_NEW_QSTR(MP_QSTR_BTN), MP_ROM_PTR(&pin_GPIO28) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_BUTTON), MP_ROM_PTR(&pin_GPIO28) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_GPIO29) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_BUZZER), MP_ROM_PTR(&pin_GPIO11) }, + + // UART. + { MP_OBJ_NEW_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_GPIO24) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_GPIO25) }, + + // I2C. + { MP_OBJ_NEW_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_GPIO16) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_GPIO17) }, + + // SPI & W5500 interface. + { MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_GPIO19) }, + { MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_GPIO20) }, + { MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_GPIO22) }, + + { MP_ROM_QSTR(MP_QSTR_CS), MP_ROM_PTR(&pin_GPIO21) }, + { MP_ROM_QSTR(MP_QSTR_W5500_CS), MP_ROM_PTR(&pin_GPIO21) }, + { MP_ROM_QSTR(MP_QSTR_W5500_INT), MP_ROM_PTR(&pin_GPIO18) }, + { MP_ROM_QSTR(MP_QSTR_W5500_RST), MP_ROM_PTR(&pin_GPIO23) }, + { MP_ROM_QSTR(MP_QSTR_W5500_RESET), MP_ROM_PTR(&pin_GPIO23) }, + + // Peripheral. + { MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) }, + { MP_ROM_QSTR(MP_QSTR_RS485), MP_ROM_PTR(&board_uart_obj) }, + { MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) }, + { MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) }, +}; +MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table); From 7e4a69ff719175018de89d74dcc55a272df621ed Mon Sep 17 00:00:00 2001 From: Kong Wai Weng Date: Sat, 10 Aug 2024 00:48:13 +0800 Subject: [PATCH 2/3] Removed duplicated submodules in the file .gitmodules. --- .gitmodules | 3 --- 1 file changed, 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index 3dd08d483236..622b6a111bee 100644 --- a/.gitmodules +++ b/.gitmodules @@ -398,6 +398,3 @@ [submodule "frozen/Adafruit_CircuitPython_Wiznet5k"] path = frozen/Adafruit_CircuitPython_Wiznet5k url = https://github.com/adafruit/Adafruit_CircuitPython_Wiznet5k -[submodule "Adafruit_CircuitPython_Wiznet5k"] - path = Adafruit_CircuitPython_Wiznet5k - url = https://github.com/adafruit/Adafruit_CircuitPython_Wiznet5k From 2ed6a8a9bb66b81deb035d1fd88ad632ea589bfc Mon Sep 17 00:00:00 2001 From: Kong Wai Weng Date: Sat, 10 Aug 2024 00:53:34 +0800 Subject: [PATCH 3/3] Fixed indent issue. --- .../boards/cytron_iriv_io_controller/pins.c | 52 +++++++++---------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/ports/raspberrypi/boards/cytron_iriv_io_controller/pins.c b/ports/raspberrypi/boards/cytron_iriv_io_controller/pins.c index e440aafcbbc2..73764fb602f8 100644 --- a/ports/raspberrypi/boards/cytron_iriv_io_controller/pins.c +++ b/ports/raspberrypi/boards/cytron_iriv_io_controller/pins.c @@ -30,12 +30,12 @@ STATIC const mp_rom_map_elem_t board_module_globals_table[] = { { MP_OBJ_NEW_QSTR(MP_QSTR_GP24), MP_ROM_PTR(&pin_GPIO24) }, { MP_OBJ_NEW_QSTR(MP_QSTR_GP25), MP_ROM_PTR(&pin_GPIO25) }, { MP_OBJ_NEW_QSTR(MP_QSTR_GP26), MP_ROM_PTR(&pin_GPIO26) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_GP27), MP_ROM_PTR(&pin_GPIO27) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_GP28), MP_ROM_PTR(&pin_GPIO28) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_GP29), MP_ROM_PTR(&pin_GPIO29) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_GP27), MP_ROM_PTR(&pin_GPIO27) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_GP28), MP_ROM_PTR(&pin_GPIO28) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_GP29), MP_ROM_PTR(&pin_GPIO29) }, - // Digital inputs. - { MP_OBJ_NEW_QSTR(MP_QSTR_DI0), MP_ROM_PTR(&pin_GPIO0) }, + // Digital inputs. + { MP_OBJ_NEW_QSTR(MP_QSTR_DI0), MP_ROM_PTR(&pin_GPIO0) }, { MP_OBJ_NEW_QSTR(MP_QSTR_DI1), MP_ROM_PTR(&pin_GPIO1) }, { MP_OBJ_NEW_QSTR(MP_QSTR_DI2), MP_ROM_PTR(&pin_GPIO2) }, { MP_OBJ_NEW_QSTR(MP_QSTR_DI3), MP_ROM_PTR(&pin_GPIO3) }, @@ -47,47 +47,47 @@ STATIC const mp_rom_map_elem_t board_module_globals_table[] = { { MP_OBJ_NEW_QSTR(MP_QSTR_DI9), MP_ROM_PTR(&pin_GPIO9) }, { MP_OBJ_NEW_QSTR(MP_QSTR_DI10), MP_ROM_PTR(&pin_GPIO10) }, - // Digital outputs. - { MP_OBJ_NEW_QSTR(MP_QSTR_DO0), MP_ROM_PTR(&pin_GPIO12) }, + // Digital outputs. + { MP_OBJ_NEW_QSTR(MP_QSTR_DO0), MP_ROM_PTR(&pin_GPIO12) }, { MP_OBJ_NEW_QSTR(MP_QSTR_DO1), MP_ROM_PTR(&pin_GPIO13) }, { MP_OBJ_NEW_QSTR(MP_QSTR_DO2), MP_ROM_PTR(&pin_GPIO14) }, { MP_OBJ_NEW_QSTR(MP_QSTR_DO3), MP_ROM_PTR(&pin_GPIO15) }, - // Analog inputs. - { MP_OBJ_NEW_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_GPIO26) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_AN0), MP_ROM_PTR(&pin_GPIO26) }, + // Analog inputs. + { MP_OBJ_NEW_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_GPIO26) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_AN0), MP_ROM_PTR(&pin_GPIO26) }, { MP_OBJ_NEW_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_GPIO27) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_AN1), MP_ROM_PTR(&pin_GPIO27) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_AN1), MP_ROM_PTR(&pin_GPIO27) }, - // Button, LED & Buzzer. - { MP_OBJ_NEW_QSTR(MP_QSTR_BTN), MP_ROM_PTR(&pin_GPIO28) }, + // Button, LED & Buzzer. + { MP_OBJ_NEW_QSTR(MP_QSTR_BTN), MP_ROM_PTR(&pin_GPIO28) }, { MP_OBJ_NEW_QSTR(MP_QSTR_BUTTON), MP_ROM_PTR(&pin_GPIO28) }, { MP_OBJ_NEW_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_GPIO29) }, { MP_OBJ_NEW_QSTR(MP_QSTR_BUZZER), MP_ROM_PTR(&pin_GPIO11) }, - // UART. - { MP_OBJ_NEW_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_GPIO24) }, + // UART. + { MP_OBJ_NEW_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_GPIO24) }, { MP_OBJ_NEW_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_GPIO25) }, - // I2C. + // I2C. { MP_OBJ_NEW_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_GPIO16) }, { MP_OBJ_NEW_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_GPIO17) }, - // SPI & W5500 interface. - { MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_GPIO19) }, + // SPI & W5500 interface. + { MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_GPIO19) }, { MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_GPIO20) }, { MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_GPIO22) }, - { MP_ROM_QSTR(MP_QSTR_CS), MP_ROM_PTR(&pin_GPIO21) }, - { MP_ROM_QSTR(MP_QSTR_W5500_CS), MP_ROM_PTR(&pin_GPIO21) }, - { MP_ROM_QSTR(MP_QSTR_W5500_INT), MP_ROM_PTR(&pin_GPIO18) }, - { MP_ROM_QSTR(MP_QSTR_W5500_RST), MP_ROM_PTR(&pin_GPIO23) }, - { MP_ROM_QSTR(MP_QSTR_W5500_RESET), MP_ROM_PTR(&pin_GPIO23) }, + { MP_ROM_QSTR(MP_QSTR_CS), MP_ROM_PTR(&pin_GPIO21) }, + { MP_ROM_QSTR(MP_QSTR_W5500_CS), MP_ROM_PTR(&pin_GPIO21) }, + { MP_ROM_QSTR(MP_QSTR_W5500_INT), MP_ROM_PTR(&pin_GPIO18) }, + { MP_ROM_QSTR(MP_QSTR_W5500_RST), MP_ROM_PTR(&pin_GPIO23) }, + { MP_ROM_QSTR(MP_QSTR_W5500_RESET), MP_ROM_PTR(&pin_GPIO23) }, - // Peripheral. - { MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) }, - { MP_ROM_QSTR(MP_QSTR_RS485), MP_ROM_PTR(&board_uart_obj) }, + // Peripheral. + { MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) }, + { MP_ROM_QSTR(MP_QSTR_RS485), MP_ROM_PTR(&board_uart_obj) }, { MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) }, { MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) }, };