Skip to content

Commit

Permalink
Adafruit BLE: Set SPI2X bit only when F_CPU is 8MHz (qmk#6671)
Browse files Browse the repository at this point in the history
  • Loading branch information
fauxpark authored and Philip Karlsson committed Dec 3, 2019
1 parent 44f299f commit d33c736
Showing 1 changed file with 3 additions and 2 deletions.
5 changes: 3 additions & 2 deletions tmk_core/protocol/lufa/adafruit_ble.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -151,9 +151,10 @@ static struct SPI_Settings spi;
// Initialize 4Mhz MSBFIRST MODE0
void SPI_init(struct SPI_Settings *spi) {
spi->spcr = _BV(SPE) | _BV(MSTR);
#if F_CPU == 8000000
// For MCUs running at 8MHz (such as Feather 32U4, or 3.3V Pro Micros) we set the SPI doublespeed bit
spi->spsr = _BV(SPI2X);

static_assert(SpiBusSpeed == F_CPU / 2, "hard coded at 4Mhz");
#endif

ATOMIC_BLOCK(ATOMIC_RESTORESTATE) {
// Ensure that SS is OUTPUT High
Expand Down

0 comments on commit d33c736

Please sign in to comment.