diff --git a/ports/zephyr-cp/boards/adafruit/macropad_rp2040_zephyr/autogen_board_info.toml b/ports/zephyr-cp/boards/adafruit/macropad_rp2040_zephyr/autogen_board_info.toml new file mode 100644 index 00000000000..6d769d78f3c --- /dev/null +++ b/ports/zephyr-cp/boards/adafruit/macropad_rp2040_zephyr/autogen_board_info.toml @@ -0,0 +1,136 @@ +# This file is autogenerated when a board is built. Do not edit. Do commit it to git. Other scripts use its info. +name = "Adafruit Industries LLC Adafruit MacroPad RP2040" + +[modules] +__future__ = true +_bleio = false +_eve = false +_pew = false +_pixelmap = false +_stage = false +adafruit_bus_device = true +adafruit_pixelbuf = false +aesio = true +alarm = false +analogbufio = false +analogio = false +atexit = false +audiobusio = false +audiocore = false +audiodelays = false +audiofilewriter = false +audiofilters = false +audiofreeverb = false +audioi2sin = false +audioio = false +audiomixer = false +audiomp3 = false +audiopwmio = false +audiospeed = false +aurora_epaper = false +bitbangio = true +bitmapfilter = true # Zephyr board has busio +bitmaptools = true # Zephyr board has busio +bitops = false +board = true # Always enabled +busdisplay = true # Zephyr board has busio +busio = true # Zephyr board has busio +camera = false +canio = false +codeop = false +countio = false +digitalio = true +displayio = true # Zephyr board has displayio +dotclockframebuffer = false +dualbank = false +emmcio = false +epaperdisplay = true # Zephyr board has busio +floppyio = false +fontio = true # Zephyr board has busio +fourwire = true # Zephyr board has busio +framebufferio = true # Zephyr board has busio +frequencyio = false +getpass = true +gifio = true # Zephyr board has busio +gnss = false +hardwarekey = false +hashlib = true +hmac = false +hostnetwork = false +i2cdisplaybus = true # Zephyr board has busio +i2cioexpander = false +i2ctarget = false +imagecapture = false +ipaddress = false +is31fl3741 = false +jpegio = true # Zephyr board has busio +keypad = false +keypad_demux = false +locale = false +lvfontio = true # Zephyr board has busio +math = true +max3421e = false +mcp4822 = false +mdns = false +memorymap = false +memorymonitor = false +microcontroller = true +mii = false +mipidsi = false +msgpack = true +neopixel_write = false +nvm = true # Board has NVM partition +onewireio = false +os = true +paralleldisplaybus = false +picogame = false +ps2io = false +pulseio = false +pwmio = false +qrio = false +qspibus = false +rainbowio = true +random = true +rclcpy = false +rgbmatrix = false +rotaryio = true # Zephyr board has rotaryio +rtc = false +sdcardio = true # Zephyr board has busio +sdioio = false +sharpdisplay = true # Zephyr board has busio +socketpool = false +spitarget = false +ssl = false +storage = true +struct = true +supervisor = true +synthio = false +terminalio = true # Zephyr board has busio +tilepalettemapper = true # Zephyr board has busio +time = true +touchio = false +traceback = true +uheap = false +usb = false +usb_audio = false +usb_cdc = true +usb_hid = true +usb_host = false +usb_host_audio = false +usb_host_bulk = false +usb_midi = false +usb_video = false +ustack = false +vectorio = true # Zephyr board has busio +warnings = true +watchdog = true # Zephyr board has watchdog +wifi = false +zephyr_display = true # Zephyr board has zephyr_display +zephyr_kernel = false +zlib = true +# extmod modules shared with MicroPython +asyncio = true +binascii = true +json = true +re = true +select = true diff --git a/ports/zephyr-cp/boards/adafruit/macropad_rp2040_zephyr/board.conf b/ports/zephyr-cp/boards/adafruit/macropad_rp2040_zephyr/board.conf new file mode 100644 index 00000000000..cdf74780abb --- /dev/null +++ b/ports/zephyr-cp/boards/adafruit/macropad_rp2040_zephyr/board.conf @@ -0,0 +1,12 @@ +CONFIG_GPIO=y + +# Package pin map for the RP2040 QFN-56 used by this board. +CONFIG_IOBROKER_PACKAGE_RP2040_QFN56=y + +# Enable the SH1106 OLED via the Zephyr display subsystem +CONFIG_DISPLAY=y + +# No Zephyr UART console by default (see board.overlay), so SCL/SDA are free +# for I2C. A CONSOLE=1 build turns it back on in console.conf. +CONFIG_UART_CONSOLE=n +CONFIG_LOG_BACKEND_UART=n diff --git a/ports/zephyr-cp/boards/adafruit/macropad_rp2040_zephyr/board.overlay b/ports/zephyr-cp/boards/adafruit/macropad_rp2040_zephyr/board.overlay new file mode 100644 index 00000000000..4ab09025a06 --- /dev/null +++ b/ports/zephyr-cp/boards/adafruit/macropad_rp2040_zephyr/board.overlay @@ -0,0 +1,32 @@ +/* Partition layout is owned by the mcuboot fork (dts/adafruit/adafruit_macropad_rp2040.dtsi) + * and applied to this image by sysbuild. This overlay only adds board/app config. */ +#include "../../../app.overlay" + +/* Free the key and encoder pins for keypad and rotaryio. */ +/ { + keys { + status = "disabled"; + }; + + encoder { + status = "disabled"; + }; +}; + +/* No Zephyr console by default, so SCL/SDA (GPIO21/20) are free for I2C0. A + * CONSOLE=1 build puts the console back on UART1 (console.overlay). */ +/ { + chosen { + /delete-property/ zephyr,console; + /delete-property/ zephyr,shell-uart; + }; +}; + +&uart1 { + status = "disabled"; +}; + +/* The zephyr_i2c label makes this board.STEMMA_I2C as well as board.I2C. */ +zephyr_i2c: &i2c0 { + status = "okay"; +}; diff --git a/ports/zephyr-cp/boards/adafruit/macropad_rp2040_zephyr/circuitpython.toml b/ports/zephyr-cp/boards/adafruit/macropad_rp2040_zephyr/circuitpython.toml new file mode 100644 index 00000000000..6465776c0b5 --- /dev/null +++ b/ports/zephyr-cp/boards/adafruit/macropad_rp2040_zephyr/circuitpython.toml @@ -0,0 +1,39 @@ +CIRCUITPY_BUILD_EXTENSIONS = ["uf2"] + +# Non-Zephyr build of the same board; nvm and CIRCUITPY must sit where it puts them. +counterpart = "raspberrypi/adafruit_macropad_rp2040" + + +# Pin names from the ports/ counterpart board's pins.c, as RP2040 QFN-56 +# package pin numbers. +[pins] +KEY1 = 3 +KEY2 = 4 +KEY3 = 5 +KEY4 = 6 +KEY5 = 7 +KEY6 = 8 +KEY7 = 9 +KEY8 = 11 +KEY9 = 12 +KEY10 = 13 +KEY11 = 14 +KEY12 = 15 +LED = 16 +SPEAKER_ENABLE = 17 +SPEAKER = 27 +ENCODER_SWITCH = 2 +BUTTON = 2 +ENCODER_A = 28 +ROTA = 28 +ENCODER_B = 29 +ROTB = 29 +NEOPIXEL = 30 +SDA = 31 +SCL = 32 +OLED_CS = 34 +OLED_RESET = 35 +OLED_DC = 36 +SCK = 38 +MOSI = 39 +MISO = 40 diff --git a/ports/zephyr-cp/boards/adafruit/macropad_rp2040_zephyr/console.overlay b/ports/zephyr-cp/boards/adafruit/macropad_rp2040_zephyr/console.overlay new file mode 100644 index 00000000000..cc66afa94b8 --- /dev/null +++ b/ports/zephyr-cp/boards/adafruit/macropad_rp2040_zephyr/console.overlay @@ -0,0 +1,17 @@ +/* Applied after board.overlay in CONSOLE=1 and DEBUG=1 builds: the Zephyr + * console on UART1, on the STEMMA QT pins (TX on SDA/GPIO20, RX on SCL/GPIO21). + * board.I2C() and board.STEMMA_I2C are then not available. */ +/ { + chosen { + zephyr,console = &uart1; + zephyr,shell-uart = &uart1; + }; +}; + +&uart1 { + status = "okay"; +}; + +&i2c0 { + status = "disabled"; +}; diff --git a/ports/zephyr-cp/boards/board_aliases.cmake b/ports/zephyr-cp/boards/board_aliases.cmake index a13e2031f7c..d636b047aab 100644 --- a/ports/zephyr-cp/boards/board_aliases.cmake +++ b/ports/zephyr-cp/boards/board_aliases.cmake @@ -26,35 +26,36 @@ macro(cp_board_alias alias target) endif() endmacro() -cp_board_alias(pca10056 nrf52840dk/nrf52840) -cp_board_alias(adafruit_feather_nrf52840_zephyr adafruit_feather_nrf52840/nrf52840/uf2) cp_board_alias(adafruit_clue_nrf52840_zephyr adafruit_clue_nrf52840/nrf52840/uf2) +cp_board_alias(adafruit_feather_nrf52840_zephyr adafruit_feather_nrf52840/nrf52840/uf2) cp_board_alias(adafruit_feather_nrf52840_sense_zephyr adafruit_feather_nrf52840/nrf52840/sense/uf2) -cp_board_alias(adafruit_itsybitsy_nrf52840_zephyr adafruit_itsybitsy/nrf52840) cp_board_alias(adafruit_feather_rp2040_zephyr adafruit_feather_rp2040/rp2040) -cp_board_alias(renesas_ek_ra6m5 ek_ra6m5) -cp_board_alias(renesas_ek_ra8d1 ek_ra8d1) -cp_board_alias(renesas_da14695_dk_usb da14695_dk_usb) +cp_board_alias(adafruit_itsybitsy_nrf52840_zephyr adafruit_itsybitsy/nrf52840) +cp_board_alias(adafruit_macropad_rp2040_zephyr adafruit_macropad_rp2040/rp2040) cp_board_alias(native_native_sim native_sim/native) cp_board_alias(native_native_sim_asan native_sim/native) cp_board_alias(native_native_sim_lfs native_sim/native) cp_board_alias(native_nrf5340bsim nrf5340bsim/nrf5340/cpuapp) cp_board_alias(native_nrf54lm20bsim nrf54lm20bsim/nrf54lm20a/cpuapp) +cp_board_alias(nordic_nrf5340dk nrf5340dk/nrf5340/cpuapp) +cp_board_alias(nordic_nrf54h20dk nrf54h20dk/nrf54h20/cpuapp) cp_board_alias(nordic_nrf54l15dk nrf54l15dk/nrf54l15/cpuapp) cp_board_alias(nordic_nrf54l15tag nrf54l15tag/nrf54l15/cpuapp) cp_board_alias(nordic_nrf54lm20dk nrf54lm20dk/nrf54lm20a/cpuapp) -cp_board_alias(nordic_nrf54h20dk nrf54h20dk/nrf54h20/cpuapp) -cp_board_alias(nordic_nrf5340dk nrf5340dk/nrf5340/cpuapp) cp_board_alias(nxp_frdm_mcxn947 frdm_mcxn947/mcxn947/cpu0) cp_board_alias(nxp_frdm_rw612 frdm_rw612) cp_board_alias(nxp_mimxrt1170_evk mimxrt1170_evk@A/mimxrt1176/cm7) -cp_board_alias(st_stm32h7b3i_dk stm32h7b3i_dk) -cp_board_alias(st_stm32h750b_dk stm32h750b_dk/stm32h750xx/ext_flash_app) -cp_board_alias(st_stm32wba65i_dk1 stm32wba65i_dk1) -cp_board_alias(st_nucleo_u575zi_q nucleo_u575zi_q/stm32u575xx) +cp_board_alias(pca10056 nrf52840dk/nrf52840) cp_board_alias(raspberrypi_rpi_pico_zephyr rpi_pico/rp2040) cp_board_alias(raspberrypi_rpi_pico_w_zephyr rpi_pico/rp2040/w) cp_board_alias(raspberrypi_rpi_pico2_zephyr rpi_pico2/rp2350a/m33) cp_board_alias(raspberrypi_rpi_pico2_w_zephyr rpi_pico2/rp2350a/m33/w) -cp_board_alias(st_nucleo_n657x0_q nucleo_n657x0_q/stm32n657xx) +cp_board_alias(renesas_da14695_dk_usb da14695_dk_usb) +cp_board_alias(renesas_ek_ra6m5 ek_ra6m5) +cp_board_alias(renesas_ek_ra8d1 ek_ra8d1) cp_board_alias(silabs_siwx917_dk2605a siwx917_dk2605a) +cp_board_alias(st_nucleo_n657x0_q nucleo_n657x0_q/stm32n657xx) +cp_board_alias(st_nucleo_u575zi_q nucleo_u575zi_q/stm32u575xx) +cp_board_alias(st_stm32h750b_dk stm32h750b_dk/stm32h750xx/ext_flash_app) +cp_board_alias(st_stm32h7b3i_dk stm32h7b3i_dk) +cp_board_alias(st_stm32wba65i_dk1 stm32wba65i_dk1) diff --git a/ports/zephyr-cp/zephyr-config/west.yml b/ports/zephyr-cp/zephyr-config/west.yml index 1d412bd8d5e..8f58a697aad 100644 --- a/ports/zephyr-cp/zephyr-config/west.yml +++ b/ports/zephyr-cp/zephyr-config/west.yml @@ -10,7 +10,7 @@ manifest: path: modules/bsim_hw_models/nrf_hw_models - name: mcuboot url: https://github.com/adafruit/adaboot - revision: a6f8f35a36f6363b3c24b1b3d89b7f7846983c4e + revision: 298d868d9534a705605744dea5899a4d35fdd70e path: bootloader/mcuboot - name: zephyr url: https://github.com/adafruit/zephyr