Adds a default value for IS_COMMAND for COMMAND feature (#4301)
[jackhill/qmk/firmware.git] / keyboards / meira / issi.h
CommitLineData
a9a46adb
CM
1#ifdef ISSI_ENABLE
2#ifndef ISSI_H
3#define ISSI_H
4
5typedef struct ISSIDeviceStruct{
6 uint8_t fn_dirty; // function registers need to be resent
7 uint8_t fn_device_addr;
8 uint8_t fn_register_addr;
9 uint8_t fn_registers[13];
10 uint8_t led_dirty; // LED data has changed and needs to be resent
11 uint8_t led_device_addr;
12 uint8_t led_register_addr;
13 uint8_t led_ctrl[18];
14 uint8_t led_blink_ctrl[18];
15 uint8_t led_pwm[144];
16}ISSIDeviceStruct;
17
18extern ISSIDeviceStruct *issi_devices[];
19
20// Low level commands- 'device' is the 2-bit i2c id.
21void issi_init(void);
22void set_shutdown(uint8_t device, uint8_t shutdown);
23void writeRegister8(uint8_t device, uint8_t frame, uint8_t reg, uint8_t data);
24
25// Higher level, no device is given, but it is calculated from 'matrix'
26// Each device has 2 blocks, max of 4 devices:
27// Device | Block = Matrix
28// 0 A 0
29// 0 B 1
30// 1 A 2
31// 1 B 3
32// 2 A 4
33// 2 B 5
34// 3 A 6
35// 3 B 7
36void activateLED(uint8_t matrix, uint8_t cx, uint8_t cy, uint8_t pwm);
37void update_issi(uint8_t device_addr, uint8_t blocking);
38
39#endif
40#endif