diff --git a/libraries/SPI/SPI.cpp b/libraries/SPI/SPI.cpp index 2523e689f..740401c3a 100644 --- a/libraries/SPI/SPI.cpp +++ b/libraries/SPI/SPI.cpp @@ -43,7 +43,6 @@ void SPIClass::begin() { pinMode(MISO, SPECIAL); ///< GPIO12 pinMode(MOSI, SPECIAL); ///< GPIO13 - GPMUX = 0x105; // note crash if SPI flash Frequency < 40MHz SPI1C = 0; setFrequency(1000000); ///< 1MHz SPI1U = SPIUMOSI | SPIUDUPLEX | SPIUSSE; @@ -187,6 +186,11 @@ void SPIClass::setFrequency(uint32_t freq) { } void SPIClass::setClockDivider(uint32_t clockDiv) { + if(clockDiv == 0x80000000) { + GPMUX |= (1 << 9); // Set bit 9 if sysclock required + } else { + GPMUX &= ~(1 << 9); + } SPI1CLK = clockDiv; }