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.

170 lines
7.0 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}, // Enter
  99. {1, L_2, J_2, K_2}, // Home
  100. {1, I_16, G_16, H_16}, // 1
  101. {1, I_15, G_15, H_15}, // 2
  102. {1, I_14, G_14, H_14}, // 3
  103. {1, I_13, G_13, H_13}, // Enter
  104. {1, I_12, G_12, H_12}, //Shift_L
  105. {1, I_10, G_10, H_10}, // Z
  106. {1, I_9, G_9, H_9}, // X
  107. {1, I_8, G_8, H_8}, // C
  108. {1, I_7, G_7, H_7}, // V
  109. {1, I_6, G_6, H_6}, // B
  110. {1, I_5, G_5, H_5}, // N
  111. {1, I_4, G_4, H_4}, // M
  112. {1, I_3, G_3, H_3}, // ,
  113. {1, I_2, G_2, H_2}, // .
  114. {1, I_1, G_1, H_1}, // ?
  115. {1, L_3, J_3, K_3}, // Shift_R
  116. {1, L_4, J_4, K_4}, // Up
  117. {1, F_16, D_16, E_16}, // 0
  118. {1, F_14, D_14, E_14}, // .
  119. {1, F_12, D_12, E_12}, // Ctrl_L
  120. {1, F_11, D_11, E_11}, // Win_L
  121. {1, F_10, D_10, E_10}, // Alt_L
  122. {1, F_6, D_6, E_6}, // Space
  123. {1, F_3, D_3, E_3}, // Alt_R
  124. {1, F_2, D_2, E_2}, // Fn
  125. {1, F_1, D_1, E_1}, // Ctrl_R
  126. {1, L_5, J_5, K_5}, // Left
  127. {1, L_6, J_6, K_6}, // Down
  128. {1, L_7, J_7, K_7}, // Right
  129. };
  130. #define __ NO_LED
  131. led_config_t g_led_config = {
  132. {
  133. // Key Matrix to LED Index
  134. { 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, __, 0, 1 },
  135. { 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 18, 19, 20 },
  136. { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 37, 38, 39 },
  137. { 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 76, 71, 72, 56, 57, 58 },
  138. { 77, __, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, __, 88, 89, 73, 74, 75 },
  139. { 92, 93, 94, __, __, 21, 95, 40, __, 96, 97, 98, 99, 100, 101, 90, 2, 91 },
  140. },
  141. {
  142. // LED Index to Physical Position
  143. {11,0}, {23,0}, {34,0}, {49,0}, {63,0}, {75,0}, {86,0}, {98,0}, {112,0}, {123,0}, {135,0}, {146,0}, {161,0}, {172,0}, {184,0}, {195,0}, {209,0}, {224,0},
  144. {0,15}, {11,15}, {23,15}, {34,15}, {49,15}, {60,15}, {72,15}, {83,15}, {95,15}, {106,15}, {118,15}, {129,15}, {141,15}, {152,15}, {164,15}, {175,15}, {186,15}, {204,15}, {224,15},
  145. {0,26}, {11,26}, {23,26}, {34,32}, {52,26}, {66,26}, {78,26}, {89,26}, {101,26}, {112,26}, {123,26}, {135,26}, {146,26}, {158,26}, {169,26}, {181,26}, {192,26}, {207,26}, {224,26},
  146. {0,38}, {11,38}, {23,38}, {53,38}, {69,38}, {81,38}, {92,38}, {103,38}, {115,38}, {126,38}, {138,38}, {149,38}, {161,38}, {172,38}, {184,38}, {202,38}, {224,38},
  147. {0,49}, {11,49}, {23,49}, {34,55}, {56,49}, {75,49}, {86,49}, {98,49}, {109,49}, {121,49}, {132,49}, {144,49}, {155,49}, {166,49}, {178,49}, {194,49}, {213,52},
  148. {6,61}, {23,61}, {50,61}, {65,61}, {79,61}, {122,61}, {163,61}, {175,61}, {186,61}, {201,64}, {213,64}, {224,64},
  149. },
  150. {
  151. // RGB LED Index to Flag
  152. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  153. 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
  154. 4, 4, 4, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
  155. 4, 4, 4, 8, 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, 1, 1,
  157. 4, 4, 1, 1, 1, 4, 1, 4, 1, 1, 1, 1,
  158. }
  159. };
  160. #endif