[Split] Add config option for DIRECT_PINS_RIGHT (#6479)
Adds support for different direct pin mappings on the halves of a split keyboard.
This commit is contained in:
parent
465acd4d09
commit
f644db042c
3 changed files with 16 additions and 0 deletions
|
@ -248,6 +248,9 @@ There are a few different ways to set handedness for split keyboards (listed in
|
||||||
* `#define MATRIX_COL_PINS_RIGHT { <col pins> }`
|
* `#define MATRIX_COL_PINS_RIGHT { <col pins> }`
|
||||||
* If you want to specify a different pinout for the right half than the left half, you can define `MATRIX_ROW_PINS_RIGHT`/`MATRIX_COL_PINS_RIGHT`. Currently, the size of `MATRIX_ROW_PINS` must be the same as `MATRIX_ROW_PINS_RIGHT` and likewise for the definition of columns.
|
* If you want to specify a different pinout for the right half than the left half, you can define `MATRIX_ROW_PINS_RIGHT`/`MATRIX_COL_PINS_RIGHT`. Currently, the size of `MATRIX_ROW_PINS` must be the same as `MATRIX_ROW_PINS_RIGHT` and likewise for the definition of columns.
|
||||||
|
|
||||||
|
* `#define DIRECT_PINS_RIGHT { { F1, F0, B0, C7 }, { F4, F5, F6, F7 } }`
|
||||||
|
* If you want to specify a different direct pinout for the right half than the left half, you can define `DIRECT_PINS_RIGHT`. Currently, the size of `DIRECT_PINS` must be the same as `DIRECT_PINS_RIGHT`.
|
||||||
|
|
||||||
* `#define RGBLED_SPLIT { 6, 6 }`
|
* `#define RGBLED_SPLIT { 6, 6 }`
|
||||||
* See [RGB Light Configuration](#rgb-light-configuration)
|
* See [RGB Light Configuration](#rgb-light-configuration)
|
||||||
|
|
||||||
|
|
|
@ -160,6 +160,11 @@ There are some settings that you may need to configure, based on how the hardwar
|
||||||
|
|
||||||
This allows you to specify a different set of pins for the matrix on the right side. This is useful if you have a board with differently-shaped halves that requires a different configuration (such as Keebio's Quefrency).
|
This allows you to specify a different set of pins for the matrix on the right side. This is useful if you have a board with differently-shaped halves that requires a different configuration (such as Keebio's Quefrency).
|
||||||
|
|
||||||
|
```c
|
||||||
|
#define DIRECT_PINS_RIGHT { { F1, F0, B0, C7 }, { F4, F5, F6, F7 } }
|
||||||
|
```
|
||||||
|
|
||||||
|
This allows you to specify a different set of direct pins for the right side.
|
||||||
|
|
||||||
```c
|
```c
|
||||||
#define RGBLIGHT_SPLIT
|
#define RGBLIGHT_SPLIT
|
||||||
|
|
|
@ -252,6 +252,14 @@ void matrix_init(void) {
|
||||||
|
|
||||||
// Set pinout for right half if pinout for that half is defined
|
// Set pinout for right half if pinout for that half is defined
|
||||||
if (!isLeftHand) {
|
if (!isLeftHand) {
|
||||||
|
#ifdef DIRECT_PINS_RIGHT
|
||||||
|
const pin_t direct_pins_right[MATRIX_ROWS][MATRIX_COLS] = DIRECT_PINS_RIGHT;
|
||||||
|
for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
|
||||||
|
for (uint8_t j = 0; j < MATRIX_COLS; j++) {
|
||||||
|
direct_pins[i][j] = direct_pins_right[i][j];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
#ifdef MATRIX_ROW_PINS_RIGHT
|
#ifdef MATRIX_ROW_PINS_RIGHT
|
||||||
const pin_t row_pins_right[MATRIX_ROWS] = MATRIX_ROW_PINS_RIGHT;
|
const pin_t row_pins_right[MATRIX_ROWS] = MATRIX_ROW_PINS_RIGHT;
|
||||||
for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
|
for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
|
||||||
|
|
Loading…
Reference in a new issue