From 0774381f81ba69c2c37fd002a846d03f9e9e7cfd Mon Sep 17 00:00:00 2001
From: Nick Brassel <nick@tzarc.org>
Date: Mon, 19 Jun 2023 15:02:57 +1000
Subject: Swap G431 to transient EEPROM. Add G431 and G474 onekeys. (#21282)

---
 keyboards/handwired/onekey/nucleo_g431rb/info.json | 19 +++++++++++++++++++
 keyboards/handwired/onekey/nucleo_g431rb/readme.md |  7 +++++++
 keyboards/handwired/onekey/nucleo_g431rb/rules.mk  |  0
 keyboards/handwired/onekey/nucleo_g474re/info.json | 19 +++++++++++++++++++
 keyboards/handwired/onekey/nucleo_g474re/readme.md |  7 +++++++
 keyboards/handwired/onekey/nucleo_g474re/rules.mk  |  0
 platforms/chibios/mcu_selection.mk                 |  3 +++
 7 files changed, 55 insertions(+)
 create mode 100644 keyboards/handwired/onekey/nucleo_g431rb/info.json
 create mode 100644 keyboards/handwired/onekey/nucleo_g431rb/readme.md
 create mode 100644 keyboards/handwired/onekey/nucleo_g431rb/rules.mk
 create mode 100644 keyboards/handwired/onekey/nucleo_g474re/info.json
 create mode 100644 keyboards/handwired/onekey/nucleo_g474re/readme.md
 create mode 100644 keyboards/handwired/onekey/nucleo_g474re/rules.mk

diff --git a/keyboards/handwired/onekey/nucleo_g431rb/info.json b/keyboards/handwired/onekey/nucleo_g431rb/info.json
new file mode 100644
index 0000000000..4e5e3b1cba
--- /dev/null
+++ b/keyboards/handwired/onekey/nucleo_g431rb/info.json
@@ -0,0 +1,19 @@
+{
+    "keyboard_name": "Onekey Nucleo G431RB",
+    "processor": "STM32G431",
+    "bootloader": "stm32-dfu",
+    "matrix_pins": {
+        "cols": ["A9"],
+        "rows": ["A10"]
+    },
+    "backlight": {
+        "pin": "B8"
+    },
+    "ws2812": {
+        "pin": "A0"
+    },
+    "apa102": {
+        "data_pin": "A0",
+        "clock_pin": "B13"
+    }
+}
diff --git a/keyboards/handwired/onekey/nucleo_g431rb/readme.md b/keyboards/handwired/onekey/nucleo_g431rb/readme.md
new file mode 100644
index 0000000000..3b393e1276
--- /dev/null
+++ b/keyboards/handwired/onekey/nucleo_g431rb/readme.md
@@ -0,0 +1,7 @@
+# ST Microelectronics Nucleo64-G431RB onekey
+
+Supported Hardware: <https://www.st.com/en/evaluation-tools/nucleo-g431rb.html>
+
+To trigger keypress, short together pins *A9* and *A10*.
+
+The usual USB connection to ST-Link will not work for QMK -- pins *A11* and *A12* need to be connected to *D-* and *D+* respectively.
diff --git a/keyboards/handwired/onekey/nucleo_g431rb/rules.mk b/keyboards/handwired/onekey/nucleo_g431rb/rules.mk
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/keyboards/handwired/onekey/nucleo_g474re/info.json b/keyboards/handwired/onekey/nucleo_g474re/info.json
new file mode 100644
index 0000000000..02f59be74e
--- /dev/null
+++ b/keyboards/handwired/onekey/nucleo_g474re/info.json
@@ -0,0 +1,19 @@
+{
+    "keyboard_name": "Onekey Nucleo G474RE",
+    "processor": "STM32G474",
+    "bootloader": "stm32-dfu",
+    "matrix_pins": {
+        "cols": ["A9"],
+        "rows": ["A10"]
+    },
+    "backlight": {
+        "pin": "B8"
+    },
+    "ws2812": {
+        "pin": "A0"
+    },
+    "apa102": {
+        "data_pin": "A0",
+        "clock_pin": "B13"
+    }
+}
diff --git a/keyboards/handwired/onekey/nucleo_g474re/readme.md b/keyboards/handwired/onekey/nucleo_g474re/readme.md
new file mode 100644
index 0000000000..f6115b10c7
--- /dev/null
+++ b/keyboards/handwired/onekey/nucleo_g474re/readme.md
@@ -0,0 +1,7 @@
+# ST Microelectronics Nucleo64-G474RE onekey
+
+Supported Hardware: <https://www.st.com/en/evaluation-tools/nucleo-g474re.html>
+
+To trigger keypress, short together pins *A9* and *A10*.
+
+The usual USB connection to ST-Link will not work for QMK -- pins *A11* and *A12* need to be connected to *D-* and *D+* respectively.
diff --git a/keyboards/handwired/onekey/nucleo_g474re/rules.mk b/keyboards/handwired/onekey/nucleo_g474re/rules.mk
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/platforms/chibios/mcu_selection.mk b/platforms/chibios/mcu_selection.mk
index 56b81493de..f14b16b169 100644
--- a/platforms/chibios/mcu_selection.mk
+++ b/platforms/chibios/mcu_selection.mk
@@ -546,6 +546,9 @@ ifneq ($(findstring STM32G431, $(MCU)),)
 
   # Bootloader address for STM32 DFU
   STM32_BOOTLOADER_ADDRESS ?= 0x1FFF0000
+
+  # Default to transient driver as ChibiOS EFL is currently broken for single-bank G4xx devices
+  EEPROM_DRIVER ?= transient
 endif
 
 ifneq ($(findstring STM32G474, $(MCU)),)
-- 
cgit v1.2.3