~ruther/qmk_firmware

0ca4a56a0449d17a497ba610d4cee41c914ff50e — Joel Challis 4 years ago 232bc23
Refactor use of STM32_SYSCLK (#14430)

* Refactor use of STM32_SYSCLK

* clang
M drivers/led/apa102.c => drivers/led/apa102.c +1 -1
@@ 25,7 25,7 @@

#        include "hal.h"
#        if defined(STM32F0XX) || defined(STM32F1XX) || defined(STM32F3XX) || defined(STM32F4XX) || defined(STM32L0XX)
#            define APA102_NOPS (100 / (1000000000L / (STM32_SYSCLK / 4)))  // This calculates how many loops of 4 nops to run to delay 100 ns
#            define APA102_NOPS (100 / (1000000000L / (CPU_CLOCK / 4)))  // This calculates how many loops of 4 nops to run to delay 100 ns
#        else
#            error("APA102_NOPS configuration required")
#            define APA102_NOPS 0  // this just pleases the compile so the above error is easier to spot

M platforms/chibios/drivers/serial.c => platforms/chibios/drivers/serial.c +1 -1
@@ 19,7 19,7 @@
#    error "chSysPolledDelayX method not supported on this platform"
#else
#    undef wait_us
#    define wait_us(x) chSysPolledDelayX(US2RTC(STM32_SYSCLK, x))
#    define wait_us(x) chSysPolledDelayX(US2RTC(CPU_CLOCK, x))
#endif

#ifndef SELECT_SOFT_SERIAL_SPEED

M platforms/chibios/drivers/ws2812.c => platforms/chibios/drivers/ws2812.c +1 -1
@@ 23,7 23,7 @@
#endif

#define NUMBER_NOPS 6
#define CYCLES_PER_SEC (STM32_SYSCLK / NUMBER_NOPS * NOP_FUDGE)
#define CYCLES_PER_SEC (CPU_CLOCK / NUMBER_NOPS * NOP_FUDGE)
#define NS_PER_SEC (1000000000L)  // Note that this has to be SIGNED since we want to be able to check for negative values of derivatives
#define NS_PER_CYCLE (NS_PER_SEC / CYCLES_PER_SEC)
#define NS_TO_CYCLES(n) ((n) / NS_PER_CYCLE)

M platforms/chibios/drivers/ws2812_pwm.c => platforms/chibios/drivers/ws2812_pwm.c +1 -1
@@ 59,7 59,7 @@

/* --- PRIVATE CONSTANTS ---------------------------------------------------- */

#define WS2812_PWM_FREQUENCY (STM32_SYSCLK / 2)                             /**< Clock frequency of PWM, must be valid with respect to system clock! */
#define WS2812_PWM_FREQUENCY (CPU_CLOCK / 2)                                /**< Clock frequency of PWM, must be valid with respect to system clock! */
#define WS2812_PWM_PERIOD (WS2812_PWM_FREQUENCY / WS2812_PWM_TARGET_PERIOD) /**< Clock period in ticks. 1 / 800kHz = 1.25 uS (as per datasheet) */

/**

M tmk_core/common/chibios/_wait.h => tmk_core/common/chibios/_wait.h +0 -2
@@ 43,8 43,6 @@ void wait_us(uint16_t duration);

#include "_wait.c"

#define CPU_CLOCK STM32_SYSCLK

/* For GPIOs on ARM-based MCUs, the input pins are sampled by the clock of the bus
 * to which the GPIO is connected.
 * The connected buses differ depending on the various series of MCUs.

M tmk_core/common/chibios/chibios_config.h => tmk_core/common/chibios/chibios_config.h +10 -6
@@ 19,6 19,11 @@
#    define SPLIT_USB_DETECT  // Force this on when dedicated pin is not used
#endif

// STM32 compatibility
#if defined(MCU_STM32)
#    define CPU_CLOCK STM32_SYSCLK
#endif

#if defined(STM32F1XX)
#    define USE_GPIOV1
#endif


@@ 27,14 32,13 @@
#    define USE_I2CV1
#endif

// teensy
// teensy compatibility
#if defined(MCU_KINETIS)
#    define CPU_CLOCK KINETIS_SYSCLK_FREQUENCY
#endif

#if defined(K20x) || defined(KL2x)
#    define USE_I2CV1
#    define USE_I2CV1_CONTRIB  // for some reason a bunch of ChibiOS-Contrib boards only have clock_speed
#    define USE_GPIOV1
#    define STM32_SYSCLK KINETIS_SYSCLK_FREQUENCY
#endif

#if defined(MK66F18)
#    define STM32_SYSCLK KINETIS_SYSCLK_FREQUENCY
#endif