summaryrefslogtreecommitdiffstats
path: root/platforms/chibios/sleep_led.c
diff options
context:
space:
mode:
authorzvecr <git@zvecr.com>2022-02-25 23:45:40 +0000
committerzvecr <git@zvecr.com>2022-02-25 23:45:40 +0000
commite7931289918221081cbe2a7ea5df27a5d86324db (patch)
tree0b06145520f8aaf5ff5cb928aa5176fc2dd23619 /platforms/chibios/sleep_led.c
parentc0ee3d2c79388187883b1b1b1d1a0b6842acf741 (diff)
parentcf31355f08dca311a013168eb3eb995e2fc6a3d1 (diff)
Merge remote-tracking branch 'origin/develop'
Diffstat (limited to 'platforms/chibios/sleep_led.c')
-rw-r--r--platforms/chibios/sleep_led.c36
1 files changed, 24 insertions, 12 deletions
diff --git a/platforms/chibios/sleep_led.c b/platforms/chibios/sleep_led.c
index 477056a454..a777d60468 100644
--- a/platforms/chibios/sleep_led.c
+++ b/platforms/chibios/sleep_led.c
@@ -93,7 +93,7 @@ void sleep_led_init(void) {
/* Reset LPTMR settings */
LPTMR0->CSR = 0;
/* Set the compare value */
- LPTMR0->CMR = 0; // trigger on counter value (i.e. every time)
+ LPTMR0->CMR = 0; // trigger on counter value (i.e. every time)
/* Set up clock source and prescaler */
/* Software PWM
@@ -118,11 +118,11 @@ void sleep_led_init(void) {
/* === OPTION 2 === */
# if 1
// nMHz IRC (n=4 on KL25Z, KL26Z and K20x; n=2 or 8 on KL27Z)
- MCG->C2 |= MCG_C2_IRCS; // fast (4MHz) internal ref clock
-# if defined(KL27) // divide the 8MHz IRC by 2, to have the same MCGIRCLK speed as others
+ MCG->C2 |= MCG_C2_IRCS; // fast (4MHz) internal ref clock
+# if defined(KL27) // divide the 8MHz IRC by 2, to have the same MCGIRCLK speed as others
MCG->MC |= MCG_MC_LIRC_DIV2_DIV2;
-# endif /* KL27 */
- MCG->C1 |= MCG_C1_IRCLKEN; // enable internal ref clock
+# endif /* KL27 */
+ MCG->C1 |= MCG_C1_IRCLKEN; // enable internal ref clock
// to work in stop mode, also MCG_C1_IREFSTEN
// Divide 4MHz by 2^N (N=6) => 62500 irqs/sec =>
// => approx F=61, R=256, duration = 4
@@ -140,7 +140,7 @@ void sleep_led_init(void) {
/* === END OPTIONS === */
/* Interrupt on TCF set (compare flag) */
- nvicEnableVector(LPTMR0_IRQn, 2); // vector, priority
+ nvicEnableVector(LPTMR0_IRQn, 2); // vector, priority
LPTMR0->CSR |= LPTMRx_CSR_TIE;
}
@@ -169,21 +169,33 @@ static void gptTimerCallback(GPTDriver *gptp) {
static const GPTConfig gptcfg = {1000000, gptTimerCallback, 0, 0};
/* Initialise the timer */
-void sleep_led_init(void) { gptStart(&SLEEP_LED_GPT_DRIVER, &gptcfg); }
+void sleep_led_init(void) {
+ gptStart(&SLEEP_LED_GPT_DRIVER, &gptcfg);
+}
-void sleep_led_enable(void) { gptStartContinuous(&SLEEP_LED_GPT_DRIVER, gptcfg.frequency / 0xFFFF); }
+void sleep_led_enable(void) {
+ gptStartContinuous(&SLEEP_LED_GPT_DRIVER, gptcfg.frequency / 0xFFFF);
+}
-void sleep_led_disable(void) { gptStopTimer(&SLEEP_LED_GPT_DRIVER); }
+void sleep_led_disable(void) {
+ gptStopTimer(&SLEEP_LED_GPT_DRIVER);
+}
-void sleep_led_toggle(void) { (SLEEP_LED_GPT_DRIVER.state == GPT_READY) ? sleep_led_enable() : sleep_led_disable(); }
+void sleep_led_toggle(void) {
+ (SLEEP_LED_GPT_DRIVER.state == GPT_READY) ? sleep_led_enable() : sleep_led_disable();
+}
#else /* platform selection: not on familiar chips */
void sleep_led_init(void) {}
-void sleep_led_enable(void) { led_set(1 << USB_LED_CAPS_LOCK); }
+void sleep_led_enable(void) {
+ led_set(1 << USB_LED_CAPS_LOCK);
+}
-void sleep_led_disable(void) { led_set(0); }
+void sleep_led_disable(void) {
+ led_set(0);
+}
void sleep_led_toggle(void) {
// not implemented