]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/panc60/panc60.c
RGB Support for Panc60 (#4253)
[qmk_firmware.git] / keyboards / panc60 / panc60.c
1 /* Copyright 2018 MechMerlin
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 "panc60.h"
17 #ifdef BACKLIGHT_ENABLE
18 #include "backlight.h"
19 #endif
20 #ifdef RGBLIGHT_ENABLE
21 #include "rgblight.h"
22 #endif
23
24 #include <avr/pgmspace.h>
25
26 #include "action_layer.h"
27 #include "i2c.h"
28 #include "quantum.h"
29
30 __attribute__ ((weak))
31 void matrix_scan_user(void) {
32 }
33
34 #ifdef RGBLIGHT_ENABLE
35 extern rgblight_config_t rgblight_config;
36
37 void rgblight_set(void) {
38     if (!rgblight_config.enable) {
39         for (uint8_t i = 0; i < RGBLED_NUM; i++) {
40             led[i].r = 0;
41             led[i].g = 0;
42             led[i].b = 0;
43         }
44     }
45
46     i2c_init();
47     i2c_send(0xb0, (uint8_t*)led, 3 * RGBLED_NUM);
48 }
49 #endif
50
51 void backlight_init_ports(void) {
52         DDRD |= (1<<0 | 1<<1 | 1<<4 | 1<<6);
53         PORTD &= ~(1<<0 | 1<<1 | 1<<4 | 1<<6);
54 }
55
56 void backlight_set(uint8_t level) {
57         if (level == 0) {
58                 // Turn out the lights
59                 PORTD &= ~(1<<0 | 1<<1 | 1<<4 | 1<<6);
60         } else {
61                 // Turn on the lights
62                 PORTD |= (1<<0 | 1<<1 | 1<<4 | 1<<6);
63         }
64 }