diff options
| author | Joel Challis <[email protected]> | 2021-09-14 03:18:36 +0100 | 
|---|---|---|
| committer | GitHub <[email protected]> | 2021-09-14 12:18:36 +1000 | 
| commit | 0ca4a56a0449d17a497ba610d4cee41c914ff50e (patch) | |
| tree | 5e10d1ced8cf84e673f5e3ae88457de32d4943dd | |
| parent | 232bc23a89874d1a2e028a1414dd34cf0339f8d2 (diff) | |
| download | qmk_firmware-0ca4a56a0449d17a497ba610d4cee41c914ff50e.tar.gz qmk_firmware-0ca4a56a0449d17a497ba610d4cee41c914ff50e.zip | |
Refactor use of STM32_SYSCLK (#14430)
* Refactor use of STM32_SYSCLK
* clang
| -rw-r--r-- | drivers/led/apa102.c | 2 | ||||
| -rw-r--r-- | platforms/chibios/drivers/serial.c | 2 | ||||
| -rw-r--r-- | platforms/chibios/drivers/ws2812.c | 2 | ||||
| -rw-r--r-- | platforms/chibios/drivers/ws2812_pwm.c | 2 | ||||
| -rw-r--r-- | tmk_core/common/chibios/_wait.h | 2 | ||||
| -rw-r--r-- | tmk_core/common/chibios/chibios_config.h | 16 | 
6 files changed, 14 insertions, 12 deletions
| diff --git a/drivers/led/apa102.c b/drivers/led/apa102.c index 7396dc3c55..19e0bfc189 100644 --- a/drivers/led/apa102.c +++ b/drivers/led/apa102.c @@ -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 diff --git a/platforms/chibios/drivers/serial.c b/platforms/chibios/drivers/serial.c index f54fbcee4e..ef6f0aa8d5 100644 --- a/platforms/chibios/drivers/serial.c +++ b/platforms/chibios/drivers/serial.c @@ -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 diff --git a/platforms/chibios/drivers/ws2812.c b/platforms/chibios/drivers/ws2812.c index 0d12e2fb79..ffcdcff242 100644 --- a/platforms/chibios/drivers/ws2812.c +++ b/platforms/chibios/drivers/ws2812.c @@ -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) diff --git a/platforms/chibios/drivers/ws2812_pwm.c b/platforms/chibios/drivers/ws2812_pwm.c index e6af55b6b3..e7080b036f 100644 --- a/platforms/chibios/drivers/ws2812_pwm.c +++ b/platforms/chibios/drivers/ws2812_pwm.c @@ -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) */  /** diff --git a/tmk_core/common/chibios/_wait.h b/tmk_core/common/chibios/_wait.h index b740afbd24..2f36c64a2e 100644 --- a/tmk_core/common/chibios/_wait.h +++ b/tmk_core/common/chibios/_wait.h @@ -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. diff --git a/tmk_core/common/chibios/chibios_config.h b/tmk_core/common/chibios/chibios_config.h index 23c65f9428..4515b025da 100644 --- a/tmk_core/common/chibios/chibios_config.h +++ b/tmk_core/common/chibios/chibios_config.h @@ -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 | 
