summaryrefslogtreecommitdiff
path: root/keyboards/hotdox/left.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/hotdox/left.c')
-rw-r--r--keyboards/hotdox/left.c34
1 files changed, 11 insertions, 23 deletions
diff --git a/keyboards/hotdox/left.c b/keyboards/hotdox/left.c
index 970d36f1b5..f963ecdae7 100644
--- a/keyboards/hotdox/left.c
+++ b/keyboards/hotdox/left.c
@@ -5,8 +5,8 @@
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);
+i2c_status_t left_write(uint8_t reg, uint8_t data);
+i2c_status_t left_read(uint8_t reg, uint8_t *data);
uint8_t init_mcp23017(void)
{
@@ -35,12 +35,11 @@ void left_init(void)
void left_scan(void)
{
- uint8_t ret = i2c_start(I2C_ADDR_WRITE, HOTDOX_I2C_TIMEOUT);
+
+ i2c_status_t ret = i2c_ping_address(I2C_ADDR, HOTDOX_I2C_TIMEOUT);
- if (ret == 0)
+ if (ret == I2C_STATUS_SUCCESS)
{
- i2c_stop();
-
if (!i2c_initialized)
{
i2c_initialized = true;
@@ -91,40 +90,29 @@ void left_config(void)
left_write(MCP23017_B0_GPIOB, 0xC0);
}
-uint8_t left_write(uint8_t reg, uint8_t data)
+i2c_status_t left_write(uint8_t reg, uint8_t data)
{
if (!i2c_initialized)
{
return 0;
}
- uint8_t ret;
+ i2c_status_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);
+ ret = i2c_writeReg(I2C_ADDR, reg, &data, sizeof(data), HOTDOX_I2C_TIMEOUT);
-out:
- i2c_stop();
return ret;
}
-uint8_t left_read(uint8_t reg, uint8_t *data)
+i2c_status_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);
+ i2c_status_t ret = 0;
+ ret = i2c_readReg(I2C_ADDR, reg, data, 1, HOTDOX_I2C_TIMEOUT);
-out:
- i2c_stop();
return ret;
}