aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/avr/i2c.c2
-rw-r--r--src/i2ccmds.c6
-rw-r--r--src/lpc176x/i2c.c2
-rw-r--r--src/samd21/i2c.c2
4 files changed, 5 insertions, 7 deletions
diff --git a/src/avr/i2c.c b/src/avr/i2c.c
index b4c0ad75..d068a2fa 100644
--- a/src/avr/i2c.c
+++ b/src/avr/i2c.c
@@ -45,7 +45,7 @@ i2c_setup(uint32_t bus, uint32_t rate, uint8_t addr)
if (bus)
shutdown("Unsupported i2c bus");
i2c_init();
- return (struct i2c_config){ .addr=addr };
+ return (struct i2c_config){ .addr=addr<<1 };
}
static void
diff --git a/src/i2ccmds.c b/src/i2ccmds.c
index d880b46f..01f7b36f 100644
--- a/src/i2ccmds.c
+++ b/src/i2ccmds.c
@@ -16,15 +16,13 @@ struct i2cdev_s {
void
command_config_i2c(uint32_t *args)
{
- uint8_t addr = args[3];
- if (addr & 1)
- shutdown("Invalid I2C address");
+ uint8_t addr = args[3] & 0x7f;
struct i2cdev_s *i2c = oid_alloc(args[0], command_config_i2c
, sizeof(*i2c));
i2c->i2c_config = i2c_setup(args[1], args[2], addr);
}
DECL_COMMAND(command_config_i2c,
- "config_i2c oid=%c bus=%u rate=%u addr=%u");
+ "config_i2c oid=%c bus=%u rate=%u address=%u");
void
command_i2c_write(uint32_t *args)
diff --git a/src/lpc176x/i2c.c b/src/lpc176x/i2c.c
index bc367ba7..420bef95 100644
--- a/src/lpc176x/i2c.c
+++ b/src/lpc176x/i2c.c
@@ -45,7 +45,7 @@ i2c_setup(uint32_t bus, uint32_t rate, uint8_t addr)
if (bus)
shutdown("Unsupported i2c bus");
i2c_init();
- return (struct i2c_config){ .addr=addr };
+ return (struct i2c_config){ .addr=addr<<1 };
}
static void
diff --git a/src/samd21/i2c.c b/src/samd21/i2c.c
index 696cba8a..801c0e32 100644
--- a/src/samd21/i2c.c
+++ b/src/samd21/i2c.c
@@ -57,7 +57,7 @@ i2c_setup(uint32_t bus, uint32_t rate, uint8_t addr)
if (bus)
shutdown("Unsupported i2c bus");
i2c_init();
- return (struct i2c_config){ .addr=addr };
+ return (struct i2c_config){ .addr=addr<<1 };
}
static void