From 12316fe386b10a18e8145be87e332d56bef4d9ba Mon Sep 17 00:00:00 2001
From: schneider <schneider@blinkenlichts.net>
Date: Fri, 3 May 2019 00:56:55 +0200
Subject: [PATCH] fix(GPIO): Select voltage bank per IO

---
 .../Maxim/MAX32665/Source/system_max32665.c   | 20 +++++++++++++++++--
 1 file changed, 18 insertions(+), 2 deletions(-)

diff --git a/sdk/Libraries/CMSIS/Device/Maxim/MAX32665/Source/system_max32665.c b/sdk/Libraries/CMSIS/Device/Maxim/MAX32665/Source/system_max32665.c
index 4501a49f..0e515a35 100644
--- a/sdk/Libraries/CMSIS/Device/Maxim/MAX32665/Source/system_max32665.c
+++ b/sdk/Libraries/CMSIS/Device/Maxim/MAX32665/Source/system_max32665.c
@@ -159,11 +159,27 @@ __weak void SystemInit(void)
     // Set all GPIO to 25K pullup mode by default
     SYS_ClockEnable(SYS_PERIPH_CLOCK_GPIO0); 
     SYS_ClockEnable(SYS_PERIPH_CLOCK_GPIO1); 
-    MXC_GPIO0->vssel |= 0xFFFFFFFF;
+
+    // All GPIO on port 0 to 1.8 V first
+    MXC_GPIO0->vssel = 0;
+    MXC_GPIO0->vssel |= (1UL << 0) | (1UL << 1) | (1UL << 2) | (1UL << 3) | (1UL << 4) | (1UL << 5); // Flash
+    MXC_GPIO0->vssel |= (1UL << 6) | ( 1UL << 7); // USB I2C
+    MXC_GPIO0->vssel |= (1UL << 8); // Motor FET
+    MXC_GPIO0->vssel |= (1UL << 9) | (1UL << 10); // USB UART
+    MXC_GPIO0->vssel |= (1UL << 20) | (1UL << 21) | (1UL << 22) | (1UL << 29); // Wristband
+    MXC_GPIO0->vssel |= (1UL << 17) | (1UL << 23) | (1UL << 28); // GPIO to TOP
+    MXC_GPIO0->vssel |= (1UL << 31); // ECG Switch
+
     MXC_GPIO0->ps |= 0xFFFFFFFF;
     MXC_GPIO0->pad_cfg1 |= 0xFFFFFFFF;
     MXC_GPIO0->pad_cfg2 &= ~(0xFFFFFFFF);
-    MXC_GPIO1->vssel |= 0xFFFFFFFF;
+
+    // All GPIO on port 1 to 1.8 V first
+    MXC_GPIO1->vssel = 0;
+    MXC_GPIO0->vssel |= (1UL << 0) | (1UL << 1) | (1UL << 2) | (1UL << 3) | (1UL << 4) | (1UL << 5); // SDHC
+    MXC_GPIO1->vssel |= (1 << 6) | (1 << 7); // GPIO to TOP
+    MXC_GPIO1->vssel |= (1 << 14) | (1 << 15); // GPIO for RGB LEDs
+
     MXC_GPIO1->ps |= 0xFFFFFFFF;
     MXC_GPIO1->pad_cfg1 |= 0xFFFFFFFF;
     MXC_GPIO1->pad_cfg2 &= ~(0xFFFFFFFF);
-- 
GitLab