7
7
#include "debug.h"
8
8
9
9
#define SLAVE_TO_ADDR (n ) (n << 1)
10
- #define TIMEOUT 100
10
+ #ifndef MCP23018_TIMEOUT
11
+ # define MCP23018_TIMEOUT 100
12
+ #endif // MCP23018_TIMEOUT
11
13
12
14
enum {
13
15
CMD_IODIRA = 0x00 , // i/o direction register
@@ -33,13 +35,13 @@ bool mcp23018_set_config(uint8_t slave_addr, mcp23018_port_t port, uint8_t conf)
33
35
uint8_t cmdDirection = port ? CMD_IODIRB : CMD_IODIRA ;
34
36
uint8_t cmdPullup = port ? CMD_GPPUB : CMD_GPPUA ;
35
37
36
- i2c_status_t ret = i2c_write_register (addr , cmdDirection , & conf , sizeof (conf ), TIMEOUT );
38
+ i2c_status_t ret = i2c_write_register (addr , cmdDirection , & conf , sizeof (conf ), MCP23018_TIMEOUT );
37
39
if (ret != I2C_STATUS_SUCCESS ) {
38
40
dprintf ("mcp23018_set_config::directionFAILED::%u\n" , ret );
39
41
return false;
40
42
}
41
43
42
- ret = i2c_write_register (addr , cmdPullup , & conf , sizeof (conf ), TIMEOUT );
44
+ ret = i2c_write_register (addr , cmdPullup , & conf , sizeof (conf ), MCP23018_TIMEOUT );
43
45
if (ret != I2C_STATUS_SUCCESS ) {
44
46
dprintf ("mcp23018_set_config::pullupFAILED::%u\n" , ret );
45
47
return false;
@@ -52,7 +54,7 @@ bool mcp23018_set_output(uint8_t slave_addr, mcp23018_port_t port, uint8_t conf)
52
54
uint8_t addr = SLAVE_TO_ADDR (slave_addr );
53
55
uint8_t cmd = port ? CMD_GPIOB : CMD_GPIOA ;
54
56
55
- i2c_status_t ret = i2c_write_register (addr , cmd , & conf , sizeof (conf ), TIMEOUT );
57
+ i2c_status_t ret = i2c_write_register (addr , cmd , & conf , sizeof (conf ), MCP23018_TIMEOUT );
56
58
if (ret != I2C_STATUS_SUCCESS ) {
57
59
dprintf ("mcp23018_set_output::FAILED::%u\n" , ret );
58
60
return false;
@@ -65,7 +67,7 @@ bool mcp23018_set_output_all(uint8_t slave_addr, uint8_t confA, uint8_t confB) {
65
67
uint8_t addr = SLAVE_TO_ADDR (slave_addr );
66
68
uint8_t conf [2 ] = {confA , confB };
67
69
68
- i2c_status_t ret = i2c_write_register (addr , CMD_GPIOA , & conf [0 ], sizeof (conf ), TIMEOUT );
70
+ i2c_status_t ret = i2c_write_register (addr , CMD_GPIOA , & conf [0 ], sizeof (conf ), MCP23018_TIMEOUT );
69
71
if (ret != I2C_STATUS_SUCCESS ) {
70
72
dprintf ("mcp23018_set_output::FAILED::%u\n" , ret );
71
73
return false;
@@ -78,7 +80,7 @@ bool mcp23018_read_pins(uint8_t slave_addr, mcp23018_port_t port, uint8_t* out)
78
80
uint8_t addr = SLAVE_TO_ADDR (slave_addr );
79
81
uint8_t cmd = port ? CMD_GPIOB : CMD_GPIOA ;
80
82
81
- i2c_status_t ret = i2c_read_register (addr , cmd , out , sizeof (uint8_t ), TIMEOUT );
83
+ i2c_status_t ret = i2c_read_register (addr , cmd , out , sizeof (uint8_t ), MCP23018_TIMEOUT );
82
84
if (ret != I2C_STATUS_SUCCESS ) {
83
85
dprintf ("mcp23018_read_pins::FAILED::%u\n" , ret );
84
86
return false;
@@ -97,7 +99,7 @@ bool mcp23018_read_pins_all(uint8_t slave_addr, uint16_t* out) {
97
99
98
100
data16 data = {.u16 = 0 };
99
101
100
- i2c_status_t ret = i2c_read_register (addr , CMD_GPIOA , & data .u8 [0 ], sizeof (data ), TIMEOUT );
102
+ i2c_status_t ret = i2c_read_register (addr , CMD_GPIOA , & data .u8 [0 ], sizeof (data ), MCP23018_TIMEOUT );
101
103
if (ret != I2C_STATUS_SUCCESS ) {
102
104
dprintf ("mcp23018_read_pins_all::FAILED::%u\n" , ret );
103
105
return false;
0 commit comments