gingham.c (1311B)
1 /* Copyright 2019 Yiancar 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 #include "i2c_master.h" 18 19 uint8_t send_data; 20 21 void matrix_init_kb(void) { 22 // Due to the way the port expander is setup both LEDs are already outputs. This is set n matrix.copy 23 //Turn the red LED on as power indicator. 24 send_data = 0x10; 25 i2c_write_register((PORT_EXPANDER_ADDRESS << 1), 0x09, &send_data, 1, 20); 26 27 matrix_init_user(); 28 } 29 30 bool led_update_kb(led_t led_state) { 31 bool res = led_update_user(led_state); 32 if(res) { 33 send_data = led_state.caps_lock ? 0x18 : 0x10; 34 i2c_write_register((PORT_EXPANDER_ADDRESS << 1), 0x09, &send_data, 1, 20); 35 } 36 return res; 37 }