Skip to content

Commit cb33e8d

Browse files
committed
Don't use pre-shifted i2c addresses for XM
1 parent 1a7f82c commit cb33e8d

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

src/hal/xm.c

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@
1010
#include "ram.h"
1111
#include "tools.h"
1212

13-
static unsigned char sony_addrs[] = {0x1a, 0};
14-
static unsigned char onsemi_addrs[] = {0x10, 0};
15-
static unsigned char soi_addrs[] = {0x30, 0x40, 0};
16-
static unsigned char ssens_addrs[] = {0x30, 0};
17-
static unsigned char omni_addrs[] = {0x36, 0};
13+
static unsigned char sony_addrs[] = {0x34, 0};
14+
static unsigned char soi_addrs[] = {0x60, 0x80, 0};
15+
static unsigned char onsemi_addrs[] = {0x20, 0};
16+
static unsigned char ssens_addrs[] = {0x60, 0};
17+
static unsigned char omni_addrs[] = {0x6c, 0};
1818
// only for reference, used in XM510
19-
static unsigned char bg_addrs[] = {0x32, 0};
19+
static unsigned char bg_addrs[] = {0x64, 0};
2020

2121
static sensor_addr_t xm_possible_i2c_addrs[] = {{SENSOR_SONY, sony_addrs},
2222
{SENSOR_SMARTSENS, ssens_addrs},
@@ -34,7 +34,7 @@ int xm_sensor_read_register(int fd, unsigned char i2c_addr,
3434
int ret;
3535
I2C_DATA_S i2c_data;
3636

37-
i2c_data.dev_addr = i2c_addr;
37+
i2c_data.dev_addr = i2c_addr >> 1;
3838
i2c_data.reg_addr = reg_addr;
3939
i2c_data.addr_byte_num = reg_width;
4040
i2c_data.data_byte_num = data_width;
@@ -54,7 +54,7 @@ int xm_sensor_write_register(int fd, unsigned char i2c_addr,
5454
int ret;
5555
I2C_DATA_S i2c_data;
5656

57-
i2c_data.dev_addr = i2c_addr;
57+
i2c_data.dev_addr = i2c_addr >> 1;
5858
i2c_data.reg_addr = reg_addr;
5959
i2c_data.addr_byte_num = reg_width;
6060
i2c_data.data = data;

0 commit comments

Comments
 (0)