1
0
Fork 0

[Keyboard] Refactor jj4x4 to current standards (#5567)

* Refactor 4x4 in line with current ps2avrgb template

* Add backlight pwm bodge till #4324 lands

* Disable bootmagic lite as it seems to not work on atmega32a/bootloadHID
This commit is contained in:
zvecr 2019-04-08 19:35:47 +01:00 committed by Drashna Jaelre
parent 15d7c5f0bd
commit da9bb59055
11 changed files with 121 additions and 605 deletions

View file

@ -18,53 +18,26 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "jj4x4.h"
#include <avr/pgmspace.h>
#ifdef RGBLIGHT_ENABLE
#include "action_layer.h"
#include "quantum.h"
#include <string.h>
#include "i2c_master.h"
#include "rgblight.h"
#include "i2c.h"
extern rgblight_config_t rgblight_config;
#include "backlight.h"
#include "backlight_custom.h"
// for keyboard subdirectory level init functions
// @Override
void matrix_init_kb(void) {
i2c_init();
// call user level keymaps, if any
matrix_init_user();
}
#ifdef BACKLIGHT_ENABLE
/// Overrides functions in `quantum.c`
void backlight_init_ports(void) {
b_led_init_ports();
}
void backlight_task(void) {
b_led_task();
}
void backlight_set(uint8_t level) {
b_led_set(level);
}
#endif
#ifdef RGBLIGHT_ENABLE
extern rgblight_config_t rgblight_config;
// custom RGB driver
void rgblight_set(void) {
if (!rgblight_config.enable) {
for (uint8_t i=0; i<RGBLED_NUM; i++) {
led[i].r = 0;
led[i].g = 0;
led[i].b = 0;
}
memset(led, 0, 3 * RGBLED_NUM);
}
i2c_init();
i2c_send(0xb0, (uint8_t*)led, 3 * RGBLED_NUM);
i2c_transmit(0xb0, (uint8_t*)led, 3 * RGBLED_NUM, 100);
}
bool rgb_init = false;
@ -72,26 +45,12 @@ bool rgb_init = false;
void matrix_scan_kb(void) {
// if LEDs were previously on before poweroff, turn them back on
if (rgb_init == false && rgblight_config.enable) {
i2c_init();
i2c_send(0xb0, (uint8_t*)led, 3 * RGBLED_NUM);
i2c_transmit(0xb0, (uint8_t*)led, 3 * RGBLED_NUM, 100);
rgb_init = true;
}
rgblight_task();
#else
void matrix_scan_kb(void) {
#endif
matrix_scan_user();
/* Nothing else for now. */
}
__attribute__((weak)) // overridable
void matrix_init_user(void) {
}
__attribute__((weak)) // overridable
void matrix_scan_user(void) {
}
#endif