Lines Matching +full:cmd +full:- +full:db

1 // SPDX-License-Identifier: GPL-2.0+
3 * Copyright (C) 2018 Texas Instruments Incorporated - http://www.ti.com/
7 #include <spi-mem.h>
21 if (op->data.nbytes) { in spi_mem_exec_op()
22 if (op->data.dir == SPI_MEM_DATA_IN) in spi_mem_exec_op()
23 rx_buf = op->data.buf.in; in spi_mem_exec_op()
25 tx_buf = op->data.buf.out; in spi_mem_exec_op()
28 op_len = sizeof(op->cmd.opcode) + op->addr.nbytes + op->dummy.nbytes; in spi_mem_exec_op()
35 op_buf[pos++] = op->cmd.opcode; in spi_mem_exec_op()
37 if (op->addr.nbytes) { in spi_mem_exec_op()
38 for (i = 0; i < op->addr.nbytes; i++) in spi_mem_exec_op()
39 op_buf[pos + i] = op->addr.val >> in spi_mem_exec_op()
40 (8 * (op->addr.nbytes - i - 1)); in spi_mem_exec_op()
42 pos += op->addr.nbytes; in spi_mem_exec_op()
45 if (op->dummy.nbytes) in spi_mem_exec_op()
46 memset(op_buf + pos, 0xff, op->dummy.nbytes); in spi_mem_exec_op()
60 ret = spi_xfer(slave, op->data.nbytes * 8, tx_buf, in spi_mem_exec_op()
70 debug("| [%dB %s] ", in spi_mem_exec_op()
71 tx_buf || rx_buf ? op->data.nbytes : 0, in spi_mem_exec_op()
72 tx_buf || rx_buf ? (tx_buf ? "out" : "in") : "-"); in spi_mem_exec_op()
73 for (i = 0; i < op->data.nbytes; i++) in spi_mem_exec_op()
90 len = sizeof(op->cmd.opcode) + op->addr.nbytes + op->dummy.nbytes; in spi_mem_adjust_op_size()
91 if (slave->max_write_size && len > slave->max_write_size) in spi_mem_adjust_op_size()
92 return -EINVAL; in spi_mem_adjust_op_size()
94 if (op->data.dir == SPI_MEM_DATA_IN && slave->max_read_size) in spi_mem_adjust_op_size()
95 op->data.nbytes = min(op->data.nbytes, in spi_mem_adjust_op_size()
96 slave->max_read_size); in spi_mem_adjust_op_size()
97 else if (slave->max_write_size) in spi_mem_adjust_op_size()
98 op->data.nbytes = min(op->data.nbytes, in spi_mem_adjust_op_size()
99 slave->max_write_size - len); in spi_mem_adjust_op_size()
101 if (!op->data.nbytes) in spi_mem_adjust_op_size()
102 return -EINVAL; in spi_mem_adjust_op_size()