···23The I2C Master drivers used in QMK have a set of common functions to allow portability between MCUs.
40000000000005## I2C Addressing :id=note-on-i2c-addresses
67All of the addresses expected by this driver should be pushed to the upper 7 bits of the address byte. Setting
···23The I2C Master drivers used in QMK have a set of common functions to allow portability between MCUs.
45+## Usage :id=usage
6+7+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).
8+9+However, if you need to use the driver standalone, add the following to your `rules.mk`:
10+11+```make
12+I2C_DRIVER_REQUIRED = yes
13+```
14+15+You can then call the I2C API by including `i2c_master.h` in your code.
16+17## I2C Addressing :id=note-on-i2c-addresses
1819All 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
···23The SPI Master drivers used in QMK have a set of common functions to allow portability between MCUs.
40000000000005## AVR Configuration :id=avr-configuration
67No special setup is required - just connect the `SS`, `SCK`, `MOSI` and `MISO` pins of your SPI devices to the matching pins on the MCU:
···23The SPI Master drivers used in QMK have a set of common functions to allow portability between MCUs.
45+## Usage :id=usage
6+7+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).
8+9+However, if you need to use the driver standalone, add the following to your `rules.mk`:
10+11+```make
12+SPI_DRIVER_REQUIRED = yes
13+```
14+15+You can then call the SPI API by including `spi_master.h` in your code.
16+17## AVR Configuration :id=avr-configuration
1819No 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
···45Currently, this driver does not support enabling hardware flow control (the `RTS` and `CTS` pins) if available, but may do so in future.
60000000000007## AVR Configuration :id=avr-configuration
89No special setup is required - just connect the `RX` and `TX` pins of your UART device to the opposite pins on the MCU:
···45Currently, this driver does not support enabling hardware flow control (the `RTS` and `CTS` pins) if available, but may do so in future.
67+## Usage :id=usage
8+9+In most cases, the UART driver code is automatically included if you are using a feature or driver which requires it.
10+11+However, if you need to use the driver standalone, add the following to your `rules.mk`:
12+13+```make
14+UART_DRIVER_REQUIRED = yes
15+```
16+17+You can then call the UART API by including `uart.h` in your code.
18+19## AVR Configuration :id=avr-configuration
2021No special setup is required - just connect the `RX` and `TX` pins of your UART device to the opposite pins on the MCU:
+1-1
keyboards/3w6/rev1/rules.mk
···16LTO_ENABLE = no
1718SRC += matrix.c
19-QUANTUM_LIB_SRC += i2c_master.c
···16LTO_ENABLE = no
1718SRC += matrix.c
19+I2C_DRIVER_REQUIRED = yes
+1-1
keyboards/3w6/rev2/rules.mk
···16LTO_ENABLE = no
1718SRC += matrix.c
19-QUANTUM_LIB_SRC += i2c_master.c
···16LTO_ENABLE = no
1718SRC += matrix.c
19+I2C_DRIVER_REQUIRED = yes
···2627# project specific files
28SRC += matrix.c
29-QUANTUM_LIB_SRC += i2c_master.c
···2627# project specific files
28SRC += matrix.c
29+I2C_DRIVER_REQUIRED = yes
+1-1
keyboards/barleycorn_smd/rules.mk
···14CUSTOM_MATRIX = lite
1516SRC += matrix.c
17-QUANTUM_LIB_SRC += i2c_master.c
···14CUSTOM_MATRIX = lite
1516SRC += matrix.c
17+I2C_DRIVER_REQUIRED = yes
+1-1
keyboards/bioi/g60/rules.mk
···1819VIA_ENABLE = yes # VIA support should be enabled here due to the main() loop will be compiled first.
2021-QUANTUM_LIB_SRC += uart.c
22SRC += bluetooth_custom.c
···1819VIA_ENABLE = yes # VIA support should be enabled here due to the main() loop will be compiled first.
2021+UART_DRIVER_REQUIRED = yes
22SRC += bluetooth_custom.c
···1819VIA_ENABLE = yes # VIA support should be enabled here due to the main() loop will be compiled first.
2021-QUANTUM_LIB_SRC += uart.c
22SRC += bluetooth_custom.c
···1819VIA_ENABLE = yes # VIA support should be enabled here due to the main() loop will be compiled first.
2021+UART_DRIVER_REQUIRED = yes
22SRC += bluetooth_custom.c
+1-1
keyboards/centromere/rules.mk
···1819# project specific files
20SRC += matrix.c
21-QUANTUM_LIB_SRC += uart.c
···1819# project specific files
20SRC += matrix.c
21+UART_DRIVER_REQUIRED = yes
···11# Optimize size but this may cause error "relocation truncated to fit"
12#EXTRALDFLAGS = -Wl,--relax
1314-QUANTUM_LIB_SRC += i2c_master.c
1516CUSTOM_MATRIX = yes
17SRC += matrix.c ad5258.c
···11# Optimize size but this may cause error "relocation truncated to fit"
12#EXTRALDFLAGS = -Wl,--relax
1314+I2C_DRIVER_REQUIRED = yes
1516CUSTOM_MATRIX = yes
17SRC += matrix.c ad5258.c
+1-1
keyboards/fc980c/rules.mk
···11# Optimize size but this may cause error "relocation truncated to fit"
12#EXTRALDFLAGS = -Wl,--relax
1314-QUANTUM_LIB_SRC += i2c_master.c
1516CUSTOM_MATRIX = yes
17SRC += matrix.c ad5258.c
···11# Optimize size but this may cause error "relocation truncated to fit"
12#EXTRALDFLAGS = -Wl,--relax
1314+I2C_DRIVER_REQUIRED = yes
1516CUSTOM_MATRIX = yes
17SRC += matrix.c ad5258.c
···19UART_DEBUG = no
2021SRC += matrix.c
22-QUANTUM_LIB_SRC += uart.c \
23- spi_master.c
2425OPT_DEFS += -DSLEEP_LED_ENABLE # we need our own sleep callbacks to turn of WS2812 LEDs
26
···19UART_DEBUG = no
2021SRC += matrix.c
22+UART_DRIVER_REQUIRED = yes
23+SPI_DRIVER_REQUIRED = yes
2425OPT_DEFS += -DSLEEP_LED_ENABLE # we need our own sleep callbacks to turn of WS2812 LEDs
26