Преглед изворни кода

Add boardsource/lulu RP2040 support (#18200)

by waffle87
jack пре 3 година
родитељ
комит
035e7fdb8b

+ 21 - 0
keyboards/boardsource/lulu/avr/info.json

@@ -0,0 +1,21 @@
+{
+  "build": {
+    "lto": true
+  },
+  "development_board": "elite_c",
+  "matrix_pins": {
+    "cols": ["F6", "F7", "B1", "B3", "B2", "B6"],
+    "rows": ["C6", "D7", "E6", "B4", "B5"]
+  },
+  "split": {
+    "soft_serial_pin": "D2"
+  },
+  "rgblight": {
+     "pin": "D3"
+  },
+  "encoder": {
+    "rotary": [
+      { "pin_a": "F0", "pin_b": "F1" }
+    ]
+  }
+}

+ 1 - 0
keyboards/boardsource/lulu/avr/rules.mk

@@ -0,0 +1 @@
+# This file intentionally left blank

+ 0 - 2
keyboards/boardsource/lulu/config.h

@@ -2,8 +2,6 @@
 // SPDX-License-Identifier: GPL-2.0-or-later
 
 #pragma once
-#include "config_common.h"
-#define RGB_DI_PIN D3
 #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150
 #define DRIVER_LED_TOTAL 70
 #define RGB_MATRIX_SPLIT { 35, 35 }

+ 7 - 15
keyboards/boardsource/lulu/info.json

@@ -2,11 +2,7 @@
   "manufacturer": "Boardsource",
   "keyboard_name": "lulu",
   "maintainer": "waffle87",
-  "bootloader": "atmel-dfu",
   "diode_direction": "COL2ROW",
-  "build": {
-    "lto": true
-  },
   "features": {
     "bootmagic": true,
     "extrakey": true,
@@ -15,11 +11,6 @@
     "rgb_matrix": true,
     "oled": true
   },
-  "matrix_pins": {
-    "cols": ["F6", "F7", "B1", "B3", "B2", "B6"],
-    "rows": ["C6", "D7", "E6", "B4", "B5"]
-  },
-  "processor": "atmega32u4",
   "url": "https://boardsource.xyz/projects/60de24d6847112054777bbdd",
   "usb": {
     "device_version": "1.0.0",
@@ -27,16 +18,17 @@
     "vid": "0x4273"
   },
   "split": {
-    "enabled": true,
-    "soft_serial_pin": "D2"
+    "enabled": true
   },
   "encoder": {
-    "enabled": true,
-    "rotary": [
-      { "pin_a": "F0", "pin_b": "F1" }
-    ]
+    "enabled": true
+  },
+  "matrix_size": {
+     "cols": 6,
+     "rows": 10
   },
   "rgb_matrix": {
+    "driver": "WS2812",
     "layout": [
       { "flags": 2, "x": 86, "y": 55 },
       { "flags": 2, "x": 51, "y": 55 },

+ 10 - 3
keyboards/boardsource/lulu/readme.md

@@ -12,13 +12,20 @@ The lulu is what the ergo community has needed for a long time, a high-end aesth
 
 Make example for this keyboard (after setting up your build environment):
 
-    make boardsource/lulu:default
+    make boardsource/lulu/rp2040:default
+    make boardsource/lulu/avr:default
 
 Flashing example for this keyboard:
 
-    make boardsource/lulu:default:flash
+    make boardsource/lulu/rp2040:default:flash
+    make boardsource/lulu/avr:default:flash
 
-Reset keyboard by holding down top left key while you plug in the usb cable. Or by pushing the reset switch on the pcb.
+
+Compile `rp2040` firmware if you purchased PCB in lulu group buy (integrated microcontroller).
+Compile `avr` firmware if your PCB uses a drop-in microcontroller like Pro Micro.
+
+
+Enter bootloader by holding down the upper outer key while you plug in the usb cable, or by pushing the reset switch on the pcb.
 
 
 See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).

+ 11 - 0
keyboards/boardsource/lulu/rp2040/config.h

@@ -0,0 +1,11 @@
+// Copyright 2022 jack (@waffle87)
+// SPDX-License-Identifier: GPL-2.0-or-later
+#pragma once
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U
+#define SERIAL_USART_FULL_DUPLEX
+#define SERIAL_USART_TX_PIN GP0
+#define SERIAL_USART_RX_PIN GP1
+#define I2C_DRIVER I2CD2
+#define I2C1_SDA_PIN GP22
+#define I2C1_SCL_PIN GP23

+ 5 - 0
keyboards/boardsource/lulu/rp2040/halconf.h

@@ -0,0 +1,5 @@
+// Copyright 2022 jack (@waffle87)
+// SPDX-License-Identifier: GPL-2.0-or-later
+#pragma once
+#define HAL_USE_I2C TRUE
+#include_next <halconf.h>

+ 17 - 0
keyboards/boardsource/lulu/rp2040/info.json

@@ -0,0 +1,17 @@
+{
+  "bootloader": "rp2040",
+  "matrix_pins": {
+    "cols": ["GP2", "GP3", "GP4", "GP5", "GP6", "GP7"],
+    "rows": ["GP14", "GP15", "GP16", "GP17", "GP18"]
+  },
+  "processor": "RP2040",
+  "rgblight": {
+     "pin": "GP29",
+     "led_count": 70
+  },
+  "encoder": {
+    "rotary": [
+      { "pin_a": "GP8", "pin_b": "GP9" }
+    ]
+  }
+}

+ 6 - 0
keyboards/boardsource/lulu/rp2040/mcuconf.h

@@ -0,0 +1,6 @@
+// Copyright 2022 jack (@waffle87)
+// SPDX-License-Identifier: GPL-2.0-or-later
+#pragma once
+#include_next <mcuconf.h>
+#undef RP_I2C_USE_I2C1
+#define RP_I2C_USE_I2C1 TRUE

+ 2 - 0
keyboards/boardsource/lulu/rp2040/rules.mk

@@ -0,0 +1,2 @@
+SERIAL_DRIVER = vendor
+WS2812_DRIVER = vendor

+ 1 - 1
keyboards/boardsource/lulu/rules.mk

@@ -1 +1 @@
-RGB_MATRIX_DRIVER = WS2812
+# This file intentionally left blank