aboutsummaryrefslogtreecommitdiff
path: root/keyboards/ares/ares.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/ares/ares.c')
-rw-r--r--keyboards/ares/ares.c107
1 files changed, 107 insertions, 0 deletions
diff --git a/keyboards/ares/ares.c b/keyboards/ares/ares.c
new file mode 100644
index 000000000..85c7435ed
--- /dev/null
+++ b/keyboards/ares/ares.c
@@ -0,0 +1,107 @@
1/*
2Copyright 2017 Luiz Ribeiro <luizribeiro@gmail.com>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#include "ares.h"
19
20#ifdef RGBLIGHT_ENABLE
21
22#include <string.h>
23#include "i2c_master.h"
24#include "rgblight.h"
25
26extern rgblight_config_t rgblight_config;
27
28void matrix_init_kb(void) {
29 i2c_init();
30 // call user level keymaps, if any
31 matrix_init_user();
32}
33
34// custom RGB driver
35void rgblight_set(void) {
36 if (!rgblight_config.enable) {
37 memset(led, 0, 3 * RGBLED_NUM);
38 }
39
40 i2c_transmit(0xb0, (uint8_t*)led, 3 * RGBLED_NUM, 100);
41}
42
43bool rgb_init = false;
44
45void matrix_scan_kb(void) {
46 // if LEDs were previously on before poweroff, turn them back on
47 if (rgb_init == false && rgblight_config.enable) {
48 i2c_transmit(0xb0, (uint8_t*)led, 3 * RGBLED_NUM, 100);
49 rgb_init = true;
50 }
51
52 rgblight_task();
53 matrix_scan_user();
54}
55
56#endif
57
58#ifdef BACKLIGHT_ENABLE
59void backlight_init_ports(void) {
60 setPinOutput(D0);
61 setPinOutput(D1);
62 setPinOutput(D4);
63 setPinOutput(D6);
64}
65
66void backlight_set(uint8_t level) {
67 if (level == 0) {
68 // Turn out the lights
69 writePinLow(D0);
70 writePinLow(D1);
71 writePinLow(D4);
72 writePinLow(D6);
73 } else {
74 // Turn on the lights
75 writePinHigh(D0);
76 writePinHigh(D1);
77 writePinHigh(D4);
78 writePinHigh(D6);
79 }
80}
81#endif
82
83// Optional override functions below.
84// You can leave any or all of these undefined.
85// These are only required if you want to perform custom actions.
86
87/*
88void matrix_init_kb(void) {
89 // put your keyboard start-up code here
90 // runs once when the firmware starts up
91 matrix_init_user();
92}
93void matrix_scan_kb(void) {
94 // put your looping keyboard code here
95 // runs every cycle (a lot)
96 matrix_scan_user();
97}
98bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
99 // put your per-action keyboard code here
100 // runs for every action, just before processing by the firmware
101 return process_record_user(keycode, record);
102}
103void led_set_kb(uint8_t usb_led) {
104 // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
105 led_set_user(usb_led);
106}
107*/ \ No newline at end of file