X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=keyboards%2Finfinity60%2Fled_controller.h;h=e4b47176464e56e6ab7ac1674941bc44d7ed8f42;hb=685d4c2f9754e22de3b68379cfc959197495c0aa;hp=7db02389f8ec281e5a994f531e6023c823dbc662;hpb=f66361d678047af31d9d48ca6c22afcc48756882;p=qmk_firmware.git diff --git a/keyboards/infinity60/led_controller.h b/keyboards/infinity60/led_controller.h index 7db02389f..e4b471764 100644 --- a/keyboards/infinity60/led_controller.h +++ b/keyboards/infinity60/led_controller.h @@ -1,5 +1,6 @@ /* Copyright 2016 flabbergast +Copyright 2017 jpetermans This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -26,12 +27,15 @@ msg_t is31_write_data(uint8_t page, uint8_t *buffer, uint8_t size); msg_t is31_write_register(uint8_t page, uint8_t reg, uint8_t data); msg_t is31_read_register(uint8_t page, uint8_t reg, uint8_t *result); -/* ========================= - * init functions - * ========================= */ +/* ============================ + * init functions/definitions + * ============================*/ void led_controller_init(void); +#define CAPS_LOCK_LED_ADDRESS 46 //pin matrix location +#define NUM_LOCK_LED_ADDRESS 85 + /* ============================= * IS31 chip related definitions * ============================= */ @@ -55,7 +59,7 @@ void led_controller_init(void); #define IS31_REG_DISPLAYOPT 0x05 #define IS31_REG_DISPLAYOPT_INTENSITY_SAME 0x20 // same intensity for all frames -#define IS31_REG_DISPLAYOPT_BLINK_ENABLE 0x8 +#define IS31_REG_DISPLAYOPT_BLINK_ENABLE 0x08 // D2:D0 bits blink period time (*0.27s) #define IS31_REG_AUDIOSYNC 0x06 @@ -72,7 +76,8 @@ void led_controller_init(void); // D2:D0 extinguish time (3.5ms*2^i) #define IS31_REG_SHUTDOWN 0x0A -#define IS31_REG_SHUTDOWN_ON 0x1 +#define IS31_REG_SHUTDOWN_OFF 0x1 +#define IS31_REG_SHUTDOWN_ON 0x0 #define IS31_REG_AGCCTRL 0x0B #define IS31_REG_ADCRATE 0x0C @@ -82,20 +87,35 @@ void led_controller_init(void); #define IS31_TIMEOUT 10000 // needs to be long enough to write a whole page -/* ============================== - * LED Thread related definitions - * ============================== */ +/* ======================================== + * LED Thread related items + * ========================================*/ extern mailbox_t led_mailbox; +void set_led_bit (uint8_t page, uint8_t *led_control_reg, uint8_t led_addr, uint8_t action); +void set_lock_leds (uint8_t led_addr, uint8_t led_action, uint8_t page); +void write_led_byte (uint8_t page, uint8_t row, uint8_t led_byte); +void write_led_page (uint8_t page, uint8_t *led_array, uint8_t led_count); + // constants for signaling the LED controller thread enum led_msg_t { - LED_MSG_CAPS_ON, - LED_MSG_CAPS_OFF, - LED_MSG_SLEEP_LED_ON, - LED_MSG_SLEEP_LED_OFF, - LED_MSG_ALL_TOGGLE, - LED_MSG_GAME_TOGGLE + KEY_LIGHT, + SET_FULL_ROW, + OFF_LED, + ON_LED, + TOGGLE_LED, + BLINK_OFF_LED, + BLINK_ON_LED, + BLINK_TOGGLE_LED, + TOGGLE_ALL, + TOGGLE_BACKLIGHT, + DISPLAY_PAGE, + RESET_PAGE, + TOGGLE_NUM_LOCK, + TOGGLE_CAPS_LOCK, + TOGGLE_BREATH, + STEP_BRIGHTNESS }; #endif /* _LED_CONTROLLER_H_ */