Lines Matching defs:f7_msg

306  * @f7_msg: customized i2c msg for driver usage
339 struct stm32f7_i2c_msg f7_msg;
770 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg;
773 if (f7_msg->count) {
774 writeb_relaxed(*f7_msg->buf++, base + STM32F7_I2C_TXDR);
775 f7_msg->count--;
781 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg;
784 if (f7_msg->count) {
785 *f7_msg->buf++ = readb_relaxed(base + STM32F7_I2C_RXDR);
786 f7_msg->count--;
795 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg;
799 f7_msg->count -= STM32F7_I2C_MAX_LEN;
804 if (f7_msg->count > STM32F7_I2C_MAX_LEN) {
808 cr2 |= STM32F7_I2C_CR2_NBYTES(f7_msg->count);
816 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg;
829 val = f7_msg->buf - sizeof(u8);
830 f7_msg->count = *val;
833 cr2 |= STM32F7_I2C_CR2_NBYTES(f7_msg->count);
867 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg;
872 f7_msg->addr = msg->addr;
873 f7_msg->buf = msg->buf;
874 f7_msg->count = msg->len;
875 f7_msg->result = 0;
876 f7_msg->stop = (i2c_dev->msg_id >= i2c_dev->msg_num - 1);
892 cr2 |= STM32F7_I2C_CR2_SADD10(f7_msg->addr);
896 cr2 |= STM32F7_I2C_CR2_SADD7(f7_msg->addr);
901 if (f7_msg->count > STM32F7_I2C_MAX_LEN) {
905 cr2 |= STM32F7_I2C_CR2_NBYTES(f7_msg->count);
918 if (i2c_dev->dma && f7_msg->count >= STM32F7_I2C_DMA_LEN_MIN) {
921 f7_msg->count, f7_msg->buf,
956 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg;
962 f7_msg->result = 0;
970 if (f7_msg->read_write)
975 cr2 |= STM32F7_I2C_CR2_SADD7(f7_msg->addr);
977 f7_msg->smbus_buf[0] = command;
978 switch (f7_msg->size) {
980 f7_msg->stop = true;
981 f7_msg->count = 0;
984 f7_msg->stop = true;
985 f7_msg->count = 1;
988 if (f7_msg->read_write) {
989 f7_msg->stop = false;
990 f7_msg->count = 1;
993 f7_msg->stop = true;
994 f7_msg->count = 2;
995 f7_msg->smbus_buf[1] = data->byte;
999 if (f7_msg->read_write) {
1000 f7_msg->stop = false;
1001 f7_msg->count = 1;
1004 f7_msg->stop = true;
1005 f7_msg->count = 3;
1006 f7_msg->smbus_buf[1] = data->word & 0xff;
1007 f7_msg->smbus_buf[2] = data->word >> 8;
1011 if (f7_msg->read_write) {
1012 f7_msg->stop = false;
1013 f7_msg->count = 1;
1016 f7_msg->stop = true;
1023 f7_msg->count = data->block[0] + 2;
1024 for (i = 1; i < f7_msg->count; i++)
1025 f7_msg->smbus_buf[i] = data->block[i - 1];
1029 f7_msg->stop = false;
1030 f7_msg->count = 3;
1031 f7_msg->smbus_buf[1] = data->word & 0xff;
1032 f7_msg->smbus_buf[2] = data->word >> 8;
1034 f7_msg->read_write = I2C_SMBUS_READ;
1037 f7_msg->stop = false;
1043 f7_msg->count = data->block[0] + 2;
1044 for (i = 1; i < f7_msg->count; i++)
1045 f7_msg->smbus_buf[i] = data->block[i - 1];
1047 f7_msg->read_write = I2C_SMBUS_READ;
1053 dev_err(dev, "Unsupported smbus protocol %d\n", f7_msg->size);
1057 f7_msg->buf = f7_msg->smbus_buf;
1060 if ((flags & I2C_CLIENT_PEC) && f7_msg->size != I2C_SMBUS_QUICK) {
1062 if (!f7_msg->read_write) {
1064 f7_msg->count++;
1073 cr2 |= STM32F7_I2C_CR2_NBYTES(f7_msg->count);
1085 if (i2c_dev->dma && f7_msg->count >= STM32F7_I2C_DMA_LEN_MIN) {
1088 f7_msg->count, f7_msg->buf,
1123 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg;
1134 switch (f7_msg->size) {
1136 f7_msg->count = 1;
1140 f7_msg->count = 2;
1144 f7_msg->count = 1;
1149 f7_msg->buf = f7_msg->smbus_buf;
1150 f7_msg->stop = true;
1155 f7_msg->count++;
1160 cr2 |= STM32F7_I2C_CR2_NBYTES(f7_msg->count);
1177 if (i2c_dev->dma && f7_msg->count >= STM32F7_I2C_DMA_LEN_MIN &&
1178 f7_msg->size != I2C_SMBUS_BLOCK_DATA &&
1179 f7_msg->size != I2C_SMBUS_BLOCK_PROC_CALL) {
1182 f7_msg->count, f7_msg->buf,
1207 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg;
1212 switch (f7_msg->size) {
1215 received_pec = f7_msg->smbus_buf[1];
1219 received_pec = f7_msg->smbus_buf[2];
1223 count = f7_msg->smbus_buf[0];
1224 received_pec = f7_msg->smbus_buf[count];
1494 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg;
1519 __func__, f7_msg->addr);
1525 f7_msg->result = -ENXIO;
1540 if (i2c_dev->use_dma && !f7_msg->result) {
1550 if (f7_msg->stop) {
1553 } else if (i2c_dev->use_dma && !f7_msg->result) {
1555 } else if (f7_msg->smbus) {
1565 if (f7_msg->smbus)
1577 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg;
1591 f7_msg->result = -ETIMEDOUT;
1597 if (f7_msg->smbus) {
1615 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg;
1626 __func__, f7_msg->addr);
1629 f7_msg->result = -EIO;
1635 __func__, f7_msg->addr);
1637 f7_msg->result = -EAGAIN;
1642 __func__, f7_msg->addr);
1644 f7_msg->result = -EINVAL;
1680 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg;
1688 f7_msg->smbus = false;
1702 ret = f7_msg->result;
1739 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg;
1745 f7_msg->addr = addr;
1746 f7_msg->size = size;
1747 f7_msg->read_write = read_write;
1748 f7_msg->smbus = true;
1764 ret = f7_msg->result;
1780 dev_dbg(dev, "Access to slave 0x%x timed out\n", f7_msg->addr);
1799 data->byte = f7_msg->smbus_buf[0];
1803 data->word = f7_msg->smbus_buf[0] |
1804 (f7_msg->smbus_buf[1] << 8);
1808 for (i = 0; i <= f7_msg->smbus_buf[0]; i++)
1809 data->block[i] = f7_msg->smbus_buf[i];