Skip to content

Commit 1a7f82c

Browse files
committed
Refactor I2C procedures
1 parent 4cf4643 commit 1a7f82c

File tree

12 files changed

+34
-47
lines changed

12 files changed

+34
-47
lines changed

src/hal/bcm.c

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,6 @@ static void chip_properties(cJSON *j_inner) {
4545
}
4646
#endif
4747

48-
static int i2c_change_plain_addr(int fd, unsigned char addr) {
49-
if (ioctl(fd, I2C_SLAVE_FORCE, addr) < 0) {
50-
return -1;
51-
}
52-
return 0;
53-
}
54-
5548
/* For using I2C functions make sure you have:
5649
* dtparam=i2c_arm=on
5750
* dtparam=i2c0=on

src/hal/common.c

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,13 +62,20 @@ int dummy_sensor_i2c_change_addr(int fd, unsigned char addr) {
6262
}
6363

6464
// Universal I2C code
65-
int universal_i2c_change_addr(int fd, unsigned char addr) {
65+
int i2c_changenshift_addr(int fd, unsigned char addr) {
6666
if (ioctl(fd, I2C_SLAVE_FORCE, addr >> 1) < 0) {
6767
return -1;
6868
}
6969
return 0;
7070
}
7171

72+
int i2c_change_plain_addr(int fd, unsigned char addr) {
73+
if (ioctl(fd, I2C_SLAVE_FORCE, addr) < 0) {
74+
return -1;
75+
}
76+
return 0;
77+
}
78+
7279
int universal_i2c_write_register(int fd, unsigned char i2c_addr,
7380
unsigned int reg_addr, unsigned int reg_width,
7481
unsigned int data, unsigned int data_width) {
@@ -207,7 +214,7 @@ static unsigned long default_totalmem(unsigned long *media_mem) {
207214
void setup_hal_fallback() {
208215
open_i2c_sensor_fd = fallback_open_sensor_fd;
209216
close_sensor_fd = universal_close_sensor_fd;
210-
i2c_change_addr = universal_i2c_change_addr;
217+
i2c_change_addr = i2c_changenshift_addr;
211218
i2c_read_register = universal_i2c_read_register;
212219
spi_read_register = universal_spi_read_register;
213220
i2c_write_register = universal_i2c_write_register;

src/hal/common.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,8 @@ int universal_open_sensor_fd(const char *dev_name);
9999
bool universal_close_sensor_fd(int fd);
100100

101101
int dummy_sensor_i2c_change_addr(int fd, unsigned char addr);
102-
int universal_i2c_change_addr(int fd, unsigned char addr);
102+
int i2c_change_plain_addr(int fd, unsigned char addr);
103+
int i2c_changenshift_addr(int fd, unsigned char addr);
103104
int universal_i2c_write_register(int fd, unsigned char i2c_addr,
104105
unsigned int reg_addr, unsigned int reg_width,
105106
unsigned int data, unsigned int data_width);

src/hal/fh.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ static unsigned char omni_addrs[] = {0x6c, 0};
1414
static unsigned char onsemi_addrs[] = {0x20, 0};
1515
static unsigned char gc_addrs[] = {0x6e, 0x52, 0};
1616

17-
sensor_addr_t fh_possible_i2c_addrs[] = {
17+
static sensor_addr_t fh_possible_i2c_addrs[] = {
1818
{SENSOR_SONY, sony_addrs}, {SENSOR_SMARTSENS, ssens_addrs},
1919
{SENSOR_ONSEMI, onsemi_addrs}, {SENSOR_OMNIVISION, omni_addrs},
2020
{SENSOR_GALAXYCORE, gc_addrs}, {0, NULL}};

src/hal/gm.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ static unsigned char omni_addrs[] = {0x6c, 0};
1414
static unsigned char onsemi_addrs[] = {0x20, 0};
1515
static unsigned char gc_addrs[] = {0x6e, 0};
1616

17-
sensor_addr_t gm_possible_i2c_addrs[] = {
17+
static sensor_addr_t gm_possible_i2c_addrs[] = {
1818
{SENSOR_SONY, sony_addrs}, {SENSOR_SMARTSENS, ssens_addrs},
1919
{SENSOR_ONSEMI, onsemi_addrs}, {SENSOR_OMNIVISION, omni_addrs},
2020
{SENSOR_GALAXYCORE, gc_addrs}, {0, NULL}};

src/hal/hisi/hal_hisi.c

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -92,14 +92,6 @@ static int hisi_gen1_open_spi_sensor_fd() {
9292
return universal_open_sensor_fd("/dev/ssp");
9393
}
9494

95-
// Set I2C slave address
96-
int hisi_gen2_sensor_i2c_change_addr(int fd, unsigned char addr) {
97-
if (ioctl(fd, I2C_SLAVE_FORCE, addr) < 0) {
98-
return -1;
99-
}
100-
return 0;
101-
}
102-
10395
#define I2C_16BIT_REG 0x0709 /* 16BIT REG WIDTH */
10496
#define I2C_16BIT_DATA 0x070a /* 16BIT DATA WIDTH */
10597
int hisi_gen2_set_width(int fd, unsigned int reg_width,
@@ -424,7 +416,7 @@ void setup_hal_hisi() {
424416
} else if (chip_generation == HISI_V2 || chip_generation == HISI_V2A) {
425417
i2c_read_register = hisi_gen2_sensor_read_register;
426418
i2c_write_register = hisi_gen2_sensor_write_register;
427-
i2c_change_addr = hisi_gen2_sensor_i2c_change_addr;
419+
i2c_change_addr = i2c_change_plain_addr;
428420
} else {
429421
i2c_read_register = hisi_sensor_read_register;
430422
i2c_write_register = hisi_sensor_write_register;

src/hal/ingenic.c

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,14 @@ static unsigned char onsemi_addrs[] = {0x20, 0};
1515
static unsigned char gc_addrs[] = {0x6e, 0x52, 0};
1616
static unsigned char soi_addrs[] = {0x60, 0x80, 0};
1717

18-
sensor_addr_t ingenic_possible_i2c_addrs[] = {{SENSOR_SONY, sony_addrs},
19-
{SENSOR_SMARTSENS, ssens_addrs},
20-
{SENSOR_ONSEMI, onsemi_addrs},
21-
{SENSOR_OMNIVISION, omni_addrs},
22-
{SENSOR_GALAXYCORE, gc_addrs},
23-
{SENSOR_SOI, soi_addrs},
24-
{0, NULL}};
18+
static sensor_addr_t ingenic_possible_i2c_addrs[] = {
19+
{SENSOR_SONY, sony_addrs},
20+
{SENSOR_SMARTSENS, ssens_addrs},
21+
{SENSOR_ONSEMI, onsemi_addrs},
22+
{SENSOR_OMNIVISION, omni_addrs},
23+
{SENSOR_GALAXYCORE, gc_addrs},
24+
{SENSOR_SOI, soi_addrs},
25+
{0, NULL}};
2526

2627
typedef unsigned char uint8;
2728
typedef unsigned short uint16;

src/hal/novatek.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ static unsigned char omni_addrs[] = {0x6c, 0};
1616
static unsigned char onsemi_addrs[] = {0x20, 0};
1717
static unsigned char gc_addrs[] = {0x6e, 0};
1818

19-
sensor_addr_t novatek_possible_i2c_addrs[] = {
19+
static sensor_addr_t novatek_possible_i2c_addrs[] = {
2020
{SENSOR_SONY, sony_addrs}, {SENSOR_SMARTSENS, ssens_addrs},
2121
{SENSOR_ONSEMI, onsemi_addrs}, {SENSOR_OMNIVISION, omni_addrs},
2222
{SENSOR_GALAXYCORE, gc_addrs}, {0, NULL}};

src/hal/rockchip.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ static unsigned char omni_addrs[] = {0x6c, 0};
1515
static unsigned char onsemi_addrs[] = {0x20, 0};
1616
static unsigned char gc_addrs[] = {0x6e, 0};
1717

18-
sensor_addr_t rockchip_possible_i2c_addrs[] = {
18+
static sensor_addr_t rockchip_possible_i2c_addrs[] = {
1919
{SENSOR_SONY, sony_addrs}, {SENSOR_SMARTSENS, ssens_addrs},
2020
{SENSOR_ONSEMI, onsemi_addrs}, {SENSOR_OMNIVISION, omni_addrs},
2121
{SENSOR_GALAXYCORE, gc_addrs}, {0, NULL}};

src/hal/sstar.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ static unsigned char omni_addrs[] = {0x6c, 0};
1717
static unsigned char onsemi_addrs[] = {0x20, 0};
1818
static unsigned char gc_addrs[] = {0x6e, 0};
1919

20-
sensor_addr_t sstar_possible_i2c_addrs[] = {
20+
static sensor_addr_t sstar_possible_i2c_addrs[] = {
2121
{SENSOR_SONY, sony_addrs}, {SENSOR_SMARTSENS, ssens_addrs},
2222
{SENSOR_ONSEMI, onsemi_addrs}, {SENSOR_OMNIVISION, omni_addrs},
2323
{SENSOR_GALAXYCORE, gc_addrs}, {0, NULL}};

0 commit comments

Comments
 (0)