When not all SW pins are used, it's useful to disable those that aren't.
Can reduce audible noise.
```
Layout:
D7:D4 D3 D2:D1 D0
SWD LGC OSDE SSD
SWS: SWx Setting. Change how many SW pins are active
LGC: H/L Logic
SSD: Software Shutdown Control
```
Signed-off-by: Daniel Schaefer <dhs@frame.work>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: honorless <86894501+lesshonor@users.noreply.github.com>
* Rework info.json reference
* Apply suggestions from code review
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
* Update backlight.pins description
* Add rgblight.driver and lowercase other driver names
* Remove `split.main` and `split.matrix_grid` for now as they are not working yet
---------
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
* 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
GCC 13 needs the same workaround as GCC 12.
To avoid having to maintain an ever-growing list of broken versions
apply the workaround wherever it can be used.
If at some point a fixed version of GCC is released the workaround can
be disabled for those fixed versions.
See #17064
Although `keychron/c2_pro/ansi/rgb` and `keychron/c2_pro/ansi/white` use
the same custom matrix code, the matrix layouts are slightly different;
in particular, only the `keychron/c2_pro/ansi/white` board actually uses
column 19. However, the handling of column 19 in the custom matrix code
was broken, therefore that column did not work.
Looks like the custom matrix code assumes that `SHIFT_COL_END` refers to
the last column connected to the shift register, and not to the column
past that; so the value of `SHIFT_COL_END` needs to be changed from 19
to 18 (columns 11...18 are connected to the shift register, and column
19 is connected to the C14 pin).
Also the code which was determining `SIZE_T` and `UNSELECT_ALL_COL` had
an off-by-one bug when counting the required number of bits (again due
to the confusion on the `SHIFT_COL_END` meaning); this had been fixed
too (the actual behavior of that part of the code did not change,
because both the old and the new version select the 8 bit variant).