Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor use of STM32_SYSCLK #14430

Merged
merged 2 commits into from
Sep 14, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion drivers/led/apa102.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion platforms/chibios/drivers/serial.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion platforms/chibios/drivers/ws2812.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
2 changes: 1 addition & 1 deletion platforms/chibios/drivers/ws2812_pwm.c
Original file line number Diff line number Diff line change
Expand Up @@ -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) */

/**
Expand Down
2 changes: 0 additions & 2 deletions tmk_core/common/chibios/_wait.h
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
16 changes: 10 additions & 6 deletions tmk_core/common/chibios/chibios_config.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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