Lines Matching refs:f7_msg
339 struct stm32f7_i2c_msg f7_msg; member
764 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg; in stm32f7_i2c_write_tx_data() local
767 if (f7_msg->count) { in stm32f7_i2c_write_tx_data()
768 writeb_relaxed(*f7_msg->buf++, base + STM32F7_I2C_TXDR); in stm32f7_i2c_write_tx_data()
769 f7_msg->count--; in stm32f7_i2c_write_tx_data()
775 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg; in stm32f7_i2c_read_rx_data() local
778 if (f7_msg->count) { in stm32f7_i2c_read_rx_data()
779 *f7_msg->buf++ = readb_relaxed(base + STM32F7_I2C_RXDR); in stm32f7_i2c_read_rx_data()
780 f7_msg->count--; in stm32f7_i2c_read_rx_data()
789 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg; in stm32f7_i2c_reload() local
793 f7_msg->count -= STM32F7_I2C_MAX_LEN; in stm32f7_i2c_reload()
798 if (f7_msg->count > STM32F7_I2C_MAX_LEN) { in stm32f7_i2c_reload()
802 cr2 |= STM32F7_I2C_CR2_NBYTES(f7_msg->count); in stm32f7_i2c_reload()
810 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg; in stm32f7_i2c_smbus_reload() local
823 val = f7_msg->buf - sizeof(u8); in stm32f7_i2c_smbus_reload()
824 f7_msg->count = *val; in stm32f7_i2c_smbus_reload()
827 cr2 |= STM32F7_I2C_CR2_NBYTES(f7_msg->count); in stm32f7_i2c_smbus_reload()
871 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg; in stm32f7_i2c_xfer_msg() local
876 f7_msg->addr = msg->addr; in stm32f7_i2c_xfer_msg()
877 f7_msg->buf = msg->buf; in stm32f7_i2c_xfer_msg()
878 f7_msg->count = msg->len; in stm32f7_i2c_xfer_msg()
879 f7_msg->result = 0; in stm32f7_i2c_xfer_msg()
880 f7_msg->stop = (i2c_dev->msg_id >= i2c_dev->msg_num - 1); in stm32f7_i2c_xfer_msg()
896 cr2 |= STM32F7_I2C_CR2_SADD10(f7_msg->addr); in stm32f7_i2c_xfer_msg()
900 cr2 |= STM32F7_I2C_CR2_SADD7(f7_msg->addr); in stm32f7_i2c_xfer_msg()
905 if (f7_msg->count > STM32F7_I2C_MAX_LEN) { in stm32f7_i2c_xfer_msg()
909 cr2 |= STM32F7_I2C_CR2_NBYTES(f7_msg->count); in stm32f7_i2c_xfer_msg()
922 if (i2c_dev->dma && f7_msg->count >= STM32F7_I2C_DMA_LEN_MIN) { in stm32f7_i2c_xfer_msg()
925 f7_msg->count, f7_msg->buf, in stm32f7_i2c_xfer_msg()
960 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg; in stm32f7_i2c_smbus_xfer_msg() local
966 f7_msg->result = 0; in stm32f7_i2c_smbus_xfer_msg()
974 if (f7_msg->read_write) in stm32f7_i2c_smbus_xfer_msg()
979 cr2 |= STM32F7_I2C_CR2_SADD7(f7_msg->addr); in stm32f7_i2c_smbus_xfer_msg()
981 f7_msg->smbus_buf[0] = command; in stm32f7_i2c_smbus_xfer_msg()
982 switch (f7_msg->size) { in stm32f7_i2c_smbus_xfer_msg()
984 f7_msg->stop = true; in stm32f7_i2c_smbus_xfer_msg()
985 f7_msg->count = 0; in stm32f7_i2c_smbus_xfer_msg()
988 f7_msg->stop = true; in stm32f7_i2c_smbus_xfer_msg()
989 f7_msg->count = 1; in stm32f7_i2c_smbus_xfer_msg()
992 if (f7_msg->read_write) { in stm32f7_i2c_smbus_xfer_msg()
993 f7_msg->stop = false; in stm32f7_i2c_smbus_xfer_msg()
994 f7_msg->count = 1; in stm32f7_i2c_smbus_xfer_msg()
997 f7_msg->stop = true; in stm32f7_i2c_smbus_xfer_msg()
998 f7_msg->count = 2; in stm32f7_i2c_smbus_xfer_msg()
999 f7_msg->smbus_buf[1] = data->byte; in stm32f7_i2c_smbus_xfer_msg()
1003 if (f7_msg->read_write) { in stm32f7_i2c_smbus_xfer_msg()
1004 f7_msg->stop = false; in stm32f7_i2c_smbus_xfer_msg()
1005 f7_msg->count = 1; in stm32f7_i2c_smbus_xfer_msg()
1008 f7_msg->stop = true; in stm32f7_i2c_smbus_xfer_msg()
1009 f7_msg->count = 3; in stm32f7_i2c_smbus_xfer_msg()
1010 f7_msg->smbus_buf[1] = data->word & 0xff; in stm32f7_i2c_smbus_xfer_msg()
1011 f7_msg->smbus_buf[2] = data->word >> 8; in stm32f7_i2c_smbus_xfer_msg()
1015 if (f7_msg->read_write) { in stm32f7_i2c_smbus_xfer_msg()
1016 f7_msg->stop = false; in stm32f7_i2c_smbus_xfer_msg()
1017 f7_msg->count = 1; in stm32f7_i2c_smbus_xfer_msg()
1020 f7_msg->stop = true; in stm32f7_i2c_smbus_xfer_msg()
1027 f7_msg->count = data->block[0] + 2; in stm32f7_i2c_smbus_xfer_msg()
1028 for (i = 1; i < f7_msg->count; i++) in stm32f7_i2c_smbus_xfer_msg()
1029 f7_msg->smbus_buf[i] = data->block[i - 1]; in stm32f7_i2c_smbus_xfer_msg()
1033 f7_msg->stop = false; in stm32f7_i2c_smbus_xfer_msg()
1034 f7_msg->count = 3; in stm32f7_i2c_smbus_xfer_msg()
1035 f7_msg->smbus_buf[1] = data->word & 0xff; in stm32f7_i2c_smbus_xfer_msg()
1036 f7_msg->smbus_buf[2] = data->word >> 8; in stm32f7_i2c_smbus_xfer_msg()
1038 f7_msg->read_write = I2C_SMBUS_READ; in stm32f7_i2c_smbus_xfer_msg()
1041 f7_msg->stop = false; in stm32f7_i2c_smbus_xfer_msg()
1047 f7_msg->count = data->block[0] + 2; in stm32f7_i2c_smbus_xfer_msg()
1048 for (i = 1; i < f7_msg->count; i++) in stm32f7_i2c_smbus_xfer_msg()
1049 f7_msg->smbus_buf[i] = data->block[i - 1]; in stm32f7_i2c_smbus_xfer_msg()
1051 f7_msg->read_write = I2C_SMBUS_READ; in stm32f7_i2c_smbus_xfer_msg()
1057 dev_err(dev, "Unsupported smbus protocol %d\n", f7_msg->size); in stm32f7_i2c_smbus_xfer_msg()
1061 f7_msg->buf = f7_msg->smbus_buf; in stm32f7_i2c_smbus_xfer_msg()
1064 if ((flags & I2C_CLIENT_PEC) && f7_msg->size != I2C_SMBUS_QUICK) { in stm32f7_i2c_smbus_xfer_msg()
1067 if (!f7_msg->read_write) in stm32f7_i2c_smbus_xfer_msg()
1068 f7_msg->count++; in stm32f7_i2c_smbus_xfer_msg()
1076 cr2 |= STM32F7_I2C_CR2_NBYTES(f7_msg->count); in stm32f7_i2c_smbus_xfer_msg()
1088 if (i2c_dev->dma && f7_msg->count >= STM32F7_I2C_DMA_LEN_MIN) { in stm32f7_i2c_smbus_xfer_msg()
1091 f7_msg->count, f7_msg->buf, in stm32f7_i2c_smbus_xfer_msg()
1126 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg; in stm32f7_i2c_smbus_rep_start() local
1137 switch (f7_msg->size) { in stm32f7_i2c_smbus_rep_start()
1139 f7_msg->count = 1; in stm32f7_i2c_smbus_rep_start()
1143 f7_msg->count = 2; in stm32f7_i2c_smbus_rep_start()
1147 f7_msg->count = 1; in stm32f7_i2c_smbus_rep_start()
1152 f7_msg->buf = f7_msg->smbus_buf; in stm32f7_i2c_smbus_rep_start()
1153 f7_msg->stop = true; in stm32f7_i2c_smbus_rep_start()
1157 f7_msg->count++; in stm32f7_i2c_smbus_rep_start()
1161 cr2 |= STM32F7_I2C_CR2_NBYTES(f7_msg->count); in stm32f7_i2c_smbus_rep_start()
1178 if (i2c_dev->dma && f7_msg->count >= STM32F7_I2C_DMA_LEN_MIN && in stm32f7_i2c_smbus_rep_start()
1179 f7_msg->size != I2C_SMBUS_BLOCK_DATA && in stm32f7_i2c_smbus_rep_start()
1180 f7_msg->size != I2C_SMBUS_BLOCK_PROC_CALL) { in stm32f7_i2c_smbus_rep_start()
1183 f7_msg->count, f7_msg->buf, in stm32f7_i2c_smbus_rep_start()
1208 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg; in stm32f7_i2c_smbus_check_pec() local
1213 switch (f7_msg->size) { in stm32f7_i2c_smbus_check_pec()
1216 received_pec = f7_msg->smbus_buf[1]; in stm32f7_i2c_smbus_check_pec()
1220 received_pec = f7_msg->smbus_buf[2]; in stm32f7_i2c_smbus_check_pec()
1224 count = f7_msg->smbus_buf[0]; in stm32f7_i2c_smbus_check_pec()
1225 received_pec = f7_msg->smbus_buf[count]; in stm32f7_i2c_smbus_check_pec()
1495 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg; in stm32f7_i2c_isr_event() local
1519 __func__, f7_msg->addr); in stm32f7_i2c_isr_event()
1521 f7_msg->result = -ENXIO; in stm32f7_i2c_isr_event()
1546 if (f7_msg->stop) { in stm32f7_i2c_isr_event()
1551 } else if (f7_msg->smbus) { in stm32f7_i2c_isr_event()
1561 if (f7_msg->smbus) in stm32f7_i2c_isr_event()
1573 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg; in stm32f7_i2c_isr_event_thread() local
1587 f7_msg->result = -ETIMEDOUT; in stm32f7_i2c_isr_event_thread()
1593 if (f7_msg->smbus) { in stm32f7_i2c_isr_event_thread()
1611 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg; in stm32f7_i2c_isr_error() local
1622 __func__, f7_msg->addr); in stm32f7_i2c_isr_error()
1625 f7_msg->result = -EIO; in stm32f7_i2c_isr_error()
1631 __func__, f7_msg->addr); in stm32f7_i2c_isr_error()
1633 f7_msg->result = -EAGAIN; in stm32f7_i2c_isr_error()
1638 __func__, f7_msg->addr); in stm32f7_i2c_isr_error()
1640 f7_msg->result = -EINVAL; in stm32f7_i2c_isr_error()
1676 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg; in stm32f7_i2c_xfer() local
1684 f7_msg->smbus = false; in stm32f7_i2c_xfer()
1698 ret = f7_msg->result; in stm32f7_i2c_xfer()
1721 struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg; in stm32f7_i2c_smbus_xfer() local
1727 f7_msg->addr = addr; in stm32f7_i2c_smbus_xfer()
1728 f7_msg->size = size; in stm32f7_i2c_smbus_xfer()
1729 f7_msg->read_write = read_write; in stm32f7_i2c_smbus_xfer()
1730 f7_msg->smbus = true; in stm32f7_i2c_smbus_xfer()
1746 ret = f7_msg->result; in stm32f7_i2c_smbus_xfer()
1751 dev_dbg(dev, "Access to slave 0x%x timed out\n", f7_msg->addr); in stm32f7_i2c_smbus_xfer()
1769 data->byte = f7_msg->smbus_buf[0]; in stm32f7_i2c_smbus_xfer()
1773 data->word = f7_msg->smbus_buf[0] | in stm32f7_i2c_smbus_xfer()
1774 (f7_msg->smbus_buf[1] << 8); in stm32f7_i2c_smbus_xfer()
1778 for (i = 0; i <= f7_msg->smbus_buf[0]; i++) in stm32f7_i2c_smbus_xfer()
1779 data->block[i] = f7_msg->smbus_buf[i]; in stm32f7_i2c_smbus_xfer()