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
2121static 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