2d1aed78a67b3d2b002cc739ef087963b05b76b8
- Author
- Ryan <fauxpark@gmail.com>
- Committer
- GitHub <noreply@github.com>
- Date
Message
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);