logo

qmk_firmware

custom branch of QMK firmware git clone https://anongit.hacktivis.me/git/qmk_firmware.git

iso_encoder.c (7116B)


  1. /* Copyright 2023 @ Keychron (https://www.keychron.com)
  2. *
  3. * This program is free software: you can redistribute it and/or modify
  4. * it under the terms of the GNU General Public License as published by
  5. * the Free Software Foundation, either version 2 of the License, or
  6. * (at your option) any later version.
  7. *
  8. * This program is distributed in the hope that it will be useful,
  9. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. * GNU General Public License for more details.
  12. *
  13. * You should have received a copy of the GNU General Public License
  14. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  15. */
  16. #include "quantum.h"
  17. #ifdef RGB_MATRIX_ENABLE
  18. // clang-format off
  19. const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
  20. /* Refer to SNLED27351 manual for these locations
  21. * driver
  22. * | R location
  23. * | | G location
  24. * | | | B location
  25. * | | | | */
  26. {0, CB3_CA2, CB1_CA2, CB2_CA2}, // ESC
  27. {0, CB3_CA3, CB1_CA3, CB2_CA3}, // F1
  28. {0, CB3_CA4, CB1_CA4, CB2_CA4}, // F2
  29. {0, CB3_CA5, CB1_CA5, CB2_CA5}, // F3
  30. {0, CB3_CA6, CB1_CA6, CB2_CA6}, // F4
  31. {0, CB3_CA7, CB1_CA7, CB2_CA7}, // F5
  32. {0, CB3_CA8, CB1_CA8, CB2_CA8}, // F6
  33. {0, CB3_CA9, CB1_CA9, CB2_CA9}, // F7
  34. {0, CB3_CA10, CB1_CA10, CB2_CA10}, // F8
  35. {0, CB3_CA11, CB1_CA11, CB2_CA11}, // F9
  36. {0, CB3_CA12, CB1_CA12, CB2_CA12}, // F10
  37. {0, CB3_CA13, CB1_CA13, CB2_CA13}, // F11
  38. {0, CB3_CA14, CB1_CA14, CB2_CA14}, // F12
  39. {0, CB3_CA15, CB1_CA15, CB2_CA15}, // INS
  40. {0, CB3_CA16, CB1_CA16, CB2_CA16}, // DEL
  41. {0, CB9_CA1, CB7_CA1, CB8_CA1}, // M1
  42. {0, CB9_CA2, CB7_CA2, CB8_CA2}, // `~
  43. {0, CB9_CA3, CB7_CA3, CB8_CA3}, // 1!
  44. {0, CB9_CA4, CB7_CA4, CB8_CA4}, // 2@
  45. {0, CB9_CA5, CB7_CA5, CB8_CA5}, // 3#
  46. {0, CB9_CA6, CB7_CA6, CB8_CA6}, // 4$
  47. {0, CB9_CA7, CB7_CA7, CB8_CA7}, // 5%
  48. {0, CB9_CA8, CB7_CA8, CB8_CA8}, // 6^
  49. {0, CB9_CA9, CB7_CA9, CB8_CA9}, // 7&
  50. {0, CB9_CA10, CB7_CA10, CB8_CA10}, // 8*
  51. {0, CB9_CA11, CB7_CA11, CB8_CA11}, // 9(
  52. {0, CB9_CA12, CB7_CA12, CB8_CA12}, // 0)
  53. {0, CB9_CA13, CB7_CA13, CB8_CA13}, // -_
  54. {0, CB9_CA14, CB7_CA14, CB8_CA14}, // =+
  55. {0, CB9_CA15, CB7_CA15, CB8_CA15}, // BackSpace
  56. {0, CB9_CA16, CB7_CA16, CB8_CA16}, // PgUp
  57. {0, CB6_CA1, CB4_CA1, CB5_CA1}, // M2
  58. {0, CB6_CA2, CB4_CA2, CB5_CA2}, // TAB
  59. {0, CB6_CA3, CB4_CA3, CB5_CA3}, // Q
  60. {0, CB6_CA4, CB4_CA4, CB5_CA4}, // W
  61. {0, CB6_CA5, CB4_CA5, CB5_CA5}, // E
  62. {0, CB6_CA6, CB4_CA6, CB5_CA6}, // R
  63. {0, CB6_CA7, CB4_CA7, CB5_CA7}, // T
  64. {0, CB6_CA8, CB4_CA8, CB5_CA8}, // Y
  65. {0, CB6_CA9, CB4_CA9, CB5_CA9}, // U
  66. {0, CB6_CA10, CB4_CA10, CB5_CA10}, // I
  67. {0, CB6_CA11, CB4_CA11, CB5_CA11}, // O
  68. {0, CB6_CA12, CB4_CA12, CB5_CA12}, // P
  69. {0, CB6_CA13, CB4_CA13, CB5_CA13}, // [
  70. {0, CB6_CA14, CB4_CA14, CB5_CA14}, // ]
  71. {0, CB6_CA16, CB4_CA16, CB5_CA16}, // PgDn
  72. {1, CB3_CA16, CB1_CA16, CB2_CA16}, // M3
  73. {1, CB3_CA15, CB1_CA15, CB2_CA15}, // CapsLock
  74. {1, CB3_CA14, CB1_CA14, CB2_CA14}, // A
  75. {1, CB3_CA13, CB1_CA13, CB2_CA13}, // S
  76. {1, CB3_CA12, CB1_CA12, CB2_CA12}, // D
  77. {1, CB3_CA11, CB1_CA11, CB2_CA11}, // F
  78. {1, CB3_CA10, CB1_CA10, CB2_CA10}, // G
  79. {1, CB3_CA8, CB1_CA8, CB2_CA8}, // H
  80. {1, CB3_CA7, CB1_CA7, CB2_CA7}, // J
  81. {1, CB3_CA6, CB1_CA6, CB2_CA6}, // K
  82. {1, CB3_CA5, CB1_CA5, CB2_CA5}, // L
  83. {1, CB3_CA4, CB1_CA4, CB2_CA4}, // ;
  84. {1, CB3_CA3, CB1_CA3, CB2_CA3}, // '
  85. {0, CB6_CA15, CB4_CA15, CB5_CA15}, // |
  86. {1, CB3_CA2, CB1_CA2, CB2_CA2}, // Enter
  87. {1, CB3_CA1, CB1_CA1, CB2_CA1}, // Home
  88. {1, CB9_CA16, CB7_CA16, CB8_CA16}, // M4
  89. {1, CB9_CA15, CB7_CA15, CB8_CA15}, // Shift_L
  90. {1, CB9_CA14, CB7_CA14, CB8_CA14},
  91. {1, CB9_CA13, CB7_CA13, CB8_CA13}, // Z
  92. {1, CB9_CA12, CB7_CA12, CB8_CA12}, // X
  93. {1, CB9_CA11, CB7_CA11, CB8_CA11}, // C
  94. {1, CB9_CA10, CB7_CA10, CB8_CA10}, // V
  95. {1, CB9_CA9, CB7_CA9, CB8_CA9}, // B
  96. {1, CB9_CA8, CB7_CA8, CB8_CA8}, // B
  97. {1, CB9_CA7, CB7_CA7, CB8_CA7}, // N
  98. {1, CB9_CA6, CB7_CA6, CB8_CA6}, // M
  99. {1, CB9_CA5, CB7_CA5, CB8_CA5}, // ,
  100. {1, CB9_CA4, CB7_CA4, CB8_CA4}, // .
  101. {1, CB9_CA3, CB7_CA3, CB8_CA3}, // ?
  102. {1, CB9_CA2, CB7_CA2, CB8_CA2}, // Shift_R
  103. {1, CB9_CA1, CB7_CA1, CB8_CA1}, // Up
  104. {1, CB6_CA16, CB4_CA16, CB5_CA16}, // M5
  105. {1, CB6_CA15, CB4_CA15, CB5_CA15}, // Ctrl_L
  106. {1, CB6_CA14, CB4_CA14, CB5_CA14}, // Win_L
  107. {1, CB6_CA13, CB4_CA13, CB5_CA13}, // Alt_L
  108. {1, CB6_CA12, CB4_CA12, CB5_CA12}, // Space
  109. {1, CB6_CA9, CB4_CA9, CB5_CA9}, // Fn
  110. {1, CB6_CA8, CB4_CA8, CB5_CA8}, // Space
  111. {1, CB6_CA7, CB4_CA7, CB5_CA7}, // Alt_R
  112. {1, CB6_CA3, CB4_CA3, CB5_CA3}, // Left
  113. {1, CB6_CA2, CB4_CA2, CB5_CA2}, // Down
  114. {1, CB6_CA1, CB4_CA1, CB5_CA1}, // Right
  115. };
  116. #define __ NO_LED
  117. led_config_t g_led_config = {
  118. {
  119. // Key Matrix to LED Index
  120. { __, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
  121. { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 },
  122. { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 59, 45 },
  123. { 46, 47, 48, 49, 50, 51, 52, __, 53, 54, 55, 56, 57, 58, 60, 61 },
  124. { 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77 },
  125. { 78, 79, 80, 81, 82, __, __, 83, 84, 85, __, __, __, 86, 87, 88 },
  126. },
  127. {
  128. // LED Index to Physical Position
  129. {0,0}, {19,0}, {34,0}, {60,1}, {72,3}, {87,6}, {99,8}, {120,8}, {132,6}, {147,3}, {159,1}, {173,0}, {185,0}, {201,1}, {219,1},
  130. {5,14}, {24,14}, {36,14}, {48,13}, {62,15}, {74,17}, {86,20}, {98,22}, {115,22}, {127,20}, {139,17}, {151,15}, {165,13}, {177,14}, {195,14}, {220,15},
  131. {4,24}, {24,24}, {40,24}, {53,24}, {65,27}, {77,29}, {89,31}, {112,33}, {124,31}, {136,29}, {148,27}, {160,24}, {176,24}, {189,24}, {222,25},
  132. {2,34}, {23,34}, {40,34}, {54,35}, {66,37}, {78,39}, {90,42}, {118,43}, {130,40}, {142,38}, {154,36}, {167,35}, {179,35}, {192,35}, {208,31}, {224,36},
  133. {0,45}, {18,45}, {31,45}, {44,45}, {57,46}, {69,48}, {81,51}, {93,53}, {111,54}, {123,52}, {135,50}, {147,48}, {159,46}, {173,45}, {190,45}, {210,47},
  134. {0,55}, {18,55}, {33,55}, {56,57}, {77,61}, {97,64}, {124,63}, {147,59}, {198,58}, {210,58}, {222,58},
  135. },
  136. {
  137. // RGB LED Index to Flag
  138. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  139. 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
  140. 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
  141. 1, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
  142. 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
  143. 1, 1, 1, 1, 4, 1, 4, 1, 1, 1, 1,
  144. }
  145. };
  146. #endif // RGB_MATRIX_ENABLE