[Core] Add Raspberry Pi RP2040 support (#14877)

* Disable RESET keycode because of naming conflicts

* Add Pico SDK as submodule

* Add RP2040 build support to QMK

* Adjust USB endpoint structs for RP2040

* Add RP2040 bootloader and double-tap reset routine

* Add generic and pro micro RP2040 boards

* Add RP2040 onekey keyboard

* Add WS2812 PIO DMA enabled driver and documentation

Supports regular and open-drain output configuration. RP2040 GPIOs are
sadly not 5V tolerant, so this is a bit use-less or needs extra hardware
or you take the risk to fry your hardware.

* Adjust SIO Driver for RP2040

* Adjust I2C Driver for RP2040

* Adjust SPI Driver for RP2040

* Add PIO serial driver and documentation

* Add general RP2040 documentation

* Apply suggestions from code review

Co-authored-by: Nick Brassel <nick@tzarc.org>

Co-authored-by: Nick Brassel <nick@tzarc.org>
This commit is contained in:
Stefan Kerkmann 2022-06-30 13:19:27 +02:00 committed by GitHub
parent d206c1791e
commit d717396708
Failed to generate hash of commit
43 changed files with 2026 additions and 96 deletions

View file

@ -1 +1,12 @@
// Copyright 2022 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include "onekey.h"
void keyboard_post_init_kb(void) {
debug_enable = true;
debug_matrix = true;
debug_keyboard = true;
debug_mouse = true;
keyboard_post_init_user();
}

View file

@ -0,0 +1,17 @@
// Copyright 2022 Stefan Kerkmann
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include "config_common.h"
#define PRODUCT Onekey Raspberry Pi RP2040
#define MATRIX_COL_PINS { GP4 }
#define MATRIX_ROW_PINS { GP5 }
#define DEBUG_MATRIX_SCAN_RATE
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP25
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U
#define RGB_DI_PIN A1

View file

@ -0,0 +1,12 @@
# Raspberry Pi 2040 onekey
To trigger keypress, short together pins *GP4* and *GP5*.
Double-tap reset to enter bootloader mode. Copy the built uf2 file to the device by dragging the file to the new USB disk.
## Supported Hardware
* Raspberry Pi Pico
* SparkFun Pro Micro - RP2040
* Adafruit KB2040 - RP2040 Kee Boar
* ...and many more RP2040 based development boards

View file

@ -0,0 +1,3 @@
# MCU name
MCU = RP2040
BOOTLOADER = rp2040