aboutsummaryrefslogtreecommitdiff
path: root/drivers/issi/is31fl3736.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/issi/is31fl3736.h')
-rw-r--r--drivers/issi/is31fl3736.h254
1 files changed, 125 insertions, 129 deletions
diff --git a/drivers/issi/is31fl3736.h b/drivers/issi/is31fl3736.h
index cff50fd0d..e48e31c27 100644
--- a/drivers/issi/is31fl3736.h
+++ b/drivers/issi/is31fl3736.h
@@ -19,154 +19,150 @@
19#include <stdint.h> 19#include <stdint.h>
20#include <stdbool.h> 20#include <stdbool.h>
21 21
22
23// Simple interface option. 22// Simple interface option.
24// If these aren't defined, just define them to make it compile 23// If these aren't defined, just define them to make it compile
25 24
26
27#ifndef DRIVER_COUNT 25#ifndef DRIVER_COUNT
28#define DRIVER_COUNT 2 26# define DRIVER_COUNT 2
29#endif 27#endif
30 28
31#ifndef DRIVER_LED_TOTAL 29#ifndef DRIVER_LED_TOTAL
32#define DRIVER_LED_TOTAL 96 30# define DRIVER_LED_TOTAL 96
33#endif 31#endif
34 32
35
36typedef struct is31_led { 33typedef struct is31_led {
37 uint8_t driver:2; 34 uint8_t driver : 2;
38 uint8_t r; 35 uint8_t r;
39 uint8_t g; 36 uint8_t g;
40 uint8_t b; 37 uint8_t b;
41} __attribute__((packed)) is31_led; 38} __attribute__((packed)) is31_led;
42 39
43extern const is31_led g_is31_leds[DRIVER_LED_TOTAL]; 40extern const is31_led g_is31_leds[DRIVER_LED_TOTAL];
44 41
45void IS31FL3736_init( uint8_t addr ); 42void IS31FL3736_init(uint8_t addr);
46void IS31FL3736_write_register( uint8_t addr, uint8_t reg, uint8_t data ); 43void IS31FL3736_write_register(uint8_t addr, uint8_t reg, uint8_t data);
47void IS31FL3736_write_pwm_buffer( uint8_t addr, uint8_t *pwm_buffer ); 44void IS31FL3736_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);
48 45
49void IS31FL3736_set_color( int index, uint8_t red, uint8_t green, uint8_t blue ); 46void IS31FL3736_set_color(int index, uint8_t red, uint8_t green, uint8_t blue);
50void IS31FL3736_set_color_all( uint8_t red, uint8_t green, uint8_t blue ); 47void IS31FL3736_set_color_all(uint8_t red, uint8_t green, uint8_t blue);
51 48
52void IS31FL3736_set_led_control_register( uint8_t index, bool red, bool green, bool blue ); 49void IS31FL3736_set_led_control_register(uint8_t index, bool red, bool green, bool blue);
53 50
54void IS31FL3736_mono_set_brightness( int index, uint8_t value ); 51void IS31FL3736_mono_set_brightness(int index, uint8_t value);
55void IS31FL3736_mono_set_brightness_all( uint8_t value ); 52void IS31FL3736_mono_set_brightness_all(uint8_t value);
56void IS31FL3736_mono_set_led_control_register( uint8_t index, bool enabled ); 53void IS31FL3736_mono_set_led_control_register(uint8_t index, bool enabled);
57 54
58// This should not be called from an interrupt 55// This should not be called from an interrupt
59// (eg. from a timer interrupt). 56// (eg. from a timer interrupt).
60// Call this while idle (in between matrix scans). 57// Call this while idle (in between matrix scans).
61// If the buffer is dirty, it will update the driver with the buffer. 58// If the buffer is dirty, it will update the driver with the buffer.
62void IS31FL3736_update_pwm_buffers( uint8_t addr1, uint8_t addr2 ); 59void IS31FL3736_update_pwm_buffers(uint8_t addr1, uint8_t addr2);
63void IS31FL3736_update_led_control_registers( uint8_t addr1, uint8_t addr2 ); 60void IS31FL3736_update_led_control_registers(uint8_t addr1, uint8_t addr2);
64 61
65#define A_1 0x00 62#define A_1 0x00
66#define A_2 0x02 63#define A_2 0x02
67#define A_3 0x04 64#define A_3 0x04
68#define A_4 0x06 65#define A_4 0x06
69#define A_5 0x08 66#define A_5 0x08
70#define A_6 0x0A 67#define A_6 0x0A
71#define A_7 0x0C 68#define A_7 0x0C
72#define A_8 0x0E 69#define A_8 0x0E
73 70
74#define B_1 0x10 71#define B_1 0x10
75#define B_2 0x12 72#define B_2 0x12
76#define B_3 0x14 73#define B_3 0x14
77#define B_4 0x16 74#define B_4 0x16
78#define B_5 0x18 75#define B_5 0x18
79#define B_6 0x1A 76#define B_6 0x1A
80#define B_7 0x1C 77#define B_7 0x1C
81#define B_8 0x1E 78#define B_8 0x1E
82 79
83#define C_1 0x20 80#define C_1 0x20
84#define C_2 0x22 81#define C_2 0x22
85#define C_3 0x24 82#define C_3 0x24
86#define C_4 0x26 83#define C_4 0x26
87#define C_5 0x28 84#define C_5 0x28
88#define C_6 0x2A 85#define C_6 0x2A
89#define C_7 0x2C 86#define C_7 0x2C
90#define C_8 0x2E 87#define C_8 0x2E
91 88
92#define D_1 0x30 89#define D_1 0x30
93#define D_2 0x32 90#define D_2 0x32
94#define D_3 0x34 91#define D_3 0x34
95#define D_4 0x36 92#define D_4 0x36
96#define D_5 0x38 93#define D_5 0x38
97#define D_6 0x3A 94#define D_6 0x3A
98#define D_7 0x3C 95#define D_7 0x3C
99#define D_8 0x3E 96#define D_8 0x3E
100 97
101#define E_1 0x40 98#define E_1 0x40
102#define E_2 0x42 99#define E_2 0x42
103#define E_3 0x44 100#define E_3 0x44
104#define E_4 0x46 101#define E_4 0x46
105#define E_5 0x48 102#define E_5 0x48
106#define E_6 0x4A 103#define E_6 0x4A
107#define E_7 0x4C 104#define E_7 0x4C
108#define E_8 0x4E 105#define E_8 0x4E
109 106
110#define F_1 0x50 107#define F_1 0x50
111#define F_2 0x52 108#define F_2 0x52
112#define F_3 0x54 109#define F_3 0x54
113#define F_4 0x56 110#define F_4 0x56
114#define F_5 0x58 111#define F_5 0x58
115#define F_6 0x5A 112#define F_6 0x5A
116#define F_7 0x5C 113#define F_7 0x5C
117#define F_8 0x5E 114#define F_8 0x5E
118 115
119#define G_1 0x60 116#define G_1 0x60
120#define G_2 0x62 117#define G_2 0x62
121#define G_3 0x64 118#define G_3 0x64
122#define G_4 0x66 119#define G_4 0x66
123#define G_5 0x68 120#define G_5 0x68
124#define G_6 0x6A 121#define G_6 0x6A
125#define G_7 0x6C 122#define G_7 0x6C
126#define G_8 0x6E 123#define G_8 0x6E
127 124
128#define H_1 0x70 125#define H_1 0x70
129#define H_2 0x72 126#define H_2 0x72
130#define H_3 0x74 127#define H_3 0x74
131#define H_4 0x76 128#define H_4 0x76
132#define H_5 0x78 129#define H_5 0x78
133#define H_6 0x7A 130#define H_6 0x7A
134#define H_7 0x7C 131#define H_7 0x7C
135#define H_8 0x7E 132#define H_8 0x7E
136 133
137#define I_1 0x80 134#define I_1 0x80
138#define I_2 0x82 135#define I_2 0x82
139#define I_3 0x84 136#define I_3 0x84
140#define I_4 0x86 137#define I_4 0x86
141#define I_5 0x88 138#define I_5 0x88
142#define I_6 0x8A 139#define I_6 0x8A
143#define I_7 0x8C 140#define I_7 0x8C
144#define I_8 0x8E 141#define I_8 0x8E
145 142
146#define J_1 0x90 143#define J_1 0x90
147#define J_2 0x92 144#define J_2 0x92
148#define J_3 0x94 145#define J_3 0x94
149#define J_4 0x96 146#define J_4 0x96
150#define J_5 0x98 147#define J_5 0x98
151#define J_6 0x9A 148#define J_6 0x9A
152#define J_7 0x9C 149#define J_7 0x9C
153#define J_8 0x9E 150#define J_8 0x9E
154 151
155#define K_1 0xA0 152#define K_1 0xA0
156#define K_2 0xA2 153#define K_2 0xA2
157#define K_3 0xA4 154#define K_3 0xA4
158#define K_4 0xA6 155#define K_4 0xA6
159#define K_5 0xA8 156#define K_5 0xA8
160#define K_6 0xAA 157#define K_6 0xAA
161#define K_7 0xAC 158#define K_7 0xAC
162#define K_8 0xAE 159#define K_8 0xAE
163 160
164#define L_1 0xB0 161#define L_1 0xB0
165#define L_2 0xB2 162#define L_2 0xB2
166#define L_3 0xB4 163#define L_3 0xB4
167#define L_4 0xB6 164#define L_4 0xB6
168#define L_5 0xB8 165#define L_5 0xB8
169#define L_6 0xBA 166#define L_6 0xBA
170#define L_7 0xBC 167#define L_7 0xBC
171#define L_8 0xBE 168#define L_8 0xBE
172