···2233The I2C Master drivers used in QMK have a set of common functions to allow portability between MCUs.
4455+## Usage :id=usage
66+77+In most cases, the I2C Master driver code is automatically included if you are using a feature or driver which requires it, such as [OLED](feature_oled_driver.md).
88+99+However, if you need to use the driver standalone, add the following to your `rules.mk`:
1010+1111+```make
1212+I2C_DRIVER_REQUIRED = yes
1313+```
1414+1515+You can then call the I2C API by including `i2c_master.h` in your code.
1616+517## I2C Addressing :id=note-on-i2c-addresses
618719All of the addresses expected by this driver should be pushed to the upper 7 bits of the address byte. Setting
+12
docs/spi_driver.md
···2233The SPI Master drivers used in QMK have a set of common functions to allow portability between MCUs.
4455+## Usage :id=usage
66+77+In most cases, the SPI Master driver code is automatically included if you are using a feature or driver which requires it, such as [OLED](feature_oled_driver.md).
88+99+However, if you need to use the driver standalone, add the following to your `rules.mk`:
1010+1111+```make
1212+SPI_DRIVER_REQUIRED = yes
1313+```
1414+1515+You can then call the SPI API by including `spi_master.h` in your code.
1616+517## AVR Configuration :id=avr-configuration
618719No special setup is required - just connect the `SS`, `SCK`, `MOSI` and `MISO` pins of your SPI devices to the matching pins on the MCU:
+12
docs/uart_driver.md
···4455Currently, this driver does not support enabling hardware flow control (the `RTS` and `CTS` pins) if available, but may do so in future.
6677+## Usage :id=usage
88+99+In most cases, the UART driver code is automatically included if you are using a feature or driver which requires it.
1010+1111+However, if you need to use the driver standalone, add the following to your `rules.mk`:
1212+1313+```make
1414+UART_DRIVER_REQUIRED = yes
1515+```
1616+1717+You can then call the UART API by including `uart.h` in your code.
1818+719## AVR Configuration :id=avr-configuration
820921No special setup is required - just connect the `RX` and `TX` pins of your UART device to the opposite pins on the MCU:
···18181919VIA_ENABLE = yes # VIA support should be enabled here due to the main() loop will be compiled first.
20202121-QUANTUM_LIB_SRC += uart.c
2121+UART_DRIVER_REQUIRED = yes
2222SRC += bluetooth_custom.c
···18181919VIA_ENABLE = yes # VIA support should be enabled here due to the main() loop will be compiled first.
20202121-QUANTUM_LIB_SRC += uart.c
2121+UART_DRIVER_REQUIRED = yes
2222SRC += bluetooth_custom.c
···23232424# Add System76 EC command interface as well as I2C and USB mux drivers
2525SRC += system76_ec.c usb_mux.c
2626-QUANTUM_LIB_SRC += i2c_master.c
2626+I2C_DRIVER_REQUIRED = yes
+1-1
keyboards/telophase/rules.mk
···14141515# project specific files
1616SRC += matrix.c
1717-QUANTUM_LIB_SRC += uart.c
1717+UART_DRIVER_REQUIRED = yes
18181919# Disable unsupported hardware
2020RGBLIGHT_SUPPORTED = no