You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

173 lines
7.1 KiB

  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. const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
  19. /* Refer to SNLED27351 manual for these locations
  20. * driver
  21. * | R location
  22. * | | G location
  23. * | | | B location
  24. * | | | | */
  25. // {0, I_1, G_1, H_1}
  26. {0, I_2, G_2, H_2}, // F13
  27. {0, I_3, G_3, H_3}, // F14
  28. {0, I_4, G_4, H_4}, // F15
  29. {0, I_5, G_5, H_5}, // Esc
  30. {0, I_6, G_6, H_6}, // F1
  31. {0, I_7, G_7, H_7}, // F2
  32. {0, I_8, G_8, H_8}, // F3
  33. {0, I_9, G_9, H_9}, // F4
  34. {0, I_10, G_10, H_10}, // F5
  35. {0, I_11, G_11, H_11}, // F6
  36. {0, I_12, G_12, H_12}, // F7
  37. {0, I_13, G_13, H_13}, // F8
  38. {0, I_14, G_14, H_14}, // F9
  39. {0, I_15, G_15, H_15}, // F10
  40. {0, I_16, G_16, H_16}, // F11
  41. {0, L_16, J_16, K_16}, // F12
  42. {0, L_15, J_15, K_15}, // DEL
  43. {0, L_14, J_14, K_14}, // Light
  44. {0, C_1, A_1, B_1}, // num_lock
  45. {0, C_2, A_2, B_2}, // /
  46. {0, C_3, A_3, B_3}, // *
  47. {0, C_4, A_4, B_4}, // -
  48. {0, C_5, A_5, B_5}, // ~`
  49. {0, C_6, A_6, B_6}, // 1!
  50. {0, C_7, A_7, B_7}, // 2@
  51. {0, C_8, A_8, B_8}, // 3#
  52. {0, C_9, A_9, B_9}, // 4$
  53. {0, C_10, A_10, B_10}, // 5%
  54. {0, C_11, A_11, B_11}, // 6^
  55. {0, C_12, A_12, B_12}, // 7&
  56. {0, C_13, A_13, B_13}, // 8*
  57. {0, C_14, A_14, B_14}, // 9(
  58. {0, C_15, A_15, B_15}, // 0)
  59. {0, C_16, A_16, B_16}, // -_
  60. {0, L_13, J_13, K_13}, // =+
  61. {0, L_12, J_12, K_12}, // BackSpace
  62. {0, L_11, J_11, K_11}, // PgUp
  63. {0, F_1, D_1, E_1}, // 7
  64. {0, F_2, D_2, E_2}, // 8
  65. {0, F_3, D_3, E_3}, // 9
  66. {0, F_4, D_4, E_4}, // +
  67. {0, F_5, D_5, E_5}, // TAB
  68. {0, F_6, D_6, E_6}, // Q
  69. {0, F_7, D_7, E_7}, // W
  70. {0, F_8, D_8, E_8}, // E
  71. {0, F_9, D_9, E_9}, // R
  72. {0, F_10, D_10, E_10}, // T
  73. {0, F_11, D_11, E_11}, // Y
  74. {0, F_12, D_12, E_12}, // U
  75. {0, F_13, D_13, E_13}, // I
  76. {0, F_14, D_14, E_14}, // O
  77. {0, F_15, D_15, E_15}, // P
  78. {0, F_16, D_16, E_16}, // [
  79. {0, L_10, J_10, K_10}, // ]
  80. // {0, L_9, J_9, K_9}, // \|
  81. {0, L_8, J_8, K_8}, // PgDn
  82. {1, C_16, A_16, B_16}, // 4
  83. {1, C_15, A_15, B_15}, // 5
  84. {1, C_14, A_14, B_14}, // 6
  85. // {0, F_4, D_4, E_4}, // +
  86. {1, C_12, A_12, B_12}, // CapsLock
  87. {1, C_11, A_11, B_11}, // A
  88. {1, C_10, A_10, B_10}, // S
  89. {1, C_9, A_9, B_9}, // D
  90. {1, C_8, A_8, B_8}, // F
  91. {1, C_7, A_7, B_7}, // G
  92. {1, C_6, A_6, B_6}, // H
  93. {1, C_5, A_5, B_5}, // J
  94. {1, C_4, A_4, B_4}, // k
  95. {1, C_3, A_3, B_3}, // l
  96. {1, C_2, A_2, B_2}, // ;
  97. {1, C_1, A_1, B_1}, // '
  98. {1, L_1, J_1, K_1}, // #~
  99. {0, L_9, J_9, K_9}, // Enter
  100. {1, L_2, J_2, K_2}, // Home
  101. {1, I_16, G_16, H_16}, // 1
  102. {1, I_15, G_15, H_15}, // 2
  103. {1, I_14, G_14, H_14}, // 3
  104. {1, I_13, G_13, H_13}, // Enter
  105. {1, I_12, G_12, H_12}, //Shift_L
  106. {1, I_11, G_11, H_11}, // |
  107. {1, I_10, G_10, H_10}, // Z
  108. {1, I_9, G_9, H_9}, // X
  109. {1, I_8, G_8, H_8}, // C
  110. {1, I_7, G_7, H_7}, // V
  111. {1, I_6, G_6, H_6}, // B
  112. {1, I_5, G_5, H_5}, // N
  113. {1, I_4, G_4, H_4}, // M
  114. {1, I_3, G_3, H_3}, // ,
  115. {1, I_2, G_2, H_2}, // .
  116. {1, I_1, G_1, H_1}, // ?
  117. {1, L_3, J_3, K_3}, // Shift_R
  118. {1, L_4, J_4, K_4}, // Up
  119. {1, F_16, D_16, E_16}, // 0
  120. {1, F_14, D_14, E_14}, // .
  121. {1, F_12, D_12, E_12}, // Ctrl_L
  122. {1, F_11, D_11, E_11}, // Win_L
  123. {1, F_10, D_10, E_10}, // Alt_L
  124. {1, F_6, D_6, E_6}, // Space
  125. {1, F_3, D_3, E_3}, // Alt_R
  126. {1, F_2, D_2, E_2}, // Fn
  127. {1, F_1, D_1, E_1}, // Ctrl_R
  128. {1, L_5, J_5, K_5}, // Left
  129. {1, L_6, J_6, K_6}, // Down
  130. {1, L_7, J_7, K_7}, // Right
  131. };
  132. #define __ NO_LED
  133. led_config_t g_led_config = {
  134. {
  135. // Key Matrix to LED Index
  136. { 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, __, 0, 1 },
  137. { 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 18, 19, 20 },
  138. { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 71, 54, 37, 38, 39 },
  139. { 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 76, 70, 72, 55, 56, 57 },
  140. { 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, __, 89, 90, 73, 74, 75 },
  141. { 93, 94, 95, __, __, 21, 96, 40, __, 97, 98, 99, 100, 101, 102, 91, 2, 92 },
  142. },
  143. {
  144. // LED Index to Physical Position
  145. {11,0}, {23,0}, {34,0}, {49,0}, {63,0}, {75,0}, {86,0}, {98,0}, {112,0}, {123,0}, {135,0}, {146,0}, {160,0}, {172,0}, {183,0}, {194,0}, {209,0}, {224,0},
  146. {0,15}, {11,15}, {23,15}, {34,15}, {49,15}, {60,15}, {72,15}, {83,15}, {95,15}, {106,15}, {117,15}, {129,15}, {140,15}, {152,15}, {163,15}, {175,15}, {186,15}, {204,15}, {224,15},
  147. {0,26}, {11,26}, {23,26}, {34,32}, {52,26}, {66,26}, {77,26}, {89,26}, {100,26}, {112,26}, {123,26}, {135,26}, {146,26}, {158,26}, {169,26}, {180,26}, {192,26}, {224,26},
  148. {0,38}, {11,38}, {23,38}, {53,38}, {69,38}, {80,38}, {92,38}, {103,38}, {115,38}, {126,38}, {137,38}, {149,38}, {160,38}, {172,38}, {183,38}, {195,38}, {210,34}, {224,38},
  149. {0,49}, {11,49}, {23,49}, {34,55}, {50,49}, {63,49}, {75,49}, {86,49}, {97,49}, {109,49}, {120,49}, {132,49}, {143,49}, {155,49}, {166,49}, {177,49}, {193,49}, {212,52},
  150. {6,61}, {23,61}, {50,61}, {65,61}, {79,61}, {122,61}, {163,61}, {174,61}, {186,61}, {201,64}, {212,64}, {223,64},
  151. },
  152. {
  153. // RGB LED Index to Flag
  154. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  155. 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
  156. 4, 4, 4, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
  157. 4, 4, 4, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
  158. 4, 4, 4, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
  159. 4, 4, 1, 1, 1, 4, 1, 4, 1, 1, 1, 1,
  160. }
  161. };
  162. #endif