Commit graph

4 commits

Author SHA1 Message Date
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
Sergey Vlasov
587f7508fc
preonic/rev3_drop: Fix old custom matrix code (#14857)
The old custom matrix code for Preonic rev3 was relying on the
`matrix_col_t` type, because the code actually reads the row pins and
assembles the state for whole columns, and then transposes the matrix in
the custom debouncing code.  Restore that type (which is no longer
defined by the core QMK code) to make the custom matrix code work
properly (when `matrix_row_t` was used instead of `matrix_col_t`, the
state of two electrical rows was lost, and those electrical rows
corresponded to the bottom physical row, which did not work).
2021-10-18 11:09:33 +11:00
Jack Humbert
fa5d21a58e
[Keyboard] Enables I2C for OLKB rev*_drop boards (#14514)
Co-authored-by: daskygit <32983009+daskygit@users.noreply.github.com>
2021-09-19 11:43:37 -07:00
Drashna Jaelre
ef5c6ea096
[Keyboard] Use old custom matrix for Drop Planck+Preonic (#14488)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Jack Humbert <jack.humb@gmail.com>
2021-09-18 20:10:32 -07:00