1
0
Fork 0
forked from forks/qmk_firmware
qmk_firmware/platforms/chibios/drivers
Stefan Kerkmann 3f5dc47296
[Core] Use polled waiting on ChibiOS platforms that support it (#17607)
* Use polled waiting on platforms that support it

Due to context switching overhead waiting a very short amount of time on
a sleeping thread is often not accurate and in fact not usable for timing
critical usage i.e. in a driver. Thus we use polled waiting for ranges
in the us range on platforms that support it instead. The fallback is
the thread sleeping mechanism.

This includes:

* ARM platforms with CYCCNT register (ARMv7, ARMv8) this is
  incremented at CPU clock frequency
* GD32VF103 RISC-V port with CSR_MCYCLE register this is incremented at
  CPU clock frequency
* RP2040 ARMv6 port which uses the integrated timer peripheral which is
  incremented with a fixed 1MHz frequency

* Use wait_us() instead of chSysPolledDelayX

...as it is powered by busy waiting now.

* Add chibios waiting methods test bench
2022-07-11 15:17:05 +02:00
..
eeprom Rework paths for eeprom locations. (#17326) 2022-06-08 09:42:35 +10:00
flash Rework paths for eeprom locations. (#17326) 2022-06-08 09:42:35 +10:00
ps2 Relocate PS2 code (#14895) 2021-10-20 21:18:49 +01:00
vendor/RP/RP2040 [Core] Use polled waiting on ChibiOS platforms that support it (#17607) 2022-07-11 15:17:05 +02:00
wear_leveling RP2040 emulated EEPROM. (#17519) 2022-07-02 15:18:50 +10:00
analog.c analog.[ch]: remove unnecessary includes (#16471) 2022-03-04 14:56:59 +11:00
analog.h analog.[ch]: remove unnecessary includes (#16471) 2022-03-04 14:56:59 +11:00
audio_dac.h Move Audio drivers from quantum to platform drivers folder (#14308) 2021-10-06 12:01:45 +11:00
audio_dac_additive.c Format code according to conventions (#16322) 2022-02-12 18:29:31 +00:00
audio_dac_basic.c Format code according to conventions (#16322) 2022-02-12 18:29:31 +00:00
audio_pwm.h Move Audio drivers from quantum to platform drivers folder (#14308) 2021-10-06 12:01:45 +11:00
audio_pwm_hardware.c Format code according to conventions (#16322) 2022-02-12 18:29:31 +00:00
audio_pwm_software.c Format code according to conventions (#16322) 2022-02-12 18:29:31 +00:00
i2c_master.c Added support for Wb32fq95 (#16871) 2022-05-23 15:57:24 +10:00
i2c_master.h Tidy up existing i2c_master implementations (#15376) 2021-12-02 14:32:31 +00:00
serial.c [Core] Use polled waiting on ChibiOS platforms that support it (#17607) 2022-07-11 15:17:05 +02:00
serial_protocol.c [BUG] Fix deadlocks on disconnected secondary half (#17423) 2022-06-21 08:24:53 +10:00
serial_protocol.h [Core] Split ChibiOS usart split driver in protocol and hardware driver part (#16669) 2022-06-18 08:04:17 +10:00
serial_usart.c [Core] Add Raspberry Pi RP2040 support (#14877) 2022-06-30 13:19:27 +02:00
serial_usart.h [Core] Split ChibiOS usart split driver in protocol and hardware driver part (#16669) 2022-06-18 08:04:17 +10:00
spi_master.c Fixup SPI. (#17534) 2022-07-05 22:41:35 +02:00
spi_master.h Refactor use of _STM32_ defines (#14439) 2021-09-15 11:19:51 +10:00
uart.c Added support for Wb32fq95 (#16871) 2022-05-23 15:57:24 +10:00
uart.h Westberrytech pr (#14422) 2021-11-27 09:28:18 +11:00
usbpd_stm32g4.c Format code according to conventions (#16322) 2022-02-12 18:29:31 +00:00
ws2812.c Format code according to conventions (#16322) 2022-02-12 18:29:31 +00:00
ws2812_pwm.c Format code according to conventions (#16322) 2022-02-12 18:29:31 +00:00
ws2812_spi.c ChibiOS 21.11.1 update. (#16251) 2022-03-07 21:04:22 +11:00