Lines Matching defs:f7_msg

297  * @f7_msg: customized i2c msg for driver usage
326 struct stm32f7_i2c_msg f7_msg;
743 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg;
746 if (f7_msg->count) {
747 writeb_relaxed(*f7_msg->buf++, base + STM32F7_I2C_TXDR);
748 f7_msg->count--;
754 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg;
757 if (f7_msg->count) {
758 *f7_msg->buf++ = readb_relaxed(base + STM32F7_I2C_RXDR);
759 f7_msg->count--;
768 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg;
772 f7_msg->count -= STM32F7_I2C_MAX_LEN;
777 if (f7_msg->count > STM32F7_I2C_MAX_LEN) {
781 cr2 |= STM32F7_I2C_CR2_NBYTES(f7_msg->count);
789 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg;
802 val = f7_msg->buf - sizeof(u8);
803 f7_msg->count = *val;
806 cr2 |= STM32F7_I2C_CR2_NBYTES(f7_msg->count);
850 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg;
855 f7_msg->addr = msg->addr;
856 f7_msg->buf = msg->buf;
857 f7_msg->count = msg->len;
858 f7_msg->result = 0;
859 f7_msg->stop = (i2c_dev->msg_id >= i2c_dev->msg_num - 1);
875 cr2 |= STM32F7_I2C_CR2_SADD10(f7_msg->addr);
879 cr2 |= STM32F7_I2C_CR2_SADD7(f7_msg->addr);
884 if (f7_msg->count > STM32F7_I2C_MAX_LEN) {
888 cr2 |= STM32F7_I2C_CR2_NBYTES(f7_msg->count);
901 if (i2c_dev->dma && f7_msg->count >= STM32F7_I2C_DMA_LEN_MIN) {
904 f7_msg->count, f7_msg->buf,
939 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg;
945 f7_msg->result = 0;
953 if (f7_msg->read_write)
958 cr2 |= STM32F7_I2C_CR2_SADD7(f7_msg->addr);
960 f7_msg->smbus_buf[0] = command;
961 switch (f7_msg->size) {
963 f7_msg->stop = true;
964 f7_msg->count = 0;
967 f7_msg->stop = true;
968 f7_msg->count = 1;
971 if (f7_msg->read_write) {
972 f7_msg->stop = false;
973 f7_msg->count = 1;
976 f7_msg->stop = true;
977 f7_msg->count = 2;
978 f7_msg->smbus_buf[1] = data->byte;
982 if (f7_msg->read_write) {
983 f7_msg->stop = false;
984 f7_msg->count = 1;
987 f7_msg->stop = true;
988 f7_msg->count = 3;
989 f7_msg->smbus_buf[1] = data->word & 0xff;
990 f7_msg->smbus_buf[2] = data->word >> 8;
994 if (f7_msg->read_write) {
995 f7_msg->stop = false;
996 f7_msg->count = 1;
999 f7_msg->stop = true;
1006 f7_msg->count = data->block[0] + 2;
1007 for (i = 1; i < f7_msg->count; i++)
1008 f7_msg->smbus_buf[i] = data->block[i - 1];
1012 f7_msg->stop = false;
1013 f7_msg->count = 3;
1014 f7_msg->smbus_buf[1] = data->word & 0xff;
1015 f7_msg->smbus_buf[2] = data->word >> 8;
1017 f7_msg->read_write = I2C_SMBUS_READ;
1020 f7_msg->stop = false;
1026 f7_msg->count = data->block[0] + 2;
1027 for (i = 1; i < f7_msg->count; i++)
1028 f7_msg->smbus_buf[i] = data->block[i - 1];
1030 f7_msg->read_write = I2C_SMBUS_READ;
1036 dev_err(dev, "Unsupported smbus protocol %d\n", f7_msg->size);
1040 f7_msg->buf = f7_msg->smbus_buf;
1043 if ((flags & I2C_CLIENT_PEC) && f7_msg->size != I2C_SMBUS_QUICK) {
1045 if (!f7_msg->read_write) {
1047 f7_msg->count++;
1056 cr2 |= STM32F7_I2C_CR2_NBYTES(f7_msg->count);
1068 if (i2c_dev->dma && f7_msg->count >= STM32F7_I2C_DMA_LEN_MIN) {
1071 f7_msg->count, f7_msg->buf,
1106 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg;
1117 switch (f7_msg->size) {
1119 f7_msg->count = 1;
1123 f7_msg->count = 2;
1127 f7_msg->count = 1;
1132 f7_msg->buf = f7_msg->smbus_buf;
1133 f7_msg->stop = true;
1138 f7_msg->count++;
1143 cr2 |= STM32F7_I2C_CR2_NBYTES(f7_msg->count);
1160 if (i2c_dev->dma && f7_msg->count >= STM32F7_I2C_DMA_LEN_MIN &&
1161 f7_msg->size != I2C_SMBUS_BLOCK_DATA &&
1162 f7_msg->size != I2C_SMBUS_BLOCK_PROC_CALL) {
1165 f7_msg->count, f7_msg->buf,
1190 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg;
1195 switch (f7_msg->size) {
1198 received_pec = f7_msg->smbus_buf[1];
1202 received_pec = f7_msg->smbus_buf[2];
1206 count = f7_msg->smbus_buf[0];
1207 received_pec = f7_msg->smbus_buf[count];
1477 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg;
1502 __func__, f7_msg->addr);
1508 f7_msg->result = -ENXIO;
1523 if (i2c_dev->use_dma && !f7_msg->result) {
1533 if (f7_msg->stop) {
1536 } else if (i2c_dev->use_dma && !f7_msg->result) {
1538 } else if (f7_msg->smbus) {
1548 if (f7_msg->smbus)
1560 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg;
1574 f7_msg->result = -ETIMEDOUT;
1580 if (f7_msg->smbus) {
1598 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg;
1611 f7_msg->result = -EIO;
1618 f7_msg->result = -EAGAIN;
1624 f7_msg->result = -EINVAL;
1653 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg;
1661 f7_msg->smbus = false;
1675 ret = f7_msg->result;
1709 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg;
1715 f7_msg->addr = addr;
1716 f7_msg->size = size;
1717 f7_msg->read_write = read_write;
1718 f7_msg->smbus = true;
1734 ret = f7_msg->result;
1747 dev_dbg(dev, "Access to slave 0x%x timed out\n", f7_msg->addr);
1766 data->byte = f7_msg->smbus_buf[0];
1770 data->word = f7_msg->smbus_buf[0] |
1771 (f7_msg->smbus_buf[1] << 8);
1775 for (i = 0; i <= f7_msg->smbus_buf[0]; i++)
1776 data->block[i] = f7_msg->smbus_buf[i];