summaryrefslogtreecommitdiffstats
path: root/tmk_core/common/led.h
diff options
context:
space:
mode:
Diffstat (limited to 'tmk_core/common/led.h')
-rw-r--r--tmk_core/common/led.h24
1 files changed, 18 insertions, 6 deletions
diff --git a/tmk_core/common/led.h b/tmk_core/common/led.h
index c16305129b..990282862b 100644
--- a/tmk_core/common/led.h
+++ b/tmk_core/common/led.h
@@ -18,21 +18,33 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifndef LED_H
#define LED_H
#include "stdint.h"
+#include "stdbool.h"
/* FIXME: Add doxygen comments here. */
/* keyboard LEDs */
-#define USB_LED_NUM_LOCK 0
-#define USB_LED_CAPS_LOCK 1
-#define USB_LED_SCROLL_LOCK 2
-#define USB_LED_COMPOSE 3
-#define USB_LED_KANA 4
-
+#define USB_LED_NUM_LOCK 0
+#define USB_LED_CAPS_LOCK 1
+#define USB_LED_SCROLL_LOCK 2
+#define USB_LED_COMPOSE 3
+#define USB_LED_KANA 4
#ifdef __cplusplus
extern "C" {
#endif
+typedef union {
+ uint8_t raw;
+ struct {
+ bool num_lock : 1;
+ bool caps_lock : 1;
+ bool scroll_lock : 1;
+ bool compose : 1;
+ bool kana : 1;
+ uint8_t reserved : 3;
+ };
+} led_t;
+
void led_set(uint8_t usb_led);
void led_init_ports(void);