]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/donutcables/budget96/budget96.c
[Keyboard] Add Budget96 by Donut Cables (#5550)
[qmk_firmware.git] / keyboards / donutcables / budget96 / budget96.c
1 /* Copyright 2019 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 "budget96.h"
17
18 #ifdef BACKLIGHT_ENABLE
19 #include "backlight.h"
20 #endif
21 #ifdef RGBLIGHT_ENABLE
22 #include "rgblight.h"
23 #endif
24
25 #include <avr/pgmspace.h>
26
27 #include "action_layer.h"
28 #include "i2c.h"
29 #include "quantum.h"
30
31 __attribute__ ((weak))
32 void matrix_scan_user(void) {
33 }
34
35 #ifdef RGBLIGHT_ENABLE
36 extern rgblight_config_t rgblight_config;
37
38 void rgblight_set(void) {
39     if (!rgblight_config.enable) {
40         for (uint8_t i = 0; i < RGBLED_NUM; i++) {
41             led[i].r = 0;
42             led[i].g = 0;
43             led[i].b = 0;
44         }
45     }
46
47     i2c_init();
48     i2c_send(0xb0, (uint8_t*)led, 3 * RGBLED_NUM);
49 }
50 #endif
51
52 void backlight_init_ports(void) {
53     // initialize pins D0, D1, D4 and D6 as output
54     setPinOutput(D0);
55     setPinOutput(D1);
56     setPinOutput(D4);
57     setPinOutput(D6);
58
59      // turn RGB LEDs on
60     writePinHigh(D0);
61     writePinHigh(D1);
62     writePinHigh(D4);
63     writePinHigh(D6);
64 }
65
66  void backlight_set(uint8_t level) {
67         if (level == 0) {
68         // turn RGB LEDs off
69         writePinLow(D0);
70         writePinLow(D1);
71         writePinLow(D4);
72         writePinLow(D6);
73         } else {
74         // turn RGB LEDs on
75         writePinHigh(D0);
76         writePinHigh(D1);
77         writePinHigh(D4);
78         writePinHigh(D6);
79         }
80  }