I2C: Fixes/improvements from last massive I2C commits
This commit is contained in:
parent
4304405bba
commit
009e9f76cb
2
arch
2
arch
@ -1 +1 @@
|
|||||||
Subproject commit cb55e3047693dca56aaf2aaa2e932f6b83d148c5
|
Subproject commit f80912e0ceb3ff4c83eb86a3d128df81b2bc9a85
|
@ -88,4 +88,3 @@ int i2c_read(FAR struct i2c_master_s *dev,
|
|||||||
|
|
||||||
return I2C_TRANSFER(dev, &msg, 1);
|
return I2C_TRANSFER(dev, &msg, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -84,4 +84,3 @@ int i2c_write(FAR struct i2c_master_s *dev,
|
|||||||
|
|
||||||
return I2C_TRANSFER(dev, &msg, 1);
|
return I2C_TRANSFER(dev, &msg, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -136,17 +136,21 @@ static const struct ioexpander_ops_s g_pca9555_ops =
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
static inline int pca9555_write(FAR struct pca9555_dev_s *pca,
|
static inline int pca9555_write(FAR struct pca9555_dev_s *pca,
|
||||||
FAR const uint8_t *wbuffer, int wbuflen)
|
FAR const uint8_t *, int wbuflen)
|
||||||
{
|
{
|
||||||
struct i2c_config_s config;
|
struct i2c_msg_s msg;
|
||||||
|
|
||||||
/* Set up the configuration and perform the write-read operation */
|
/* Setup for the transfer */
|
||||||
|
|
||||||
config.frequency = pca->config->frequency;
|
msg.frequency = pca->config->frequency;
|
||||||
config.address = pca->config->address;
|
msg.addr = pca->config->address;
|
||||||
config.addrlen = 7;
|
msg.flags = 0;
|
||||||
|
msg.buffer = (FAR uint8_t *)wbuffer; /* Override const */
|
||||||
|
msg.length = wbuflen;
|
||||||
|
|
||||||
return i2c_write(pca->i2c, &config, wbuffer, wbuflen);
|
/* Then perform the transfer. */
|
||||||
|
|
||||||
|
return I2C_TRANSFER((pca->i2c, &msg, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
|
@ -203,15 +203,19 @@ static struct at24c_dev_s g_at24c;
|
|||||||
static int at24c_i2c_write(FAR struct at24c_dev_s *priv, uint16_t at24addr,
|
static int at24c_i2c_write(FAR struct at24c_dev_s *priv, uint16_t at24addr,
|
||||||
FAR const uint8_t *buffer, int buflen)
|
FAR const uint8_t *buffer, int buflen)
|
||||||
{
|
{
|
||||||
struct i2c_config_s config;
|
struct i2c_msg_s msg;
|
||||||
|
|
||||||
/* Set up the I2C configuration */
|
/* Setup for the transfer */
|
||||||
|
|
||||||
config.frequency = CONFIG_AT24XX_FREQUENCY;
|
msg.frequency = CONFIG_AT24XX_FREQUENCY,
|
||||||
config.address = at24addr;
|
msg.addr = at24addr;
|
||||||
config.addrlen = 7;
|
msg.flags = 0;
|
||||||
|
msg.buffer = (FAR uint8_t *)buffer; /* Override const */
|
||||||
|
msg.length = buflen;
|
||||||
|
|
||||||
return i2c_write(priv->dev, &config, buffer, buflen);
|
/* Then perform the transfer. */
|
||||||
|
|
||||||
|
return I2C_TRANSFER(priv->dev, &msg, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
@ -225,15 +229,19 @@ static int at24c_i2c_write(FAR struct at24c_dev_s *priv, uint16_t at24addr,
|
|||||||
static int at24c_i2c_read(FAR struct at24c_dev_s *priv, uint16_t at24addr,
|
static int at24c_i2c_read(FAR struct at24c_dev_s *priv, uint16_t at24addr,
|
||||||
FAR uint8_t *buffer, int buflen)
|
FAR uint8_t *buffer, int buflen)
|
||||||
{
|
{
|
||||||
struct i2c_config_s config;
|
struct i2c_msg_s msg;
|
||||||
|
|
||||||
/* Set up the I2C configuration */
|
/* Setup for the transfer */
|
||||||
|
|
||||||
config.frequency = CONFIG_AT24XX_FREQUENCY;
|
msg.frequency = CONFIG_AT24XX_FREQUENCY,
|
||||||
config.address = at24addr;
|
msg.addr = at24addr,
|
||||||
config.addrlen = 7;
|
msg.flags = I2C_M_READ;
|
||||||
|
msg.buffer = buffer;
|
||||||
|
msg.length = buflen;
|
||||||
|
|
||||||
return i2c_read(priv->dev, &config, buffer, buflen);
|
/* Then perform the transfer. */
|
||||||
|
|
||||||
|
return I2C_TRANSFER(priv->dev, &msg, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/************************************************************************************
|
/************************************************************************************
|
||||||
|
@ -24,7 +24,7 @@ config LIS331DL
|
|||||||
select I2C
|
select I2C
|
||||||
|
|
||||||
config LIS331DL_I2C_FREQUENCY
|
config LIS331DL_I2C_FREQUENCY
|
||||||
bool "LIS331DL I2C frequency"
|
int "LIS331DL I2C frequency"
|
||||||
default 100000
|
default 100000
|
||||||
range 1 100000
|
range 1 100000
|
||||||
depends on LIS331DL
|
depends on LIS331DL
|
||||||
@ -37,7 +37,7 @@ config SN_LSM9DS1
|
|||||||
Enable driver support for the STMicro LSM9DS1.
|
Enable driver support for the STMicro LSM9DS1.
|
||||||
|
|
||||||
config LSM9DS1_I2C_FREQUENCY
|
config LSM9DS1_I2C_FREQUENCY
|
||||||
bool "LSM9DS1 I2C frequency"
|
int "LSM9DS1 I2C frequency"
|
||||||
default 400000
|
default 400000
|
||||||
range 1 400000
|
range 1 400000
|
||||||
depends on SN_LSM9DS1
|
depends on SN_LSM9DS1
|
||||||
@ -50,7 +50,7 @@ config MB7040
|
|||||||
Enable driver support for the MaxBotix MB7040 sonar.
|
Enable driver support for the MaxBotix MB7040 sonar.
|
||||||
|
|
||||||
config MB7040_I2C_FREQUENCY
|
config MB7040_I2C_FREQUENCY
|
||||||
bool "MB7040 I2C frequency"
|
int "MB7040 I2C frequency"
|
||||||
default 400000
|
default 400000
|
||||||
range 1 400000
|
range 1 400000
|
||||||
depends on MB7040
|
depends on MB7040
|
||||||
@ -63,7 +63,7 @@ config MCP9844
|
|||||||
Enable driver support for the MCP9844 I2C Temperature sensor.
|
Enable driver support for the MCP9844 I2C Temperature sensor.
|
||||||
|
|
||||||
config MCP9844_I2C_FREQUENCY
|
config MCP9844_I2C_FREQUENCY
|
||||||
bool "MCP9844 I2C frequency"
|
int "MCP9844 I2C frequency"
|
||||||
default 400000
|
default 400000
|
||||||
range 1 400000
|
range 1 400000
|
||||||
depends on MCP9844
|
depends on MCP9844
|
||||||
@ -76,7 +76,7 @@ config MS58XX
|
|||||||
Enable driver support for MEAS MS58XX altimeters.
|
Enable driver support for MEAS MS58XX altimeters.
|
||||||
|
|
||||||
config MS58XX_I2C_FREQUENCY
|
config MS58XX_I2C_FREQUENCY
|
||||||
bool "MS58XX I2C frequency"
|
int "MS58XX I2C frequency"
|
||||||
default 400000
|
default 400000
|
||||||
range 1 400000
|
range 1 400000
|
||||||
depends on MS58XX
|
depends on MS58XX
|
||||||
@ -164,7 +164,7 @@ config LM75
|
|||||||
the TI TMP100/101.
|
the TI TMP100/101.
|
||||||
|
|
||||||
config LM75_I2C_FREQUENCY
|
config LM75_I2C_FREQUENCY
|
||||||
bool "LM75 I2C frequency"
|
int "LM75 I2C frequency"
|
||||||
default 100000
|
default 100000
|
||||||
range 1 100000
|
range 1 100000
|
||||||
depends on I2C_LM75
|
depends on I2C_LM75
|
||||||
@ -177,7 +177,7 @@ config LM92
|
|||||||
Enable driver support for the TI LM92 Temperature Sensor.
|
Enable driver support for the TI LM92 Temperature Sensor.
|
||||||
|
|
||||||
config LM92_I2C_FREQUENCY
|
config LM92_I2C_FREQUENCY
|
||||||
bool "LM92 I2C frequency"
|
int "LM92 I2C frequency"
|
||||||
default 400000
|
default 400000
|
||||||
range 1 400000
|
range 1 400000
|
||||||
depends on LM92
|
depends on LM92
|
||||||
|
@ -135,15 +135,19 @@ static const struct file_operations g_lm75fops =
|
|||||||
static int lm75_i2c_write(FAR struct lm75_dev_s *priv,
|
static int lm75_i2c_write(FAR struct lm75_dev_s *priv,
|
||||||
FAR const uint8_t *buffer, int buflen)
|
FAR const uint8_t *buffer, int buflen)
|
||||||
{
|
{
|
||||||
struct i2c_config_s config;
|
struct i2c_msg_s msg;
|
||||||
|
|
||||||
/* Set up the I2C configuration */
|
/* Setup for the transfer */
|
||||||
|
|
||||||
config.frequency = CONFIG_LM75_I2C_FREQUENCY;
|
msg.frequency = CONFIG_LM75_I2C_FREQUENCY,
|
||||||
config.address = priv->addr;
|
msg.addr = priv->addr;
|
||||||
config.addrlen = 7;
|
msg.flags = 0;
|
||||||
|
msg.buffer = (FAR uint8_t *)buffer; /* Override const */
|
||||||
|
msg.length = buflen;
|
||||||
|
|
||||||
return i2c_write(priv->i2c, &config, buffer, buflen);
|
/* Then perform the transfer. */
|
||||||
|
|
||||||
|
return I2C_TRANSFER(priv->i2c, &msg, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
@ -157,15 +161,19 @@ static int lm75_i2c_write(FAR struct lm75_dev_s *priv,
|
|||||||
static int lm75_i2c_read(FAR struct lm75_dev_s *priv,
|
static int lm75_i2c_read(FAR struct lm75_dev_s *priv,
|
||||||
FAR uint8_t *buffer, int buflen)
|
FAR uint8_t *buffer, int buflen)
|
||||||
{
|
{
|
||||||
struct i2c_config_s config;
|
struct i2c_msg_s msg;
|
||||||
|
|
||||||
/* Set up the I2C configuration */
|
/* Setup for the transfer */
|
||||||
|
|
||||||
config.frequency = CONFIG_LM75_I2C_FREQUENCY;
|
msg.frequency = CONFIG_LM75_I2C_FREQUENCY,
|
||||||
config.address = priv->addr;
|
msg.addr = priv->addr,
|
||||||
config.addrlen = 7;
|
msg.flags = I2C_M_READ;
|
||||||
|
msg.buffer = buffer;
|
||||||
|
msg.length = buflen;
|
||||||
|
|
||||||
return i2c_read(priv->i2c, &config, buffer, buflen);
|
/* Then perform the transfer. */
|
||||||
|
|
||||||
|
return I2C_TRANSFER(priv->i2c, &msg, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
|
@ -137,15 +137,19 @@ static const struct file_operations g_lm92fops =
|
|||||||
static int lm92_i2c_write(FAR struct lm92_dev_s *priv,
|
static int lm92_i2c_write(FAR struct lm92_dev_s *priv,
|
||||||
FAR const uint8_t *buffer, int buflen)
|
FAR const uint8_t *buffer, int buflen)
|
||||||
{
|
{
|
||||||
struct i2c_config_s config;
|
struct i2c_msg_s msg;
|
||||||
|
|
||||||
/* Set up the I2C configuration */
|
/* Setup for the transfer */
|
||||||
|
|
||||||
config.frequency = CONFIG_LM92_I2C_FREQUENCY;
|
msg.frequency = CONFIG_LM92_I2C_FREQUENCY,
|
||||||
config.address = priv->addr;
|
msg.addr = priv->addr;
|
||||||
config.addrlen = 7;
|
msg.flags = 0;
|
||||||
|
msg.buffer = (FAR uint8_t *)buffer; /* Override const */
|
||||||
|
msg.length = buflen;
|
||||||
|
|
||||||
return i2c_write(priv->i2c, &config, buffer, buflen);
|
/* Then perform the transfer. */
|
||||||
|
|
||||||
|
return I2C_TRANSFER(priv->i2c, &msg, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
@ -159,15 +163,19 @@ static int lm92_i2c_write(FAR struct lm92_dev_s *priv,
|
|||||||
static int lm92_i2c_read(FAR struct lm92_dev_s *priv,
|
static int lm92_i2c_read(FAR struct lm92_dev_s *priv,
|
||||||
FAR uint8_t *buffer, int buflen)
|
FAR uint8_t *buffer, int buflen)
|
||||||
{
|
{
|
||||||
struct i2c_config_s config;
|
struct i2c_msg_s msg;
|
||||||
|
|
||||||
/* Set up the I2C configuration */
|
/* Setup for the transfer */
|
||||||
|
|
||||||
config.frequency = CONFIG_LM92_I2C_FREQUENCY;
|
msg.frequency = CONFIG_LM92_I2C_FREQUENCY,
|
||||||
config.address = priv->addr;
|
msg.addr = priv->addr,
|
||||||
config.addrlen = 7;
|
msg.flags = I2C_M_READ;
|
||||||
|
msg.buffer = buffer;
|
||||||
|
msg.length = buflen;
|
||||||
|
|
||||||
return i2c_read(priv->i2c, &config, buffer, buflen);
|
/* Then perform the transfer. */
|
||||||
|
|
||||||
|
return I2C_TRANSFER(priv->i2c, &msg, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
|
@ -251,15 +251,19 @@ static uint8_t ms58xx_crc(FAR uint16_t *src, uint8_t crcIndex)
|
|||||||
static int ms58xx_i2c_write(FAR struct ms58xx_dev_s *priv,
|
static int ms58xx_i2c_write(FAR struct ms58xx_dev_s *priv,
|
||||||
FAR const uint8_t *buffer, int buflen)
|
FAR const uint8_t *buffer, int buflen)
|
||||||
{
|
{
|
||||||
struct i2c_config_s config;
|
struct i2c_msg_s msg;
|
||||||
|
|
||||||
/* Set up the configuration and perform the write-read operation */
|
/* Setup for the transfer */
|
||||||
|
|
||||||
config.frequency = CONFIG_MS58XX_I2C_FREQUENCY;
|
msg.frequency = CONFIG_MS58XX_I2C_FREQUENCY,
|
||||||
config.address = priv->addr;
|
msg.addr = priv->addr;
|
||||||
config.addrlen = 7;
|
msg.flags = 0;
|
||||||
|
msg.buffer = (FAR uint8_t *)buffer; /* Override const */
|
||||||
|
msg.length = buflen;
|
||||||
|
|
||||||
return i2c_write(priv->i2c, &config, buffer, buflen);
|
/* Then perform the transfer. */
|
||||||
|
|
||||||
|
return I2C_TRANSFER(priv->i2c, &msg, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
@ -273,15 +277,19 @@ static int ms58xx_i2c_write(FAR struct ms58xx_dev_s *priv,
|
|||||||
static int ms58xx_i2c_read(FAR struct ms58xx_dev_s *priv,
|
static int ms58xx_i2c_read(FAR struct ms58xx_dev_s *priv,
|
||||||
FAR uint8_t *buffer, int buflen)
|
FAR uint8_t *buffer, int buflen)
|
||||||
{
|
{
|
||||||
struct i2c_config_s config;
|
struct i2c_msg_s msg;
|
||||||
|
|
||||||
/* Set up the configuration and perform the write-read operation */
|
/* Setup for the transfer */
|
||||||
|
|
||||||
config.frequency = CONFIG_MS58XX_I2C_FREQUENCY;
|
msg.frequency = CONFIG_MS58XX_I2C_FREQUENCY,
|
||||||
config.address = priv->addr;
|
msg.addr = priv->addr,
|
||||||
config.addrlen = 7;
|
msg.flags = I2C_M_READ;
|
||||||
|
msg.buffer = buffer;
|
||||||
|
msg.length = buflen;
|
||||||
|
|
||||||
return i2c_read(priv->i2c, &config, buffer, buflen);
|
/* Then perform the transfer. */
|
||||||
|
|
||||||
|
return I2C_TRANSFER(priv->i2c, &msg, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
|
Loading…
x
Reference in New Issue
Block a user