This is an automated email from the ASF dual-hosted git repository.

acassis pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git

commit 85f57fb50cac0f573460840841710b788814087a
Author: Peter Bee <bijun...@xiaomi.com>
AuthorDate: Wed Jan 18 14:37:05 2023 +0800

    boards/arm/rp2040: add waveshare rp2040 lcd 1.28
    
    Added board files and sample configs for waveshare-rp2040-lcd-1.28.
    https://www.waveshare.com/wiki/RP2040-LCD-1.28
    
    Signed-off-by: Peter Bee <bijun...@xiaomi.com>
---
 boards/Kconfig                                     | 548 +++++++++++----------
 .../arm/rp2040/waveshare-rp2040-lcd-1.28/Kconfig   |   8 +
 .../rp2040/waveshare-rp2040-lcd-1.28/README.txt    | 191 +++++++
 .../configs/composite/defconfig                    |  72 +++
 .../waveshare-rp2040-lcd-1.28/configs/fb/defconfig |  63 +++
 .../configs/lvgl/defconfig                         |  73 +++
 .../configs/nsh-flash/defconfig                    |  49 ++
 .../configs/nsh/defconfig                          |  47 ++
 .../configs/nshsram/defconfig                      |  47 ++
 .../configs/smp/defconfig                          |  54 ++
 .../configs/spisd/defconfig                        |  58 +++
 .../configs/usbmsc/defconfig                       |  65 +++
 .../configs/usbnsh/defconfig                       |  51 ++
 .../waveshare-rp2040-lcd-1.28/include/board.h      | 116 +++++
 .../include/rp2040_i2cdev.h                        |  72 +++
 .../include/rp2040_i2sdev.h                        |  72 +++
 .../include/rp2040_spidev.h                        |  69 +++
 .../include/rp2040_spisd.h                         |  83 ++++
 .../waveshare-rp2040-lcd-1.28/scripts/Make.defs    |  45 ++
 .../scripts/waveshare-rp2040-lcd-1-28-flash.ld     | 118 +++++
 .../scripts/waveshare-rp2040-lcd-1-28-sram.ld      | 104 ++++
 .../rp2040/waveshare-rp2040-lcd-1.28/src/Make.defs |  33 ++
 .../waveshare-rp2040-lcd-1.28/src/rp2040_appinit.c |  78 +++
 .../src/rp2040_boardinitialize.c                   |  87 ++++
 .../waveshare-rp2040-lcd-1.28/src/rp2040_bringup.c |  63 +++
 .../waveshare-rp2040-lcd-1.28/src/rp2040_gpio.c    | 392 +++++++++++++++
 .../waveshare-rp2040-lcd-1.28/src/rp2040_pico.h    |  36 ++
 27 files changed, 2424 insertions(+), 270 deletions(-)

diff --git a/boards/Kconfig b/boards/Kconfig
index 8c0955c031..22c8830441 100644
--- a/boards/Kconfig
+++ b/boards/Kconfig
@@ -370,7 +370,7 @@ config ARCH_BOARD_ESP32S2_SAOLA_1
        select ARCH_HAVE_IRQBUTTONS if ESP32S2_GPIO_IRQ
        ---help---
                This is the ESP32-S2-Saola-1 board
-               
+
 config ARCH_BOARD_FRANZININHO_WIFI
        bool "FRANZININHO WI-FI"
        depends on ARCH_CHIP_ESP32S2WROVER
@@ -379,7 +379,7 @@ config ARCH_BOARD_FRANZININHO_WIFI
        select ARCH_HAVE_IRQBUTTONS if ESP32S2_GPIO_IRQ
        ---help---
                Franzininho Wi-Fi is a development board to evaluate the 
ESP32-S2 SoC
-               
+
 config ARCH_BOARD_ESP32S3_DEVKIT
        bool "Espressif ESP32-S3 DevKit"
        depends on ARCH_CHIP_ESP32S3WROOM1 || ARCH_CHIP_ESP32S3MINI1
@@ -1621,6 +1621,13 @@ config ARCH_BOARD_ADAFRUIT_QT_PY_RP2040
                This is a port to the Adafruit QT Py RP2040 board.
                Support is derived from Raspberry Pi Pico support.
 
+config ARCH_BOARD_WAVESHARE_RP2040_LCD_1_28
+       bool "Waveshare RP2040 LCD 1.28 board"
+       depends on ARCH_CHIP_RP2040
+       ---help---
+               This is a port to the Waveshare RP2040 LCD 1.28 board.
+               Support is derived from Raspberry Pi Pico support.
+
 config ARCH_BOARD_RX65N
        bool "RX65N renesas board"
        depends on ARCH_CHIP_R5F565NEDDFC
@@ -2693,274 +2700,275 @@ endif #ARCH_BOARD_CUSTOM
 
 config ARCH_BOARD
        string
-       default "amber"                    if ARCH_BOARD_AMBER
-       default "arduino-mega2560"         if ARCH_BOARD_ARDUINO_MEGA2560
-       default "arduino-due"              if ARCH_BOARD_ARDUINO_DUE
-       default "arduino-m0"               if ARCH_BOARD_ARDUINO_M0
-       default "arty_a7"                  if ARCH_BOARD_ARTY_A7
-       default "avr32dev1"                if ARCH_BOARD_AVR32DEV1
-       default "axoloti"                  if ARCH_BOARD_AXOLOTI
-       default "bambino-200e"             if ARCH_BOARD_BAMBINO_200E
-       default "bl602evb"                 if ARCH_BOARD_BL602EVB
-       default "c5471evm"                 if ARCH_BOARD_C5471EVM
-       default "circuit-express"          if ARCH_BOARD_CIRCUIT_EXPRESS
-       default "clicker2-stm32"           if ARCH_BOARD_CLICKER2_STM32
-       default "cloudctrl"                if ARCH_BOARD_CLOUDCTRL
-       default "demo9s12ne64"             if ARCH_BOARD_DEMOS92S12NEC64
-       default "dk-tm4c129x"              if ARCH_BOARD_DK_TM4C129X
-       default "ea3131"                   if ARCH_BOARD_EA3131
-       default "ea3152"                   if ARCH_BOARD_EA3152
-       default "eagle100"                 if ARCH_BOARD_EAGLE100
-       default "efm32-g8xx-stk"           if ARCH_BOARD_EFM32G8XXSTK
-       default "efm32gg-stk3700"          if ARCH_BOARD_EFM32GG_STK3700
-       default "ekk-lm3s9b96"             if ARCH_BOARD_EKKLM3S9B96
-       default "emw3162"                  if ARCH_BOARD_EMW3162
-       default "quickfeather"             if ARCH_BOARD_QUICKFEATHER
-       default "esp32-devkitc"            if ARCH_BOARD_ESP32_DEVKITC
-       default "ttgo_eink5_v2"            if ARCH_BOARD_TTGO_T5V2_ESP32
-       default "esp32-ethernet-kit"       if ARCH_BOARD_ESP32_ETHERNETKIT
-       default "esp32-lyrat"              if ARCH_BOARD_ESP32_LYRAT
-       default "esp32-sparrow-kit"        if ARCH_BOARD_ESP32_SPARROWKIT
-       default "esp32-wrover-kit"         if ARCH_BOARD_ESP32_WROVERKIT
-       default "esp32c3-devkit"           if ARCH_BOARD_ESP32C3_DEVKIT
-       default "esp32c3-devkit-rust-1"    if ARCH_BOARD_ESP32C3_DEVKIT_RUST1
-       default "esp32s2-kaluga-1"         if ARCH_BOARD_ESP32S2_KALUGA_1
-       default "esp32s2-saola-1"          if ARCH_BOARD_ESP32S2_SAOLA_1
-       default "franzininho-wifi"         if ARCH_BOARD_FRANZININHO_WIFI
-       default "esp32s3-devkit"           if ARCH_BOARD_ESP32S3_DEVKIT
-       default "esp32s3-eye"              if ARCH_BOARD_ESP32S3_EYE
-       default "et-stm32-stamp"           if ARCH_BOARD_ET_STM32_STAMP
-       default "tlsr8278adk80d"           if ARCH_BOARD_TLSR8278ADK80D
-       default "ez80f910200kitg"          if ARCH_BOARD_EZ80F910200KITG
-       default "ez80f910200zco"           if ARCH_BOARD_EZ80F910200ZCO
-       default "fire-stm32v2"             if ARCH_BOARD_FIRE_STM32
-       default "chipkit-wifire"           if ARCH_BOARD_CHIPKIT_WIFIRE
-       default "flipnclick-pic32mz"       if ARCH_BOARD_FLIPNCLICK_PIC32MZ
-       default "flipnclick-sam3x"         if ARCH_BOARD_FLIPNCLICK_SAM3X
-       default "freedom-k28f"             if ARCH_BOARD_FREEDOM_K28F
-       default "freedom-k64f"             if ARCH_BOARD_FREEDOM_K64F
-       default "freedom-k66f"             if ARCH_BOARD_FREEDOM_K66F
-       default "freedom-kl25z"            if ARCH_BOARD_FREEDOM_KL25Z
-       default "freedom-kl26z"            if ARCH_BOARD_FREEDOM_KL26Z
-       default "gd32f450zk-eval"          if ARCH_BOARD_GD32F450ZK_EVAL
-       default "hifive1-revb"             if ARCH_BOARD_HIFIVE1_REVB
-       default "hymini-stm32v"            if ARCH_BOARD_HYMINI_STM32V
-       default "imxrt1020-evk"            if ARCH_BOARD_IMXRT1020_EVK
-       default "imxrt1050-evk"            if ARCH_BOARD_IMXRT1050_EVK
-       default "imxrt1060-evk"            if ARCH_BOARD_IMXRT1060_EVK
-       default "imxrt1064-evk"            if ARCH_BOARD_IMXRT1064_EVK
-       default "kwikstik-k40"             if ARCH_BOARD_KWIKSTIK_K40
-       default "launchxl-cc1310"          if ARCH_BOARD_LAUNCHXL_CC1310
-       default "launchxl-cc1312r1"        if ARCH_BOARD_LAUNCHXL_CC1312R1
-       default "launchxl-tms57004"        if ARCH_BOARD_LAUNCHXL_TMS57004
-       default "lc823450-xgevk"           if ARCH_BOARD_LC823450_XGEVK
-       default "lincoln60"                if ARCH_BOARD_LINCOLN60
-       default "lm3s6432-s2e"             if ARCH_BOARD_LM3S6432S2E
-       default "lm3s6965-ek"              if ARCH_BOARD_LM3S6965EK
-       default "lm3s8962-ek"              if ARCH_BOARD_LM3S8962EK
-       default "lm4f120-launchpad"        if ARCH_BOARD_LM4F120_LAUNCHPAD
-       default "lpc4088-devkit"           if ARCH_BOARD_LPC4088_DEVKIT
-       default "lpc4088-quickstart"       if ARCH_BOARD_LPC4088_QUICKSTART
-       default "lpc4330-xplorer"          if ARCH_BOARD_LPC4330_XPLORER
-       default "lpc4337-ws"               if ARCH_BOARD_LPC4337_WS
-       default "lpc4357-evb"              if ARCH_BOARD_LPC4357_EVB
-       default "lpc4370-link2"            if ARCH_BOARD_LPC4370_LINK2
-       default "lpcxpresso-lpc1768"       if ARCH_BOARD_LPCXPRESSO
-       default "lpcxpresso-lpc54628"      if ARCH_BOARD_LPCXPRESSO_LPC54628
-       default "lx_cpu"                   if ARCH_BOARD_LX_CPU
-       default "maix-bit"                 if ARCH_BOARD_MAIX_BIT
-       default "smartl-c906"              if ARCH_BOARD_SMARTL_C906
-       default "icicle"                   if ARCH_BOARD_ICICLE_MPFS
-       default "m100pfsevp"               if ARCH_BOARD_M100PFSEVP_MPFS
-       default "maple"                    if ARCH_BOARD_MAPLE
-       default "makerlisp"                if ARCH_BOARD_MAKERLISP
-       default "max32660-evsys"           if ARCH_BOARD_MAX32660_EVSYS
-       default "mbed"                     if ARCH_BOARD_MBED
-       default "mcb1700"                  if ARCH_BOARD_MCB1700
-       default "mcu123-lpc214x"           if ARCH_BOARD_MCU123_LPC214X
-       default "metro-m4"                 if ARCH_BOARD_METRO_M4
-       default "micropendous3"            if ARCH_BOARD_MICROPENDOUS3
-       default "mirtoo"                   if ARCH_BOARD_MIRTOO
-       default "misoc"                    if ARCH_BOARD_MISOC_QEMU || 
ARCH_BOARD_MISOC_VERILATOR
-       default "moteino-mega"             if ARCH_BOARD_MOTEINO_MEGA
-       default "ne64badge"                if ARCH_BOARD_NE64BADGE
-       default "nrf52-feather"            if ARCH_BOARD_NRF52_FEATHER
-       default "nrf52832-sparkfun"        if ARCH_BOARD_NRF52832_SPARKFUN
-       default "nrf52832-mdk"             if ARCH_BOARD_NRF52832_MDK
-       default "nrf52832-dk"              if ARCH_BOARD_NRF52832_DK
-       default "nrf52840-dk"              if ARCH_BOARD_NRF52840_DK
-       default "nrf52840-dongle"          if ARCH_BOARD_NRF52840_DONGLE
-       default "nrf5340-audio-dk"         if ARCH_BOARD_NRF5340_AUDIO_DK
-       default "ntosd-dm320"              if ARCH_BOARD_NTOSD_DM320
-       default "nucleo-144"               if ARCH_BOARD_NUCLEO_144
-       default "nucleo-f072rb"            if ARCH_BOARD_NUCLEO_F072RB
-       default "nucleo-f091rc"            if ARCH_BOARD_NUCLEO_F091RC
-       default "nucleo-f103rb"            if ARCH_BOARD_NUCLEO_F103RB
-       default "nucleo-f207zg"            if ARCH_BOARD_NUCLEO_F207ZG
-       default "nucleo-f302r8"            if ARCH_BOARD_NUCLEO_F302R8
-       default "nucleo-f303re"            if ARCH_BOARD_NUCLEO_F303RE
-       default "nucleo-f303ze"            if ARCH_BOARD_NUCLEO_F303ZE
-       default "nucleo-f334r8"            if ARCH_BOARD_NUCLEO_F334R8
-       default "nucleo-f4x1re"            if ARCH_BOARD_NUCLEO_F401RE || 
ARCH_BOARD_NUCLEO_F411RE
-       default "nucleo-f429zi"            if ARCH_BOARD_NUCLEO_F429ZI
-       default "nucleo-f446re"            if ARCH_BOARD_NUCLEO_F446RE
-       default "nucleo-f410rb"            if ARCH_BOARD_NUCLEO_F410RB
-       default "nucleo-f412zg"            if ARCH_BOARD_NUCLEO_F412ZG
-       default "stm32g071b-disco"         if ARCH_BOARD_STM32G071B_DISCO
-       default "nucleo-g070rb"            if ARCH_BOARD_NUCLEO_G070RB
-       default "nucleo-g071rb"            if ARCH_BOARD_NUCLEO_G071RB
-       default "nucleo-h743zi"            if ARCH_BOARD_NUCLEO_H743ZI
-       default "nucleo-h743zi2"           if ARCH_BOARD_NUCLEO_H743ZI2
-       default "nucleo-l073rz"            if ARCH_BOARD_NUCLEO_L073RZ
-       default "nucleo-l152re"            if ARCH_BOARD_NUCLEO_L152RE
-       default "nucleo-l432kc"            if ARCH_BOARD_NUCLEO_L432KC
-       default "nucleo-l452re"            if ARCH_BOARD_NUCLEO_L452RE
-       default "nucleo-l476rg"            if ARCH_BOARD_NUCLEO_L476RG
-       default "steval-stlcs01v1"         if ARCH_BOARD_STEVAL_STLCS01V1
-       default "nucleo-l496zg"            if ARCH_BOARD_NUCLEO_L496ZG
-       default "nucleo-l552ze"            if ARCH_BOARD_NUCLEO_L552ZE
-       default "flipperzero"              if ARCH_BOARD_FLIPPERZERO
-       default "nucleo-wb55rg"            if ARCH_BOARD_NUCLEO_WB55RG
-       default "nucleo-wl55jc"            if ARCH_BOARD_NUCLEO_WL55JC
-       default "nutiny-nuc120"            if ARCH_BOARD_NUTINY_NUC120
-       default "olimex-efm32g880f128-stk" if 
ARCH_BOARD_OLIMEX_EFM32G880F128_STK
-       default "olimex-lpc1766stk"        if ARCH_BOARD_LPC1766STK
-       default "olimex-lpc2378"           if ARCH_BOARD_OLIMEXLPC2378
-       default "olimex-lpc-h3131"         if ARCH_BOARD_OLIMEX_LPC_H3131
-       default "olimex-stm32-h405"        if ARCH_BOARD_OLIMEX_STM32H405
-       default "olimex-stm32-h407"        if ARCH_BOARD_OLIMEX_STM32H407
-       default "olimex-stm32-e407"        if ARCH_BOARD_OLIMEX_STM32E407
-       default "olimex-stm32-p107"        if ARCH_BOARD_OLIMEX_STM32P107
-       default "olimex-stm32-p207"        if ARCH_BOARD_OLIMEX_STM32P207
-       default "olimex-stm32-p407"        if ARCH_BOARD_OLIMEX_STM32P407
-       default "olimex-strp711"           if ARCH_BOARD_OLIMEX_STRP711
-       default "olimexino-stm32"          if ARCH_BOARD_OLIMEXINO_STM32
-       default "omnibusf4"                if ARCH_BOARD_OMNIBUSF4
-       default "open1788"                 if ARCH_BOARD_OPEN1788
-       default "or1k"                     if ARCH_BOARD_OR1K
-       default "p112"                     if ARCH_BOARD_P112
-       default "pcduino-a10"              if ARCH_BOARD_PCDUINO_A10
-       default "beaglebone-black"         if ARCH_BOARD_BEAGLEBONE_BLACK
-       default "pic32mx-starterkit"       if ARCH_BOARD_PIC32MX_STARTERKIT
-       default "pic32mx7mmb"              if ARCH_BOARD_PIC32MX7MMB
-       default "pic32mz-starterkit"       if ARCH_BOARD_PIC32MZ_STARTERKIT
-       default "qemu-i486"                if ARCH_BOARD_QEMU_I486
-       default "intel64-qemu"             if ARCH_BOARD_INTEL64_QEMU
-       default "raspberrypi-pico"         if ARCH_BOARD_RASPBERRYPI_PICO
-       default "raspberrypi-pico-w"       if ARCH_BOARD_RASPBERRYPI_PICO_W
-       default "pimoroni-tiny2040"        if ARCH_BOARD_PIMORONI_TINY2040
-       default "adafruit-feather-rp2040"  if ARCH_BOARD_ADAFRUIT_FEATHER_RP2040
-       default "adafruit-kb2040"          if ARCH_BOARD_ADAFRUIT_KB2040
-       default "adafruit-qt-py-rp2040"    if ARCH_BOARD_ADAFRUIT_QT_PY_RP2040
-       default "rx65n"                    if ARCH_BOARD_RX65N
-       default "rx65n-rsk1mb"             if ARCH_BOARD_RX65N_RSK1MB
-       default "rx65n-rsk2mb"             if ARCH_BOARD_RX65N_RSK2MB
-       default "rx65n-grrose"             if ARCH_BOARD_RX65N_GRROSE
-       default "s32k118evb"               if ARCH_BOARD_S32K118EVB
-       default "s32k144evb"               if ARCH_BOARD_S32K144EVB
-       default "rddrone-bms772"           if ARCH_BOARD_RDDRONE_BMS772
-       default "s32k146evb"               if ARCH_BOARD_S32K146EVB
-       default "ucans32k146"              if ARCH_BOARD_UCANS32K146
-       default "s32k148evb"               if ARCH_BOARD_S32K148EVB
-       default "s32k344evb"               if ARCH_BOARD_S32K344EVB
-       default "mr-canhubk3"              if ARCH_BOARD_MR_CANHUBK3
-       default "rv32m1-vega"              if ARCH_BOARD_RV32M1_VEGA
-       default "rv-virt"                  if ARCH_BOARD_QEMU_RV_VIRT
-       default "sabre-6quad"              if ARCH_BOARD_SABRE_6QUAD
-       default "qemu-armv8a"              if ARCH_BOARD_QEMU_ARMV8A
-       default "pinephone"                if ARCH_BOARD_PINEPHONE
-       default "sama5d2-xult"             if ARCH_BOARD_SAMA5D2_XULT
-       default "giant-board"              if ARCH_BOARD_GIANT_BOARD
-       default "jupiter-nano"             if ARCH_BOARD_JUPITER_NANO
-       default "sama5d3x-ek"              if ARCH_BOARD_SAMA5D3X_EK
-       default "sama5d3-xplained"         if ARCH_BOARD_SAMA5D3_XPLAINED
-       default "sama5d4-ek"               if ARCH_BOARD_SAMA5D4_EK
-       default "samd20-xplained"          if ARCH_BOARD_SAMD20_XPLAINED
-       default "samd21-xplained"          if ARCH_BOARD_SAMD21_XPLAINED
-       default "same54-xplained-pro"      if ARCH_BOARD_SAME54_XPLAINED_PRO
-       default "saml21-xplained"          if ARCH_BOARD_SAML21_XPLAINED
-       default "sam3u-ek"                 if ARCH_BOARD_SAM3UEK
-       default "sam4cmp-db"               if ARCH_BOARD_SAM4CMP_DB
-       default "sam4e-ek"                 if ARCH_BOARD_SAM4EEK
-       default "sam4l-xplained"           if ARCH_BOARD_SAM4L_XPLAINED
-       default "sam4s-xplained"           if ARCH_BOARD_SAM4S_XPLAINED
-       default "sam4s-xplained-pro"       if ARCH_BOARD_SAM4S_XPLAINED_PRO
-       default "same70-qmtech"            if ARCH_BOARD_SAME70_QMTECH
-       default "same70-xplained"          if ARCH_BOARD_SAME70_XPLAINED
-       default "samv71-xult"              if ARCH_BOARD_SAMV71_XULT
-       default "shenzhou"                 if ARCH_BOARD_SHENZHOU
-       default "skp16c26"                 if ARCH_BOARD_SKP16C26
-       default "photon"                   if ARCH_BOARD_PHOTON
-       default "pnev5180b"                if ARCH_BOARD_PNEV5180B
-       default "stm32butterfly2"          if ARCH_BOARD_STM32_BUTTERFLY2
-       default "stm32_tiny"               if ARCH_BOARD_STM32_TINY
-       default "stm32l0538-disco"         if ARCH_BOARD_STM32L0538_DISCO
-       default "stm32f051-discovery"      if ARCH_BOARD_STM32F051_DISCOVERY
-       default "stm32f072-discovery"      if ARCH_BOARD_STM32F072_DISCOVERY
-       default "stm32f103-minimum"        if ARCH_BOARD_STM32F103_MINIMUM
-       default "stm32f411-minimum"        if ARCH_BOARD_STM32F411_MINIMUM
-       default "stm3210e-eval"            if ARCH_BOARD_STM3210E_EVAL
-       default "stm3220g-eval"            if ARCH_BOARD_STM3220G_EVAL
-       default "stm3240g-eval"            if ARCH_BOARD_STM3240G_EVAL
-       default "stm32f3discovery"         if ARCH_BOARD_STM32F3_DISCOVERY
-       default "stm32f334-disco"          if ARCH_BOARD_STM32F334_DISCO
-       default "stm32f4discovery"         if ARCH_BOARD_STM32F4_DISCOVERY
-       default "stm32f411e-disco"         if ARCH_BOARD_STM32F411E_DISCO
-       default "stm32f429i-disco"         if ARCH_BOARD_STM32F429I_DISCO
-       default "stm32f746g-disco"         if ARCH_BOARD_STM32F746G_DISCO
-       default "stm32f769i-disco"         if ARCH_BOARD_STM32F769I_DISCO
-       default "steval-eth001v1"          if ARCH_BOARD_STEVAL_ETH001V1
-       default "stm32h747i-disco"         if ARCH_BOARD_STM32H747I_DISCO
-       default "stm32f746-ws"             if ARCH_BOARD_STM32F746_WS
-       default "b-g474e-dpow1"            if ARCH_BOARD_B_G474E_DPOW1
-       default "b-g431b-esc1"             if ARCH_BOARD_B_G431B_ESC1
-       default "nucleo-g431kb"            if ARCH_BOARD_NUCLEO_G431KB
-       default "nucleo-g431rb"            if ARCH_BOARD_NUCLEO_G431RB
-       default "nucleo-g474re"            if ARCH_BOARD_NUCLEO_G474RE
-       default "b-l072z-lrwan1"           if ARCH_BOARD_B_L072Z_LRWAN1
-       default "b-l475e-iot01a"           if ARCH_BOARD_B_L475E_IOT01A
-       default "b-u585i-iot02a"           if ARCH_BOARD_B_U585I_IOT02A
-       default "stm32l476vg-disco"        if ARCH_BOARD_STM32L476VG_DISCO
-       default "stm32l476-mdk"            if ARCH_BOARD_STM32L476_MDK
-       default "stm32l4r9ai-disco"        if ARCH_BOARD_STM32L4R9AI_DISCO
-       default "stm32l562e-dk"            if ARCH_BOARD_STM32L562E_DK
-       default "stm32ldiscovery"          if ARCH_BOARD_STM32L_DISCOVERY
-       default "stm32vldiscovery"         if ARCH_BOARD_STM32VL_DISCOVERY
-       default "mikroe-stm32f4"           if ARCH_BOARD_MIKROE_STM32F4
-       default "sure-pic32mx"             if ARCH_BOARD_SUREPIC32MX
-       default "teensy-2.0"               if ARCH_BOARD_TEENSY_20
-       default "teensy-3.x"               if ARCH_BOARD_TEENSY_3X
-       default "teensy-4.x"               if ARCH_BOARD_TEENSY_4X
-       default "teensy-lc"                if ARCH_BOARD_TEENSY_LC
-       default "tm4c123g-launchpad"       if ARCH_BOARD_TM4C123G_LAUNCHPAD
-       default "tm4c1294-launchpad"       if ARCH_BOARD_TM4C1294_LAUNCHPAD
-       default "tm4c129e-launchpad"       if ARCH_BOARD_TM4C129E_LAUNCHPAD
-       default "tms570ls31x-usb-kit"      if ARCH_BOARD_TMS570LS31X_USB_KIT
-       default "lilygo_tbeam_lora_gps"    if ARCH_BOARD_LILYGO_TBEAM_LORA_GPS
-       default "ttgo_lora_esp32"          if ARCH_BOARD_TTGO_LORA_ESP32
-       default "ttgo_t_display_esp32"     if ARCH_BOARD_TTGO_T_DISPLAY_ESP32
-       default "twr-k60n512"              if ARCH_BOARD_TWR_K60N512
-       default "twr-k64f120m"             if ARCH_BOARD_TWR_K64F120M
-       default "u-blox-c027"              if ARCH_BOARD_U_BLOX_C027
-       default "ubw32"                    if ARCH_BOARD_UBW32
-       default "us7032evb1"               if ARCH_BOARD_US7032EVB1
-       default "viewtool-stm32f107"       if ARCH_BOARD_VIEWTOOL_STM32F107
-       default "xmc4500-relax"            if ARCH_BOARD_XMC4500RELAX
-       default "xmc4700-relax"            if ARCH_BOARD_XMC4700RELAX
-       default "z16f2800100zcog"          if ARCH_BOARD_Z16F2800100ZCOG
-       default "z20x"                     if ARCH_BOARD_Z20X
-       default "z80sim"                   if ARCH_BOARD_Z80SIM
-       default "z8encore000zco"           if ARCH_BOARD_Z8ENCORE000ZCO
-       default "z8f64200100kit"           if ARCH_BOARD_Z8F64200100KIT
-       default "zp214xpa"                 if ARCH_BOARD_ZP214XPA
-       default "zkit-arm-1769"            if ARCH_BOARD_ZKITARM
-       default "phy6222"                  if ARCH_BOARD_PHY6222
-       default "sim"                      if ARCH_BOARD_SIM
-       default "moxa"                     if ARCH_BOARD_MOXA
-       default "spresense"                if ARCH_BOARD_SPRESENSE
-       default "xx3803"                   if ARCH_BOARD_XX3803
-       default "xx3823"                   if ARCH_BOARD_XX3823
-       default "s698pm-dkit"              if ARCH_BOARD_S698PM_DKIT
+       default "amber"                     if ARCH_BOARD_AMBER
+       default "arduino-mega2560"          if ARCH_BOARD_ARDUINO_MEGA2560
+       default "arduino-due"               if ARCH_BOARD_ARDUINO_DUE
+       default "arduino-m0"                if ARCH_BOARD_ARDUINO_M0
+       default "arty_a7"                   if ARCH_BOARD_ARTY_A7
+       default "avr32dev1"                 if ARCH_BOARD_AVR32DEV1
+       default "axoloti"                   if ARCH_BOARD_AXOLOTI
+       default "bambino-200e"              if ARCH_BOARD_BAMBINO_200E
+       default "bl602evb"                  if ARCH_BOARD_BL602EVB
+       default "c5471evm"                  if ARCH_BOARD_C5471EVM
+       default "circuit-express"           if ARCH_BOARD_CIRCUIT_EXPRESS
+       default "clicker2-stm32"            if ARCH_BOARD_CLICKER2_STM32
+       default "cloudctrl"                 if ARCH_BOARD_CLOUDCTRL
+       default "demo9s12ne64"              if ARCH_BOARD_DEMOS92S12NEC64
+       default "dk-tm4c129x"               if ARCH_BOARD_DK_TM4C129X
+       default "ea3131"                    if ARCH_BOARD_EA3131
+       default "ea3152"                    if ARCH_BOARD_EA3152
+       default "eagle100"                  if ARCH_BOARD_EAGLE100
+       default "efm32-g8xx-stk"            if ARCH_BOARD_EFM32G8XXSTK
+       default "efm32gg-stk3700"           if ARCH_BOARD_EFM32GG_STK3700
+       default "ekk-lm3s9b96"              if ARCH_BOARD_EKKLM3S9B96
+       default "emw3162"                   if ARCH_BOARD_EMW3162
+       default "quickfeather"              if ARCH_BOARD_QUICKFEATHER
+       default "esp32-devkitc"             if ARCH_BOARD_ESP32_DEVKITC
+       default "ttgo_eink5_v2"             if ARCH_BOARD_TTGO_T5V2_ESP32
+       default "esp32-ethernet-kit"        if ARCH_BOARD_ESP32_ETHERNETKIT
+       default "esp32-lyrat"               if ARCH_BOARD_ESP32_LYRAT
+       default "esp32-sparrow-kit"         if ARCH_BOARD_ESP32_SPARROWKIT
+       default "esp32-wrover-kit"          if ARCH_BOARD_ESP32_WROVERKIT
+       default "esp32c3-devkit"            if ARCH_BOARD_ESP32C3_DEVKIT
+       default "esp32c3-devkit-rust-1"     if ARCH_BOARD_ESP32C3_DEVKIT_RUST1
+       default "esp32s2-kaluga-1"          if ARCH_BOARD_ESP32S2_KALUGA_1
+       default "esp32s2-saola-1"           if ARCH_BOARD_ESP32S2_SAOLA_1
+       default "franzininho-wifi"          if ARCH_BOARD_FRANZININHO_WIFI
+       default "esp32s3-devkit"            if ARCH_BOARD_ESP32S3_DEVKIT
+       default "esp32s3-eye"               if ARCH_BOARD_ESP32S3_EYE
+       default "et-stm32-stamp"            if ARCH_BOARD_ET_STM32_STAMP
+       default "tlsr8278adk80d"            if ARCH_BOARD_TLSR8278ADK80D
+       default "ez80f910200kitg"           if ARCH_BOARD_EZ80F910200KITG
+       default "ez80f910200zco"            if ARCH_BOARD_EZ80F910200ZCO
+       default "fire-stm32v2"              if ARCH_BOARD_FIRE_STM32
+       default "chipkit-wifire"            if ARCH_BOARD_CHIPKIT_WIFIRE
+       default "flipnclick-pic32mz"        if ARCH_BOARD_FLIPNCLICK_PIC32MZ
+       default "flipnclick-sam3x"          if ARCH_BOARD_FLIPNCLICK_SAM3X
+       default "freedom-k28f"              if ARCH_BOARD_FREEDOM_K28F
+       default "freedom-k64f"              if ARCH_BOARD_FREEDOM_K64F
+       default "freedom-k66f"              if ARCH_BOARD_FREEDOM_K66F
+       default "freedom-kl25z"             if ARCH_BOARD_FREEDOM_KL25Z
+       default "freedom-kl26z"             if ARCH_BOARD_FREEDOM_KL26Z
+       default "gd32f450zk-eval"           if ARCH_BOARD_GD32F450ZK_EVAL
+       default "hifive1-revb"              if ARCH_BOARD_HIFIVE1_REVB
+       default "hymini-stm32v"             if ARCH_BOARD_HYMINI_STM32V
+       default "imxrt1020-evk"             if ARCH_BOARD_IMXRT1020_EVK
+       default "imxrt1050-evk"             if ARCH_BOARD_IMXRT1050_EVK
+       default "imxrt1060-evk"             if ARCH_BOARD_IMXRT1060_EVK
+       default "imxrt1064-evk"             if ARCH_BOARD_IMXRT1064_EVK
+       default "kwikstik-k40"              if ARCH_BOARD_KWIKSTIK_K40
+       default "launchxl-cc1310"           if ARCH_BOARD_LAUNCHXL_CC1310
+       default "launchxl-cc1312r1"         if ARCH_BOARD_LAUNCHXL_CC1312R1
+       default "launchxl-tms57004"         if ARCH_BOARD_LAUNCHXL_TMS57004
+       default "lc823450-xgevk"            if ARCH_BOARD_LC823450_XGEVK
+       default "lincoln60"                 if ARCH_BOARD_LINCOLN60
+       default "lm3s6432-s2e"              if ARCH_BOARD_LM3S6432S2E
+       default "lm3s6965-ek"               if ARCH_BOARD_LM3S6965EK
+       default "lm3s8962-ek"               if ARCH_BOARD_LM3S8962EK
+       default "lm4f120-launchpad"         if ARCH_BOARD_LM4F120_LAUNCHPAD
+       default "lpc4088-devkit"            if ARCH_BOARD_LPC4088_DEVKIT
+       default "lpc4088-quickstart"        if ARCH_BOARD_LPC4088_QUICKSTART
+       default "lpc4330-xplorer"           if ARCH_BOARD_LPC4330_XPLORER
+       default "lpc4337-ws"                if ARCH_BOARD_LPC4337_WS
+       default "lpc4357-evb"               if ARCH_BOARD_LPC4357_EVB
+       default "lpc4370-link2"             if ARCH_BOARD_LPC4370_LINK2
+       default "lpcxpresso-lpc1768"        if ARCH_BOARD_LPCXPRESSO
+       default "lpcxpresso-lpc54628"       if ARCH_BOARD_LPCXPRESSO_LPC54628
+       default "lx_cpu"                    if ARCH_BOARD_LX_CPU
+       default "maix-bit"                  if ARCH_BOARD_MAIX_BIT
+       default "smartl-c906"               if ARCH_BOARD_SMARTL_C906
+       default "icicle"                    if ARCH_BOARD_ICICLE_MPFS
+       default "m100pfsevp"                if ARCH_BOARD_M100PFSEVP_MPFS
+       default "maple"                     if ARCH_BOARD_MAPLE
+       default "makerlisp"                 if ARCH_BOARD_MAKERLISP
+       default "max32660-evsys"            if ARCH_BOARD_MAX32660_EVSYS
+       default "mbed"                      if ARCH_BOARD_MBED
+       default "mcb1700"                   if ARCH_BOARD_MCB1700
+       default "mcu123-lpc214x"            if ARCH_BOARD_MCU123_LPC214X
+       default "metro-m4"                  if ARCH_BOARD_METRO_M4
+       default "micropendous3"             if ARCH_BOARD_MICROPENDOUS3
+       default "mirtoo"                    if ARCH_BOARD_MIRTOO
+       default "misoc"                     if ARCH_BOARD_MISOC_QEMU || 
ARCH_BOARD_MISOC_VERILATOR
+       default "moteino-mega"              if ARCH_BOARD_MOTEINO_MEGA
+       default "ne64badge"                 if ARCH_BOARD_NE64BADGE
+       default "nrf52-feather"             if ARCH_BOARD_NRF52_FEATHER
+       default "nrf52832-sparkfun"         if ARCH_BOARD_NRF52832_SPARKFUN
+       default "nrf52832-mdk"              if ARCH_BOARD_NRF52832_MDK
+       default "nrf52832-dk"               if ARCH_BOARD_NRF52832_DK
+       default "nrf52840-dk"               if ARCH_BOARD_NRF52840_DK
+       default "nrf52840-dongle"           if ARCH_BOARD_NRF52840_DONGLE
+       default "nrf5340-audio-dk"          if ARCH_BOARD_NRF5340_AUDIO_DK
+       default "ntosd-dm320"               if ARCH_BOARD_NTOSD_DM320
+       default "nucleo-144"                if ARCH_BOARD_NUCLEO_144
+       default "nucleo-f072rb"             if ARCH_BOARD_NUCLEO_F072RB
+       default "nucleo-f091rc"             if ARCH_BOARD_NUCLEO_F091RC
+       default "nucleo-f103rb"             if ARCH_BOARD_NUCLEO_F103RB
+       default "nucleo-f207zg"             if ARCH_BOARD_NUCLEO_F207ZG
+       default "nucleo-f302r8"             if ARCH_BOARD_NUCLEO_F302R8
+       default "nucleo-f303re"             if ARCH_BOARD_NUCLEO_F303RE
+       default "nucleo-f303ze"             if ARCH_BOARD_NUCLEO_F303ZE
+       default "nucleo-f334r8"             if ARCH_BOARD_NUCLEO_F334R8
+       default "nucleo-f4x1re"             if ARCH_BOARD_NUCLEO_F401RE || 
ARCH_BOARD_NUCLEO_F411RE
+       default "nucleo-f429zi"             if ARCH_BOARD_NUCLEO_F429ZI
+       default "nucleo-f446re"             if ARCH_BOARD_NUCLEO_F446RE
+       default "nucleo-f410rb"             if ARCH_BOARD_NUCLEO_F410RB
+       default "nucleo-f412zg"             if ARCH_BOARD_NUCLEO_F412ZG
+       default "stm32g071b-disco"          if ARCH_BOARD_STM32G071B_DISCO
+       default "nucleo-g070rb"             if ARCH_BOARD_NUCLEO_G070RB
+       default "nucleo-g071rb"             if ARCH_BOARD_NUCLEO_G071RB
+       default "nucleo-h743zi"             if ARCH_BOARD_NUCLEO_H743ZI
+       default "nucleo-h743zi2"            if ARCH_BOARD_NUCLEO_H743ZI2
+       default "nucleo-l073rz"             if ARCH_BOARD_NUCLEO_L073RZ
+       default "nucleo-l152re"             if ARCH_BOARD_NUCLEO_L152RE
+       default "nucleo-l432kc"             if ARCH_BOARD_NUCLEO_L432KC
+       default "nucleo-l452re"             if ARCH_BOARD_NUCLEO_L452RE
+       default "nucleo-l476rg"             if ARCH_BOARD_NUCLEO_L476RG
+       default "steval-stlcs01v1"          if ARCH_BOARD_STEVAL_STLCS01V1
+       default "nucleo-l496zg"             if ARCH_BOARD_NUCLEO_L496ZG
+       default "nucleo-l552ze"             if ARCH_BOARD_NUCLEO_L552ZE
+       default "flipperzero"               if ARCH_BOARD_FLIPPERZERO
+       default "nucleo-wb55rg"             if ARCH_BOARD_NUCLEO_WB55RG
+       default "nucleo-wl55jc"             if ARCH_BOARD_NUCLEO_WL55JC
+       default "nutiny-nuc120"             if ARCH_BOARD_NUTINY_NUC120
+       default "olimex-efm32g880f128-stk"  if 
ARCH_BOARD_OLIMEX_EFM32G880F128_STK
+       default "olimex-lpc1766stk"         if ARCH_BOARD_LPC1766STK
+       default "olimex-lpc2378"            if ARCH_BOARD_OLIMEXLPC2378
+       default "olimex-lpc-h3131"          if ARCH_BOARD_OLIMEX_LPC_H3131
+       default "olimex-stm32-h405"         if ARCH_BOARD_OLIMEX_STM32H405
+       default "olimex-stm32-h407"         if ARCH_BOARD_OLIMEX_STM32H407
+       default "olimex-stm32-e407"         if ARCH_BOARD_OLIMEX_STM32E407
+       default "olimex-stm32-p107"         if ARCH_BOARD_OLIMEX_STM32P107
+       default "olimex-stm32-p207"         if ARCH_BOARD_OLIMEX_STM32P207
+       default "olimex-stm32-p407"         if ARCH_BOARD_OLIMEX_STM32P407
+       default "olimex-strp711"            if ARCH_BOARD_OLIMEX_STRP711
+       default "olimexino-stm32"           if ARCH_BOARD_OLIMEXINO_STM32
+       default "omnibusf4"                 if ARCH_BOARD_OMNIBUSF4
+       default "open1788"                  if ARCH_BOARD_OPEN1788
+       default "or1k"                      if ARCH_BOARD_OR1K
+       default "p112"                      if ARCH_BOARD_P112
+       default "pcduino-a10"               if ARCH_BOARD_PCDUINO_A10
+       default "beaglebone-black"          if ARCH_BOARD_BEAGLEBONE_BLACK
+       default "pic32mx-starterkit"        if ARCH_BOARD_PIC32MX_STARTERKIT
+       default "pic32mx7mmb"               if ARCH_BOARD_PIC32MX7MMB
+       default "pic32mz-starterkit"        if ARCH_BOARD_PIC32MZ_STARTERKIT
+       default "qemu-i486"                 if ARCH_BOARD_QEMU_I486
+       default "intel64-qemu"              if ARCH_BOARD_INTEL64_QEMU
+       default "raspberrypi-pico"          if ARCH_BOARD_RASPBERRYPI_PICO
+       default "raspberrypi-pico-w"        if ARCH_BOARD_RASPBERRYPI_PICO_W
+       default "pimoroni-tiny2040"         if ARCH_BOARD_PIMORONI_TINY2040
+       default "adafruit-feather-rp2040"   if 
ARCH_BOARD_ADAFRUIT_FEATHER_RP2040
+       default "adafruit-kb2040"           if ARCH_BOARD_ADAFRUIT_KB2040
+       default "adafruit-qt-py-rp2040"     if ARCH_BOARD_ADAFRUIT_QT_PY_RP2040
+       default "waveshare-rp2040-lcd-1.28" if 
ARCH_BOARD_WAVESHARE_RP2040_LCD_1_28
+       default "rx65n"                     if ARCH_BOARD_RX65N
+       default "rx65n-rsk1mb"              if ARCH_BOARD_RX65N_RSK1MB
+       default "rx65n-rsk2mb"              if ARCH_BOARD_RX65N_RSK2MB
+       default "rx65n-grrose"              if ARCH_BOARD_RX65N_GRROSE
+       default "s32k118evb"                if ARCH_BOARD_S32K118EVB
+       default "s32k144evb"                if ARCH_BOARD_S32K144EVB
+       default "rddrone-bms772"            if ARCH_BOARD_RDDRONE_BMS772
+       default "s32k146evb"                if ARCH_BOARD_S32K146EVB
+       default "ucans32k146"               if ARCH_BOARD_UCANS32K146
+       default "s32k148evb"                if ARCH_BOARD_S32K148EVB
+       default "s32k344evb"                if ARCH_BOARD_S32K344EVB
+       default "mr-canhubk3"               if ARCH_BOARD_MR_CANHUBK3
+       default "rv32m1-vega"               if ARCH_BOARD_RV32M1_VEGA
+       default "rv-virt"                   if ARCH_BOARD_QEMU_RV_VIRT
+       default "sabre-6quad"               if ARCH_BOARD_SABRE_6QUAD
+       default "qemu-armv8a"               if ARCH_BOARD_QEMU_ARMV8A
+       default "pinephone"                 if ARCH_BOARD_PINEPHONE
+       default "sama5d2-xult"              if ARCH_BOARD_SAMA5D2_XULT
+       default "giant-board"               if ARCH_BOARD_GIANT_BOARD
+       default "jupiter-nano"              if ARCH_BOARD_JUPITER_NANO
+       default "sama5d3x-ek"               if ARCH_BOARD_SAMA5D3X_EK
+       default "sama5d3-xplained"          if ARCH_BOARD_SAMA5D3_XPLAINED
+       default "sama5d4-ek"                if ARCH_BOARD_SAMA5D4_EK
+       default "samd20-xplained"           if ARCH_BOARD_SAMD20_XPLAINED
+       default "samd21-xplained"           if ARCH_BOARD_SAMD21_XPLAINED
+       default "same54-xplained-pro"       if ARCH_BOARD_SAME54_XPLAINED_PRO
+       default "saml21-xplained"           if ARCH_BOARD_SAML21_XPLAINED
+       default "sam3u-ek"                  if ARCH_BOARD_SAM3UEK
+       default "sam4cmp-db"                if ARCH_BOARD_SAM4CMP_DB
+       default "sam4e-ek"                  if ARCH_BOARD_SAM4EEK
+       default "sam4l-xplained"            if ARCH_BOARD_SAM4L_XPLAINED
+       default "sam4s-xplained"            if ARCH_BOARD_SAM4S_XPLAINED
+       default "sam4s-xplained-pro"        if ARCH_BOARD_SAM4S_XPLAINED_PRO
+       default "same70-qmtech"             if ARCH_BOARD_SAME70_QMTECH
+       default "same70-xplained"           if ARCH_BOARD_SAME70_XPLAINED
+       default "samv71-xult"               if ARCH_BOARD_SAMV71_XULT
+       default "shenzhou"                  if ARCH_BOARD_SHENZHOU
+       default "skp16c26"                  if ARCH_BOARD_SKP16C26
+       default "photon"                    if ARCH_BOARD_PHOTON
+       default "pnev5180b"                 if ARCH_BOARD_PNEV5180B
+       default "stm32butterfly2"           if ARCH_BOARD_STM32_BUTTERFLY2
+       default "stm32_tiny"                if ARCH_BOARD_STM32_TINY
+       default "stm32l0538-disco"          if ARCH_BOARD_STM32L0538_DISCO
+       default "stm32f051-discovery"       if ARCH_BOARD_STM32F051_DISCOVERY
+       default "stm32f072-discovery"       if ARCH_BOARD_STM32F072_DISCOVERY
+       default "stm32f103-minimum"         if ARCH_BOARD_STM32F103_MINIMUM
+       default "stm32f411-minimum"         if ARCH_BOARD_STM32F411_MINIMUM
+       default "stm3210e-eval"             if ARCH_BOARD_STM3210E_EVAL
+       default "stm3220g-eval"             if ARCH_BOARD_STM3220G_EVAL
+       default "stm3240g-eval"             if ARCH_BOARD_STM3240G_EVAL
+       default "stm32f3discovery"          if ARCH_BOARD_STM32F3_DISCOVERY
+       default "stm32f334-disco"           if ARCH_BOARD_STM32F334_DISCO
+       default "stm32f4discovery"          if ARCH_BOARD_STM32F4_DISCOVERY
+       default "stm32f411e-disco"          if ARCH_BOARD_STM32F411E_DISCO
+       default "stm32f429i-disco"          if ARCH_BOARD_STM32F429I_DISCO
+       default "stm32f746g-disco"          if ARCH_BOARD_STM32F746G_DISCO
+       default "stm32f769i-disco"          if ARCH_BOARD_STM32F769I_DISCO
+       default "steval-eth001v1"           if ARCH_BOARD_STEVAL_ETH001V1
+       default "stm32h747i-disco"          if ARCH_BOARD_STM32H747I_DISCO
+       default "stm32f746-ws"              if ARCH_BOARD_STM32F746_WS
+       default "b-g474e-dpow1"             if ARCH_BOARD_B_G474E_DPOW1
+       default "b-g431b-esc1"              if ARCH_BOARD_B_G431B_ESC1
+       default "nucleo-g431kb"             if ARCH_BOARD_NUCLEO_G431KB
+       default "nucleo-g431rb"             if ARCH_BOARD_NUCLEO_G431RB
+       default "nucleo-g474re"             if ARCH_BOARD_NUCLEO_G474RE
+       default "b-l072z-lrwan1"            if ARCH_BOARD_B_L072Z_LRWAN1
+       default "b-l475e-iot01a"            if ARCH_BOARD_B_L475E_IOT01A
+       default "b-u585i-iot02a"            if ARCH_BOARD_B_U585I_IOT02A
+       default "stm32l476vg-disco"         if ARCH_BOARD_STM32L476VG_DISCO
+       default "stm32l476-mdk"             if ARCH_BOARD_STM32L476_MDK
+       default "stm32l4r9ai-disco"         if ARCH_BOARD_STM32L4R9AI_DISCO
+       default "stm32l562e-dk"             if ARCH_BOARD_STM32L562E_DK
+       default "stm32ldiscovery"           if ARCH_BOARD_STM32L_DISCOVERY
+       default "stm32vldiscovery"          if ARCH_BOARD_STM32VL_DISCOVERY
+       default "mikroe-stm32f4"            if ARCH_BOARD_MIKROE_STM32F4
+       default "sure-pic32mx"              if ARCH_BOARD_SUREPIC32MX
+       default "teensy-2.0"                if ARCH_BOARD_TEENSY_20
+       default "teensy-3.x"                if ARCH_BOARD_TEENSY_3X
+       default "teensy-4.x"                if ARCH_BOARD_TEENSY_4X
+       default "teensy-lc"                 if ARCH_BOARD_TEENSY_LC
+       default "tm4c123g-launchpad"        if ARCH_BOARD_TM4C123G_LAUNCHPAD
+       default "tm4c1294-launchpad"        if ARCH_BOARD_TM4C1294_LAUNCHPAD
+       default "tm4c129e-launchpad"        if ARCH_BOARD_TM4C129E_LAUNCHPAD
+       default "tms570ls31x-usb-kit"       if ARCH_BOARD_TMS570LS31X_USB_KIT
+       default "lilygo_tbeam_lora_gps"     if ARCH_BOARD_LILYGO_TBEAM_LORA_GPS
+       default "ttgo_lora_esp32"           if ARCH_BOARD_TTGO_LORA_ESP32
+       default "ttgo_t_display_esp32"      if ARCH_BOARD_TTGO_T_DISPLAY_ESP32
+       default "twr-k60n512"               if ARCH_BOARD_TWR_K60N512
+       default "twr-k64f120m"              if ARCH_BOARD_TWR_K64F120M
+       default "u-blox-c027"               if ARCH_BOARD_U_BLOX_C027
+       default "ubw32"                     if ARCH_BOARD_UBW32
+       default "us7032evb1"                if ARCH_BOARD_US7032EVB1
+       default "viewtool-stm32f107"        if ARCH_BOARD_VIEWTOOL_STM32F107
+       default "xmc4500-relax"             if ARCH_BOARD_XMC4500RELAX
+       default "xmc4700-relax"             if ARCH_BOARD_XMC4700RELAX
+       default "z16f2800100zcog"           if ARCH_BOARD_Z16F2800100ZCOG
+       default "z20x"                      if ARCH_BOARD_Z20X
+       default "z80sim"                    if ARCH_BOARD_Z80SIM
+       default "z8encore000zco"            if ARCH_BOARD_Z8ENCORE000ZCO
+       default "z8f64200100kit"            if ARCH_BOARD_Z8F64200100KIT
+       default "zp214xpa"                  if ARCH_BOARD_ZP214XPA
+       default "zkit-arm-1769"             if ARCH_BOARD_ZKITARM
+       default "phy6222"                   if ARCH_BOARD_PHY6222
+       default "sim"                       if ARCH_BOARD_SIM
+       default "moxa"                      if ARCH_BOARD_MOXA
+       default "spresense"                 if ARCH_BOARD_SPRESENSE
+       default "xx3803"                    if ARCH_BOARD_XX3803
+       default "xx3823"                    if ARCH_BOARD_XX3823
+       default "s698pm-dkit"               if ARCH_BOARD_S698PM_DKIT
 
 comment "Common Board Options"
 
diff --git a/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/Kconfig 
b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/Kconfig
new file mode 100644
index 0000000000..7b71e12c7f
--- /dev/null
+++ b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/Kconfig
@@ -0,0 +1,8 @@
+#
+# For a description of the syntax of this configuration file,
+# see the file kconfig-language.txt in the NuttX tools repository.
+#
+
+if ARCH_BOARD_WAVESHARE_RP2040_LCD_1_28
+
+endif
diff --git a/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/README.txt 
b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/README.txt
new file mode 100644
index 0000000000..3e6f5ad636
--- /dev/null
+++ b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/README.txt
@@ -0,0 +1,191 @@
+README
+======
+
+This directory contains the port of NuttX to the Waveshare RP2040 LCD 1.28.
+See https://www.waveshare.com/wiki/RP2040-LCD-1.28 for information
+about Waveshare RP2040 LCD 1.28.
+
+NuttX supports the following RP2040 capabilities:
+  - UART  (console port)
+    - GPIO 0 (UART0 TX) and GPIO 1 (UART0 RX) are used for the console.
+  - I2C
+  - SPI (master only)
+  - DMAC
+  - PWM
+  - ADC
+  - Watchdog
+  - USB device
+    - MSC, CDC/ACM serial and these composite device are supported.
+    - CDC/ACM serial device can be used for the console.
+  - PIO (RP2040 Programmable I/O)
+  - Flash ROM Boot
+  - SRAM Boot
+    - If Pico SDK is available, nuttx.uf2 file which can be used in
+      BOOTSEL mode will be created.
+  - Persistent flash filesystem in unused flash ROM
+
+NuttX also provide support for these external devices:
+
+  - BMP180 sensor at I2C0 (don't forget to define I2C0 GPIOs at "I2C0 GPIO pin 
assign" in Board Selection menu)
+  - INA219 sensor / module (don't forget to define I2C0 GPIOs at "I2C0 GPIO 
pin assign" in Board Selection menu)
+  - Pico Display Pack (ST7789 LCD)
+    - RGB leds and buttons are not supported yet.
+  - Pico Audio Pack (PCM5100A I2S DAC)
+    - I2S interface is realized by PIO.
+  - WS2812 smart pixel support
+
+There is currently no direct user mode access to these RP2040 hardware 
features:
+  - SPI Slave Mode
+  - SSI
+  - RTC
+  - Timers
+
+Installation
+============
+
+1. Download Raspberry Pi Pico SDK
+
+  $ git clone -b 1.1.2 https://github.com/raspberrypi/pico-sdk.git
+
+2. Set PICO_SDK_PATH environment variable
+
+  $ export PICO_SDK_PATH=<absolute_path_to_pico-sdk_directory>
+
+3. Configure and build NuttX
+
+  $ git clone https://github.com/apache/nuttx.git nuttx
+  $ git clone https://github.com/apache/nuttx-apps.git apps
+  $ cd nuttx
+  $ make distclean
+  $ ./tools/configure.sh raspberrypi-pico:nsh
+  $ make V=1
+
+4. Connect Raspberry Pi Pico board to USB port while pressing BOOTSEL.
+   The board will be detected as USB Mass Storage Device.
+   Then copy "nuttx.uf2" into the device.
+   (Same manner as the standard Pico SDK applications installation.)
+
+5. To access the console, GPIO 0 and 1 pins must be connected to the
+   device such as USB-serial converter.
+
+   `usbnsh` configuration provides the console access by USB CDC/ACM serial
+   devcice.  The console is available by using a terminal software on the USB
+   host.
+
+Defconfigs
+==========
+
+- nsh
+    Minimum configuration with NuttShell
+
+- nsh-flash
+    NuttX shell with SMART flash filesystem.
+
+- nshsram
+    Load NuttX binary to SRAM
+
+- smp
+    Enable SMP mode. Both Core 0 and Core 1 are used by NuttX.
+
+- ssd1306
+    SSD1306 OLED display (I2C) test configuration
+    Connection:
+       SSD1306       Raspberry Pi Pico
+           GND ----- GND            (Pin 3 or 38 or ...)
+           VCC ----- 3V3 OUT        (Pin 36)
+           SDA ----- GP4 (I2C0 SDA) (Pin 6)
+           SCL ----- GP5 (I2C0 SCL) (Pin 7)
+
+- lcd1602
+    LCD 1602 Segment LCD Disaply (I2C)
+    Connection:
+    PCF8574 BackPack Raspberry Pi Pico
+           GND ----- GND            (Pin 3 or 38 or ...)
+           VCC ----- 5V Vbus        (Pin 40)
+           SDA ----- GP4 (I2C0 SDA) (Pin 6)
+           SCL ----- GP5 (I2C0 SCL) (Pin 7)
+- spisd
+    SD card support (SPI connection)
+    Connection:
+      SD card slot   Raspberry Pi Pico
+       DAT2          (NC)
+       DAT3/CS ----- GP17 (SPI0 CSn) (Pin 22)
+       CMD /DI ----- GP19 (SPI0 TX)  (Pin 25)
+       VDD     ----- 3V3 OUT         (Pin 36)
+       CLK/SCK ----- GP18 (SPI0 SCK) (Pin 24)
+       VSS     ----- GND             (Pin 3 or 38 or ...)
+       DAT0/DO ----- GP16 (SPI0 RX)  (Pin 21)
+       DAT1          (NC)
+    * Card hot swapping is not supported.
+
+- st7735
+    st7735 SPI LCD support
+    Connection:
+      st7735         Raspberry Pi Pico
+           GND ----- GND             (Pin 3 or 38 or ...)
+           VCC ----- 5V Vbus         (Pin 40)
+           SDA ----- GP15 (SPI1 TX)  (Pin 20)
+           SCK ----- GP14 (SPI1 SCK) (Pin 19)
+            CS ----- GP13 (SPI1 CSn) (Pin 17)
+       AO(D/C) ----- GP12 (SPI1 RX)  (Pin 16)
+            BL ----- GP11            (Pin 15)
+         RESET ----- GP10            (Pin 14)
+
+- enc28j60
+    ENC28J60 SPI ethernet controller support
+      - IP address is configured by DHCP.
+      - DNS address is 8.8.8.8 (CONFIG_NETINIT_DNSIPADDR)
+      - NTP client is enabled.
+    Connection:
+      ENC28J60       Raspberry Pi Pico
+           GND ----- GND             (Pin 3 or 38 or ...)
+           3.3 ----- 3V3 OUT         (Pin 36)
+            SI ----- GP15 (SPI1 TX)  (Pin 20)
+           SCK ----- GP14 (SPI1 SCK) (Pin 19)
+            CS ----- GP13 (SPI1 CSn) (Pin 17)
+            SO ----- GP12 (SPI1 RX)  (Pin 16)
+           INT ----- GP11            (Pin 15)
+         RESET ----- GP10            (Pin 14)
+
+- displaypack
+    Pico Display Pack support
+    See the following page for connection:
+      https://shop.pimoroni.com/products/pico-display-pack
+
+- audiopack
+    Pico Audio Pack support
+    See the following page for connection:
+      https://shop.pimoroni.com/products/pico-audio-pack
+    SD card interface is also enabled.
+
+- usbnsh
+    USB CDC/ACM serial console with NuttShell
+
+- usbmsc
+    USB MSC and CDC/ACM support
+    `msconn` and `sercon` commands enable the MSC and CDC/ACM devices.
+    The MSC support provides the interface to the SD card with SPI,
+    so the SD card slot connection like spisd configuration is required.
+
+- composite
+    USB composite device (MSC + CDC/ACM) support
+    `conn` command enables the composite device.
+
+License exceptions
+==================
+
+The following files are originated from the files in Pico SDK.
+So, the files are licensed under 3-Clause BSD same as Pico SDK.
+
+- arch/arm/src/rp2040/rp2040_clock.c
+- arch/arm/src/rp2040/rp2040_pll.c
+- arch/arm/src/rp2040/rp2040_xosc.c
+  - These are created by referring the Pico SDK clock initialization.
+
+- arch/arm/src/rp2040/rp2040_pio.c
+- arch/arm/src/rp2040/rp2040_pio.h
+- arch/arm/src/rp2040/rp2040_pio_instructions.h
+  - These provide the similar APIs to Pico SDK's hardware_pio APIs.
+
+- arch/arm/src/rp2040/hardware/*.h
+  - These are generated from rp2040.svd originally provided in Pico SDK.
diff --git 
a/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/configs/composite/defconfig 
b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/configs/composite/defconfig
new file mode 100644
index 0000000000..71de340e59
--- /dev/null
+++ b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/configs/composite/defconfig
@@ -0,0 +1,72 @@
+#
+# This file is autogenerated: PLEASE DO NOT EDIT IT.
+#
+# You can use "make menuconfig" to make any modifications to the installed 
.config file.
+# You can then do "make savedefconfig" to generate a new defconfig file that 
includes your
+# modifications.
+#
+# CONFIG_LIBC_LONG_LONG is not set
+# CONFIG_MMCSD_HAVE_CARDDETECT is not set
+# CONFIG_MMCSD_HAVE_WRITEPROTECT is not set
+# CONFIG_NSH_ARGCAT is not set
+# CONFIG_NSH_CMDOPT_HEXDUMP is not set
+# CONFIG_NSH_DISABLE_DATE is not set
+# CONFIG_NSH_DISABLE_LOSMART is not set
+# CONFIG_SPI_CALLBACK is not set
+# CONFIG_STANDARD_SERIAL is not set
+CONFIG_ARCH="arm"
+CONFIG_ARCH_BOARD="waveshare-rp2040-lcd-1.28"
+CONFIG_ARCH_BOARD_WAVESHARE_RP2040_LCD_1_28=y
+CONFIG_ARCH_CHIP="rp2040"
+CONFIG_ARCH_CHIP_RP2040=y
+CONFIG_ARCH_RAMVECTORS=y
+CONFIG_ARCH_STACKDUMP=y
+CONFIG_BOARDCTL_RESET=y
+CONFIG_BOARD_LOOPSPERMSEC=10450
+CONFIG_BUILTIN=y
+CONFIG_CDCACM=y
+CONFIG_CDCACM_COMPOSITE=y
+CONFIG_COMPOSITE_IAD=y
+CONFIG_COMPOSITE_MSFT_OS_DESCRIPTORS=y
+CONFIG_COMPOSITE_PRODUCTID=0x2022
+CONFIG_COMPOSITE_SERIALSTR="12345"
+CONFIG_COMPOSITE_VENDORID=0x03eb
+CONFIG_DEBUG_FULLOPT=y
+CONFIG_DEBUG_SYMBOLS=y
+CONFIG_DISABLE_POSIX_TIMERS=y
+CONFIG_EXAMPLES_HELLO=y
+CONFIG_EXAMPLES_USBSERIAL=y
+CONFIG_FAT_LCNAMES=y
+CONFIG_FAT_LFN=y
+CONFIG_FS_FAT=y
+CONFIG_FS_PROCFS=y
+CONFIG_FS_PROCFS_REGISTER=y
+CONFIG_INIT_ENTRYPOINT="nsh_main"
+CONFIG_MMCSD=y
+CONFIG_NFILE_DESCRIPTORS_PER_BLOCK=6
+CONFIG_NSH_ARCHINIT=y
+CONFIG_NSH_BUILTIN_APPS=y
+CONFIG_NSH_READLINE=y
+CONFIG_RAM_SIZE=270336
+CONFIG_RAM_START=0x20000000
+CONFIG_READLINE_CMD_HISTORY=y
+CONFIG_RP2040_SPI0=y
+CONFIG_RP2040_SPI=y
+CONFIG_RP2040_SPISD=y
+CONFIG_RR_INTERVAL=200
+CONFIG_SCHED_WAITPID=y
+CONFIG_START_DAY=9
+CONFIG_START_MONTH=2
+CONFIG_START_YEAR=2021
+CONFIG_SYSTEM_COMPOSITE=y
+CONFIG_SYSTEM_NSH=y
+CONFIG_SYSTEM_SPITOOL=y
+CONFIG_TESTING_GETPRIME=y
+CONFIG_TESTING_OSTEST=y
+CONFIG_UART0_SERIAL_CONSOLE=y
+CONFIG_USBDEV=y
+CONFIG_USBDEV_BUSPOWERED=y
+CONFIG_USBDEV_COMPOSITE=y
+CONFIG_USBMSC=y
+CONFIG_USBMSC_COMPOSITE=y
+CONFIG_USBMSC_NOT_STALL_BULKEP=y
diff --git a/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/configs/fb/defconfig 
b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/configs/fb/defconfig
new file mode 100644
index 0000000000..6e78113612
--- /dev/null
+++ b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/configs/fb/defconfig
@@ -0,0 +1,63 @@
+#
+# This file is autogenerated: PLEASE DO NOT EDIT IT.
+#
+# You can use "make menuconfig" to make any modifications to the installed 
.config file.
+# You can then do "make savedefconfig" to generate a new defconfig file that 
includes your
+# modifications.
+#
+# CONFIG_DEV_CONSOLE is not set
+# CONFIG_LIBC_LONG_LONG is not set
+# CONFIG_NSH_ARGCAT is not set
+# CONFIG_NSH_CMDOPT_HEXDUMP is not set
+# CONFIG_NSH_DISABLE_DATE is not set
+# CONFIG_NSH_DISABLE_LOSMART is not set
+# CONFIG_RP2040_UART0 is not set
+CONFIG_ARCH="arm"
+CONFIG_ARCH_BOARD="waveshare-rp2040-lcd-1.28"
+CONFIG_ARCH_BOARD_WAVESHARE_RP2040_LCD_1_28=y
+CONFIG_ARCH_CHIP="rp2040"
+CONFIG_ARCH_CHIP_RP2040=y
+CONFIG_ARCH_RAMVECTORS=y
+CONFIG_ARCH_STACKDUMP=y
+CONFIG_BOARDCTL_RESET=y
+CONFIG_BOARD_LOOPSPERMSEC=10450
+CONFIG_BUILTIN=y
+CONFIG_CDCACM=y
+CONFIG_CDCACM_CONSOLE=y
+CONFIG_DEBUG_FULLOPT=y
+CONFIG_DEBUG_SYMBOLS=y
+CONFIG_DISABLE_POSIX_TIMERS=y
+CONFIG_DRIVERS_VIDEO=y
+CONFIG_EXAMPLES_FB=y
+CONFIG_EXAMPLES_HELLO=y
+CONFIG_FS_PROCFS=y
+CONFIG_FS_PROCFS_REGISTER=y
+CONFIG_INIT_ENTRYPOINT="nsh_main"
+CONFIG_LCD=y
+CONFIG_LCD_FRAMEBUFFER=y
+CONFIG_LCD_GC9A01=y
+CONFIG_LCD_GC9A01_BGR=y
+CONFIG_LCD_GC9A01_FREQUENCY=50000000
+CONFIG_NFILE_DESCRIPTORS_PER_BLOCK=6
+CONFIG_NSH_ARCHINIT=y
+CONFIG_NSH_BUILTIN_APPS=y
+CONFIG_NSH_READLINE=y
+CONFIG_NSH_USBCONSOLE=y
+CONFIG_RAM_SIZE=270336
+CONFIG_RAM_START=0x20000000
+CONFIG_READLINE_CMD_HISTORY=y
+CONFIG_RP2040_LCD_SPI_CH=1
+CONFIG_RP2040_SPI1=y
+CONFIG_RP2040_SPI=y
+CONFIG_RR_INTERVAL=200
+CONFIG_SCHED_WAITPID=y
+CONFIG_SPI_CMDDATA=y
+CONFIG_START_DAY=9
+CONFIG_START_MONTH=2
+CONFIG_START_YEAR=2021
+CONFIG_SYSTEM_NSH=y
+CONFIG_TESTING_GETPRIME=y
+CONFIG_TESTING_OSTEST=y
+CONFIG_USBDEV=y
+CONFIG_USBDEV_BUSPOWERED=y
+CONFIG_VIDEO_FB=y
diff --git a/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/configs/lvgl/defconfig 
b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/configs/lvgl/defconfig
new file mode 100644
index 0000000000..849234adc7
--- /dev/null
+++ b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/configs/lvgl/defconfig
@@ -0,0 +1,73 @@
+#
+# This file is autogenerated: PLEASE DO NOT EDIT IT.
+#
+# You can use "make menuconfig" to make any modifications to the installed 
.config file.
+# You can then do "make savedefconfig" to generate a new defconfig file that 
includes your
+# modifications.
+#
+# CONFIG_DEV_CONSOLE is not set
+# CONFIG_LIBC_LONG_LONG is not set
+# CONFIG_NSH_ARGCAT is not set
+# CONFIG_NSH_CMDOPT_HEXDUMP is not set
+# CONFIG_NSH_DISABLE_DATE is not set
+# CONFIG_NSH_DISABLE_LOSMART is not set
+# CONFIG_RP2040_UART0 is not set
+CONFIG_ARCH="arm"
+CONFIG_ARCH_BOARD="waveshare-rp2040-lcd-1.28"
+CONFIG_ARCH_BOARD_WAVESHARE_RP2040_LCD_1_28=y
+CONFIG_ARCH_CHIP="rp2040"
+CONFIG_ARCH_CHIP_RP2040=y
+CONFIG_ARCH_RAMVECTORS=y
+CONFIG_ARCH_STACKDUMP=y
+CONFIG_BOARDCTL_RESET=y
+CONFIG_BOARD_LOOPSPERMSEC=10450
+CONFIG_BUILTIN=y
+CONFIG_CDCACM=y
+CONFIG_CDCACM_CONSOLE=y
+CONFIG_DEBUG_FULLOPT=y
+CONFIG_DEBUG_SYMBOLS=y
+CONFIG_DISABLE_POSIX_TIMERS=y
+CONFIG_EXAMPLES_HELLO=y
+CONFIG_EXAMPLES_LVGLDEMO=y
+CONFIG_FS_PROCFS=y
+CONFIG_FS_PROCFS_REGISTER=y
+CONFIG_GRAPHICS_LVGL=y
+CONFIG_INIT_ENTRYPOINT="nsh_main"
+CONFIG_LCD=y
+CONFIG_LCD_DEV=y
+CONFIG_LCD_GC9A01=y
+CONFIG_LCD_GC9A01_BGR=y
+CONFIG_LCD_GC9A01_FREQUENCY=50000000
+CONFIG_LV_COLOR_16_SWAP=y
+CONFIG_LV_DEMO_WIDGETS_SLIDESHOW=y
+CONFIG_LV_MEM_SIZE_KILOBYTES=48
+CONFIG_LV_PORT_LCDDEV_FULL_SCREEN_BUFFER=y
+CONFIG_LV_PORT_USE_LCDDEV=y
+CONFIG_LV_TICK_CUSTOM=y
+CONFIG_LV_TICK_CUSTOM_INCLUDE="port/lv_port_tick.h"
+CONFIG_LV_USE_DEMO_BENCHMARK=y
+CONFIG_LV_USE_DEMO_STRESS=y
+CONFIG_LV_USE_DEMO_WIDGETS=y
+CONFIG_LV_USE_LOG=y
+CONFIG_NFILE_DESCRIPTORS_PER_BLOCK=6
+CONFIG_NSH_ARCHINIT=y
+CONFIG_NSH_BUILTIN_APPS=y
+CONFIG_NSH_READLINE=y
+CONFIG_NSH_USBCONSOLE=y
+CONFIG_RAM_SIZE=270336
+CONFIG_RAM_START=0x20000000
+CONFIG_READLINE_CMD_HISTORY=y
+CONFIG_RP2040_LCD_SPI_CH=1
+CONFIG_RP2040_SPI1=y
+CONFIG_RP2040_SPI=y
+CONFIG_RR_INTERVAL=200
+CONFIG_SCHED_WAITPID=y
+CONFIG_SPI_CMDDATA=y
+CONFIG_START_DAY=9
+CONFIG_START_MONTH=2
+CONFIG_START_YEAR=2021
+CONFIG_SYSTEM_NSH=y
+CONFIG_TESTING_GETPRIME=y
+CONFIG_TESTING_OSTEST=y
+CONFIG_USBDEV=y
+CONFIG_USBDEV_BUSPOWERED=y
diff --git 
a/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/configs/nsh-flash/defconfig 
b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/configs/nsh-flash/defconfig
new file mode 100644
index 0000000000..2de30ba757
--- /dev/null
+++ b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/configs/nsh-flash/defconfig
@@ -0,0 +1,49 @@
+#
+# This file is autogenerated: PLEASE DO NOT EDIT IT.
+#
+# You can use "make menuconfig" to make any modifications to the installed 
.config file.
+# You can then do "make savedefconfig" to generate a new defconfig file that 
includes your
+# modifications.
+#
+# CONFIG_LIBC_LONG_LONG is not set
+# CONFIG_NSH_ARGCAT is not set
+# CONFIG_NSH_CMDOPT_HEXDUMP is not set
+# CONFIG_NSH_DISABLE_DATE is not set
+# CONFIG_STANDARD_SERIAL is not set
+CONFIG_ARCH="arm"
+CONFIG_ARCH_BOARD="waveshare-rp2040-lcd-1.28"
+CONFIG_ARCH_BOARD_WAVESHARE_RP2040_LCD_1_28=y
+CONFIG_ARCH_CHIP="rp2040"
+CONFIG_ARCH_CHIP_RP2040=y
+CONFIG_ARCH_RAMVECTORS=y
+CONFIG_ARCH_STACKDUMP=y
+CONFIG_BOARDCTL_RESET=y
+CONFIG_BOARD_LOOPSPERMSEC=10450
+CONFIG_BUILTIN=y
+CONFIG_DEBUG_FULLOPT=y
+CONFIG_DEBUG_SYMBOLS=y
+CONFIG_DISABLE_POSIX_TIMERS=y
+CONFIG_EXAMPLES_HELLO=y
+CONFIG_FS_PROCFS=y
+CONFIG_FS_PROCFS_REGISTER=y
+CONFIG_INIT_ENTRYPOINT="nsh_main"
+CONFIG_NFILE_DESCRIPTORS_PER_BLOCK=6
+CONFIG_NSH_ARCHINIT=y
+CONFIG_NSH_BUILTIN_APPS=y
+CONFIG_NSH_READLINE=y
+CONFIG_RAM_SIZE=270336
+CONFIG_RAM_START=0x20000000
+CONFIG_READLINE_CMD_HISTORY=y
+CONFIG_RP2040_FLASH_FILE_SYSTEM=y
+CONFIG_RR_INTERVAL=200
+CONFIG_SCHED_WAITPID=y
+CONFIG_SMARTFS_ALIGNED_ACCESS=y
+CONFIG_START_DAY=9
+CONFIG_START_MONTH=2
+CONFIG_START_YEAR=2021
+CONFIG_SYSLOG_CONSOLE=y
+CONFIG_SYSTEM_NSH=y
+CONFIG_TESTING_GETPRIME=y
+CONFIG_TESTING_OSTEST=y
+CONFIG_TESTING_SMART_TEST=y
+CONFIG_UART0_SERIAL_CONSOLE=y
diff --git a/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/configs/nsh/defconfig 
b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/configs/nsh/defconfig
new file mode 100644
index 0000000000..6d41ead990
--- /dev/null
+++ b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/configs/nsh/defconfig
@@ -0,0 +1,47 @@
+#
+# This file is autogenerated: PLEASE DO NOT EDIT IT.
+#
+# You can use "make menuconfig" to make any modifications to the installed 
.config file.
+# You can then do "make savedefconfig" to generate a new defconfig file that 
includes your
+# modifications.
+#
+# CONFIG_LIBC_LONG_LONG is not set
+# CONFIG_NSH_ARGCAT is not set
+# CONFIG_NSH_CMDOPT_HEXDUMP is not set
+# CONFIG_NSH_DISABLE_DATE is not set
+# CONFIG_NSH_DISABLE_LOSMART is not set
+# CONFIG_STANDARD_SERIAL is not set
+CONFIG_ARCH="arm"
+CONFIG_ARCH_BOARD="waveshare-rp2040-lcd-1.28"
+CONFIG_ARCH_BOARD_WAVESHARE_RP2040_LCD_1_28=y
+CONFIG_ARCH_CHIP="rp2040"
+CONFIG_ARCH_CHIP_RP2040=y
+CONFIG_ARCH_RAMVECTORS=y
+CONFIG_ARCH_STACKDUMP=y
+CONFIG_BOARDCTL_RESET=y
+CONFIG_BOARD_LOOPSPERMSEC=10450
+CONFIG_BUILTIN=y
+CONFIG_DEBUG_FULLOPT=y
+CONFIG_DEBUG_SYMBOLS=y
+CONFIG_DISABLE_POSIX_TIMERS=y
+CONFIG_EXAMPLES_HELLO=y
+CONFIG_FS_PROCFS=y
+CONFIG_FS_PROCFS_REGISTER=y
+CONFIG_INIT_ENTRYPOINT="nsh_main"
+CONFIG_NFILE_DESCRIPTORS_PER_BLOCK=6
+CONFIG_NSH_ARCHINIT=y
+CONFIG_NSH_BUILTIN_APPS=y
+CONFIG_NSH_READLINE=y
+CONFIG_RAM_SIZE=270336
+CONFIG_RAM_START=0x20000000
+CONFIG_READLINE_CMD_HISTORY=y
+CONFIG_RR_INTERVAL=200
+CONFIG_SCHED_WAITPID=y
+CONFIG_START_DAY=9
+CONFIG_START_MONTH=2
+CONFIG_START_YEAR=2021
+CONFIG_SYSLOG_CONSOLE=y
+CONFIG_SYSTEM_NSH=y
+CONFIG_TESTING_GETPRIME=y
+CONFIG_TESTING_OSTEST=y
+CONFIG_UART0_SERIAL_CONSOLE=y
diff --git 
a/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/configs/nshsram/defconfig 
b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/configs/nshsram/defconfig
new file mode 100644
index 0000000000..f4e28c41f2
--- /dev/null
+++ b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/configs/nshsram/defconfig
@@ -0,0 +1,47 @@
+#
+# This file is autogenerated: PLEASE DO NOT EDIT IT.
+#
+# You can use "make menuconfig" to make any modifications to the installed 
.config file.
+# You can then do "make savedefconfig" to generate a new defconfig file that 
includes your
+# modifications.
+#
+# CONFIG_LIBC_LONG_LONG is not set
+# CONFIG_NSH_ARGCAT is not set
+# CONFIG_NSH_CMDOPT_HEXDUMP is not set
+# CONFIG_NSH_DISABLE_DATE is not set
+# CONFIG_NSH_DISABLE_LOSMART is not set
+# CONFIG_RP2040_FLASH_BOOT is not set
+# CONFIG_STANDARD_SERIAL is not set
+CONFIG_ARCH="arm"
+CONFIG_ARCH_BOARD="waveshare-rp2040-lcd-1.28"
+CONFIG_ARCH_BOARD_WAVESHARE_RP2040_LCD_1_28=y
+CONFIG_ARCH_CHIP="rp2040"
+CONFIG_ARCH_CHIP_RP2040=y
+CONFIG_ARCH_STACKDUMP=y
+CONFIG_BOARDCTL_RESET=y
+CONFIG_BOARD_LOOPSPERMSEC=10450
+CONFIG_BUILTIN=y
+CONFIG_DEBUG_FULLOPT=y
+CONFIG_DEBUG_SYMBOLS=y
+CONFIG_DISABLE_POSIX_TIMERS=y
+CONFIG_EXAMPLES_HELLO=y
+CONFIG_FS_PROCFS=y
+CONFIG_FS_PROCFS_REGISTER=y
+CONFIG_INIT_ENTRYPOINT="nsh_main"
+CONFIG_NFILE_DESCRIPTORS_PER_BLOCK=6
+CONFIG_NSH_ARCHINIT=y
+CONFIG_NSH_BUILTIN_APPS=y
+CONFIG_NSH_READLINE=y
+CONFIG_RAM_SIZE=270336
+CONFIG_RAM_START=0x20000000
+CONFIG_READLINE_CMD_HISTORY=y
+CONFIG_RR_INTERVAL=200
+CONFIG_SCHED_WAITPID=y
+CONFIG_START_DAY=9
+CONFIG_START_MONTH=2
+CONFIG_START_YEAR=2021
+CONFIG_SYSLOG_CONSOLE=y
+CONFIG_SYSTEM_NSH=y
+CONFIG_TESTING_GETPRIME=y
+CONFIG_TESTING_OSTEST=y
+CONFIG_UART0_SERIAL_CONSOLE=y
diff --git a/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/configs/smp/defconfig 
b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/configs/smp/defconfig
new file mode 100644
index 0000000000..5c43525ac8
--- /dev/null
+++ b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/configs/smp/defconfig
@@ -0,0 +1,54 @@
+#
+# This file is autogenerated: PLEASE DO NOT EDIT IT.
+#
+# You can use "make menuconfig" to make any modifications to the installed 
.config file.
+# You can then do "make savedefconfig" to generate a new defconfig file that 
includes your
+# modifications.
+#
+# CONFIG_LIBC_LONG_LONG is not set
+# CONFIG_NSH_ARGCAT is not set
+# CONFIG_NSH_CMDOPT_HEXDUMP is not set
+# CONFIG_NSH_DISABLE_DATE is not set
+# CONFIG_NSH_DISABLE_LOSMART is not set
+# CONFIG_STANDARD_SERIAL is not set
+CONFIG_ARCH="arm"
+CONFIG_ARCH_BOARD="waveshare-rp2040-lcd-1.28"
+CONFIG_ARCH_BOARD_WAVESHARE_RP2040_LCD_1_28=y
+CONFIG_ARCH_CHIP="rp2040"
+CONFIG_ARCH_CHIP_RP2040=y
+CONFIG_ARCH_INTERRUPTSTACK=2048
+CONFIG_ARCH_RAMVECTORS=y
+CONFIG_ARCH_STACKDUMP=y
+CONFIG_BOARDCTL_RESET=y
+CONFIG_BOARD_LOOPSPERMSEC=10450
+CONFIG_BUILTIN=y
+CONFIG_DEBUG_FULLOPT=y
+CONFIG_DEBUG_SYMBOLS=y
+CONFIG_DISABLE_POSIX_TIMERS=y
+CONFIG_EXAMPLES_HELLO=y
+CONFIG_FS_PROCFS=y
+CONFIG_FS_PROCFS_REGISTER=y
+CONFIG_INIT_ENTRYPOINT="nsh_main"
+CONFIG_NFILE_DESCRIPTORS_PER_BLOCK=6
+CONFIG_NSH_ARCHINIT=y
+CONFIG_NSH_BUILTIN_APPS=y
+CONFIG_NSH_READLINE=y
+CONFIG_RAM_SIZE=270336
+CONFIG_RAM_START=0x20000000
+CONFIG_READLINE_CMD_HISTORY=y
+CONFIG_RR_INTERVAL=200
+CONFIG_SMP=y
+CONFIG_SMP_NCPUS=2
+CONFIG_STACK_COLORATION=y
+CONFIG_START_DAY=9
+CONFIG_START_MONTH=2
+CONFIG_START_YEAR=2021
+CONFIG_SYSLOG_CONSOLE=y
+CONFIG_SYSTEM_NSH=y
+CONFIG_SYSTEM_SYSTEM=y
+CONFIG_SYSTEM_TASKSET=y
+CONFIG_TESTING_GETPRIME=y
+CONFIG_TESTING_OSTEST=y
+CONFIG_TESTING_SMP=y
+CONFIG_UART0_SERIAL_CONSOLE=y
+CONFIG_UART0_TXBUFSIZE=384
diff --git 
a/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/configs/spisd/defconfig 
b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/configs/spisd/defconfig
new file mode 100644
index 0000000000..2075632b7f
--- /dev/null
+++ b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/configs/spisd/defconfig
@@ -0,0 +1,58 @@
+#
+# This file is autogenerated: PLEASE DO NOT EDIT IT.
+#
+# You can use "make menuconfig" to make any modifications to the installed 
.config file.
+# You can then do "make savedefconfig" to generate a new defconfig file that 
includes your
+# modifications.
+#
+# CONFIG_LIBC_LONG_LONG is not set
+# CONFIG_MMCSD_HAVE_CARDDETECT is not set
+# CONFIG_MMCSD_HAVE_WRITEPROTECT is not set
+# CONFIG_NSH_ARGCAT is not set
+# CONFIG_NSH_CMDOPT_HEXDUMP is not set
+# CONFIG_NSH_DISABLE_DATE is not set
+# CONFIG_NSH_DISABLE_LOSMART is not set
+# CONFIG_SPI_CALLBACK is not set
+# CONFIG_STANDARD_SERIAL is not set
+CONFIG_ARCH="arm"
+CONFIG_ARCH_BOARD="waveshare-rp2040-lcd-1.28"
+CONFIG_ARCH_BOARD_WAVESHARE_RP2040_LCD_1_28=y
+CONFIG_ARCH_CHIP="rp2040"
+CONFIG_ARCH_CHIP_RP2040=y
+CONFIG_ARCH_RAMVECTORS=y
+CONFIG_ARCH_STACKDUMP=y
+CONFIG_BOARDCTL_RESET=y
+CONFIG_BOARD_LOOPSPERMSEC=10450
+CONFIG_BUILTIN=y
+CONFIG_DEBUG_FULLOPT=y
+CONFIG_DEBUG_SYMBOLS=y
+CONFIG_DISABLE_POSIX_TIMERS=y
+CONFIG_EXAMPLES_HELLO=y
+CONFIG_FAT_LCNAMES=y
+CONFIG_FAT_LFN=y
+CONFIG_FS_FAT=y
+CONFIG_FS_PROCFS=y
+CONFIG_FS_PROCFS_REGISTER=y
+CONFIG_INIT_ENTRYPOINT="nsh_main"
+CONFIG_MMCSD=y
+CONFIG_NFILE_DESCRIPTORS_PER_BLOCK=6
+CONFIG_NSH_ARCHINIT=y
+CONFIG_NSH_BUILTIN_APPS=y
+CONFIG_NSH_READLINE=y
+CONFIG_RAM_SIZE=270336
+CONFIG_RAM_START=0x20000000
+CONFIG_READLINE_CMD_HISTORY=y
+CONFIG_RP2040_SPI0=y
+CONFIG_RP2040_SPI=y
+CONFIG_RP2040_SPISD=y
+CONFIG_RR_INTERVAL=200
+CONFIG_SCHED_WAITPID=y
+CONFIG_START_DAY=9
+CONFIG_START_MONTH=2
+CONFIG_START_YEAR=2021
+CONFIG_SYSLOG_CONSOLE=y
+CONFIG_SYSTEM_NSH=y
+CONFIG_SYSTEM_SPITOOL=y
+CONFIG_TESTING_GETPRIME=y
+CONFIG_TESTING_OSTEST=y
+CONFIG_UART0_SERIAL_CONSOLE=y
diff --git 
a/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/configs/usbmsc/defconfig 
b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/configs/usbmsc/defconfig
new file mode 100644
index 0000000000..7acdd1ec37
--- /dev/null
+++ b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/configs/usbmsc/defconfig
@@ -0,0 +1,65 @@
+#
+# This file is autogenerated: PLEASE DO NOT EDIT IT.
+#
+# You can use "make menuconfig" to make any modifications to the installed 
.config file.
+# You can then do "make savedefconfig" to generate a new defconfig file that 
includes your
+# modifications.
+#
+# CONFIG_LIBC_LONG_LONG is not set
+# CONFIG_MMCSD_HAVE_CARDDETECT is not set
+# CONFIG_MMCSD_HAVE_WRITEPROTECT is not set
+# CONFIG_NSH_ARGCAT is not set
+# CONFIG_NSH_CMDOPT_HEXDUMP is not set
+# CONFIG_NSH_DISABLE_DATE is not set
+# CONFIG_NSH_DISABLE_LOSMART is not set
+# CONFIG_SPI_CALLBACK is not set
+# CONFIG_STANDARD_SERIAL is not set
+CONFIG_ARCH="arm"
+CONFIG_ARCH_BOARD="waveshare-rp2040-lcd-1.28"
+CONFIG_ARCH_BOARD_WAVESHARE_RP2040_LCD_1_28=y
+CONFIG_ARCH_CHIP="rp2040"
+CONFIG_ARCH_CHIP_RP2040=y
+CONFIG_ARCH_RAMVECTORS=y
+CONFIG_ARCH_STACKDUMP=y
+CONFIG_BOARDCTL_RESET=y
+CONFIG_BOARD_LOOPSPERMSEC=10450
+CONFIG_BUILTIN=y
+CONFIG_CDCACM=y
+CONFIG_DEBUG_FULLOPT=y
+CONFIG_DEBUG_SYMBOLS=y
+CONFIG_DISABLE_POSIX_TIMERS=y
+CONFIG_EXAMPLES_HELLO=y
+CONFIG_EXAMPLES_USBSERIAL=y
+CONFIG_FAT_LCNAMES=y
+CONFIG_FAT_LFN=y
+CONFIG_FS_FAT=y
+CONFIG_FS_PROCFS=y
+CONFIG_FS_PROCFS_REGISTER=y
+CONFIG_INIT_ENTRYPOINT="nsh_main"
+CONFIG_MMCSD=y
+CONFIG_NFILE_DESCRIPTORS_PER_BLOCK=6
+CONFIG_NSH_ARCHINIT=y
+CONFIG_NSH_BUILTIN_APPS=y
+CONFIG_NSH_READLINE=y
+CONFIG_RAM_SIZE=270336
+CONFIG_RAM_START=0x20000000
+CONFIG_READLINE_CMD_HISTORY=y
+CONFIG_RP2040_SPI0=y
+CONFIG_RP2040_SPI=y
+CONFIG_RP2040_SPISD=y
+CONFIG_RR_INTERVAL=200
+CONFIG_SCHED_WAITPID=y
+CONFIG_START_DAY=9
+CONFIG_START_MONTH=2
+CONFIG_START_YEAR=2021
+CONFIG_SYSTEM_CDCACM=y
+CONFIG_SYSTEM_NSH=y
+CONFIG_SYSTEM_SPITOOL=y
+CONFIG_SYSTEM_USBMSC=y
+CONFIG_TESTING_GETPRIME=y
+CONFIG_TESTING_OSTEST=y
+CONFIG_UART0_SERIAL_CONSOLE=y
+CONFIG_USBDEV=y
+CONFIG_USBDEV_BUSPOWERED=y
+CONFIG_USBMSC=y
+CONFIG_USBMSC_NOT_STALL_BULKEP=y
diff --git 
a/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/configs/usbnsh/defconfig 
b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/configs/usbnsh/defconfig
new file mode 100644
index 0000000000..512e1aa9e2
--- /dev/null
+++ b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/configs/usbnsh/defconfig
@@ -0,0 +1,51 @@
+#
+# This file is autogenerated: PLEASE DO NOT EDIT IT.
+#
+# You can use "make menuconfig" to make any modifications to the installed 
.config file.
+# You can then do "make savedefconfig" to generate a new defconfig file that 
includes your
+# modifications.
+#
+# CONFIG_DEV_CONSOLE is not set
+# CONFIG_LIBC_LONG_LONG is not set
+# CONFIG_NSH_ARGCAT is not set
+# CONFIG_NSH_CMDOPT_HEXDUMP is not set
+# CONFIG_NSH_DISABLE_DATE is not set
+# CONFIG_NSH_DISABLE_LOSMART is not set
+# CONFIG_RP2040_UART0 is not set
+CONFIG_ARCH="arm"
+CONFIG_ARCH_BOARD="waveshare-rp2040-lcd-1.28"
+CONFIG_ARCH_BOARD_WAVESHARE_RP2040_LCD_1_28=y
+CONFIG_ARCH_CHIP="rp2040"
+CONFIG_ARCH_CHIP_RP2040=y
+CONFIG_ARCH_RAMVECTORS=y
+CONFIG_ARCH_STACKDUMP=y
+CONFIG_BOARDCTL_RESET=y
+CONFIG_BOARD_LOOPSPERMSEC=10450
+CONFIG_BUILTIN=y
+CONFIG_CDCACM=y
+CONFIG_CDCACM_CONSOLE=y
+CONFIG_DEBUG_FULLOPT=y
+CONFIG_DEBUG_SYMBOLS=y
+CONFIG_DISABLE_POSIX_TIMERS=y
+CONFIG_EXAMPLES_HELLO=y
+CONFIG_FS_PROCFS=y
+CONFIG_FS_PROCFS_REGISTER=y
+CONFIG_INIT_ENTRYPOINT="nsh_main"
+CONFIG_NFILE_DESCRIPTORS_PER_BLOCK=6
+CONFIG_NSH_ARCHINIT=y
+CONFIG_NSH_BUILTIN_APPS=y
+CONFIG_NSH_READLINE=y
+CONFIG_NSH_USBCONSOLE=y
+CONFIG_RAM_SIZE=270336
+CONFIG_RAM_START=0x20000000
+CONFIG_READLINE_CMD_HISTORY=y
+CONFIG_RR_INTERVAL=200
+CONFIG_SCHED_WAITPID=y
+CONFIG_START_DAY=9
+CONFIG_START_MONTH=2
+CONFIG_START_YEAR=2021
+CONFIG_SYSTEM_NSH=y
+CONFIG_TESTING_GETPRIME=y
+CONFIG_TESTING_OSTEST=y
+CONFIG_USBDEV=y
+CONFIG_USBDEV_BUSPOWERED=y
diff --git a/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/include/board.h 
b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/include/board.h
new file mode 100644
index 0000000000..271cce1a53
--- /dev/null
+++ b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/include/board.h
@@ -0,0 +1,116 @@
+/****************************************************************************
+ * boards/arm/rp2040/waveshare-rp2040-lcd-1.28/include/board.h
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.  The
+ * ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ ****************************************************************************/
+
+#ifndef __BOARDS_ARM_WAVESHARE_RP2040_LCD_1_28_INCLUDE_BOARD_H
+#define __BOARDS_ARM_WAVESHARE_RP2040_LCD_1_28_INCLUDE_BOARD_H
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+
+#include "rp2040_i2cdev.h"
+#include "rp2040_spidev.h"
+#include "rp2040_i2sdev.h"
+
+#include "rp2040_spisd.h"
+
+#ifndef __ASSEMBLY__
+# include <stdint.h>
+#endif
+
+/****************************************************************************
+ * Pre-processor Definitions
+ ****************************************************************************/
+
+/* Clocking *****************************************************************/
+
+#define MHZ                     1000000
+
+#define BOARD_XOSC_FREQ         (12 * MHZ)
+#define BOARD_PLL_SYS_FREQ      (125 * MHZ)
+#define BOARD_PLL_USB_FREQ      (48 * MHZ)
+
+#define BOARD_REF_FREQ          (12 * MHZ)
+#define BOARD_SYS_FREQ          (125 * MHZ)
+#define BOARD_PERI_FREQ         (125 * MHZ)
+#define BOARD_USB_FREQ          (48 * MHZ)
+#define BOARD_ADC_FREQ          (48 * MHZ)
+#define BOARD_RTC_FREQ          46875
+
+#define BOARD_UART_BASEFREQ     BOARD_PERI_FREQ
+
+#define BOARD_TICK_CLOCK        (1 * MHZ)
+
+/* GPIO definitions *********************************************************/
+
+#define BOARD_GPIO_LED_PIN      25
+#define BOARD_NGPIOOUT          1
+#define BOARD_NGPIOIN           1
+#define BOARD_NGPIOINT          1
+
+/****************************************************************************
+ * Public Types
+ ****************************************************************************/
+
+#ifndef __ASSEMBLY__
+
+/****************************************************************************
+ * Public Data
+ ****************************************************************************/
+
+#undef EXTERN
+#if defined(__cplusplus)
+#define EXTERN extern "C"
+extern "C"
+{
+#else
+#define EXTERN extern
+#endif
+
+/****************************************************************************
+ * Public Function Prototypes
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: rp2040_boardearlyinitialize
+ *
+ * Description:
+ *
+ ****************************************************************************/
+
+void rp2040_boardearlyinitialize(void);
+
+/****************************************************************************
+ * Name: rp2040_boardinitialize
+ *
+ * Description:
+ *
+ ****************************************************************************/
+
+void rp2040_boardinitialize(void);
+
+#undef EXTERN
+#if defined(__cplusplus)
+}
+#endif
+#endif /* __ASSEMBLY__ */
+#endif /* __BOARDS_ARM_WAVESHARE_RP2040_LCD_1_28_INCLUDE_BOARD_H */
diff --git 
a/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/include/rp2040_i2cdev.h 
b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/include/rp2040_i2cdev.h
new file mode 100644
index 0000000000..f946d825df
--- /dev/null
+++ b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/include/rp2040_i2cdev.h
@@ -0,0 +1,72 @@
+/****************************************************************************
+ * boards/arm/rp2040/waveshare-rp2040-lcd-1.28/include/rp2040_i2cdev.h
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.  The
+ * ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ ****************************************************************************/
+
+#ifndef __BOARDS_ARM_WAVESHARE_RP2040_LCD_1_28_INCLUDE_RP2040_I2CDEV_H
+#define __BOARDS_ARM_WAVESHARE_RP2040_LCD_1_28_INCLUDE_RP2040_I2CDEV_H
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+#include <stdint.h>
+
+/****************************************************************************
+ * Public Types
+ ****************************************************************************/
+
+#ifndef __ASSEMBLY__
+
+/****************************************************************************
+ * Public Data
+ ****************************************************************************/
+
+#undef EXTERN
+#if defined(__cplusplus)
+#define EXTERN extern "C"
+extern "C"
+{
+#else
+#define EXTERN extern
+#endif
+
+/****************************************************************************
+ * Public Function Prototypes
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: board_i2cdev_initialize
+ *
+ * Description:
+ *   Initialize i2c driver and register the /dev/i2c device.
+ *
+ ****************************************************************************/
+
+#ifdef CONFIG_RP2040_I2C_DRIVER
+int board_i2cdev_initialize(int bus);
+#endif
+
+#undef EXTERN
+#if defined(__cplusplus)
+}
+#endif
+
+#endif /* __ASSEMBLY__ */
+#endif /* __BOARDS_ARM_WAVESHARE_RP2040_LCD_1_28_INCLUDE_RP2040_I2CDEV_H */
diff --git 
a/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/include/rp2040_i2sdev.h 
b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/include/rp2040_i2sdev.h
new file mode 100644
index 0000000000..a113ff6571
--- /dev/null
+++ b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/include/rp2040_i2sdev.h
@@ -0,0 +1,72 @@
+/****************************************************************************
+ * boards/arm/rp2040/waveshare-rp2040-lcd-1.28/include/rp2040_i2sdev.h
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.  The
+ * ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ ****************************************************************************/
+
+#ifndef __BOARDS_ARM_WAVESHARE_RP2040_LCD_1_28_INCLUDE_RP2040_I2SDEV_H
+#define __BOARDS_ARM_WAVESHARE_RP2040_LCD_1_28_INCLUDE_RP2040_I2SDEV_H
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+#include <stdint.h>
+
+/****************************************************************************
+ * Public Types
+ ****************************************************************************/
+
+#ifndef __ASSEMBLY__
+
+/****************************************************************************
+ * Public Data
+ ****************************************************************************/
+
+#undef EXTERN
+#if defined(__cplusplus)
+#define EXTERN extern "C"
+extern "C"
+{
+#else
+#define EXTERN extern
+#endif
+
+/****************************************************************************
+ * Public Function Prototypes
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: board_i2sdev_initialize
+ *
+ * Description:
+ *   Initialize i2s driver and register the /dev/audio/pcm0 device.
+ *
+ ****************************************************************************/
+
+#ifdef CONFIG_RP2040_I2S
+int board_i2sdev_initialize(int bus);
+#endif
+
+#undef EXTERN
+#if defined(__cplusplus)
+}
+#endif
+
+#endif /* __ASSEMBLY__ */
+#endif /* __BOARDS_ARM_WAVESHARE_RP2040_LCD_1_28_INCLUDE_RP2040_I2SDEV_H */
diff --git 
a/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/include/rp2040_spidev.h 
b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/include/rp2040_spidev.h
new file mode 100644
index 0000000000..a21ed07625
--- /dev/null
+++ b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/include/rp2040_spidev.h
@@ -0,0 +1,69 @@
+/****************************************************************************
+ * boards/arm/rp2040/waveshare-rp2040-lcd-1.28/include/rp2040_spidev.h
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.  The
+ * ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ ****************************************************************************/
+
+#ifndef __BOARDS_ARM_WAVESHARE_RP2040_LCD_1_28_INCLUDE_RP2040_SPIDEV_H
+#define __BOARDS_ARM_WAVESHARE_RP2040_LCD_1_28_INCLUDE_RP2040_SPIDEV_H
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+
+/****************************************************************************
+ * Public Types
+ ****************************************************************************/
+
+#ifndef __ASSEMBLY__
+
+/****************************************************************************
+ * Public Data
+ ****************************************************************************/
+
+#undef EXTERN
+#if defined(__cplusplus)
+#define EXTERN extern "C"
+extern "C"
+{
+#else
+#define EXTERN extern
+#endif
+
+/****************************************************************************
+ * Public Function Prototypes
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: board_spidev_initialize
+ *
+ * Description:
+ *   Initialize spi driver and register the /dev/spi device.
+ *
+ ****************************************************************************/
+
+int board_spidev_initialize(int bus);
+
+#undef EXTERN
+#if defined(__cplusplus)
+}
+#endif
+
+#endif /* __ASSEMBLY__ */
+#endif /* __BOARDS_ARM_WAVESHARE_RP2040_LCD_1_28_INCLUDE_RP2040_SPIDEV_H */
diff --git a/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/include/rp2040_spisd.h 
b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/include/rp2040_spisd.h
new file mode 100644
index 0000000000..cee198959e
--- /dev/null
+++ b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/include/rp2040_spisd.h
@@ -0,0 +1,83 @@
+/****************************************************************************
+ * boards/arm/rp2040/waveshare-rp2040-lcd-1.28/include/rp2040_spisd.h
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.  The
+ * ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ ****************************************************************************/
+
+#ifndef __BOARDS_ARM_WAVESHARE_RP2040_LCD_1_28_INCLUDE_RP2040_SPISD_H
+#define __BOARDS_ARM_WAVESHARE_RP2040_LCD_1_28_INCLUDE_RP2040_SPISD_H
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+
+/****************************************************************************
+ * Public Types
+ ****************************************************************************/
+
+#ifndef __ASSEMBLY__
+
+/****************************************************************************
+ * Public Data
+ ****************************************************************************/
+
+#undef EXTERN
+#if defined(__cplusplus)
+#define EXTERN extern "C"
+extern "C"
+{
+#else
+#define EXTERN extern
+#endif
+
+/****************************************************************************
+ * Public Function Prototypes
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: board_spisd_initialize
+ *
+ * Description:
+ *   Initialize the SPI-based SD card.
+ *
+ ****************************************************************************/
+
+#ifdef CONFIG_RP2040_SPISD
+int board_spisd_initialize(int minor, int bus);
+#endif
+
+/****************************************************************************
+ * Name: board_spisd_status
+ *
+ * Description:
+ *   Get the status whether SD Card is present or not.
+ *
+ ****************************************************************************/
+
+#ifdef CONFIG_RP2040_SPISD
+uint8_t board_spisd_status(struct spi_dev_s *dev, uint32_t devid);
+#endif
+
+#undef EXTERN
+#if defined(__cplusplus)
+}
+#endif
+
+#endif /* __ASSEMBLY__ */
+#endif /* __BOARDS_ARM_WAVESHARE_RP2040_LCD_1_28_INCLUDE_RP2040_SPISD_H */
diff --git a/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/scripts/Make.defs 
b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/scripts/Make.defs
new file mode 100644
index 0000000000..1ed7684fca
--- /dev/null
+++ b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/scripts/Make.defs
@@ -0,0 +1,45 @@
+############################################################################
+# boards/arm/rp2040/raspberrypi-pico/scripts/Make.defs
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.  The
+# ASF licenses this file to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance with the
+# License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+############################################################################
+
+include $(TOPDIR)/.config
+include $(TOPDIR)/tools/Config.mk
+include $(TOPDIR)/tools/rp2040/Config.mk
+include $(TOPDIR)/arch/arm/src/armv6-m/Toolchain.defs
+
+ifeq ($(CONFIG_RP2040_FLASH_BOOT),y)
+  LDSCRIPT = waveshare-rp2040-lcd-1-28-flash.ld
+else
+  LDSCRIPT = waveshare-rp2040-lcd-1-28-sram.ld
+endif
+
+ARCHSCRIPT += $(BOARD_DIR)$(DELIM)scripts$(DELIM)$(LDSCRIPT)
+
+ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
+
+CFLAGS := $(ARCHCFLAGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES) 
$(ARCHDEFINES) $(EXTRAFLAGS) -pipe
+CPICFLAGS = $(ARCHPICFLAGS) $(CFLAGS)
+CXXFLAGS := $(ARCHCXXFLAGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) 
$(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS) -pipe
+CXXPICFLAGS = $(ARCHPICFLAGS) $(CXXFLAGS)
+CPPFLAGS := $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS)
+AFLAGS := $(CFLAGS) -D__ASSEMBLY__
+
+NXFLATLDFLAGS1 = -r -d -warn-common
+NXFLATLDFLAGS2 = $(NXFLATLDFLAGS1) 
-T$(TOPDIR)/binfmt/libnxflat/gnu-nxflat-pcrel.ld -no-check-sections
+LDNXFLATFLAGS = -e main -s 2048
diff --git 
a/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/scripts/waveshare-rp2040-lcd-1-28-flash.ld
 
b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/scripts/waveshare-rp2040-lcd-1-28-flash.ld
new file mode 100644
index 0000000000..82de4b749a
--- /dev/null
+++ 
b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/scripts/waveshare-rp2040-lcd-1-28-flash.ld
@@ -0,0 +1,118 @@
+/****************************************************************************
+ * boards/arm/rp2040/raspberrypi-pico/scripts/raspberrypi-pico-flash.ld
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.  The
+ * ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ ****************************************************************************/
+
+MEMORY
+{
+  flash (rx) : ORIGIN = 0x10000000, LENGTH = 2048K
+  sram (rwx) : ORIGIN = 0x20000000, LENGTH = 264K
+}
+
+OUTPUT_ARCH(arm)
+EXTERN(_vectors)
+ENTRY(_stext)
+
+SECTIONS
+{
+    .flash_begin : {
+        __flash_binary_start = .;
+    } > flash
+
+    .boot2 : {
+        __boot2_start__ = .;
+        KEEP (*(.boot2))
+        __boot2_end__ = .;
+    } > flash
+
+    .text : {
+        _stext = ABSOLUTE(.);
+        *(.vectors)
+        *(.text .text.*)
+        *(.fixup)
+        *(.gnu.warning)
+        *(.rodata .rodata.*)
+        *(.gnu.linkonce.t.*)
+        *(.glue_7)
+        *(.glue_7t)
+        *(.got)
+        *(.gcc_except_table)
+        *(.gnu.linkonce.r.*)
+        _etext = ABSOLUTE(.);
+    } > flash
+
+    .init_section : {
+        _sinit = ABSOLUTE(.);
+        *(.init_array .init_array.*)
+        _einit = ABSOLUTE(.);
+    } > flash
+
+    .ARM.extab : {
+        *(.ARM.extab*)
+    } > flash
+
+    __exidx_start = ABSOLUTE(.);
+    .ARM.exidx : {
+        *(.ARM.exidx*)
+    } > flash
+    __exidx_end = ABSOLUTE(.);
+
+    _eronly = ABSOLUTE(.);
+
+    .ram_vectors (COPY) : {
+        *(.ram_vectors)
+    } > sram
+
+    .data : {
+        _sdata = ABSOLUTE(.);
+        *(.data .data.*)
+        *(.gnu.linkonce.d.*)
+        *(.ram_code.*)
+        CONSTRUCTORS
+        . = ALIGN(4);
+        _edata = ABSOLUTE(.);
+    } > sram AT > flash
+
+    .flash_section : {
+        . = ALIGN(4*1024);
+        *(.flash.*)
+    } > flash
+
+    .bss : {
+        _sbss = ABSOLUTE(.);
+        *(.bss .bss.*)
+        *(.gnu.linkonce.b.*)
+        *(COMMON)
+        . = ALIGN(4);
+        _ebss = ABSOLUTE(.);
+    } > sram
+
+    /* Stabs debugging sections. */
+    .stab 0 : { *(.stab) }
+    .stabstr 0 : { *(.stabstr) }
+    .stab.excl 0 : { *(.stab.excl) }
+    .stab.exclstr 0 : { *(.stab.exclstr) }
+    .stab.index 0 : { *(.stab.index) }
+    .stab.indexstr 0 : { *(.stab.indexstr) }
+    .comment 0 : { *(.comment) }
+    .debug_abbrev 0 : { *(.debug_abbrev) }
+    .debug_info 0 : { *(.debug_info) }
+    .debug_line 0 : { *(.debug_line) }
+    .debug_pubnames 0 : { *(.debug_pubnames) }
+    .debug_aranges 0 : { *(.debug_aranges) }
+}
diff --git 
a/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/scripts/waveshare-rp2040-lcd-1-28-sram.ld
 
b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/scripts/waveshare-rp2040-lcd-1-28-sram.ld
new file mode 100644
index 0000000000..1227117022
--- /dev/null
+++ 
b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/scripts/waveshare-rp2040-lcd-1-28-sram.ld
@@ -0,0 +1,104 @@
+/****************************************************************************
+ * boards/arm/rp2040/raspberrypi-pico/scripts/raspberrypi-pico-sram.ld
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.  The
+ * ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ ****************************************************************************/
+
+MEMORY
+{
+  flash (rx) : ORIGIN = 0x10000000, LENGTH = 2048K
+  sram (rwx) : ORIGIN = 0x20000000, LENGTH = 264K
+}
+
+OUTPUT_ARCH(arm)
+EXTERN(_vectors)
+ENTRY(_stext)
+
+SECTIONS
+{
+    .text : {
+        _stext = ABSOLUTE(.);
+        rp2040_start.o(.text)
+        . = ALIGN(256);
+        *(.vectors)
+        *(.text .text.*)
+        *(.fixup)
+        *(.gnu.warning)
+        *(.rodata .rodata.*)
+        *(.gnu.linkonce.t.*)
+        *(.glue_7)
+        *(.glue_7t)
+        *(.got)
+        *(.gcc_except_table)
+        *(.gnu.linkonce.r.*)
+        _etext = ABSOLUTE(.);
+    } > sram
+
+    .init_section : {
+        _sinit = ABSOLUTE(.);
+        *(.init_array .init_array.*)
+        _einit = ABSOLUTE(.);
+    } > sram
+
+    .ARM.extab : {
+        *(.ARM.extab*)
+    } > sram
+
+    __exidx_start = ABSOLUTE(.);
+    .ARM.exidx : {
+        *(.ARM.exidx*)
+    } > sram
+    __exidx_end = ABSOLUTE(.);
+
+    .data : {
+        _sdata = ABSOLUTE(.);
+        *(.data .data.*)
+        *(.gnu.linkonce.d.*)
+        *(.ram_code.*)
+        CONSTRUCTORS
+        . = ALIGN(4);
+        _edata = ABSOLUTE(.);
+    } > sram
+
+    .flash_section : {
+        . = ALIGN(4*1024);
+        *(.flash.*)
+    } > flash
+
+    .bss : {
+        _sbss = ABSOLUTE(.);
+        *(.bss .bss.*)
+        *(.gnu.linkonce.b.*)
+        *(COMMON)
+        . = ALIGN(4);
+        _ebss = ABSOLUTE(.);
+    } > sram
+
+    /* Stabs debugging sections. */
+    .stab 0 : { *(.stab) }
+    .stabstr 0 : { *(.stabstr) }
+    .stab.excl 0 : { *(.stab.excl) }
+    .stab.exclstr 0 : { *(.stab.exclstr) }
+    .stab.index 0 : { *(.stab.index) }
+    .stab.indexstr 0 : { *(.stab.indexstr) }
+    .comment 0 : { *(.comment) }
+    .debug_abbrev 0 : { *(.debug_abbrev) }
+    .debug_info 0 : { *(.debug_info) }
+    .debug_line 0 : { *(.debug_line) }
+    .debug_pubnames 0 : { *(.debug_pubnames) }
+    .debug_aranges 0 : { *(.debug_aranges) }
+}
diff --git a/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/src/Make.defs 
b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/src/Make.defs
new file mode 100644
index 0000000000..c3c8459ab6
--- /dev/null
+++ b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/src/Make.defs
@@ -0,0 +1,33 @@
+############################################################################
+# boards/arm/rp2040/raspberrypi-pico/src/Make.defs
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.  The
+# ASF licenses this file to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance with the
+# License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+############################################################################
+
+include $(TOPDIR)/Make.defs
+
+CSRCS = rp2040_boardinitialize.c
+CSRCS += rp2040_appinit.c
+CSRCS += rp2040_bringup.c
+
+ifeq ($(CONFIG_DEV_GPIO),y)
+CSRCS += rp2040_gpio.c
+endif
+
+DEPPATH += --dep-path board
+VPATH += :board
+CFLAGS += $(shell $(INCDIR) "$(CC)" 
$(TOPDIR)$(DELIM)arch$(DELIM)$(CONFIG_ARCH)$(DELIM)src$(DELIM)board$(DELIM)board)
diff --git a/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/src/rp2040_appinit.c 
b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/src/rp2040_appinit.c
new file mode 100644
index 0000000000..de8614272c
--- /dev/null
+++ b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/src/rp2040_appinit.c
@@ -0,0 +1,78 @@
+/****************************************************************************
+ * boards/arm/rp2040/waveshare-rp2040-lcd-1.28/src/rp2040_appinit.c
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.  The
+ * ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+#include <nuttx/board.h>
+
+#include "rp2040_pico.h"
+
+/****************************************************************************
+ * Pre-processor Definitions
+ ****************************************************************************/
+
+#ifndef OK
+#  define OK 0
+#endif
+
+/****************************************************************************
+ * Public Functions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: board_app_initialize
+ *
+ * Description:
+ *   Perform application specific initialization.  This function is never
+ *   called directly from application code, but only indirectly via the
+ *   (non-standard) boardctl() interface using the command BOARDIOC_INIT.
+ *
+ * Input Parameters:
+ *   arg - The boardctl() argument is passed to the board_app_initialize()
+ *         implementation without modification.  The argument has no
+ *         meaning to NuttX; the meaning of the argument is a contract
+ *         between the board-specific initialization logic and the
+ *         matching application logic.  The value could be such things as a
+ *         mode enumeration value, a set of DIP switch switch settings, a
+ *         pointer to configuration data read from a file or serial FLASH,
+ *         or whatever you would like to do with it.  Every implementation
+ *         should accept zero/NULL as a default configuration.
+ *
+ * Returned Value:
+ *   Zero (OK) is returned on success; a negated errno value is returned on
+ *   any failure to indicate the nature of the failure.
+ *
+ ****************************************************************************/
+
+int board_app_initialize(uintptr_t arg)
+{
+#ifdef CONFIG_BOARD_LATE_INITIALIZE
+  /* Board initialization already performed by board_late_initialize() */
+
+  return OK;
+#else
+  /* Perform board-specific initialization */
+
+  return rp2040_bringup();
+#endif
+}
diff --git 
a/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/src/rp2040_boardinitialize.c 
b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/src/rp2040_boardinitialize.c
new file mode 100644
index 0000000000..4543df8fd4
--- /dev/null
+++ b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/src/rp2040_boardinitialize.c
@@ -0,0 +1,87 @@
+/****************************************************************************
+ * boards/arm/rp2040/waveshare-rp2040-lcd-1.28/src/rp2040_boardinitialize.c
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.  The
+ * ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+
+#include <debug.h>
+
+#include <nuttx/board.h>
+#include <arch/board/board.h>
+
+#include "arm_internal.h"
+#include "rp2040_gpio.h"
+
+#ifdef CONFIG_ARCH_BOARD_COMMON
+#include "rp2040_common_initialize.h"
+#endif /* CONFIG_ARCH_BOARD_COMMON */
+
+/****************************************************************************
+ * Pre-processor Definitions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Private Functions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Public Functions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: rp2040_boardearlyinitialize
+ *
+ * Description:
+ *
+ ****************************************************************************/
+
+void rp2040_boardearlyinitialize(void)
+{
+  #ifdef CONFIG_ARCH_BOARD_COMMON
+  rp2040_common_earlyinitialize();
+  #endif
+
+  /* --- Place any board specific early initialization here --- */
+
+  /* Set board LED pin */
+
+  rp2040_gpio_init(BOARD_GPIO_LED_PIN);
+  rp2040_gpio_setdir(BOARD_GPIO_LED_PIN, true);
+  rp2040_gpio_put(BOARD_GPIO_LED_PIN, true);
+}
+
+/****************************************************************************
+ * Name: rp2040_boardinitialize
+ *
+ * Description:
+ *
+ ****************************************************************************/
+
+void rp2040_boardinitialize(void)
+{
+  #ifdef CONFIG_ARCH_BOARD_COMMON
+  rp2040_common_initialize();
+  #endif
+
+  /* --- Place any board specific initialization here --- */
+}
diff --git a/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/src/rp2040_bringup.c 
b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/src/rp2040_bringup.c
new file mode 100644
index 0000000000..7a5daef610
--- /dev/null
+++ b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/src/rp2040_bringup.c
@@ -0,0 +1,63 @@
+/****************************************************************************
+ * boards/arm/rp2040/waveshare-rp2040-lcd-1.28/src/rp2040_bringup.c
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.  The
+ * ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+
+#include <debug.h>
+#include <stddef.h>
+
+#include <nuttx/fs/fs.h>
+
+#include <arch/board/board.h>
+
+#include "rp2040_pico.h"
+
+#ifdef CONFIG_ARCH_BOARD_COMMON
+#include "rp2040_common_bringup.h"
+#endif /* CONFIG_ARCH_BOARD_COMMON */
+
+/****************************************************************************
+ * Public Functions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: rp2040_bringup
+ ****************************************************************************/
+
+int rp2040_bringup(void)
+{
+#ifdef CONFIG_ARCH_BOARD_COMMON
+
+  int ret = rp2040_common_bringup();
+  if (ret < 0)
+    {
+      return ret;
+    }
+
+#endif /* CONFIG_ARCH_BOARD_COMMON */
+
+  /* --- Place any board specific bringup code here --- */
+
+  return OK;
+}
diff --git a/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/src/rp2040_gpio.c 
b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/src/rp2040_gpio.c
new file mode 100644
index 0000000000..12c200319a
--- /dev/null
+++ b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/src/rp2040_gpio.c
@@ -0,0 +1,392 @@
+/****************************************************************************
+ * boards/arm/rp2040/waveshare-rp2040-lcd-1.28/src/rp2040_gpio.c
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.  The
+ * ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+
+#include <sys/types.h>
+#include <syslog.h>
+#include <nuttx/irq.h>
+#include <arch/irq.h>
+#include <assert.h>
+#include <debug.h>
+
+#include <nuttx/ioexpander/gpio.h>
+
+#include <arch/board/board.h>
+
+#include "arm_internal.h"
+#include "chip.h"
+#include "rp2040_gpio.h"
+
+#if defined(CONFIG_DEV_GPIO) && !defined(CONFIG_GPIO_LOWER_HALF)
+
+/* Output pins. GPIO25 is onboard LED any other outputs could be used.
+ */
+
+#define GPIO_OUT1     25
+
+/* Input pins.
+ */
+
+#define GPIO_IN1      6
+
+/* Interrupt pins.
+ */
+
+#define GPIO_IRQPIN1  14
+
+/****************************************************************************
+ * Private Types
+ ****************************************************************************/
+
+struct rp2040gpio_dev_s
+{
+  struct gpio_dev_s gpio;
+  uint8_t id;
+};
+
+struct rp2040gpint_dev_s
+{
+  struct rp2040gpio_dev_s rp2040gpio;
+  pin_interrupt_t callback;
+};
+
+/****************************************************************************
+ * Private Function Prototypes
+ ****************************************************************************/
+
+#if BOARD_NGPIOOUT > 0
+static int gpout_read(struct gpio_dev_s *dev, bool *value);
+static int gpout_write(struct gpio_dev_s *dev, bool value);
+#endif
+
+#if BOARD_NGPIOIN > 0
+static int gpin_read(struct gpio_dev_s *dev, bool *value);
+#endif
+
+#if BOARD_NGPIOINT > 0
+static int gpint_read(struct gpio_dev_s *dev, bool *value);
+static int gpint_attach(struct gpio_dev_s *dev,
+                        pin_interrupt_t callback);
+static int gpint_enable(struct gpio_dev_s *dev, bool enable);
+#endif
+
+/****************************************************************************
+ * Private Data
+ ****************************************************************************/
+
+#if BOARD_NGPIOOUT > 0
+static const struct gpio_operations_s gpout_ops =
+{
+  .go_read   = gpout_read,
+  .go_write  = gpout_write,
+  .go_attach = NULL,
+  .go_enable = NULL,
+};
+
+/* This array maps the GPIO pins used as OUTPUT */
+
+static const uint32_t g_gpiooutputs[BOARD_NGPIOOUT] =
+{
+  GPIO_OUT1
+};
+
+static struct rp2040gpio_dev_s g_gpout[BOARD_NGPIOOUT];
+#endif
+
+#if BOARD_NGPIOIN > 0
+static const struct gpio_operations_s gpin_ops =
+{
+  .go_read   = gpin_read,
+  .go_write  = NULL,
+  .go_attach = NULL,
+  .go_enable = NULL,
+};
+
+/* This array maps the GPIO pins used as INTERRUPT INPUTS */
+
+static const uint32_t g_gpioinputs[BOARD_NGPIOIN] =
+{
+  GPIO_IN1
+};
+
+static struct rp2040gpio_dev_s g_gpin[BOARD_NGPIOIN];
+#endif
+
+#if BOARD_NGPIOINT > 0
+static const struct gpio_operations_s gpint_ops =
+{
+  .go_read   = gpint_read,
+  .go_write  = NULL,
+  .go_attach = gpint_attach,
+  .go_enable = gpint_enable,
+};
+
+/* This array maps the GPIO pins used as INTERRUPT INPUTS */
+
+static const uint32_t g_gpiointinputs[BOARD_NGPIOINT] =
+{
+  GPIO_IRQPIN1,
+};
+
+static struct rp2040gpint_dev_s g_gpint[BOARD_NGPIOINT];
+#endif
+
+/****************************************************************************
+ * Private Functions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: gpout_read
+ ****************************************************************************/
+
+#if BOARD_NGPIOOUT > 0
+static int gpout_read(struct gpio_dev_s *dev, bool *value)
+{
+  struct rp2040gpio_dev_s *rp2040gpio =
+    (struct rp2040gpio_dev_s *)dev;
+
+  DEBUGASSERT(rp2040gpio != NULL && value != NULL);
+  DEBUGASSERT(rp2040gpio->id < BOARD_NGPIOOUT);
+  gpioinfo("Reading...\n");
+
+  *value = rp2040_gpio_get(g_gpiooutputs[rp2040gpio->id]);
+  return OK;
+}
+
+/****************************************************************************
+ * Name: gpout_write
+ ****************************************************************************/
+
+static int gpout_write(struct gpio_dev_s *dev, bool value)
+{
+  struct rp2040gpio_dev_s *rp2040gpio =
+    (struct rp2040gpio_dev_s *)dev;
+
+  DEBUGASSERT(rp2040gpio != NULL);
+  DEBUGASSERT(rp2040gpio->id < BOARD_NGPIOOUT);
+  gpioinfo("Writing %d\n", (int)value);
+
+  rp2040_gpio_put(g_gpiooutputs[rp2040gpio->id], value);
+  return OK;
+}
+#endif
+
+/****************************************************************************
+ * Name: gpin_read
+ ****************************************************************************/
+
+#if BOARD_NGPIOIN > 0
+static int gpin_read(struct gpio_dev_s *dev, bool *value)
+{
+  struct rp2040gpio_dev_s *rp2040gpio =
+    (struct rp2040gpio_dev_s *)dev;
+
+  DEBUGASSERT(rp2040gpio != NULL && value != NULL);
+  DEBUGASSERT(rp2040gpio->id < BOARD_NGPIOIN);
+  gpioinfo("Reading... pin %d\n", (int)g_gpioinputs[rp2040gpio->id]);
+
+  *value = rp2040_gpio_get(g_gpioinputs[rp2040gpio->id]);
+  return OK;
+}
+#endif
+
+/****************************************************************************
+ * Name: rp2040gpio_interrupt
+ ****************************************************************************/
+
+#if BOARD_NGPIOINT > 0
+static int rp2040gpio_interrupt(int irq, void *context, void *arg)
+{
+  struct rp2040gpint_dev_s *rp2040gpint =
+    (struct rp2040gpint_dev_s *)arg;
+
+  DEBUGASSERT(rp2040gpint != NULL && rp2040gpint->callback != NULL);
+  gpioinfo("Interrupt! callback=%p\n", rp2040gpint->callback);
+
+  rp2040gpint->callback(&rp2040gpint->rp2040gpio.gpio,
+                       rp2040gpint->rp2040gpio.id);
+  return OK;
+}
+
+/****************************************************************************
+ * Name: gpint_read
+ ****************************************************************************/
+
+static int gpint_read(struct gpio_dev_s *dev, bool *value)
+{
+  struct rp2040gpint_dev_s *rp2040gpint =
+    (struct rp2040gpint_dev_s *)dev;
+
+  DEBUGASSERT(rp2040gpint != NULL && value != NULL);
+  DEBUGASSERT(rp2040gpint->rp2040gpio.id < BOARD_NGPIOINT);
+  gpioinfo("Reading int pin...\n");
+
+  *value = rp2040_gpio_get(g_gpiointinputs[rp2040gpint->rp2040gpio.id]);
+  return OK;
+}
+
+/****************************************************************************
+ * Name: gpint_attach
+ ****************************************************************************/
+
+static int gpint_attach(struct gpio_dev_s *dev,
+                        pin_interrupt_t callback)
+{
+  struct rp2040gpint_dev_s *rp2040gpint =
+    (struct rp2040gpint_dev_s *)dev;
+  int irq = g_gpiointinputs[rp2040gpint->rp2040gpio.id];
+  int ret;
+
+  gpioinfo("Attaching the callback\n");
+
+  /* Make sure the interrupt is disabled */
+
+  rp2040_gpio_disable_irq(irq);
+  ret = rp2040_gpio_irq_attach(irq,
+                               RP2040_GPIO_INTR_EDGE_LOW,
+                               rp2040gpio_interrupt,
+                               &g_gpint[rp2040gpint->rp2040gpio.id]);
+  if (ret < 0)
+    {
+      syslog(LOG_ERR, "ERROR: gpint_attach() failed: %d\n", ret);
+      return ret;
+    }
+
+  gpioinfo("Attach %p\n", callback);
+  rp2040gpint->callback = callback;
+  return OK;
+}
+
+/****************************************************************************
+ * Name: gpint_enable
+ ****************************************************************************/
+
+static int gpint_enable(struct gpio_dev_s *dev, bool enable)
+{
+  struct rp2040gpint_dev_s *rp2040gpint =
+    (struct rp2040gpint_dev_s *)dev;
+  int irq = g_gpiointinputs[rp2040gpint->rp2040gpio.id];
+
+  if (enable)
+    {
+      if (rp2040gpint->callback != NULL)
+        {
+          gpioinfo("Enabling the interrupt\n");
+
+          /* Configure the interrupt for rising edge */
+
+          rp2040_gpio_enable_irq(irq);
+        }
+    }
+  else
+    {
+      gpioinfo("Disable the interrupt\n");
+      rp2040_gpio_disable_irq(irq);
+    }
+
+  return OK;
+}
+#endif
+
+/****************************************************************************
+ * Public Functions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: rp2040_dev_gpio_init
+ ****************************************************************************/
+
+int rp2040_dev_gpio_init(void)
+{
+  int i;
+  int pincount = 0;
+
+#if BOARD_NGPIOOUT > 0
+  for (i = 0; i < BOARD_NGPIOOUT; i++)
+    {
+      /* Setup and register the GPIO pin */
+
+      g_gpout[i].gpio.gp_pintype = GPIO_OUTPUT_PIN;
+      g_gpout[i].gpio.gp_ops     = &gpout_ops;
+      g_gpout[i].id              = i;
+      gpio_pin_register(&g_gpout[i].gpio, g_gpiooutputs[i]);
+
+      /* Configure the pins that will be used as output */
+
+      rp2040_gpio_init(g_gpiooutputs[i]);
+      rp2040_gpio_setdir(g_gpiooutputs[i], true);
+      rp2040_gpio_put(g_gpiooutputs[i], false);
+
+      pincount++;
+    }
+#endif
+
+  pincount = 0;
+
+#if BOARD_NGPIOIN > 0
+  for (i = 0; i < BOARD_NGPIOIN; i++)
+    {
+      /* Setup and register the GPIO pin */
+
+      g_gpin[i].gpio.gp_pintype = GPIO_INPUT_PIN;
+      g_gpin[i].gpio.gp_ops     = &gpin_ops;
+      g_gpin[i].id              = i;
+      gpio_pin_register(&g_gpin[i].gpio, g_gpioinputs[i]);
+
+      /* Configure the pins that will be used as INPUT */
+
+      rp2040_gpio_init(g_gpioinputs[i]);
+
+      pincount++;
+    }
+#endif
+
+  pincount = 0;
+
+#if BOARD_NGPIOINT > 0
+  for (i = 0; i < BOARD_NGPIOINT; i++)
+    {
+      /* Setup and register the GPIO pin */
+
+      g_gpint[i].rp2040gpio.gpio.gp_pintype = GPIO_INTERRUPT_PIN;
+      g_gpint[i].rp2040gpio.gpio.gp_ops     = &gpint_ops;
+      g_gpint[i].rp2040gpio.id              = i;
+      gpio_pin_register(&g_gpint[i].rp2040gpio.gpio, g_gpiointinputs[i]);
+
+      /* Configure the pins that will be used as interrupt input */
+
+      rp2040_gpio_init(g_gpiointinputs[i]);
+
+      /* pull-up = false : pull-down = true */
+
+      rp2040_gpio_set_pulls(g_gpiointinputs[i], false, true);
+
+      pincount++;
+    }
+#endif
+
+  return OK;
+}
+#endif /* CONFIG_DEV_GPIO && !CONFIG_GPIO_LOWER_HALF */
diff --git a/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/src/rp2040_pico.h 
b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/src/rp2040_pico.h
new file mode 100644
index 0000000000..ab96d00c91
--- /dev/null
+++ b/boards/arm/rp2040/waveshare-rp2040-lcd-1.28/src/rp2040_pico.h
@@ -0,0 +1,36 @@
+/****************************************************************************
+ * boards/arm/rp2040/waveshare-rp2040-lcd-1.28/src/rp2040_pico.h
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.  The
+ * ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ ****************************************************************************/
+
+#ifndef __BOARDS_ARM_WAVESHARE_RP2040_LCD_1_28_SRC_RP2040_PICO_H
+#define __BOARDS_ARM_WAVESHARE_RP2040_LCD_1_28_SRC_RP2040_PICO_H
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+
+int rp2040_bringup(void);
+
+#ifdef CONFIG_DEV_GPIO
+int rp2040_dev_gpio_init(void);
+#endif
+
+#endif /* __BOARDS_ARM_WAVESHARE_RP2040_LCD_1_28_SRC_RP2040_PICO_H */

Reply via email to