]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/sx60/sx60.c
[Keyboard] leds in default keymap (#6357)
[qmk_firmware.git] / keyboards / sx60 / sx60.c
1 #include "sx60.h"
2 #include "i2cmaster.h"
3
4
5 bool i2c_initialized = 0;
6 uint8_t mcp23018_status = 0x20;
7
8 uint8_t init_mcp23018(void) {
9     mcp23018_status = 0x20;
10
11     /* I2C subsystem */
12
13     if (i2c_initialized == 0) {
14         i2c_init();  // on pins D(1,0)
15         i2c_initialized = true;
16         _delay_ms(1000);
17     }
18
19     /* B Pins are Row, A pins are Columns 
20        Set them to output */
21     mcp23018_status = i2c_start(I2C_ADDR_WRITE);    if (mcp23018_status) goto out;
22     mcp23018_status = i2c_write(IODIRA);            if (mcp23018_status) goto out;
23     mcp23018_status = i2c_write(0b11111111);        if (mcp23018_status) goto out;
24     /* Now write to IODIRB */
25     mcp23018_status = i2c_write(0b00000000);        if (mcp23018_status) goto out;
26     i2c_stop();
27
28     mcp23018_status = i2c_start(I2C_ADDR_WRITE);    if (mcp23018_status) goto out;
29     mcp23018_status = i2c_write(GPPUA);             if (mcp23018_status) goto out;
30     mcp23018_status = i2c_write(0b11111111);        if (mcp23018_status) goto out;
31     /* Now write to GPPUB */
32     mcp23018_status = i2c_write(0b00000000);        if (mcp23018_status) goto out;
33
34 out:
35     i2c_stop();
36
37     return mcp23018_status;
38 }