quantum: util: add bit and bitmask helpers
These helpers are handy and can prevent off-by-one errors when working
with registers and general low level bit manipulation tasks. The macros
themself are inspired by the bits.h macros from the linux kernel source
code.
Signed-off-by: Stefan Kerkmann <karlk90@pm.me>
Co-authored-by: Pascal Getreuer <50221757+getreuer@users.noreply.github.com>
* first compiled, flashed, and tested version of jris65
* adding readmes for mykeyclub and jris65
* removed commented out code and unneeded files
* typo in build instructions
* renamed info.json to keyboard.json as per new standard
* formatted with qmk format-json
* fixed layout offset problem
* moved some settings from c/h files to json
* moved matrix from .h file to .json
* cleaned up non-json options
* moved settings from rules.mk to keyboard.json
* fix for via after removing .h file
* converted keymap.c to keymap.json
* keymap.c has been replaced by keymap.json
* FN+Backspace loads bootload
* added custom keymap for Sean
* config.h setting is only needed by via
* formatted json
* convert via keymap from .c .h .mk to keymap.json
* moved keyboard configuration to hotswap dir; note in readme that only hotswap has been tested
* Update keyboards/mykeyclub/jris65/keymaps/default/keymap.json
Co-authored-by: jack <jack@pngu.org>
* typo
Co-authored-by: jack <jack@pngu.org>
* blank layers do not need to be specified
Co-authored-by: jack <jack@pngu.org>
* added other valid layouts
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
* added other valid layouts
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
* added other valid layouts
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
* added other valid layouts
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
* removed extra newline
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
* cleaned up wording in readme
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
* QMK no longer supports user keymaps
* remove settings that are already the default (false settings)
Co-authored-by: jack <jack@pngu.org>
* add image
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
* add missing commas (formatting)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
* add missing commas (formatting)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
* add missing commas (formatting)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
* re-added second layer with QK_BOOT for backspace
* make the hotswap the default keyboard
* added keyboard director prefix to DEFAULT_FOLDER
* ran qmk format-json on keyboard.json
* DEFAULT_FOLDER option is going away so don't use it
* removed via keymap as they now reside in qmk_userspace_via
---------
Co-authored-by: jack <jack@pngu.org>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
* Added a cleaned-up set of files for ThumbsUp! v9.
* Renamed the keymap for v9 as default
* Update keyboards/thumbsup/keymaps/default/keymap.c
As per PR review suggestions.
Co-authored-by: jack <0x6a73@protonmail.com>
* Update keyboards/thumbsup/keymaps/default/keymap.c
As per PR review suggestions.
Co-authored-by: jack <0x6a73@protonmail.com>
* Update keyboards/thumbsup/keymaps/default/keymap.c
As per PR review suggestions.
Co-authored-by: jack <0x6a73@protonmail.com>
* Update keyboards/thumbsup/keymaps/default/keymap.c
As per PR review suggestions.
Co-authored-by: jack <0x6a73@protonmail.com>
* Update keyboards/thumbsup/keymaps/default/keymap.c
As per PR review suggestions.
Co-authored-by: jack <0x6a73@protonmail.com>
* Update keyboards/thumbsup/rev9_promicro_4x12/info.json
As per PR review suggestions.
Co-authored-by: jack <0x6a73@protonmail.com>
* Update keyboards/thumbsup/rev9_promicro_4x12/readme.md
As per PR review suggestions.
Co-authored-by: jack <0x6a73@protonmail.com>
* Update keyboards/thumbsup/rev9_promicro_4x12/readme.md
As per PR review suggestions.
Co-authored-by: jack <0x6a73@protonmail.com>
* Update keyboards/thumbsup/rev9_promicro_4x12/rules.mk
As per PR review suggestions.
Co-authored-by: jack <0x6a73@protonmail.com>
* Update keyboards/thumbsup/rev9_promicro_4x12/info.json
As per PR review suggestions.
Co-authored-by: jack <0x6a73@protonmail.com>
* Apply suggestions from code review
Co-authored-by: jack <0x6a73@protonmail.com>
* Delete keyboards/thumbsup/keymaps/default/readme.md as per review recommendation.
* v9: Fixed the layout name in keymap.c file.
* v9: PR recommendatios applied - rules.mk file removed, info.json renamed to keyboard.json.
* v9: PR recommendatios applied - rules.mk file removed, info.json renamed to keyboard.json.
* v9: Fixed the copyright header modified by mistake.
* v9: Fixed the tri-layer switch as per the review recommendation.
* v9: Fixed the copyright header modified by mistake.
---------
Co-authored-by: jack <0x6a73@protonmail.com>
* Default OS_DETECTION_DEBOUNCE bumped from 200ms to 250ms
* Add OS_DETECTION_SINGLE_REPORT to prevent undesired multiple reports
* Prevents random stability issues on ARM MacBooks after switching via KVM
* Works for every device I could test, including ARM MacBooks
* Disabled by default to keep current behavior
* Add Troubleshooting section on documentation
* Tweak reset logic to prevent a freeze with some KVMs
The USB stack on ARM MacBooks is more similar to that of iOS and,
for some reason, it seems to like sending packets that influence
the OS detection and results in a second OS_MACOS report being sent
at a random period of time after plugging the keyboard back. This
does not always happen and the consequences of this vary based on
what the user is doing in the callback, but since this is not
obvious and it's hard to debug, I've decided to add a flag for
those affected by such issue. The stability issue I had in mine was
a combination of factors and I found the actual cause being my own
bad math when changing the default layer, but this change alone is
also confirmed to fix it. Lastly, soem KVMs seem to leave the USB
controlled in a suspended state when cold-booting Windows, meaning
the keyboard would hang and the reset logic would not work. This
tunes it so that it can get out of such state. Also retested for
compatibility with my old KVM to ensure the logic works for both.
* Allow for `get_hardware_id()` to be used for serial number.
* Length checks.
* Explain length.
* Cleanup.
* Preprocessor magic.
* Use the force, Batman.
* Swap logic; if SERIAL_NUMBER is defined use that, otherwise derive it.
* Cleanup.
* Cleanup.