63 Commits
Author SHA1 Message Date
Jack Sangdahl 05355bc49d Fixup rgbkb/pan (#25678)
Tidy up rgbkb/pan

- Migrate g_led_config to DD and fix coordinates
- Remove RGBLight configuration
- Migrate keymaps to JSON
- Move keymap OLED code to keyboard level
- Remove cutom layout selection logic (post_rules.mk)
- Use short SPDX license headers
2025-10-05 21:06:55 -06:00
Joel Challis 207dc01d49 rgbkb/pan - Remove invalid build target (#24844) 2025-01-20 22:47:42 +00:00
Nick Brassel 7431401116 Fix up CI with DEFAULT_FOLDER. (#24842) 2025-01-20 21:54:41 +00:00
Joel Challis 5c33ff8be4 Remove DEFAULT_FOLDER where keyboard aliases already exists (#24838) 2025-01-20 15:24:14 +00:00
Ryan f3bae56808 Update keycodes for keyboards with RGB Matrix (#24484) 2024-11-24 12:03:08 +00:00
Stefan Kerkmann 3f9d464412 [Core] usb_device_state: consolidate usb state handling across implementations (#24258)
* usb_device_state: add idle_rate, led and protocol

Previously all usb drivers and platform implementations (expect for our
oddball atsam) tracked the same two global variables:

- keyboard_protocol: to indicate if we are in report or boot protocol
- keyboard_idle: for the idle_rate of the keyboard endpoint

And a local variable that was exposed trough some indirection:

- keyboard_led_state: for the currently set indicator leds (caps lock etc.)

These have all been moved into the usb_device_state struct wich is
accessible by getters and setters.

This reduces code duplication and centralizes the state management
across platforms and drivers.

Signed-off-by: Stefan Kerkmann <karlk90@pm.me>

* usb_device_state: reset protocol on reset

The usb hid specification section 7.2.6 states:

When initialized, all devices default to report protocol. However the
host should not make any assumptions about the device’s state and should
set the desired protocol whenever initializing a device.

Thus on reset we should always do exactly that.

Signed-off-by: Stefan Kerkmann <karlk90@pm.me>

* keyboards: fix oversize warnings

Signed-off-by: Stefan Kerkmann <karlk90@pm.me>

---------

Signed-off-by: Stefan Kerkmann <karlk90@pm.me>
2024-10-18 09:57:08 +02:00
RyanandDasky 208ebf54a9 WS2812 API rework (#24364)
* Begin WS2812 API rework

* Move RGBW conversion, clean up color.h, fix RGBW for AVR bitbang

* Formatting & update PS2AVRGB I2C driver (untested)

* Tested ARM bitbang RGB+RGBW

* Tested ARM SPI RGB - RGBW not working

* Tested ARM PWM RGB+RGBW

* Tested RP2040 PIO driver RGB+RGBW

* Update RGBLight

* Formatting

* Fix BM60HSRGB rev2

* Fix oddforge/vea

* Fix 1k and XD002 RGBLite

* Fix model_m/mschwingen

* Fix handwired/promethium

* Rename `WS2812_LED_TOTAL` for BM60HSRGB

* Fix work_louder boards

* Fix dawn60

* Fix rgbkb/pan

* Fix neson_design/700e and n6

* Fix ergodox_ez/shine

* ergodox_ez/shine: invert indices for left half

* Fix matrix/abelx

* Fix matrix/m20add

* Remove custom rgblight driver for matrix/noah - should be done with lighting layers

* Fix LED indexes for RGBLight split

* Rename `convert_rgb_to_rgbw()` to `ws2812_rgb_to_rgbw()`

* Update WS2812 API docs

* `ergodox_ez/shine`: simplify LED index calculation

* LED/RGB Matrix: Add weak function for LED index resolution

* Bandaid fix for RGB Matrix splits not using WS2812

* `steelseries/prime_plus`: redo custom RGBLight driver

* Update keyboards/steelseries/prime_plus/rgblight_custom.c

Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com>

---------

Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com>
2024-10-06 21:01:07 +13:00
Ryan 1184e0d9be Adjust keycode alignment around QK_BOOT (#23697) 2024-05-11 16:50:48 +01:00
Joel Challis 2d4832f57a Align RGBKB keyboards to current standards (#23663) 2024-05-11 13:11:50 +01:00
Ryan 0ff53b2498 Rename RGBW define to WS2812_RGBW (#23585) 2024-04-28 00:36:54 +10:00
Joel Challis 3d83b3e7c5 Migrate build target markers to keyboard.json - Misc (#23609) 2024-04-25 08:42:48 +01:00
Duncan Sutherland 32136afe24 Change to development_board (#21695) 2024-04-23 19:47:30 +10:00
Joel Challis 831deac212 Migrate build target markers to keyboard.json (#23293) 2024-03-30 11:31:50 +00:00
Ryan f7cf40fa77 Add init function to RGBLight driver struct (#23076) 2024-03-18 22:03:27 +11:00
Joel Challis a90b45e832 Migrate RGB Matrix config to info.json - RS (#22909) 2024-01-16 01:03:55 +00:00
Ryan 41bd4e35a0 Clean up RGB LED type (#21859) 2023-09-04 01:19:59 +01:00
Ryan 023d644bb6 Move RGBLight animations to data driven (#21635)
* Move RGBLight animations to data driven, 0-9

* Move RGBLight animations to data driven, A

* Move RGBLight animations to data driven, B

* Move RGBLight animations to data driven, C

* Move RGBLight animations to data driven, D

* Move RGBLight animations to data driven, E

* Move RGBLight animations to data driven, F

* Move RGBLight animations to data driven, G

* Move RGBLight animations to data driven, H

* Move RGBLight animations to data driven, handwired

* Move RGBLight animations to data driven, I

* Move RGBLight animations to data driven, J

* Move RGBLight animations to data driven, K

* Move RGBLight animations to data driven, L

* Move RGBLight animations to data driven, M

* Move RGBLight animations to data driven, N

* Move RGBLight animations to data driven, O

* Move RGBLight animations to data driven, P

* Move RGBLight animations to data driven, Q

* Move RGBLight animations to data driven, R

* Move RGBLight animations to data driven, S

* Move RGBLight animations to data driven, T

* Move RGBLight animations to data driven, U

* Move RGBLight animations to data driven, V

* Move RGBLight animations to data driven, W

* Move RGBLight animations to data driven, X

* Move RGBLight animations to data driven, Y

* Move RGBLight animations to data driven, Z

* Fix incorrect placement

* Fix build failures and mismatches
2023-08-23 22:11:39 +01:00
Ryan 5d2f2af198 OLED: driver naming cleanups (#21710) 2023-08-15 10:30:34 +01:00
Ryan b1783db4ea Move RGBLED_NUM to data driven (#21278) 2023-06-18 14:39:07 +10:00
RyanandNick Brassel 363bfdbfda Move RGBLIGHT_LIMIT_VAL to data driven (#20974)
Co-authored-by: Nick Brassel <nick@tzarc.org>
2023-05-27 12:27:44 +10:00
James Young 8f6d64e43d RGBKB Pan Layout Additions (#20809) 2023-05-09 09:07:44 -07:00
Ryan 2944e93870 Move USB_MAX_POWER_CONSUMPTION to data driven (#20648) 2023-05-01 17:37:12 +10:00
Ryan 522048725f Move RGB_MATRIX_DRIVER to data driven (#20350) 2023-04-08 18:08:08 +10:00
Ryan 47966dc2a6 Migrate rgblight.pin and RGB_DI_PIN to ws2812.pin (#20303) 2023-04-06 18:00:54 +10:00
fauxpark 9602938e9e Merge remote-tracking branch 'upstream/master' into develop 2023-03-29 16:00:41 +11:00
Ryan e2630f9b40 Fix some invalid layout macros (#20256) 2023-03-29 15:51:22 +11:00
Ryan 36ce81df59 Move WS2812_DRIVER to data driven (#20248) 2023-03-26 18:22:12 +11:00
RyanandNick Brassel ace372d90d Move matrix config to info.json, part 3 (#19991)
Co-authored-by: Nick Brassel <nick@tzarc.org>
2023-03-11 00:34:34 +11:00
RyanandNick Brassel 7e0299117b Move encoder config to data driven (#19923)
Co-authored-by: Nick Brassel <nick@tzarc.org>
2023-02-26 09:45:12 +11:00
Ryan 2da0827d4f Remove matrix size defines (#19581) 2023-02-17 16:08:25 +11:00
Ryan f9aeea64c1 Migrate MCU and BOOTLOADER to data-driven (#19529) 2023-02-08 18:41:46 +11:00
Ryan ebb512db82 Debounce defines cleanup (#19742)
* Clean up `DEBOUNCE` in config.h, 0-9

* Clean up `DEBOUNCE` in config.h, A

* Clean up `DEBOUNCE` in config.h, B

* Clean up `DEBOUNCE` in config.h, C

* Clean up `DEBOUNCE` in config.h, D

* Clean up `DEBOUNCE` in config.h, E

* Clean up `DEBOUNCE` in config.h, F

* Clean up `DEBOUNCE` in config.h, G

* Clean up `DEBOUNCE` in config.h, H

* Clean up `DEBOUNCE` in config.h, handwired

* Clean up `DEBOUNCE` in config.h, I

* Clean up `DEBOUNCE` in config.h, J

* Clean up `DEBOUNCE` in config.h, K

* Clean up `DEBOUNCE` in config.h, L

* Clean up `DEBOUNCE` in config.h, M

* Clean up `DEBOUNCE` in config.h, N

* Clean up `DEBOUNCE` in config.h, O

* Clean up `DEBOUNCE` in config.h, P

* Clean up `DEBOUNCE` in config.h, Q

* Clean up `DEBOUNCE` in config.h, R

* Clean up `DEBOUNCE` in config.h, S

* Clean up `DEBOUNCE` in config.h, T

* Clean up `DEBOUNCE` in config.h, U

* Clean up `DEBOUNCE` in config.h, V

* Clean up `DEBOUNCE` in config.h, W

* Clean up `DEBOUNCE` in config.h, X

* Clean up `DEBOUNCE` in config.h, Y

* Clean up `DEBOUNCE` in config.h, Z

* Remove default debounce from info.json

* Migrate non-default debounce to info.json
2023-02-03 19:19:58 +00:00
Nick Brassel f6dd8dea2e Remove usages of config_common.h from config.h files. (#19714) 2023-01-31 06:03:30 +11:00
Joel Challis fe577daf96 Remove .noci functionality (#19122) 2022-11-21 02:03:38 +00:00
Ryan 002b58f0e4 Normalise Space Cadet keycodes (#18864) 2022-10-27 11:19:16 +01:00
Ryan 1cb1a5a374 Remove legacy Grave Escape keycodes (#18787) 2022-10-20 18:04:11 -07:00
Ryan 5e4b076af3 Remove legacy keycodes, part 5 (#18710)
* `KC_SLCK` -> `KC_SCRL`
* `KC_NLCK` -> `KC_NUM`
2022-10-15 22:29:43 +01:00
Drashna Jaelre f0da486fab Remove RGBLIGHT_ANIMATION and clean up effect defines for R-Z (#18728) 2022-10-15 09:55:53 -07:00
Ryan 36c410592d Change DRIVER_LED_COUNT to {LED,RGB}_MATRIX_LED_COUNT (#18399) 2022-09-23 22:46:23 +10:00
Jeff EplerandStefan Kerkmann 9632360caa Use a macro to compute the size of arrays at compile time (#18044)
* Add ARRAY_SIZE and CEILING utility macros

* Apply a coccinelle patch to use ARRAY_SIZE

* fix up some straggling items

* Fix 'make test:secure'

* Enhance ARRAY_SIZE macro to reject acting on pointers

The previous definition would not produce a diagnostic for
```
int *p;
size_t num_elem = ARRAY_SIZE(p)
```
but the new one will.

* explicitly get definition of ARRAY_SIZE

* Convert to ARRAY_SIZE when const is involved

The following spatch finds additional instances where the array is
const and the division is by the size of the type, not the size of
the first element:
```
@ rule5a using "empty.iso" @
type T;
const T[] E;
@@

- (sizeof(E)/sizeof(T))
+ ARRAY_SIZE(E)

@ rule6a using "empty.iso" @
type T;
const T[] E;
@@

- sizeof(E)/sizeof(T)
+ ARRAY_SIZE(E)
```

* New instances of ARRAY_SIZE added since initial spatch run

* Use `ARRAY_SIZE` in docs (found by grep)

* Manually use ARRAY_SIZE

hs_set is expected to be the same size as uint16_t, though it's made
of two 8-bit integers

* Just like char, sizeof(uint8_t) is guaranteed to be 1

This is at least true on any plausible system where qmk is actually used.

Per my understanding it's universally true, assuming that uint8_t exists:
https://stackoverflow.com/questions/48655310/can-i-assume-that-sizeofuint8-t-1

* Run qmk-format on core C files touched in this branch

Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
2022-08-30 10:20:04 +02:00
fauxpark 61689ae609 Merge remote-tracking branch 'upstream/master' into develop 2022-08-20 10:55:40 +10:00
Ryan 201a914beb Move keyboard USB IDs and strings to data driven, pass 2: P-R (#18091) 2022-08-20 01:42:49 +01:00
Drashna JaelreandJames Young 0da6562c4d Make default layer size 16-bit (#15286)
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2022-06-19 07:37:51 +10:00
Joel Challis b7771ec25b RESET -> QK_BOOT default keymaps (#17037) 2022-05-15 20:26:27 +01:00
Ryan a8d440e4e0 Tidy up NKRO_ENABLE rules (#15382) 2021-12-09 16:05:44 +11:00
Ryan c12b997679 Tidy up SLEEP_LED_ENABLE rules (#15362) 2021-12-01 21:13:00 +11:00
Drashna Jaelre 160b0558f5 Require explicit enabling of RGB Matrix modes (#15018) 2021-11-15 10:41:04 -08:00
James Young 84ea77ead6 Remove BOOTMAGIC_ENABLE = lite option (#15002)
* remove BOOTMAGIC_ENABLE=lite setting

* change keyboard BOOTMAGIC_ENABLE rules

Edits keyboard-level instances of `BOOTMAGIC_ENABLE = lite` to `BOOTMAGIC_ENABLE = yes`.

* change keyboard BOOTMAGIC_ENABLE inline comments

Edits keyboard-level BOOTMAGIC_ENABLE inline comments to "Enable Bootmagic Lite".

* change keymap BOOTMAGIC_ENABLE rules

Edits keymap-level instances of `BOOTMAGIC_ENABLE = lite` to `BOOTMAGIC_ENABLE = yes`.

* change keymap BOOTMAGIC_ENABLE inline comments

Edits/adds keymap-level BOOTMAGIC_ENABLE inline comments to read "Enable Bootmagic Lite".

* change layout/user BOOTMAGIC_ENABLE rules/comments

Edits instances of `BOOTMAGIC_ENABLE = lite` to `BOOTMAGIC_ENABLE = yes`.

Edits/adds keymap-level BOOTMAGIC_ENABLE inline comments to read "Enable Bootmagic Lite".

* update non-rules.mk BOOTMAGIC_ENABLE references in keyboards/

* remove docs references to Full Bootmagic

* convert data-driven Bootmagic Lite instances

* remove Bootmagic Lite bodge from data-driven generation

* Merge remote-tracking branch 'upstream/develop' into rm/bootmagic-full_q4a

* update docs/ja/config_options.md per mtei

* update docs/faq_misc.md per mtei

Remove remaining Full Bootmagic reference.
2021-11-05 08:18:09 +11:00
Drashna Jaelre 9d235d4fc5 [Core] Change OLED task function to be boolean (#14864)
* [Core] Add kb level callbacks to OLED driver

* Update keyboards and keymaps

* Update docs

* Update userspace configs

* Add fix for my keymap ...

* update lefty
2021-11-02 09:42:50 +11:00
Ryan 5af1799735 Remove BLUETOOTH_ENABLE from keyboard-level rules.mk (#14379) 2021-09-12 15:27:29 +10:00