From c51dfef958bce4a792b66db337d5c7cdf0956fc4 Mon Sep 17 00:00:00 2001 From: Scott Wilson Date: Sun, 3 Dec 2017 10:32:07 -0500 Subject: Add support for LFKeyboard products: LFK78, LFK87 and SMK65 --- keyboards/lfkeyboards/issi.h | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 keyboards/lfkeyboards/issi.h (limited to 'keyboards/lfkeyboards/issi.h') diff --git a/keyboards/lfkeyboards/issi.h b/keyboards/lfkeyboards/issi.h new file mode 100644 index 0000000000..51777f6ee3 --- /dev/null +++ b/keyboards/lfkeyboards/issi.h @@ -0,0 +1,40 @@ +#ifdef ISSI_ENABLE +#ifndef ISSI_H +#define ISSI_H + +typedef struct ISSIDeviceStruct{ + uint8_t fn_dirty; // function registers need to be resent + uint8_t fn_device_addr; + uint8_t fn_register_addr; + uint8_t fn_registers[13]; + uint8_t led_dirty; // LED data has changed and needs to be resent + uint8_t led_device_addr; + uint8_t led_register_addr; + uint8_t led_ctrl[18]; + uint8_t led_blink_ctrl[18]; + uint8_t led_pwm[144]; +}ISSIDeviceStruct; + +extern ISSIDeviceStruct *issi_devices[]; + +// Low level commands- 'device' is the 2-bit i2c id. +void issi_init(void); +void set_shutdown(uint8_t device, uint8_t shutdown); +void writeRegister8(uint8_t device, uint8_t frame, uint8_t reg, uint8_t data); + +// Higher level, no device is given, but it is calculated from 'matrix' +// Each device has 2 blocks, max of 4 devices: +// Device | Block = Matrix +// 0 A 0 +// 0 B 1 +// 1 A 2 +// 1 B 3 +// 2 A 4 +// 2 B 5 +// 3 A 6 +// 3 B 7 +void activateLED(uint8_t matrix, uint8_t cx, uint8_t cy, uint8_t pwm); +void update_issi(uint8_t device_addr, uint8_t blocking); + +#endif +#endif \ No newline at end of file -- cgit v1.2.3