diff options
Diffstat (limited to 'keyboards/hotdox/left.c')
-rw-r--r-- | keyboards/hotdox/left.c | 130 |
1 files changed, 0 insertions, 130 deletions
diff --git a/keyboards/hotdox/left.c b/keyboards/hotdox/left.c deleted file mode 100644 index 970d36f1b5..0000000000 --- a/keyboards/hotdox/left.c +++ /dev/null @@ -1,130 +0,0 @@ -#include "action.h" -#include "left.h" -#include "wait.h" - -bool i2c_initialized = false; - -void left_config(void); -uint8_t left_write(uint8_t reg, uint8_t data); -uint8_t left_read(uint8_t reg, uint8_t *data); - -uint8_t init_mcp23017(void) -{ - i2c_initialized = false; - - if (i2c_initialized == 0) - { - i2c_init(); // on pins D(1,0) - _delay_ms(1000); - } - - return 0; -} -void left_init(void) -{ - init_mcp23017(); - left_scan(); -#if 0 - while (1) - { - print("wait\n"); - wait_us(1000000); - } -#endif -} - -void left_scan(void) -{ - uint8_t ret = i2c_start(I2C_ADDR_WRITE, HOTDOX_I2C_TIMEOUT); - - if (ret == 0) - { - i2c_stop(); - - if (!i2c_initialized) - { - i2c_initialized = true; - left_config(); - clear_keyboard(); - print("mcp23017 attached!!!\n"); - } - } - else - { - if (i2c_initialized) - { - i2c_initialized = false; - clear_keyboard(); - print("mcp23017 deattached!!!\n"); - } - } - - return; -} - -uint8_t left_read_cols(void) -{ - uint8_t data = 0; - - left_read(MCP23017_B0_GPIOA, &data); - - return data; -} - -void left_unselect_rows(void) -{ - left_write(MCP23017_B0_IODIRB, 0x3F); -} - -void left_select_row(uint8_t row) -{ - left_write(MCP23017_B0_IODIRB, ~(1 << row)); -} - -void left_config(void) -{ - left_write(MCP23017_B0_IODIRA, 0x7F); - left_write(MCP23017_B0_IPOLA, 0x7F); - left_write(MCP23017_B0_GPPUA, 0x7F); - - left_write(MCP23017_B0_IODIRB, 0xFF); - left_write(MCP23017_B0_GPIOB, 0xC0); -} - -uint8_t left_write(uint8_t reg, uint8_t data) -{ - if (!i2c_initialized) - { - return 0; - } - - uint8_t ret; - - ret = i2c_start(I2C_ADDR_WRITE, HOTDOX_I2C_TIMEOUT); if (ret) goto out; - ret = i2c_write(reg, HOTDOX_I2C_TIMEOUT); if (ret) goto out; - ret = i2c_write(data, HOTDOX_I2C_TIMEOUT); - -out: - i2c_stop(); - return ret; -} - -uint8_t left_read(uint8_t reg, uint8_t *data) -{ - if (!i2c_initialized) - { - return 0; - } - - uint8_t ret = 0; - - ret = i2c_start(I2C_ADDR_WRITE, HOTDOX_I2C_TIMEOUT); if (ret) goto out; - ret = i2c_write(reg, HOTDOX_I2C_TIMEOUT); if (ret) goto out; - ret = i2c_start(I2C_ADDR_READ, HOTDOX_I2C_TIMEOUT); if (ret) goto out; - - *data = i2c_read_nack(HOTDOX_I2C_TIMEOUT); - -out: - i2c_stop(); - return ret; -} |