2d1aed78a67b3d2b002cc739ef087963b05b76b8

Author
Ryan <fauxpark@gmail.com>
Committer
GitHub <noreply@github.com>
Date

Message

Update GPIO macro usages in core (#23093)

Diff

This diff is truncated to protect this page.

   1diff --git a/drivers/bluetooth/bluefruit_le.cpp b/drivers/bluetooth/bluefruit_le.cpp
   2index 39c14ddd13c8c54ca81c52ffb61bfae912117096..218eca21953e44f07c0f90397353ab3471e899df 100644
   3--- a/drivers/bluetooth/bluefruit_le.cpp
   4+++ b/drivers/bluetooth/bluefruit_le.cpp
   5@@ -188,7 +188,7 @@ static bool sdep_recv_pkt(struct sdep_msg *msg, uint16_t timeout) {
   6     bool     ready      = false;
   7 
   8     do {
   9-        ready = readPin(BLUEFRUIT_LE_IRQ_PIN);
  10+        ready = gpio_read_pin(BLUEFRUIT_LE_IRQ_PIN);
  11         if (ready) {
  12             break;
  13         }
  14@@ -231,7 +231,7 @@ static void resp_buf_read_one(bool greedy) {
  15         return;
  16     }
  17 
  18-    if (readPin(BLUEFRUIT_LE_IRQ_PIN)) {
  19+    if (gpio_read_pin(BLUEFRUIT_LE_IRQ_PIN)) {
  20         struct sdep_msg msg;
  21 
  22     again:
  23@@ -242,7 +242,7 @@ static void resp_buf_read_one(bool greedy) {
  24                 dprintf("recv latency %dms\n", TIMER_DIFF_16(timer_read(), last_send));
  25             }
  26 
  27-            if (greedy && resp_buf.peek(last_send) && readPin(BLUEFRUIT_LE_IRQ_PIN)) {
  28+            if (greedy && resp_buf.peek(last_send) && gpio_read_pin(BLUEFRUIT_LE_IRQ_PIN)) {
  29                 goto again;
  30             }
  31         }
  32@@ -293,16 +293,16 @@ void bluefruit_le_init(void) {
  33     state.configured   = false;
  34     state.is_connected = false;
  35 
  36-    setPinInput(BLUEFRUIT_LE_IRQ_PIN);
  37+    gpio_set_pin_input(BLUEFRUIT_LE_IRQ_PIN);
  38 
  39     spi_init();
  40 
  41     // Perform a hardware reset
  42-    setPinOutput(BLUEFRUIT_LE_RST_PIN);
  43-    writePinHigh(BLUEFRUIT_LE_RST_PIN);
  44-    writePinLow(BLUEFRUIT_LE_RST_PIN);
  45+    gpio_set_pin_output(BLUEFRUIT_LE_RST_PIN);
  46+    gpio_write_pin_high(BLUEFRUIT_LE_RST_PIN);
  47+    gpio_write_pin_low(BLUEFRUIT_LE_RST_PIN);
  48     wait_ms(10);
  49-    writePinHigh(BLUEFRUIT_LE_RST_PIN);
  50+    gpio_write_pin_high(BLUEFRUIT_LE_RST_PIN);
  51 
  52     wait_ms(1000); // Give it a second to initialize
  53 
  54@@ -508,7 +508,7 @@ void bluefruit_le_task(void) {
  55     resp_buf_read_one(true);
  56     send_buf_send_one(SdepShortTimeout);
  57 
  58-    if (resp_buf.empty() && (state.event_flags & UsingEvents) && readPin(BLUEFRUIT_LE_IRQ_PIN)) {
  59+    if (resp_buf.empty() && (state.event_flags & UsingEvents) && gpio_read_pin(BLUEFRUIT_LE_IRQ_PIN)) {
  60         // Must be an event update
  61         if (at_command_P(PSTR("AT+EVENTSTATUS"), resbuf, sizeof(resbuf))) {
  62             uint32_t mask = strtoul(resbuf, NULL, 16);
  63diff --git a/drivers/eeprom/eeprom_i2c.c b/drivers/eeprom/eeprom_i2c.c
  64index a74a0104157c1fabfa689a30a408d50a46767428..0d3d5ccbe50c4a5aef962faf259400a50e6e8c64 100644
  65--- a/drivers/eeprom/eeprom_i2c.c
  66+++ b/drivers/eeprom/eeprom_i2c.c
  67@@ -57,8 +57,8 @@ void eeprom_driver_init(void) {
  68     i2c_init();
  69 #if defined(EXTERNAL_EEPROM_WP_PIN)
  70     /* We are setting the WP pin to high in a way that requires at least two bit-flips to change back to 0 */
  71-    writePin(EXTERNAL_EEPROM_WP_PIN, 1);
  72-    setPinInputHigh(EXTERNAL_EEPROM_WP_PIN);
  73+    gpio_write_pin(EXTERNAL_EEPROM_WP_PIN, 1);
  74+    gpio_set_pin_input_high(EXTERNAL_EEPROM_WP_PIN);
  75 #endif
  76 }
  77 
  78@@ -100,8 +100,8 @@ void eeprom_write_block(const void *buf, void *addr, size_t len) {
  79     uintptr_t target_addr = (uintptr_t)addr;
  80 
  81 #if defined(EXTERNAL_EEPROM_WP_PIN)
  82-    setPinOutput(EXTERNAL_EEPROM_WP_PIN);
  83-    writePin(EXTERNAL_EEPROM_WP_PIN, 0);
  84+    gpio_set_pin_output(EXTERNAL_EEPROM_WP_PIN);
  85+    gpio_write_pin(EXTERNAL_EEPROM_WP_PIN, 0);
  86 #endif
  87 
  88     while (len > 0) {
  89@@ -134,7 +134,7 @@ void eeprom_write_block(const void *buf, void *addr, size_t len) {
  90 
  91 #if defined(EXTERNAL_EEPROM_WP_PIN)
  92     /* We are setting the WP pin to high in a way that requires at least two bit-flips to change back to 0 */
  93-    writePin(EXTERNAL_EEPROM_WP_PIN, 1);
  94-    setPinInputHigh(EXTERNAL_EEPROM_WP_PIN);
  95+    gpio_write_pin(EXTERNAL_EEPROM_WP_PIN, 1);
  96+    gpio_set_pin_input_high(EXTERNAL_EEPROM_WP_PIN);
  97 #endif
  98 }
  99diff --git a/drivers/gpio/sn74x138.c b/drivers/gpio/sn74x138.c
 100index 222e5db56cb674c8c4b9435295114f34f6e78193..1cf8e54f562b4ce85a99b8d0d5021afd8fc709f5 100644
 101--- a/drivers/gpio/sn74x138.c
 102+++ b/drivers/gpio/sn74x138.c
 103@@ -27,39 +27,39 @@ static const pin_t address_pins[ADDRESS_PIN_COUNT] = SN74X138_ADDRESS_PINS;
 104 
 105 void sn74x138_init(void) {
 106     for (int i = 0; i < ADDRESS_PIN_COUNT; i++) {
 107-        setPinOutput(address_pins[i]);
 108-        writePinLow(address_pins[i]);
 109+        gpio_set_pin_output(address_pins[i]);
 110+        gpio_write_pin_low(address_pins[i]);
 111     }
 112 
 113 #if defined(SN74X138_E1_PIN)
 114-    setPinOutput(SN74X138_E1_PIN);
 115-    writePinHigh(SN74X138_E1_PIN);
 116+    gpio_set_pin_output(SN74X138_E1_PIN);
 117+    gpio_write_pin_high(SN74X138_E1_PIN);
 118 #endif
 119 
 120 #if defined(SN74X138_E2_PIN)
 121-    setPinOutput(SN74X138_E2_PIN);
 122-    writePinHigh(SN74X138_E2_PIN);
 123+    gpio_set_pin_output(SN74X138_E2_PIN);
 124+    gpio_write_pin_high(SN74X138_E2_PIN);
 125 #endif
 126 #if defined(SN74X138_E3_PIN)
 127-    setPinOutput(SN74X138_E3_PIN);
 128-    writePinLow(SN74X138_E3_PIN);
 129+    gpio_set_pin_output(SN74X138_E3_PIN);
 130+    gpio_write_pin_low(SN74X138_E3_PIN);
 131 #endif
 132 }
 133 
 134 void sn74x138_set_enabled(bool enabled) {
 135 #if defined(SN74X138_E1_PIN)
 136-    writePin(SN74X138_E1_PIN, !enabled);
 137+    gpio_write_pin(SN74X138_E1_PIN, !enabled);
 138 #endif
 139 #if defined(SN74X138_E2_PIN)
 140-    writePin(SN74X138_E2_PIN, !enabled);
 141+    gpio_write_pin(SN74X138_E2_PIN, !enabled);
 142 #endif
 143 #if defined(SN74X138_E3_PIN)
 144-    writePin(SN74X138_E3_PIN, enabled);
 145+    gpio_write_pin(SN74X138_E3_PIN, enabled);
 146 #endif
 147 }
 148 
 149 void sn74x138_set_addr(uint8_t address) {
 150     for (int i = 0; i < ADDRESS_PIN_COUNT; i++) {
 151-        writePin(address_pins[i], address & (1 << i));
 152+        gpio_write_pin(address_pins[i], address & (1 << i));
 153     }
 154 }
 155diff --git a/drivers/gpio/sn74x154.c b/drivers/gpio/sn74x154.c
 156index 5f21f12b55f774390eca51c4586305ba1721d4c5..6226adf27e64ffa7da2b2a03e97e32d3c8fe5439 100644
 157--- a/drivers/gpio/sn74x154.c
 158+++ b/drivers/gpio/sn74x154.c
 159@@ -27,32 +27,32 @@ static const pin_t address_pins[ADDRESS_PIN_COUNT] = SN74X154_ADDRESS_PINS;
 160 
 161 void sn74x154_init(void) {
 162     for (int i = 0; i < ADDRESS_PIN_COUNT; i++) {
 163-        setPinOutput(address_pins[i]);
 164-        writePinLow(address_pins[i]);
 165+        gpio_set_pin_output(address_pins[i]);
 166+        gpio_write_pin_low(address_pins[i]);
 167     }
 168 
 169 #if defined(SN74X154_E0_PIN)
 170-    setPinOutput(SN74X154_E0_PIN);
 171-    writePinHigh(SN74X154_E0_PIN);
 172+    gpio_set_pin_output(SN74X154_E0_PIN);
 173+    gpio_write_pin_high(SN74X154_E0_PIN);
 174 #endif
 175 
 176 #if defined(SN74X154_E1_PIN)
 177-    setPinOutput(SN74X154_E1_PIN);
 178-    writePinHigh(SN74X154_E1_PIN);
 179+    gpio_set_pin_output(SN74X154_E1_PIN);
 180+    gpio_write_pin_high(SN74X154_E1_PIN);
 181 #endif
 182 }
 183 
 184 void sn74x154_set_enabled(bool enabled) {
 185 #if defined(SN74X154_E0_PIN)
 186-    writePin(SN74X154_E0_PIN, !enabled);
 187+    gpio_write_pin(SN74X154_E0_PIN, !enabled);
 188 #endif
 189 #if defined(SN74X154_E1_PIN)
 190-    writePin(SN74X154_E1_PIN, !enabled);
 191+    gpio_write_pin(SN74X154_E1_PIN, !enabled);
 192 #endif
 193 }
 194 
 195 void sn74x154_set_addr(uint8_t address) {
 196     for (int i = 0; i < ADDRESS_PIN_COUNT; i++) {
 197-        writePin(address_pins[i], address & (1 << i));
 198+        gpio_write_pin(address_pins[i], address & (1 << i));
 199     }
 200 }
 201diff --git a/drivers/haptic/solenoid.c b/drivers/haptic/solenoid.c
 202index da4095cda4d229ce28a2145ed0f5d9a2d41d8620..346b88bbc47f37ccd05d5ef0874c842c35bc6614 100644
 203--- a/drivers/haptic/solenoid.c
 204+++ b/drivers/haptic/solenoid.c
 205@@ -61,7 +61,7 @@ void solenoid_set_dwell(uint8_t dwell) {
 206  * @param index select which solenoid to check/stop
 207  */
 208 void solenoid_stop(uint8_t index) {
 209-    writePin(solenoid_pads[index], !solenoid_active_state[index]);
 210+    gpio_write_pin(solenoid_pads[index], !solenoid_active_state[index]);
 211     solenoid_on[index]      = false;
 212     solenoid_buzzing[index] = false;
 213 }
 214@@ -78,7 +78,7 @@ void solenoid_fire(uint8_t index) {
 215     solenoid_on[index]      = true;
 216     solenoid_buzzing[index] = true;
 217     solenoid_start[index]   = timer_read();
 218-    writePin(solenoid_pads[index], solenoid_active_state[index]);
 219+    gpio_write_pin(solenoid_pads[index], solenoid_active_state[index]);
 220 }
 221 
 222 /**
 223@@ -128,12 +128,12 @@ void solenoid_check(void) {
 224             if ((elapsed[i] % (SOLENOID_BUZZ_ACTUATED + SOLENOID_BUZZ_NONACTUATED)) < SOLENOID_BUZZ_ACTUATED) {
 225                 if (!solenoid_buzzing[i]) {
 226                     solenoid_buzzing[i] = true;
 227-                    writePin(solenoid_pads[i], solenoid_active_state[i]);
 228+                    gpio_write_pin(solenoid_pads[i], solenoid_active_state[i]);
 229                 }
 230             } else {
 231                 if (solenoid_buzzing[i]) {
 232                     solenoid_buzzing[i] = false;
 233-                    writePin(solenoid_pads[i], !solenoid_active_state[i]);
 234+                    gpio_write_pin(solenoid_pads[i], !solenoid_active_state[i]);
 235                 }
 236             }
 237         }
 238@@ -156,8 +156,8 @@ void solenoid_setup(void) {
 239 #else
 240         solenoid_active_state[i] = high;
 241 #endif
 242-        writePin(solenoid_pads[i], !solenoid_active_state[i]);
 243-        setPinOutput(solenoid_pads[i]);
 244+        gpio_write_pin(solenoid_pads[i], !solenoid_active_state[i]);
 245+        gpio_set_pin_output(solenoid_pads[i]);
 246         if ((!HAPTIC_OFF_IN_LOW_POWER) || (usb_device_state == USB_DEVICE_STATE_CONFIGURED)) {
 247             solenoid_fire(i);
 248         }
 249@@ -170,6 +170,6 @@ void solenoid_setup(void) {
 250  */
 251 void solenoid_shutdown(void) {
 252     for (uint8_t i = 0; i < NUMBER_OF_SOLENOIDS; i++) {
 253-        writePin(solenoid_pads[i], !solenoid_active_state[i]);
 254+        gpio_write_pin(solenoid_pads[i], !solenoid_active_state[i]);
 255     }
 256 }
 257diff --git a/drivers/lcd/hd44780.c b/drivers/lcd/hd44780.c
 258index ccc50117abb152676e3282f46382094314c58e07..9b4e2f0226fba4428df9e8037e40c35c0bb896d6 100644
 259--- a/drivers/lcd/hd44780.c
 260+++ b/drivers/lcd/hd44780.c
 261@@ -57,67 +57,67 @@ static const pin_t data_pins[4] = HD44780_DATA_PINS;
 262 #define HD44780_ENABLE_DELAY_US 1
 263 
 264 static void hd44780_latch(void) {
 265-    writePinHigh(HD44780_E_PIN);
 266+    gpio_write_pin_high(HD44780_E_PIN);
 267     wait_us(HD44780_ENABLE_DELAY_US);
 268-    writePinLow(HD44780_E_PIN);
 269+    gpio_write_pin_low(HD44780_E_PIN);
 270 }
 271 
 272 void hd44780_write(uint8_t data, bool isData) {
 273-    writePin(HD44780_RS_PIN, isData);
 274-    writePinLow(HD44780_RW_PIN);
 275+    gpio_write_pin(HD44780_RS_PIN, isData);
 276+    gpio_write_pin_low(HD44780_RW_PIN);
 277 
 278     for (int i = 0; i < 4; i++) {
 279-        setPinOutput(data_pins[i]);
 280+        gpio_set_pin_output(data_pins[i]);
 281     }
 282 
 283     // Write high nibble
 284     for (int i = 0; i < 4; i++) {
 285-        writePin(data_pins[i], (data >> 4) & (1 << i));
 286+        gpio_write_pin(data_pins[i], (data >> 4) & (1 << i));
 287     }
 288     hd44780_latch();
 289 
 290     // Write low nibble
 291     for (int i = 0; i < 4; i++) {
 292-        writePin(data_pins[i], data & (1 << i));
 293+        gpio_write_pin(data_pins[i], data & (1 << i));
 294     }
 295     hd44780_latch();
 296 
 297     for (int i = 0; i < 4; i++) {
 298-        writePinHigh(data_pins[i]);
 299+        gpio_write_pin_high(data_pins[i]);
 300     }
 301 }
 302 
 303 uint8_t hd44780_read(bool isData) {
 304     uint8_t data = 0;
 305 
 306-    writePin(HD44780_RS_PIN, isData);
 307-    writePinHigh(HD44780_RW_PIN);
 308+    gpio_write_pin(HD44780_RS_PIN, isData);
 309+    gpio_write_pin_high(HD44780_RW_PIN);
 310 
 311     for (int i = 0; i < 4; i++) {
 312-        setPinInput(data_pins[i]);
 313+        gpio_set_pin_input(data_pins[i]);
 314     }
 315 
 316-    writePinHigh(HD44780_E_PIN);
 317+    gpio_write_pin_high(HD44780_E_PIN);
 318     wait_us(HD44780_ENABLE_DELAY_US);
 319 
 320     // Read high nibble
 321     for (int i = 0; i < 4; i++) {
 322-        data |= (readPin(data_pins[i]) << i);
 323+        data |= (gpio_read_pin(data_pins[i]) << i);
 324     }
 325 
 326     data <<= 4;
 327 
 328-    writePinLow(HD44780_E_PIN);
 329+    gpio_write_pin_low(HD44780_E_PIN);
 330     wait_us(HD44780_ENABLE_DELAY_US);
 331-    writePinHigh(HD44780_E_PIN);
 332+    gpio_write_pin_high(HD44780_E_PIN);
 333     wait_us(HD44780_ENABLE_DELAY_US);
 334 
 335     // Read low nibble
 336     for (int i = 0; i < 4; i++) {
 337-        data |= (readPin(data_pins[i]) << i);
 338+        data |= (gpio_read_pin(data_pins[i]) << i);
 339     }
 340 
 341-    writePinLow(HD44780_E_PIN);
 342+    gpio_write_pin_low(HD44780_E_PIN);
 343 
 344     return data;
 345 }
 346@@ -171,20 +171,20 @@ void hd44780_set_ddram_address(uint8_t address) {
 347 }
 348 
 349 void hd44780_init(bool cursor, bool blink) {
 350-    setPinOutput(HD44780_RS_PIN);
 351-    setPinOutput(HD44780_RW_PIN);
 352-    setPinOutput(HD44780_E_PIN);
 353+    gpio_set_pin_output(HD44780_RS_PIN);
 354+    gpio_set_pin_output(HD44780_RW_PIN);
 355+    gpio_set_pin_output(HD44780_E_PIN);
 356 
 357     for (int i = 0; i < 4; i++) {
 358-        setPinOutput(data_pins[i]);
 359+        gpio_set_pin_output(data_pins[i]);
 360     }
 361diff --git a/drivers/lcd/st7565.c b/drivers/lcd/st7565.c
 362index 47ee02804ba3b5d7a9031b5e740a6635d6330a92..4fce40edbe05fd7c89db358fe980aee2b52d63d4 100644
 363--- a/drivers/lcd/st7565.c
 364+++ b/drivers/lcd/st7565.c
 365@@ -92,10 +92,10 @@ static void InvertCharacter(uint8_t *cursor) {
 366 }
 367 
 368 bool st7565_init(display_rotation_t rotation) {
 369-    setPinOutput(ST7565_A0_PIN);
 370-    writePinHigh(ST7565_A0_PIN);
 371-    setPinOutput(ST7565_RST_PIN);
 372-    writePinHigh(ST7565_RST_PIN);
 373+    gpio_set_pin_output(ST7565_A0_PIN);
 374+    gpio_write_pin_high(ST7565_A0_PIN);
 375+    gpio_set_pin_output(ST7565_RST_PIN);
 376+    gpio_write_pin_high(ST7565_RST_PIN);
 377 
 378     st7565_rotation = st7565_init_user(rotation);
 379 
 380@@ -488,18 +488,18 @@ void st7565_task(void) {
 381 __attribute__((weak)) void st7565_task_user(void) {}
 382 
 383 void st7565_reset(void) {
 384-    writePinLow(ST7565_RST_PIN);
 385+    gpio_write_pin_low(ST7565_RST_PIN);
 386     wait_ms(20);
 387-    writePinHigh(ST7565_RST_PIN);
 388+    gpio_write_pin_high(ST7565_RST_PIN);
 389     wait_ms(20);
 390 }
 391 
 392 spi_status_t st7565_send_cmd(uint8_t cmd) {
 393-    writePinLow(ST7565_A0_PIN);
 394+    gpio_write_pin_low(ST7565_A0_PIN);
 395     return spi_write(cmd);
 396 }
 397 
 398 spi_status_t st7565_send_data(uint8_t *data, uint16_t length) {
 399-    writePinHigh(ST7565_A0_PIN);
 400+    gpio_write_pin_high(ST7565_A0_PIN);
 401     return spi_transmit(data, length);
 402 }
 403diff --git a/drivers/led/apa102.c b/drivers/led/apa102.c
 404index 548b8f094e407761e6bfba3f61562719a4063d11..d6d4327495f6e81ce6bd0e8835932071e0b72e5e 100644
 405--- a/drivers/led/apa102.c
 406+++ b/drivers/led/apa102.c
 407@@ -43,14 +43,14 @@
 408         }                                       \
 409     } while (0)
 410 
 411-#define APA102_SEND_BIT(byte, bit)                  \
 412-    do {                                            \
 413-        writePin(APA102_DI_PIN, (byte >> bit) & 1); \
 414-        io_wait;                                    \
 415-        writePinHigh(APA102_CI_PIN);                \
 416-        io_wait;                                    \
 417-        writePinLow(APA102_CI_PIN);                 \
 418-        io_wait;                                    \
 419+#define APA102_SEND_BIT(byte, bit)                        \
 420+    do {                                                  \
 421+        gpio_write_pin(APA102_DI_PIN, (byte >> bit) & 1); \
 422+        io_wait;                                          \
 423+        gpio_write_pin_high(APA102_CI_PIN);               \
 424+        io_wait;                                          \
 425+        gpio_write_pin_low(APA102_CI_PIN);                \
 426+        io_wait;                                          \
 427     } while (0)
 428 
 429 uint8_t apa102_led_brightness = APA102_DEFAULT_BRIGHTNESS;
 430@@ -114,11 +114,11 @@ static void apa102_send_frame(uint8_t red, uint8_t green, uint8_t blue, uint8_t
 431 }
 432 
 433 void apa102_init(void) {
 434-    setPinOutput(APA102_DI_PIN);
 435-    setPinOutput(APA102_CI_PIN);
 436+    gpio_set_pin_output(APA102_DI_PIN);
 437+    gpio_set_pin_output(APA102_CI_PIN);
 438 
 439-    writePinLow(APA102_DI_PIN);
 440-    writePinLow(APA102_CI_PIN);
 441+    gpio_write_pin_low(APA102_DI_PIN);
 442+    gpio_write_pin_low(APA102_CI_PIN);
 443 }
 444 
 445 void apa102_setleds(rgb_led_t *start_led, uint16_t num_leds) {
 446diff --git a/drivers/led/aw20216s.c b/drivers/led/aw20216s.c
 447index fa4454b6b1dfc4d5712f6e6074d1856cf9fa370a..704794f5b5a36974129e9006720cac1880102130 100644
 448--- a/drivers/led/aw20216s.c
 449+++ b/drivers/led/aw20216s.c
 450@@ -114,8 +114,8 @@ void aw20216s_init_drivers(void) {
 451     spi_init();
 452 
 453 #if defined(AW20216S_EN_PIN)
 454-    setPinOutput(AW20216S_EN_PIN);
 455-    writePinHigh(AW20216S_EN_PIN);
 456+    gpio_set_pin_output(AW20216S_EN_PIN);
 457+    gpio_write_pin_high(AW20216S_EN_PIN);
 458 #endif
 459 
 460     aw20216s_init(AW20216S_CS_PIN_1);
 461diff --git a/drivers/led/issi/is31fl3218-mono.c b/drivers/led/issi/is31fl3218-mono.c
 462index cb5a069160031e83bc9b136f5faf0c83094454b4..0174da7ab3b8995559f13f5cf7584027e199e840 100644
 463--- a/drivers/led/issi/is31fl3218-mono.c
 464+++ b/drivers/led/issi/is31fl3218-mono.c
 465@@ -68,8 +68,8 @@ void is31fl3218_init(void) {
 466     i2c_init();
 467 
 468 #if defined(IS31FL3218_SDB_PIN)
 469-    setPinOutput(IS31FL3218_SDB_PIN);
 470-    writePinHigh(IS31FL3218_SDB_PIN);
 471+    gpio_set_pin_output(IS31FL3218_SDB_PIN);
 472+    gpio_write_pin_high(IS31FL3218_SDB_PIN);
 473 #endif
 474 
 475     // In case we ever want to reinitialize (?)
 476diff --git a/drivers/led/issi/is31fl3218.c b/drivers/led/issi/is31fl3218.c
 477index c3a0946e83c52225fba3bd258b9e7380494e1b46..dd97d236f7b7fecf95ce56ad8e45dcdc92482441 100644
 478--- a/drivers/led/issi/is31fl3218.c
 479+++ b/drivers/led/issi/is31fl3218.c
 480@@ -68,8 +68,8 @@ void is31fl3218_init(void) {
 481     i2c_init();
 482 
 483 #if defined(IS31FL3218_SDB_PIN)
 484-    setPinOutput(IS31FL3218_SDB_PIN);
 485-    writePinHigh(IS31FL3218_SDB_PIN);
 486+    gpio_set_pin_output(IS31FL3218_SDB_PIN);
 487+    gpio_write_pin_high(IS31FL3218_SDB_PIN);
 488 #endif
 489 
 490     // In case we ever want to reinitialize (?)
 491diff --git a/drivers/led/issi/is31fl3731-mono.c b/drivers/led/issi/is31fl3731-mono.c
 492index 5ff8f8b7c5de9afb9f0d90e00d3411d89f51b76f..33a863b982fe574355accdc93da25a3b81f23b9e 100644
 493--- a/drivers/led/issi/is31fl3731-mono.c
 494+++ b/drivers/led/issi/is31fl3731-mono.c
 495@@ -99,8 +99,8 @@ void is31fl3731_init_drivers(void) {
 496     i2c_init();
 497 
 498 #if defined(IS31FL3731_SDB_PIN)
 499-    setPinOutput(IS31FL3731_SDB_PIN);
 500-    writePinHigh(IS31FL3731_SDB_PIN);
 501+    gpio_set_pin_output(IS31FL3731_SDB_PIN);
 502+    gpio_write_pin_high(IS31FL3731_SDB_PIN);
 503 #endif
 504 
 505     for (uint8_t i = 0; i < IS31FL3731_DRIVER_COUNT; i++) {
 506diff --git a/drivers/led/issi/is31fl3731.c b/drivers/led/issi/is31fl3731.c
 507index 380861d5b8c395fceed401ea18758f58e37eb215..86d953ef25dd8a5f24224c6055e30cfc558ca720 100644
 508--- a/drivers/led/issi/is31fl3731.c
 509+++ b/drivers/led/issi/is31fl3731.c
 510@@ -98,8 +98,8 @@ void is31fl3731_init_drivers(void) {
 511     i2c_init();
 512 
 513 #if defined(IS31FL3731_SDB_PIN)
 514-    setPinOutput(IS31FL3731_SDB_PIN);
 515-    writePinHigh(IS31FL3731_SDB_PIN);
 516+    gpio_set_pin_output(IS31FL3731_SDB_PIN);
 517+    gpio_write_pin_high(IS31FL3731_SDB_PIN);
 518 #endif
 519 
 520     for (uint8_t i = 0; i < IS31FL3731_DRIVER_COUNT; i++) {
 521diff --git a/drivers/led/issi/is31fl3733-mono.c b/drivers/led/issi/is31fl3733-mono.c
 522index 13f2d9b9831e7d436352660935f05766f2997c6c..740fe060970b2c8b3369088017a99fdaffc82c25 100644
 523--- a/drivers/led/issi/is31fl3733-mono.c
 524+++ b/drivers/led/issi/is31fl3733-mono.c
 525@@ -144,8 +144,8 @@ void is31fl3733_init_drivers(void) {
 526     i2c_init();
 527 
 528 #if defined(IS31FL3733_SDB_PIN)
 529-    setPinOutput(IS31FL3733_SDB_PIN);
 530-    writePinHigh(IS31FL3733_SDB_PIN);
 531+    gpio_set_pin_output(IS31FL3733_SDB_PIN);
 532+    gpio_write_pin_high(IS31FL3733_SDB_PIN);
 533 #endif
 534 
 535     for (uint8_t i = 0; i < IS31FL3733_DRIVER_COUNT; i++) {
 536diff --git a/drivers/led/issi/is31fl3733.c b/drivers/led/issi/is31fl3733.c
 537index ac6f4b4c890a44a39b595d0ef3278f20fd9c07a7..a1d689911494a0880ddfc6c34dd34f8f03b6c981 100644
 538--- a/drivers/led/issi/is31fl3733.c
 539+++ b/drivers/led/issi/is31fl3733.c
 540@@ -143,8 +143,8 @@ void is31fl3733_init_drivers(void) {
 541     i2c_init();
 542 
 543 #if defined(IS31FL3733_SDB_PIN)
 544-    setPinOutput(IS31FL3733_SDB_PIN);
 545-    writePinHigh(IS31FL3733_SDB_PIN);
 546+    gpio_set_pin_output(IS31FL3733_SDB_PIN);
 547+    gpio_write_pin_high(IS31FL3733_SDB_PIN);
 548 #endif
 549 
 550     for (uint8_t i = 0; i < IS31FL3733_DRIVER_COUNT; i++) {
 551diff --git a/drivers/led/issi/is31fl3736-mono.c b/drivers/led/issi/is31fl3736-mono.c
 552index 0d3b5db4e4c15724b8327ef3ffd6e79cfe20c5e0..7a5415c72597947682b9e3cac7b7fc82b661ea82 100644
 553--- a/drivers/led/issi/is31fl3736-mono.c
 554+++ b/drivers/led/issi/is31fl3736-mono.c
 555@@ -115,8 +115,8 @@ void is31fl3736_init_drivers(void) {
 556     i2c_init();
 557 
 558 #if defined(IS31FL3736_SDB_PIN)
 559-    setPinOutput(IS31FL3736_SDB_PIN);
 560-    writePinHigh(IS31FL3736_SDB_PIN);
 561+    gpio_set_pin_output(IS31FL3736_SDB_PIN);
 562+    gpio_write_pin_high(IS31FL3736_SDB_PIN);
 563 #endif
 564 
 565     for (uint8_t i = 0; i < IS31FL3736_DRIVER_COUNT; i++) {
 566diff --git a/drivers/led/issi/is31fl3736.c b/drivers/led/issi/is31fl3736.c
 567index 990e6c8905420573e69bc18b97a2bf6fd9adbe35..3ab42e2f7c37783ec0c656e2e9dae0233d19b220 100644
 568--- a/drivers/led/issi/is31fl3736.c
 569+++ b/drivers/led/issi/is31fl3736.c
 570@@ -115,8 +115,8 @@ void is31fl3736_init_drivers(void) {
 571     i2c_init();
 572 
 573 #if defined(IS31FL3736_SDB_PIN)
 574-    setPinOutput(IS31FL3736_SDB_PIN);
 575-    writePinHigh(IS31FL3736_SDB_PIN);
 576+    gpio_set_pin_output(IS31FL3736_SDB_PIN);
 577+    gpio_write_pin_high(IS31FL3736_SDB_PIN);
 578 #endif
 579 
 580     for (uint8_t i = 0; i < IS31FL3736_DRIVER_COUNT; i++) {
 581diff --git a/drivers/led/issi/is31fl3737-mono.c b/drivers/led/issi/is31fl3737-mono.c
 582index 37d684cff0eb09d8d8c96ed2b3c0f444b555e3b7..7b2e5a357634b2e33e53c51c96200f6dbfcb8c98 100644
 583--- a/drivers/led/issi/is31fl3737-mono.c
 584+++ b/drivers/led/issi/is31fl3737-mono.c
 585@@ -117,8 +117,8 @@ void is31fl3737_init_drivers(void) {
 586     i2c_init();
 587 
 588 #if defined(IS31FL3737_SDB_PIN)
 589-    setPinOutput(IS31FL3737_SDB_PIN);
 590-    writePinHigh(IS31FL3737_SDB_PIN);
 591+    gpio_set_pin_output(IS31FL3737_SDB_PIN);
 592+    gpio_write_pin_high(IS31FL3737_SDB_PIN);
 593 #endif
 594 
 595     for (uint8_t i = 0; i < IS31FL3737_DRIVER_COUNT; i++) {
 596diff --git a/drivers/led/issi/is31fl3737.c b/drivers/led/issi/is31fl3737.c
 597index fb760cda5ee3d21533fc4c3a9867936e9f13e912..b27a4cbb0f2351fe91076fd5e9d2b78f4d809490 100644
 598--- a/drivers/led/issi/is31fl3737.c
 599+++ b/drivers/led/issi/is31fl3737.c
 600@@ -117,8 +117,8 @@ void is31fl3737_init_drivers(void) {
 601     i2c_init();
 602 
 603 #if defined(IS31FL3737_SDB_PIN)
 604-    setPinOutput(IS31FL3737_SDB_PIN);
 605-    writePinHigh(IS31FL3737_SDB_PIN);
 606+    gpio_set_pin_output(IS31FL3737_SDB_PIN);
 607+    gpio_write_pin_high(IS31FL3737_SDB_PIN);
 608 #endif
 609 
 610     for (uint8_t i = 0; i < IS31FL3737_DRIVER_COUNT; i++) {
 611diff --git a/drivers/led/issi/is31fl3741-mono.c b/drivers/led/issi/is31fl3741-mono.c
 612index e4857b72d483889e7690b3012c20122915aac292..dbccba0fc8d5dabd80b72269aaf3f4d8c164a9b6 100644
 613--- a/drivers/led/issi/is31fl3741-mono.c
 614+++ b/drivers/led/issi/is31fl3741-mono.c
 615@@ -143,8 +143,8 @@ void is31fl3741_init_drivers(void) {
 616     i2c_init();
 617 
 618 #if defined(IS31FL3741_SDB_PIN)
 619-    setPinOutput(IS31FL3741_SDB_PIN);
 620-    writePinHigh(IS31FL3741_SDB_PIN);
 621+    gpio_set_pin_output(IS31FL3741_SDB_PIN);
 622+    gpio_write_pin_high(IS31FL3741_SDB_PIN);
 623 #endif
 624 
 625     for (uint8_t i = 0; i < IS31FL3741_DRIVER_COUNT; i++) {
 626diff --git a/drivers/led/issi/is31fl3741.c b/drivers/led/issi/is31fl3741.c
 627index a6cb661d912f9363394799ff6c9218c18b01fb43..3614d1c104c81fd8e4c334f789c35f87e1ed490d 100644
 628--- a/drivers/led/issi/is31fl3741.c
 629+++ b/drivers/led/issi/is31fl3741.c
 630@@ -143,8 +143,8 @@ void is31fl3741_init_drivers(void) {
 631     i2c_init();
 632 
 633 #if defined(IS31FL3741_SDB_PIN)
 634-    setPinOutput(IS31FL3741_SDB_PIN);
 635-    writePinHigh(IS31FL3741_SDB_PIN);
 636+    gpio_set_pin_output(IS31FL3741_SDB_PIN);
 637+    gpio_write_pin_high(IS31FL3741_SDB_PIN);
 638 #endif
 639 
 640     for (uint8_t i = 0; i < IS31FL3741_DRIVER_COUNT; i++) {
 641diff --git a/drivers/led/issi/is31fl3742a-mono.c b/drivers/led/issi/is31fl3742a-mono.c
 642index a33865260c877465a5edf9f7d05557965e528314..c63db1a7fc943374d05463f2f590714a3468818a 100644
 643--- a/drivers/led/issi/is31fl3742a-mono.c
 644+++ b/drivers/led/issi/is31fl3742a-mono.c
 645@@ -116,8 +116,8 @@ void is31fl3742a_init_drivers(void) {
 646     i2c_init();
 647 
 648 #if defined(IS31FL3742A_SDB_PIN)
 649-    setPinOutput(IS31FL3742A_SDB_PIN);
 650-    writePinHigh(IS31FL3742A_SDB_PIN);
 651+    gpio_set_pin_output(IS31FL3742A_SDB_PIN);
 652+    gpio_write_pin_high(IS31FL3742A_SDB_PIN);
 653 #endif
 654 
 655     for (uint8_t i = 0; i < IS31FL3742A_DRIVER_COUNT; i++) {
 656diff --git a/drivers/led/issi/is31fl3742a.c b/drivers/led/issi/is31fl3742a.c
 657index 8900ae666fd2683af6d115bb99b8a736dbc06cd4..b8e9a58759024d1a86e71ddf4ed3090d40292930 100644
 658--- a/drivers/led/issi/is31fl3742a.c
 659+++ b/drivers/led/issi/is31fl3742a.c
 660@@ -116,8 +116,8 @@ void is31fl3742a_init_drivers(void) {
 661     i2c_init();
 662 
 663 #if defined(IS31FL3742A_SDB_PIN)
 664-    setPinOutput(IS31FL3742A_SDB_PIN);
 665-    writePinHigh(IS31FL3742A_SDB_PIN);
 666+    gpio_set_pin_output(IS31FL3742A_SDB_PIN);
 667+    gpio_write_pin_high(IS31FL3742A_SDB_PIN);
 668 #endif
 669 
 670     for (uint8_t i = 0; i < IS31FL3742A_DRIVER_COUNT; i++) {
 671diff --git a/drivers/led/issi/is31fl3743a-mono.c b/drivers/led/issi/is31fl3743a-mono.c
 672index 99b1af160e4c8f7eb22119049b77078d1ab0d349..6413dbef04aaa592948e1d561e0284bfb94ebfab 100644
 673--- a/drivers/led/issi/is31fl3743a-mono.c
 674+++ b/drivers/led/issi/is31fl3743a-mono.c
 675@@ -138,8 +138,8 @@ void is31fl3743a_init_drivers(void) {
 676     i2c_init();
 677 
 678 #if defined(IS31FL3743A_SDB_PIN)
 679-    setPinOutput(IS31FL3743A_SDB_PIN);
 680-    writePinHigh(IS31FL3743A_SDB_PIN);
 681+    gpio_set_pin_output(IS31FL3743A_SDB_PIN);
 682+    gpio_write_pin_high(IS31FL3743A_SDB_PIN);
 683 #endif
 684 
 685     for (uint8_t i = 0; i < IS31FL3743A_DRIVER_COUNT; i++) {
 686diff --git a/drivers/led/issi/is31fl3743a.c b/drivers/led/issi/is31fl3743a.c
 687index 135e20710d44a270ea4b8b0b1a67b48c8d0a6308..6f13925f27a3d7ee27731ae841d34b114af0d7d0 100644
 688--- a/drivers/led/issi/is31fl3743a.c
 689+++ b/drivers/led/issi/is31fl3743a.c
 690@@ -138,8 +138,8 @@ void is31fl3743a_init_drivers(void) {
 691     i2c_init();
 692 
 693 #if defined(IS31FL3743A_SDB_PIN)
 694-    setPinOutput(IS31FL3743A_SDB_PIN);
 695-    writePinHigh(IS31FL3743A_SDB_PIN);
 696+    gpio_set_pin_output(IS31FL3743A_SDB_PIN);
 697+    gpio_write_pin_high(IS31FL3743A_SDB_PIN);
 698 #endif
 699 
 700     for (uint8_t i = 0; i < IS31FL3743A_DRIVER_COUNT; i++) {
 701diff --git a/drivers/led/issi/is31fl3745-mono.c b/drivers/led/issi/is31fl3745-mono.c
 702index c5d083b272f411b7ec1b50ff9eb703322ddb70b6..a6ab6992457450cc939e9c59f267b65e5e601e4d 100644
 703--- a/drivers/led/issi/is31fl3745-mono.c
 704+++ b/drivers/led/issi/is31fl3745-mono.c
 705@@ -138,8 +138,8 @@ void is31fl3745_init_drivers(void) {
 706     i2c_init();
 707 
 708 #if defined(IS31FL3745_SDB_PIN)
 709-    setPinOutput(IS31FL3745_SDB_PIN);
 710-    writePinHigh(IS31FL3745_SDB_PIN);
 711+    gpio_set_pin_output(IS31FL3745_SDB_PIN);
 712+    gpio_write_pin_high(IS31FL3745_SDB_PIN);
 713 #endif
 714 
 715     for (uint8_t i = 0; i < IS31FL3745_DRIVER_COUNT; i++) {
 716diff --git a/drivers/led/issi/is31fl3745.c b/drivers/led/issi/is31fl3745.c
 717index 273fddf1d4c0c99ddfbb784a099596478af2bb39..1e3b437e02a6d1376bced1456ffd8f000d038b88 100644
 718--- a/drivers/led/issi/is31fl3745.c
 719+++ b/drivers/led/issi/is31fl3745.c
 720@@ -138,8 +138,8 @@ void is31fl3745_init_drivers(void) {
 721     i2c_init();
 722 
 723 #if defined(IS31FL3745_SDB_PIN)
 724-    setPinOutput(IS31FL3745_SDB_PIN);
 725-    writePinHigh(IS31FL3745_SDB_PIN);
 726+    gpio_set_pin_output(IS31FL3745_SDB_PIN);
 727+    gpio_write_pin_high(IS31FL3745_SDB_PIN);
 728 #endif
 729 
 730     for (uint8_t i = 0; i < IS31FL3745_DRIVER_COUNT; i++) {
 731diff --git a/drivers/led/issi/is31fl3746a-mono.c b/drivers/led/issi/is31fl3746a-mono.c
 732index 69d50799294856acd56a165e187efdcce1fda663..6bff10723fd375be4a0d607675b27faf5bfc5d8f 100644
 733--- a/drivers/led/issi/is31fl3746a-mono.c
 734+++ b/drivers/led/issi/is31fl3746a-mono.c
 735@@ -116,8 +116,8 @@ void is31fl3746a_init_drivers(void) {
 736     i2c_init();
 737 
 738 #if defined(IS31FL3746A_SDB_PIN)
 739-    setPinOutput(IS31FL3746A_SDB_PIN);
 740-    writePinHigh(IS31FL3746A_SDB_PIN);
 741+    gpio_set_pin_output(IS31FL3746A_SDB_PIN);
 742+    gpio_write_pin_high(IS31FL3746A_SDB_PIN);
 743 #endif
 744 
 745     for (uint8_t i = 0; i < IS31FL3746A_DRIVER_COUNT; i++) {
 746diff --git a/drivers/led/issi/is31fl3746a.c b/drivers/led/issi/is31fl3746a.c
 747index c9dfbc5c40f1008199c10ba4907930fe0ea464e4..1ef0b2d6322c0818a4ec7a1147ff300b1510dc08 100644
 748--- a/drivers/led/issi/is31fl3746a.c
 749+++ b/drivers/led/issi/is31fl3746a.c
 750@@ -116,8 +116,8 @@ void is31fl3746a_init_drivers(void) {
 751     i2c_init();
 752 
 753 #if defined(IS31FL3746A_SDB_PIN)
 754-    setPinOutput(IS31FL3746A_SDB_PIN);
 755-    writePinHigh(IS31FL3746A_SDB_PIN);
 756+    gpio_set_pin_output(IS31FL3746A_SDB_PIN);
 757+    gpio_write_pin_high(IS31FL3746A_SDB_PIN);
 758 #endif
 759 
 760     for (uint8_t i = 0; i < IS31FL3746A_DRIVER_COUNT; i++) {
 761diff --git a/drivers/led/snled27351-mono.c b/drivers/led/snled27351-mono.c
 762index e13fd8a34339b7c4bd1909b2553b0278e3ead0bf..d87b856db691cb4a31716ce99eafe3eebaf12a2f 100644
 763--- a/drivers/led/snled27351-mono.c
 764+++ b/drivers/led/snled27351-mono.c
 765@@ -105,8 +105,8 @@ void snled27351_init_drivers(void) {
 766     i2c_init();
 767 
 768 #if defined(SNLED27351_SDB_PIN)
 769-    setPinOutput(SNLED27351_SDB_PIN);
 770-    writePinHigh(SNLED27351_SDB_PIN);
 771+    gpio_set_pin_output(SNLED27351_SDB_PIN);
 772+    gpio_write_pin_high(SNLED27351_SDB_PIN);
 773 #endif
 774 
 775     for (uint8_t i = 0; i < SNLED27351_DRIVER_COUNT; i++) {
 776diff --git a/drivers/led/snled27351.c b/drivers/led/snled27351.c
 777index 293685b01b553cba91426f34ecfe6e0053543905..8ebf681bdb604a5c85a7f1afa4691f8100a1d8a3 100644
 778--- a/drivers/led/snled27351.c
 779+++ b/drivers/led/snled27351.c
 780@@ -105,8 +105,8 @@ void snled27351_init_drivers(void) {
 781     i2c_init();
 782 
 783 #if defined(SNLED27351_SDB_PIN)
 784-    setPinOutput(SNLED27351_SDB_PIN);
 785-    writePinHigh(SNLED27351_SDB_PIN);
 786+    gpio_set_pin_output(SNLED27351_SDB_PIN);
 787+    gpio_write_pin_high(SNLED27351_SDB_PIN);
 788 #endif
 789 
 790     for (uint8_t i = 0; i < SNLED27351_DRIVER_COUNT; i++) {
 791diff --git a/drivers/oled/oled_driver.c b/drivers/oled/oled_driver.c
 792index 8cca41394f019cb9b571306a2834b9ca0723db55..1d1c2a90c4c3fa7734e44eaeaf805258a8827966 100644
 793--- a/drivers/oled/oled_driver.c
 794+++ b/drivers/oled/oled_driver.c
 795@@ -192,7 +192,7 @@ __attribute__((weak)) bool oled_send_cmd(const uint8_t *data, uint16_t size) {
 796         return false;
 797     }
 798     // Command Mode
 799-    writePinLow(OLED_DC_PIN);
 800+    gpio_write_pin_low(OLED_DC_PIN);
 801     // Send the commands
 802     if (spi_transmit(&data[1], size - 1) != SPI_STATUS_SUCCESS) {
 803         spi_stop();
 804@@ -215,7 +215,7 @@ __attribute__((weak)) bool oled_send_cmd_P(const uint8_t *data, uint16_t size) {
 805     }
 806     spi_status_t status = SPI_STATUS_SUCCESS;
 807     // Command Mode
 808-    writePinLow(OLED_DC_PIN);
 809+    gpio_write_pin_low(OLED_DC_PIN);
 810     // Send the commands
 811     for (uint16_t i = 1; i < size && status >= 0; i++) {
 812         status = spi_write(pgm_read_byte((const char *)&data[i]));
 813@@ -239,7 +239,7 @@ __attribute__((weak)) bool oled_send_data(const uint8_t *data, uint16_t size) {
 814         return false;
 815     }
 816     // Data Mode
 817-    writePinHigh(OLED_DC_PIN);
 818+    gpio_write_pin_high(OLED_DC_PIN);
 819     // Send the commands
 820     if (spi_transmit(data, size) != SPI_STATUS_SUCCESS) {
 821         spi_stop();
 822@@ -256,17 +256,17 @@ __attribute__((weak)) bool oled_send_data(const uint8_t *data, uint16_t size) {
 823 __attribute__((weak)) void oled_driver_init(void) {
 824 #if defined(OLED_TRANSPORT_SPI)
 825     spi_init();
 826-    setPinOutput(OLED_CS_PIN);
 827-    writePinHigh(OLED_CS_PIN);
 828+    gpio_set_pin_output(OLED_CS_PIN);
 829+    gpio_write_pin_high(OLED_CS_PIN);
 830 
 831-    setPinOutput(OLED_DC_PIN);
 832-    writePinLow(OLED_DC_PIN);
 833+    gpio_set_pin_output(OLED_DC_PIN);
 834+    gpio_write_pin_low(OLED_DC_PIN);
 835 #    ifdef OLED_RST_PIN
 836     /* Reset device */
 837-    setPinOutput(OLED_RST_PIN);
 838-    writePinLow(OLED_RST_PIN);
 839+    gpio_set_pin_output(OLED_RST_PIN);
 840+    gpio_write_pin_low(OLED_RST_PIN);
 841     wait_ms(20);
 842-    writePinHigh(OLED_RST_PIN);
 843+    gpio_write_pin_high(OLED_RST_PIN);
 844     wait_ms(20);
 845 #    endif
 846 #elif defined(OLED_TRANSPORT_I2C)
 847diff --git a/drivers/painter/comms/qp_comms_spi.c b/drivers/painter/comms/qp_comms_spi.c
 848index 9f52bc7d1f3078794262e1b72b43d7b63a10b447..4e6067394b38c09b505293ba351e3e69133479cc 100644
 849--- a/drivers/painter/comms/qp_comms_spi.c
 850+++ b/drivers/painter/comms/qp_comms_spi.c
 851@@ -17,8 +17,8 @@ bool qp_comms_spi_init(painter_device_t device) {
 852     spi_init();
 853 
 854     // Set up CS as output high
 855-    setPinOutput(comms_config->chip_select_pin);
 856-    writePinHigh(comms_config->chip_select_pin);
 857+    gpio_set_pin_output(comms_config->chip_select_pin);
 858+    gpio_write_pin_high(comms_config->chip_select_pin);
 859 
 860     return true;
 861 }
 862@@ -49,7 +49,7 @@ void qp_comms_spi_stop(painter_device_t device) {
 863     painter_driver_t *     driver       = (painter_driver_t *)device;
 864     qp_comms_spi_config_t *comms_config = (qp_comms_spi_config_t *)driver->comms_config;
 865     spi_stop();
 866-    writePinHigh(comms_config->chip_select_pin);
 867+    gpio_write_pin_high(comms_config->chip_select_pin);
 868 }
 869 
 870 const painter_comms_vtable_t spi_comms_vtable = {
 871@@ -74,16 +74,16 @@ bool qp_comms_spi_dc_reset_init(painter_device_t device) {
 872 
 873     // Set up D/C as output low, if specified
 874     if (comms_config->dc_pin != NO_PIN) {
 875-        setPinOutput(comms_config->dc_pin);
 876-        writePinLow(comms_config->dc_pin);
 877+        gpio_set_pin_output(comms_config->dc_pin);
 878+        gpio_write_pin_low(comms_config->dc_pin);
 879     }
 880 
 881     // Set up RST as output, if specified, performing a reset in the process
 882     if (comms_config->reset_pin != NO_PIN) {
 883-        setPinOutput(comms_config->reset_pin);
 884-        writePinLow(comms_config->reset_pin);
 885+        gpio_set_pin_output(comms_config->reset_pin);
 886+        gpio_write_pin_low(comms_config->reset_pin);
 887         wait_ms(20);
 888-        writePinHigh(comms_config->reset_pin);
 889+        gpio_write_pin_high(comms_config->reset_pin);
 890         wait_ms(20);
 891     }
 892 
 893@@ -93,14 +93,14 @@ bool qp_comms_spi_dc_reset_init(painter_device_t device) {
 894 uint32_t qp_comms_spi_dc_reset_send_data(painter_device_t device, const void *data, uint32_t byte_count) {
 895     painter_driver_t *              driver       = (painter_driver_t *)device;
 896     qp_comms_spi_dc_reset_config_t *comms_config = (qp_comms_spi_dc_reset_config_t *)driver->comms_config;
 897-    writePinHigh(comms_config->dc_pin);
 898+    gpio_write_pin_high(comms_config->dc_pin);
 899     return qp_comms_spi_send_data(device, data, byte_count);
 900 }
 901 
 902 void qp_comms_spi_dc_reset_send_command(painter_device_t device, uint8_t cmd) {
 903     painter_driver_t *              driver       = (painter_driver_t *)device;
 904     qp_comms_spi_dc_reset_config_t *comms_config = (qp_comms_spi_dc_reset_config_t *)driver->comms_config;
 905-    writePinLow(comms_config->dc_pin);
 906+    gpio_write_pin_low(comms_config->dc_pin);
 907     spi_write(cmd);
 908 }
 909 
 910diff --git a/drivers/sensors/adns5050.c b/drivers/sensors/adns5050.c
 911index b76268fba2671571dd3dedbb6c2369b50dc5854b..97daa8db09969285b8b89bb28a48615d3de503c1 100644
 912--- a/drivers/sensors/adns5050.c
 913+++ b/drivers/sensors/adns5050.c
 914@@ -47,9 +47,9 @@
 915 
 916 void adns5050_init(void) {
 917     // Initialize the ADNS serial pins.
 918-    setPinOutput(ADNS5050_SCLK_PIN);
 919-    setPinOutput(ADNS5050_SDIO_PIN);
 920-    setPinOutput(ADNS5050_CS_PIN);
 921+    gpio_set_pin_output(ADNS5050_SCLK_PIN);
 922+    gpio_set_pin_output(ADNS5050_SDIO_PIN);
 923+    gpio_set_pin_output(ADNS5050_CS_PIN);
 924 
 925     // reboot the adns.
 926     // if the adns hasn't initialized yet, this is harmless.
 927@@ -69,30 +69,30 @@ void adns5050_init(void) {
 928 // Just as with the serial protocol, this is used by the slave to send a
 929 // synchronization signal to the master.
 930 void adns5050_sync(void) {
 931-    writePinLow(ADNS5050_CS_PIN);
 932+    gpio_write_pin_low(ADNS5050_CS_PIN);
 933     wait_us(1);
 934-    writePinHigh(ADNS5050_CS_PIN);
 935+    gpio_write_pin_high(ADNS5050_CS_PIN);
 936 }
 937 
 938 void adns5050_cs_select(void) {
 939-    writePinLow(ADNS5050_CS_PIN);
 940+    gpio_write_pin_low(ADNS5050_CS_PIN);
 941 }
 942 
 943 void adns5050_cs_deselect(void) {
 944-    writePinHigh(ADNS5050_CS_PIN);
 945+    gpio_write_pin_high(ADNS5050_CS_PIN);
 946 }
 947 
 948 uint8_t adns5050_serial_read(void) {
 949-    setPinInput(ADNS5050_SDIO_PIN);
 950+    gpio_set_pin_input(ADNS5050_SDIO_PIN);
 951     uint8_t byte = 0;
 952 
 953     for (uint8_t i = 0; i < 8; ++i) {
 954-        writePinLow(ADNS5050_SCLK_PIN);
 955+        gpio_write_pin_low(ADNS5050_SCLK_PIN);
 956         wait_us(1);
 957 
 958-        byte = (byte << 1) | readPin(ADNS5050_SDIO_PIN);
 959+        byte = (byte << 1) | gpio_read_pin(ADNS5050_SDIO_PIN);
 960 
 961-        writePinHigh(ADNS5050_SCLK_PIN);
 962+        gpio_write_pin_high(ADNS5050_SCLK_PIN);
 963         wait_us(1);
 964     }
 965 
 966@@ -100,19 +100,19 @@ uint8_t adns5050_serial_read(void) {
 967 }
 968 
 969 void adns5050_serial_write(uint8_t data) {
 970-    setPinOutput(ADNS5050_SDIO_PIN);
 971+    gpio_set_pin_output(ADNS5050_SDIO_PIN);
 972 
 973     for (int8_t b = 7; b >= 0; b--) {
 974-        writePinLow(ADNS5050_SCLK_PIN);
 975+        gpio_write_pin_low(ADNS5050_SCLK_PIN);
 976 
 977         if (data & (1 << b))
 978-            writePinHigh(ADNS5050_SDIO_PIN);
 979+            gpio_write_pin_high(ADNS5050_SDIO_PIN);
 980         else
 981-            writePinLow(ADNS5050_SDIO_PIN);
 982+            gpio_write_pin_low(ADNS5050_SDIO_PIN);
 983 
 984         wait_us(2);
 985 
 986-        writePinHigh(ADNS5050_SCLK_PIN);
 987+        gpio_write_pin_high(ADNS5050_SCLK_PIN);
 988     }
 989 
 990     // tSWR. See page 15 of the ADNS spec sheet.
 991diff --git a/drivers/sensors/adns9800.c b/drivers/sensors/adns9800.c
 992index 083ab34d9fcc485019fe38a200eb0117eb0833fa..f34529ee90dd754fd51d40435397f2a602dc496a 100644
 993--- a/drivers/sensors/adns9800.c
 994+++ b/drivers/sensors/adns9800.c
 995@@ -100,7 +100,7 @@ uint8_t adns9800_read(uint8_t reg_addr) {
 996 }
 997 
 998 void adns9800_init(void) {
 999-    setPinOutput(ADNS9800_CS_PIN);
1000+    gpio_set_pin_output(ADNS9800_CS_PIN);
1001 
1002     spi_init();
1003 
1004diff --git a/drivers/sensors/analog_joystick.c b/drivers/sensors/analog_joystick.c
1005index 221625075c53b861e6d8fdd029706071a1b8b0e9..15b35a45f25a5969e036c9d4fc28a6d7663f51ba 100644
1006--- a/drivers/sensors/analog_joystick.c
1007+++ b/drivers/sensors/analog_joystick.c
1008@@ -122,17 +122,17 @@ report_analog_joystick_t analog_joystick_read(void) {
1009         report.y   = axisToMouseComponent(ANALOG_JOYSTICK_Y_AXIS_PIN, yOrigin, maxCursorSpeed, 1);
1010     }
1011 #ifdef ANALOG_JOYSTICK_CLICK_PIN
1012-    report.button = !readPin(ANALOG_JOYSTICK_CLICK_PIN);
1013+    report.button = !gpio_read_pin(ANALOG_JOYSTICK_CLICK_PIN);
1014 #endif
1015     return report;
1016 }
1017 
1018 void analog_joystick_init(void) {
1019-    setPinInputHigh(ANALOG_JOYSTICK_X_AXIS_PIN);
1020-    setPinInputHigh(ANALOG_JOYSTICK_Y_AXIS_PIN);
1021+    gpio_set_pin_input_high(ANALOG_JOYSTICK_X_AXIS_PIN);
1022+    gpio_set_pin_input_high(ANALOG_JOYSTICK_Y_AXIS_PIN);
1023 
1024 #ifdef ANALOG_JOYSTICK_CLICK_PIN
1025-    setPinInputHigh(ANALOG_JOYSTICK_CLICK_PIN);
1026+    gpio_set_pin_input_high(ANALOG_JOYSTICK_CLICK_PIN);
1027 #endif
1028     // Account for drift
1029     xOrigin = analogReadPin(ANALOG_JOYSTICK_X_AXIS_PIN);
1030diff --git a/drivers/sensors/paw3204.c b/drivers/sensors/paw3204.c
1031index a13753dd6f1dc023e1aee6b0240b5a7ce3a60eb4..28c47522ed55e4bf4f59d5d591ad7cbb3565a6ea 100644
1032--- a/drivers/sensors/paw3204.c
1033+++ b/drivers/sensors/paw3204.c
1034@@ -51,8 +51,8 @@ uint8_t paw3204_read_reg(uint8_t reg_addr);
1035 void    paw3204_write_reg(uint8_t reg_addr, uint8_t data);
1036 
1037 void paw3204_init(void) {
1038-    setPinOutput(PAW3204_SCLK_PIN);    // setclockpin to output
1039-    setPinInputHigh(PAW3204_SDIO_PIN); // set datapin input high
1040+    gpio_set_pin_output(PAW3204_SCLK_PIN);     // setclockpin to output
1041+    gpio_set_pin_input_high(PAW3204_SDIO_PIN); // set datapin input high
1042 
1043     paw3204_write_reg(REG_SETUP, 0x86); // reset sensor and set 1600cpi
1044     wait_us(5);
1045@@ -64,16 +64,16 @@ void paw3204_init(void) {
1046 }
1047 
1048 uint8_t paw3204_serial_read(void) {
1049-    setPinInput(PAW3204_SDIO_PIN);
1050+    gpio_set_pin_input(PAW3204_SDIO_PIN);
1051     uint8_t byte = 0;
1052 
1053     for (uint8_t i = 0; i < 8; ++i) {
1054-        writePinLow(PAW3204_SCLK_PIN);
1055+        gpio_write_pin_low(PAW3204_SCLK_PIN);
1056         wait_us(1);
1057 
1058-        byte = (byte << 1) | readPin(PAW3204_SDIO_PIN);
1059+        byte = (byte << 1) | gpio_read_pin(PAW3204_SDIO_PIN);
1060 
1061-        writePinHigh(PAW3204_SCLK_PIN);
1062+        gpio_write_pin_high(PAW3204_SCLK_PIN);
1063         wait_us(1);
1064     }
1065 
1066@@ -81,17 +81,17 @@ uint8_t paw3204_serial_read(void) {
1067 }
1068 
1069 void paw3204_serial_write(uint8_t data) {
1070-    writePinLow(PAW3204_SDIO_PIN);
1071-    setPinOutput(PAW3204_SDIO_PIN);
1072+    gpio_write_pin_low(PAW3204_SDIO_PIN);
1073+    gpio_set_pin_output(PAW3204_SDIO_PIN);
1074 
1075     for (int8_t b = 7; b >= 0; b--) {
1076-        writePinLow(PAW3204_SCLK_PIN);
1077+        gpio_write_pin_low(PAW3204_SCLK_PIN);
1078         if (data & (1 << b)) {
1079-            writePinHigh(PAW3204_SDIO_PIN);
1080+            gpio_write_pin_high(PAW3204_SDIO_PIN);
1081         } else {
1082-            writePinLow(PAW3204_SDIO_PIN);
1083+            gpio_write_pin_low(PAW3204_SDIO_PIN);
1084         }
1085-        writePinHigh(PAW3204_SCLK_PIN);
1086+        gpio_write_pin_high(PAW3204_SCLK_PIN);
1087     }
1088 
1089     wait_us(4);
1090diff --git a/drivers/sensors/pmw3320.c b/drivers/sensors/pmw3320.c
1091index 69a584f4e1443f9d99ecb217c2b6ac5e3943bf5c..f19fbfd1ab44396e198f130cf840aafe06a67132 100644
1092--- a/drivers/sensors/pmw3320.c
1093+++ b/drivers/sensors/pmw3320.c
1094@@ -24,9 +24,9 @@
1095 
1096 void pmw3320_init(void) {
1097     // Initialize sensor serial pins.
1098-    setPinOutput(PMW3320_SCLK_PIN);
1099-    setPinOutput(PMW3320_SDIO_PIN);
1100-    setPinOutput(PMW3320_CS_PIN);
1101+    gpio_set_pin_output(PMW3320_SCLK_PIN);
1102+    gpio_set_pin_output(PMW3320_SDIO_PIN);
1103+    gpio_set_pin_output(PMW3320_CS_PIN);
1104 
1105     // reboot the sensor.
1106     pmw3320_write_reg(REG_Power_Up_Reset, 0x5a);
1107@@ -54,30 +54,30 @@ void pmw3320_init(void) {
1108 // Just as with the serial protocol, this is used by the slave to send a
1109 // synchronization signal to the master.
1110 void pmw3320_sync(void) {
1111-    writePinLow(PMW3320_CS_PIN);
1112+    gpio_write_pin_low(PMW3320_CS_PIN);
1113     wait_us(1);
1114-    writePinHigh(PMW3320_CS_PIN);
1115+    gpio_write_pin_high(PMW3320_CS_PIN);
1116 }
1117 
1118 void pmw3320_cs_select(void) {
1119-    writePinLow(PMW3320_CS_PIN);
1120+    gpio_write_pin_low(PMW3320_CS_PIN);
1121 }
1122 
1123 void pmw3320_cs_deselect(void) {
1124-    writePinHigh(PMW3320_CS_PIN);
1125+    gpio_write_pin_high(PMW3320_CS_PIN);
1126 }
1127 
1128 uint8_t pmw3320_serial_read(void) {
1129-    setPinInput(PMW3320_SDIO_PIN);
1130+    gpio_set_pin_input(PMW3320_SDIO_PIN);
1131     uint8_t byte = 0;
1132 
1133     for (uint8_t i = 0; i < 8; ++i) {
1134-        writePinLow(PMW3320_SCLK_PIN);
1135+        gpio_write_pin_low(PMW3320_SCLK_PIN);
1136         wait_us(1);
1137 
1138-        byte = (byte << 1) | readPin(PMW3320_SDIO_PIN);
1139+        byte = (byte << 1) | gpio_read_pin(PMW3320_SDIO_PIN);
1140 
1141-        writePinHigh(PMW3320_SCLK_PIN);
1142+        gpio_write_pin_high(PMW3320_SCLK_PIN);
1143         wait_us(1);
1144     }
1145 
1146@@ -85,19 +85,19 @@ uint8_t pmw3320_serial_read(void) {
1147 }
1148 
1149 void pmw3320_serial_write(uint8_t data) {
1150-    setPinOutput(PMW3320_SDIO_PIN);
1151+    gpio_set_pin_output(PMW3320_SDIO_PIN);
1152 
1153     for (int8_t b = 7; b >= 0; b--) {
1154-        writePinLow(PMW3320_SCLK_PIN);
1155+        gpio_write_pin_low(PMW3320_SCLK_PIN);
1156 
1157         if (data & (1 << b))
1158-            writePinHigh(PMW3320_SDIO_PIN);
1159+            gpio_write_pin_high(PMW3320_SDIO_PIN);
1160         else
1161-            writePinLow(PMW3320_SDIO_PIN);
1162+            gpio_write_pin_low(PMW3320_SDIO_PIN);
1163 
1164         wait_us(2);
1165 
1166-        writePinHigh(PMW3320_SCLK_PIN);
1167+        gpio_write_pin_high(PMW3320_SCLK_PIN);
1168     }
1169 
1170     // This was taken from ADNS5050 driver.
1171diff --git a/drivers/usb2422.c b/drivers/usb2422.c
1172index 1d33b5acf807af7abcae9099a26d15ca47c22c16..de0e399f8720f270b1501896829a6420f9771625 100644
1173--- a/drivers/usb2422.c
1174+++ b/drivers/usb2422.c
1175@@ -346,10 +346,10 @@ static void USB2422_write_block(void) {
1176 
1177 void USB2422_init(void) {
1178 #ifdef USB2422_RESET_PIN
1179-    setPinOutput(USB2422_RESET_PIN);
1180+    gpio_set_pin_output(USB2422_RESET_PIN);
1181 #endif
1182 #ifdef USB2422_ACTIVE_PIN
1183-    setPinInput(USB2422_ACTIVE_PIN);
1184+    gpio_set_pin_input(USB2422_ACTIVE_PIN);
1185 #endif
1186 
1187     i2c_init(); // IC2 clk must be high at USB2422 reset release time to signal SMB configuration
1188@@ -387,15 +387,15 @@ void USB2422_configure(void) {
1189 
1190 void USB2422_reset(void) {
1191 #ifdef USB2422_RESET_PIN
1192-    writePinLow(USB2422_RESET_PIN);
1193+    gpio_write_pin_low(USB2422_RESET_PIN);
1194     wait_us(2);
1195-    writePinHigh(USB2422_RESET_PIN);
1196+    gpio_write_pin_high(USB2422_RESET_PIN);
1197 #endif
1198 }
1199 
1200 bool USB2422_active(void) {
1201 #ifdef USB2422_ACTIVE_PIN
1202-    return readPin(USB2422_ACTIVE_PIN);
1203+    return gpio_read_pin(USB2422_ACTIVE_PIN);
1204 #else
1205     return 1;
1206 #endif
1207diff --git a/keyboards/handwired/onekey/keymaps/chibios_waiting_test/keymap.c b/keyboards/handwired/onekey/keymaps/chibios_waiting_test/keymap.c
1208index 65983c8dd8d87faa0d8ebd9c717848885c7bd3ec..361a08a7604d605c680e09bb88ce337da8d02a8c 100644
1209--- a/keyboards/handwired/onekey/keymaps/chibios_waiting_test/keymap.c
1210+++ b/keyboards/handwired/onekey/keymaps/chibios_waiting_test/keymap.c
1211@@ -13,20 +13,20 @@ static inline void chThdSleepMicroseconds(uint32_t us) {
1212 #endif
1213 
1214 void keyboard_post_init_user(void) {
1215-    setPinOutput(QMK_WAITING_TEST_BUSY_PIN);
1216-    setPinOutput(QMK_WAITING_TEST_YIELD_PIN);
1217+    gpio_set_pin_output(QMK_WAITING_TEST_BUSY_PIN);
1218+    gpio_set_pin_output(QMK_WAITING_TEST_YIELD_PIN);
1219 }
1220 
1221 static inline void wait_us_polling_with_strobe(uint32_t us) {
1222-    writePinHigh(QMK_WAITING_TEST_BUSY_PIN);
1223+    gpio_write_pin_high(QMK_WAITING_TEST_BUSY_PIN);
1224     wait_us(us);
1225-    writePinLow(QMK_WAITING_TEST_BUSY_PIN);
1226+    gpio_write_pin_low(QMK_WAITING_TEST_BUSY_PIN);
1227 }
1228 
1229 static inline void wait_us_yield_with_strobe(uint32_t us) {
1230-    writePinHigh(QMK_WAITING_TEST_YIELD_PIN);
1231+    gpio_write_pin_high(QMK_WAITING_TEST_YIELD_PIN);
1232     chThdSleepMicroseconds(us);
1233-    writePinLow(QMK_WAITING_TEST_YIELD_PIN);
1234+    gpio_write_pin_low(QMK_WAITING_TEST_YIELD_PIN);
1235 }
1236 
1237 static const uint32_t waiting_values[] = {0, 1, 5, 10, 25, 50, 100, 150, 200, 500, 1000};
1238diff --git a/platforms/avr/drivers/audio_pwm_hardware.c b/platforms/avr/drivers/audio_pwm_hardware.c
1239index 6799cf2fddefb006d706467966d950545bd0faa9..d484fba00fbd5705681927b5789986f4855193d6 100644
1240--- a/platforms/avr/drivers/audio_pwm_hardware.c
1241+++ b/platforms/avr/drivers/audio_pwm_hardware.c
1242@@ -216,12 +216,12 @@ void channel_2_stop(void) {
1243 void audio_driver_initialize(void) {
1244 #ifdef AUDIO1_PIN_SET
1245     channel_1_stop();
1246-    setPinOutput(AUDIO1_PIN);
1247+    gpio_set_pin_output(AUDIO1_PIN);
1248 #endif
1249 
1250 #ifdef AUDIO2_PIN_SET
1251     channel_2_stop();
1252-    setPinOutput(AUDIO2_PIN);
1253+    gpio_set_pin_output(AUDIO2_PIN);
1254 #endif
1255 
1256     // TCCR3A / TCCR3B: Timer/Counter #3 Control Registers TCCR3A/TCCR3B, TCCR1A/TCCR1B
1257diff --git a/platforms/avr/drivers/backlight_pwm.c b/platforms/avr/drivers/backlight_pwm.c
1258index 74d25753a4e66074ad1fa1680a532a5e12e606fd..f6ab9391e27987fd1a31c1d0a7464aaf7141bab3 100644
1259--- a/platforms/avr/drivers/backlight_pwm.c
1260+++ b/platforms/avr/drivers/backlight_pwm.c
1261@@ -291,11 +291,11 @@ ISR(TIMERx_OVF_vect) {
1262 #endif // BACKLIGHT_BREATHING
1263 
1264 void backlight_init_ports(void) {
1265-    setPinOutput(BACKLIGHT_PIN);
1266+    gpio_set_pin_output(BACKLIGHT_PIN);
1267 #if BACKLIGHT_ON_STATE == 1
1268-    writePinLow(BACKLIGHT_PIN);
1269+    gpio_write_pin_low(BACKLIGHT_PIN);
1270 #else
1271-    writePinHigh(BACKLIGHT_PIN);
1272+    gpio_write_pin_high(BACKLIGHT_PIN);
1273 #endif
1274 
1275     // I could write a wall of text here to explain... but TL;DW
1276diff --git a/platforms/avr/drivers/ps2/ps2_io.c b/platforms/avr/drivers/ps2/ps2_io.c
1277index b75a1ab0bec7bc8db36316a273af9b41324ec352..fb8747437294bf6bfe4f621df8a70a69a6730da2 100644
1278--- a/platforms/avr/drivers/ps2/ps2_io.c
1279+++ b/platforms/avr/drivers/ps2/ps2_io.c
1280@@ -19,18 +19,18 @@ void clock_init(void) {}
1281 
1282 void clock_lo(void) {
1283     // Transition from input with pull-up to output low via Hi-Z instead of output high
1284-    writePinLow(PS2_CLOCK_PIN);
1285-    setPinOutput(PS2_CLOCK_PIN);
1286+    gpio_write_pin_low(PS2_CLOCK_PIN);
1287+    gpio_set_pin_output(PS2_CLOCK_PIN);
1288 }
1289 
1290 void clock_hi(void) {
1291-    setPinInputHigh(PS2_CLOCK_PIN);
1292+    gpio_set_pin_input_high(PS2_CLOCK_PIN);
1293 }
1294 
1295 bool clock_in(void) {
1296-    setPinInputHigh(PS2_CLOCK_PIN);
1297+    gpio_set_pin_input_high(PS2_CLOCK_PIN);
1298     wait_us(1);
1299-    return readPin(PS2_CLOCK_PIN);
1300+    return gpio_read_pin(PS2_CLOCK_PIN);
1301 }
1302 
1303 /*
1304@@ -40,16 +40,16 @@ void data_init(void) {}
1305 
1306 void data_lo(void) {
1307     // Transition from input with pull-up to output low via Hi-Z instead of output high
1308-    writePinLow(PS2_DATA_PIN);
1309-    setPinOutput(PS2_DATA_PIN);
1310+    gpio_write_pin_low(PS2_DATA_PIN);
1311+    gpio_set_pin_output(PS2_DATA_PIN);
1312 }
1313 
1314 void data_hi(void) {
1315-    setPinInputHigh(PS2_DATA_PIN);
1316+    gpio_set_pin_input_high(PS2_DATA_PIN);
1317 }
1318 
1319 bool data_in(void) {
1320-    setPinInputHigh(PS2_DATA_PIN);
1321+    gpio_set_pin_input_high(PS2_DATA_PIN);
1322     wait_us(1);
1323-    return readPin(PS2_DATA_PIN);
1324+    return gpio_read_pin(PS2_DATA_PIN);
1325 }
1326diff --git a/platforms/avr/drivers/serial.c b/platforms/avr/drivers/serial.c
1327index 730d9b7a0123d7b24bd458e2c2f286c17e51cb85..b529f9b45eea95f91c4a46a328df60d6fe862eb8 100644
1328--- a/platforms/avr/drivers/serial.c
1329+++ b/platforms/avr/drivers/serial.c
1330@@ -239,28 +239,28 @@ inline static void serial_delay_half2(void) {
1331 
1332 inline static void serial_output(void) ALWAYS_INLINE;
1333 inline static void serial_output(void) {
1334-    setPinOutput(SOFT_SERIAL_PIN);
1335+    gpio_set_pin_output(SOFT_SERIAL_PIN);
1336 }
1337 
1338 // make the serial pin an input with pull-up resistor
1339 inline static void serial_input_with_pullup(void) ALWAYS_INLINE;
1340 inline static void serial_input_with_pullup(void) {
1341-    setPinInputHigh(SOFT_SERIAL_PIN);
1342+    gpio_set_pin_input_high(SOFT_SERIAL_PIN);
1343 }
1344 
1345 inline static uint8_t serial_read_pin(void) ALWAYS_INLINE;
1346 inline static uint8_t serial_read_pin(void) {
1347-    return !!readPin(SOFT_SERIAL_PIN);
1348+    return !!gpio_read_pin(SOFT_SERIAL_PIN);
1349 }
1350 
1351 inline static void serial_low(void) ALWAYS_INLINE;
1352 inline static void serial_low(void) {
1353-    writePinLow(SOFT_SERIAL_PIN);
1354+    gpio_write_pin_low(SOFT_SERIAL_PIN);
1355 }
1356 
1357 inline static void serial_high(void) ALWAYS_INLINE;
1358 inline static void serial_high(void) {
1359-    writePinHigh(SOFT_SERIAL_PIN);
1360+    gpio_write_pin_high(SOFT_SERIAL_PIN);
1361 }
1362 
1363 void soft_serial_initiator_init(void) {
1364diff --git a/platforms/avr/drivers/spi_master.c b/platforms/avr/drivers/spi_master.c
1365index ae9df03c02dc67fd8552d07edc0ef5b32ba1414a..74b847c71a2ccd1d1fd2a7e37a799de35d5d5f10 100644
1366--- a/platforms/avr/drivers/spi_master.c
1367+++ b/platforms/avr/drivers/spi_master.c
1368@@ -41,10 +41,10 @@ static uint8_t currentSlaveConfig = 0;
1369 static bool    currentSlave2X     = false;
1370 
1371 void spi_init(void) {
1372-    writePinHigh(SPI_SS_PIN);
1373-    setPinOutput(SPI_SCK_PIN);
1374-    setPinOutput(SPI_MOSI_PIN);
1375-    setPinInput(SPI_MISO_PIN);
1376+    gpio_write_pin_high(SPI_SS_PIN);
1377+    gpio_set_pin_output(SPI_SCK_PIN);
1378+    gpio_set_pin_output(SPI_MOSI_PIN);
1379+    gpio_set_pin_input(SPI_MISO_PIN);
1380 
1381     SPCR = (_BV(SPE) | _BV(MSTR));
1382 }
1383@@ -105,8 +105,8 @@ bool spi_start(pin_t slavePin, bool lsbFirst, uint8_t mode, uint16_t divisor) {
1384         SPSR |= _BV(SPI2X);
1385     }
1386     currentSlavePin = slavePin;
1387-    setPinOutput(currentSlavePin);
1388-    writePinLow(currentSlavePin);
1389+    gpio_set_pin_output(currentSlavePin);
1390+    gpio_write_pin_low(currentSlavePin);
1391 
1392     return true;
1393 }
1394@@ -169,8 +169,8 @@ spi_status_t spi_receive(uint8_t *data, uint16_t length) {
1395 
1396 void spi_stop(void) {
1397     if (currentSlavePin != NO_PIN) {
1398-        setPinOutput(currentSlavePin);
1399-        writePinHigh(currentSlavePin);
1400+        gpio_set_pin_output(currentSlavePin);
1401+        gpio_write_pin_high(currentSlavePin);
1402         currentSlavePin = NO_PIN;
1403         SPSR &= ~(_BV(SPI2X));
1404         SPCR &= ~(currentSlaveConfig);
1405diff --git a/platforms/chibios/drivers/serial.c b/platforms/chibios/drivers/serial.c
1406index f199716a2b26306d41177fae0bc10563fbf6cb5a..fa8481d2dcf872663f724a1bbd40b8546d6f4eab 100644
1407--- a/platforms/chibios/drivers/serial.c
1408+++ b/platforms/chibios/drivers/serial.c
1409@@ -62,25 +62,25 @@ inline static void serial_delay_blip(void) {
1410     wait_us(1);
1411 }
1412 inline static void serial_output(void) {
1413-    setPinOutput(SOFT_SERIAL_PIN);
1414+    gpio_set_pin_output(SOFT_SERIAL_PIN);
1415 }
1416 inline static void serial_input(void) {
1417-    setPinInputHigh(SOFT_SERIAL_PIN);
1418+    gpio_set_pin_input_high(SOFT_SERIAL_PIN);
1419 }
1420 inline static bool serial_read_pin(void) {
1421-    return !!readPin(SOFT_SERIAL_PIN);
1422+    return !!gpio_read_pin(SOFT_SERIAL_PIN);
1423 }
1424 inline static void serial_low(void) {
1425-    writePinLow(SOFT_SERIAL_PIN);
1426+    gpio_write_pin_low(SOFT_SERIAL_PIN);
1427 }
1428 inline static void serial_high(void) {
1429-    writePinHigh(SOFT_SERIAL_PIN);
1430+    gpio_write_pin_high(SOFT_SERIAL_PIN);
1431 }
1432 
1433 void interrupt_handler(void *arg);
1434 
1435 // Use thread + palWaitLineTimeout instead of palSetLineCallback
1436-//  - Methods like setPinOutput and palEnableLineEvent/palDisableLineEvent
1437+//  - Methods like gpio_set_pin_output and palEnableLineEvent/palDisableLineEvent
1438 //    cause the interrupt to lock up, which would limit to only receiving data...
1439 static THD_WORKING_AREA(waThread1, 128);
1440 static THD_FUNCTION(Thread1, arg) {
1441diff --git a/platforms/chibios/drivers/spi_master.c b/platforms/chibios/drivers/spi_master.c
1442index 481a2e422aa4b114270e5c8f4406867fa29ebd52..57fc53d49f68bf65d02894e7daa4f1bfec4edec5 100644
1443--- a/platforms/chibios/drivers/spi_master.c
1444+++ b/platforms/chibios/drivers/spi_master.c
1445@@ -32,12 +32,12 @@ __attribute__((weak)) void spi_init(void) {
1446         is_initialised = true;
1447 
1448         // Try releasing special pins for a short time
1449-        setPinInput(SPI_SCK_PIN);
1450+        gpio_set_pin_input(SPI_SCK_PIN);
1451         if (SPI_MOSI_PIN != NO_PIN) {
1452-            setPinInput(SPI_MOSI_PIN);
1453+            gpio_set_pin_input(SPI_MOSI_PIN);
1454         }
1455         if (SPI_MISO_PIN != NO_PIN) {
1456-            setPinInput(SPI_MISO_PIN);
1457+            gpio_set_pin_input(SPI_MISO_PIN);
1458         }
1459 
1460         chThdSleepMilliseconds(10);
1461@@ -271,10 +271,10 @@ bool spi_start(pin_t slavePin, bool lsbFirst, uint8_t mode, uint16_t divisor) {
1462 #if SPI_SELECT_MODE == SPI_SELECT_MODE_PAD
1463     spiConfig.ssport = PAL_PORT(slavePin);
1464     spiConfig.sspad  = PAL_PAD(slavePin);
1465-    setPinOutput(slavePin);
1466+    gpio_set_pin_output(slavePin);
1467 #elif SPI_SELECT_MODE == SPI_SELECT_MODE_NONE
1468     if (slavePin != NO_PIN) {
1469-        setPinOutput(slavePin);
1470+        gpio_set_pin_output(slavePin);
1471     }
1472 #else
1473 #    error "Unsupported SPI_SELECT_MODE"
1474@@ -284,7 +284,7 @@ bool spi_start(pin_t slavePin, bool lsbFirst, uint8_t mode, uint16_t divisor) {
1475     spiSelect(&SPI_DRIVER);
1476 #if SPI_SELECT_MODE == SPI_SELECT_MODE_NONE
1477     if (slavePin != NO_PIN) {
1478-        writePinLow(slavePin);
1479+        gpio_write_pin_low(slavePin);
1480     }
1481 #endif
1482 
1483@@ -319,7 +319,7 @@ void spi_stop(void) {
1484     if (spiStarted) {
1485 #if SPI_SELECT_MODE == SPI_SELECT_MODE_NONE
1486         if (currentSlavePin != NO_PIN) {
1487-            writePinHigh(currentSlavePin);
1488+            gpio_write_pin_high(currentSlavePin);
1489         }
1490 #endif
1491         spiUnselect(&SPI_DRIVER);
1492diff --git a/platforms/chibios/drivers/ws2812_bitbang.c b/platforms/chibios/drivers/ws2812_bitbang.c
1493index 883a845d8846cd3cfb3894a2814e87a4486f9831..593377068bce4f01fa63404885f933c9fa9e21fd 100644
1494--- a/platforms/chibios/drivers/ws2812_bitbang.c
1495+++ b/platforms/chibios/drivers/ws2812_bitbang.c
1496@@ -57,15 +57,15 @@ void sendByte(uint8_t byte) {
1497         // using something like wait_ns(is_one ? T1L : T0L) here throws off timings
1498         if (is_one) {
1499             // 1
1500-            writePinHigh(WS2812_DI_PIN);
1501+            gpio_write_pin_high(WS2812_DI_PIN);
1502             wait_ns(WS2812_T1H);
1503-            writePinLow(WS2812_DI_PIN);
1504+            gpio_write_pin_low(WS2812_DI_PIN);
1505             wait_ns(WS2812_T1L);
1506         } else {
1507             // 0
1508-            writePinHigh(WS2812_DI_PIN);
1509+            gpio_write_pin_high(WS2812_DI_PIN);
1510             wait_ns(WS2812_T0H);
1511-            writePinLow(WS2812_DI_PIN);
1512+            gpio_write_pin_low(WS2812_DI_PIN);
1513             wait_ns(WS2812_T0L);
1514         }
1515     }
1516diff --git a/quantum/backlight/backlight_driver_common.c b/quantum/backlight/backlight_driver_common.c
1517index 8c3fe461d7ca80335f2b50bf61113ee423e7edf3..fb2770ee3c81a2da97ccd1054458e7d704a57436 100644
1518--- a/quantum/backlight/backlight_driver_common.c
1519+++ b/quantum/backlight/backlight_driver_common.c
1520@@ -26,23 +26,23 @@ static const pin_t backlight_pin = BACKLIGHT_PIN;
1521 
1522 static inline void backlight_on(pin_t backlight_pin) {
1523 #if BACKLIGHT_ON_STATE == 0
1524-    writePinLow(backlight_pin);
1525+    gpio_write_pin_low(backlight_pin);
1526 #else
1527-    writePinHigh(backlight_pin);
1528+    gpio_write_pin_high(backlight_pin);
1529 #endif
1530 }
1531 
1532 static inline void backlight_off(pin_t backlight_pin) {
1533 #if BACKLIGHT_ON_STATE == 0
1534-    writePinHigh(backlight_pin);
1535+    gpio_write_pin_high(backlight_pin);
1536 #else
1537-    writePinLow(backlight_pin);
1538+    gpio_write_pin_low(backlight_pin);
1539 #endif
1540 }
1541 
1542 void backlight_pins_init(void) {
1543     // Setup backlight pin as output and output to off state.
1544-    FOR_EACH_LED(setPinOutput(backlight_pin); backlight_off(backlight_pin);)
1545+    FOR_EACH_LED(gpio_set_pin_output(backlight_pin); backlight_off(backlight_pin);)
1546 }
1547 
1548 void backlight_pins_on(void) {
1549diff --git a/quantum/dip_switch.c b/quantum/dip_switch.c
1550index e901f3e0c4ff77ae26bef93918f894d25f06b9fd..69cf6652919feb8d690353997ffd3ffd0ba2396c 100644
1551--- a/quantum/dip_switch.c
1552+++ b/quantum/dip_switch.c
1553@@ -94,7 +94,7 @@ void dip_switch_init(void) {
1554     }
1555 #    endif
1556     for (uint8_t i = 0; i < NUM_DIP_SWITCHES; i++) {
1557-        setPinInputHigh(dip_switch_pad[i]);
1558+        gpio_set_pin_input_high(dip_switch_pad[i]);
1559     }
1560     dip_switch_read(true);
1561 #endif
1562@@ -123,7 +123,7 @@ void dip_switch_read(bool forced) {
1563 
1564     for (uint8_t i = 0; i < NUM_DIP_SWITCHES; i++) {
1565 #ifdef DIP_SWITCH_PINS
1566-        dip_switch_state[i] = !readPin(dip_switch_pad[i]);
1567+        dip_switch_state[i] = !gpio_read_pin(dip_switch_pad[i]);
1568 #endif
1569 #ifdef DIP_SWITCH_MATRIX_GRID
1570         dip_switch_state[i] = peek_matrix(dip_switch_pad[i].row, dip_switch_pad[i].col, read_raw);