rg_i2c: rg_i2c_gpio_read_port now returns -1 on failure

This commit is contained in:
Alex Duchesne 2025-06-27 18:22:56 -04:00
parent 4a85fa2195
commit b46e5b767a
2 changed files with 4 additions and 3 deletions

View File

@ -233,10 +233,11 @@ bool rg_i2c_gpio_configure_port(int port, uint8_t mask, rg_gpio_mode_t mode)
return update_register(direction_reg, mask, mode != RG_GPIO_OUTPUT ? mask : 0);
}
uint8_t rg_i2c_gpio_read_port(int port)
int rg_i2c_gpio_read_port(int port)
{
int reg = gpio_ports[port % gpio_ports_count].input_reg;
return rg_i2c_read_byte(gpio_address, reg);
uint8_t value = 0;
return rg_i2c_read(gpio_address, reg, &value, 1) ? value : -1;
}
bool rg_i2c_gpio_write_port(int port, uint8_t value)

View File

@ -23,7 +23,7 @@ typedef enum
bool rg_i2c_gpio_init(void);
bool rg_i2c_gpio_deinit(void);
bool rg_i2c_gpio_configure_port(int port, uint8_t mask, rg_gpio_mode_t mode);
uint8_t rg_i2c_gpio_read_port(int port);
int rg_i2c_gpio_read_port(int port);
bool rg_i2c_gpio_write_port(int port, uint8_t value);
// For the following functions `pin` is calculated as such: (port_num * 8) + port_pin_num
bool rg_i2c_gpio_set_direction(int pin, rg_gpio_mode_t mode);