Lines Matching defs:f7_msg

311  * @f7_msg: customized i2c msg for driver usage
345 struct stm32f7_i2c_msg f7_msg;
784 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg;
787 if (f7_msg->count) {
788 writeb_relaxed(*f7_msg->buf++, base + STM32F7_I2C_TXDR);
789 f7_msg->count--;
795 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg;
798 if (f7_msg->count) {
799 *f7_msg->buf++ = readb_relaxed(base + STM32F7_I2C_RXDR);
800 f7_msg->count--;
809 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg;
813 f7_msg->count -= STM32F7_I2C_MAX_LEN;
818 if (f7_msg->count > STM32F7_I2C_MAX_LEN) {
822 cr2 |= STM32F7_I2C_CR2_NBYTES(f7_msg->count);
830 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg;
843 val = f7_msg->buf - sizeof(u8);
844 f7_msg->count = *val;
847 cr2 |= STM32F7_I2C_CR2_NBYTES(f7_msg->count);
881 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg;
886 f7_msg->addr = msg->addr;
887 f7_msg->buf = msg->buf;
888 f7_msg->count = msg->len;
889 f7_msg->result = 0;
890 f7_msg->stop = (i2c_dev->msg_id >= i2c_dev->msg_num - 1);
906 cr2 |= STM32F7_I2C_CR2_SADD10(f7_msg->addr);
910 cr2 |= STM32F7_I2C_CR2_SADD7(f7_msg->addr);
915 if (f7_msg->count > STM32F7_I2C_MAX_LEN) {
919 cr2 |= STM32F7_I2C_CR2_NBYTES(f7_msg->count);
932 if (i2c_dev->dma && f7_msg->count >= STM32F7_I2C_DMA_LEN_MIN
936 f7_msg->count, f7_msg->buf,
974 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg;
980 f7_msg->result = 0;
988 if (f7_msg->read_write)
993 cr2 |= STM32F7_I2C_CR2_SADD7(f7_msg->addr);
995 f7_msg->smbus_buf[0] = command;
996 switch (f7_msg->size) {
998 f7_msg->stop = true;
999 f7_msg->count = 0;
1002 f7_msg->stop = true;
1003 f7_msg->count = 1;
1006 if (f7_msg->read_write) {
1007 f7_msg->stop = false;
1008 f7_msg->count = 1;
1011 f7_msg->stop = true;
1012 f7_msg->count = 2;
1013 f7_msg->smbus_buf[1] = data->byte;
1017 if (f7_msg->read_write) {
1018 f7_msg->stop = false;
1019 f7_msg->count = 1;
1022 f7_msg->stop = true;
1023 f7_msg->count = 3;
1024 f7_msg->smbus_buf[1] = data->word & 0xff;
1025 f7_msg->smbus_buf[2] = data->word >> 8;
1029 if (f7_msg->read_write) {
1030 f7_msg->stop = false;
1031 f7_msg->count = 1;
1034 f7_msg->stop = true;
1041 f7_msg->count = data->block[0] + 2;
1042 for (i = 1; i < f7_msg->count; i++)
1043 f7_msg->smbus_buf[i] = data->block[i - 1];
1047 f7_msg->stop = false;
1048 f7_msg->count = 3;
1049 f7_msg->smbus_buf[1] = data->word & 0xff;
1050 f7_msg->smbus_buf[2] = data->word >> 8;
1052 f7_msg->read_write = I2C_SMBUS_READ;
1055 f7_msg->stop = false;
1061 f7_msg->count = data->block[0] + 2;
1062 for (i = 1; i < f7_msg->count; i++)
1063 f7_msg->smbus_buf[i] = data->block[i - 1];
1065 f7_msg->read_write = I2C_SMBUS_READ;
1071 dev_err(dev, "Unsupported smbus protocol %d\n", f7_msg->size);
1075 f7_msg->buf = f7_msg->smbus_buf;
1078 if ((flags & I2C_CLIENT_PEC) && f7_msg->size != I2C_SMBUS_QUICK) {
1080 if (!f7_msg->read_write) {
1082 f7_msg->count++;
1091 cr2 |= STM32F7_I2C_CR2_NBYTES(f7_msg->count);
1103 if (i2c_dev->dma && f7_msg->count >= STM32F7_I2C_DMA_LEN_MIN) {
1106 f7_msg->count, f7_msg->buf,
1141 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg;
1152 switch (f7_msg->size) {
1154 f7_msg->count = 1;
1158 f7_msg->count = 2;
1162 f7_msg->count = 1;
1167 f7_msg->buf = f7_msg->smbus_buf;
1168 f7_msg->stop = true;
1173 f7_msg->count++;
1178 cr2 |= STM32F7_I2C_CR2_NBYTES(f7_msg->count);
1195 if (i2c_dev->dma && f7_msg->count >= STM32F7_I2C_DMA_LEN_MIN &&
1196 f7_msg->size != I2C_SMBUS_BLOCK_DATA &&
1197 f7_msg->size != I2C_SMBUS_BLOCK_PROC_CALL) {
1200 f7_msg->count, f7_msg->buf,
1225 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg;
1230 switch (f7_msg->size) {
1233 received_pec = f7_msg->smbus_buf[1];
1237 received_pec = f7_msg->smbus_buf[2];
1241 count = f7_msg->smbus_buf[0];
1242 received_pec = f7_msg->smbus_buf[count];
1509 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg;
1510 u16 addr = f7_msg->addr;
1520 f7_msg->result = -EIO;
1527 f7_msg->result = -EAGAIN;
1533 f7_msg->result = -EINVAL;
1602 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg;
1620 __func__, f7_msg->addr);
1626 f7_msg->result = -ENXIO;
1630 if (f7_msg->smbus)
1639 if (i2c_dev->use_dma && !f7_msg->result) {
1645 f7_msg->result = -ETIMEDOUT;
1648 if (f7_msg->stop) {
1651 } else if (f7_msg->smbus) {
1708 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg;
1716 f7_msg->smbus = false;
1734 ret = f7_msg->result;
1789 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg;
1795 f7_msg->addr = addr;
1796 f7_msg->size = size;
1797 f7_msg->read_write = read_write;
1798 f7_msg->smbus = true;
1814 ret = f7_msg->result;
1830 dev_dbg(dev, "Access to slave 0x%x timed out\n", f7_msg->addr);
1849 data->byte = f7_msg->smbus_buf[0];
1853 data->word = f7_msg->smbus_buf[0] |
1854 (f7_msg->smbus_buf[1] << 8);
1858 for (i = 0; i <= f7_msg->smbus_buf[0]; i++)
1859 data->block[i] = f7_msg->smbus_buf[i];