Lines Matching +full:data +full:- +full:mapping
1 /* SPDX-License-Identifier: GPL-2.0+ */
58 * enum spi_mem_data_dir - describes the direction of a SPI memory data
60 * @SPI_MEM_NO_DATA: no data transferred
61 * @SPI_MEM_DATA_IN: data coming from the SPI memory
62 * @SPI_MEM_DATA_OUT: data sent to the SPI memory
71 * struct spi_mem_op - describes a SPI memory operation
84 * @data.buswidth: number of IO lanes used to send/receive the data
85 * @data.dir: direction of the transfer
86 * @data.nbytes: number of data bytes to send/receive. Can be zero if the
87 * operation does not involve transferring data
88 * @data.buf.in: input buffer (must be DMA-able)
89 * @data.buf.out: output buffer (must be DMA-able)
116 } data; member
124 .data = __data, \
128 * struct spi_mem_dirmap_info - Direct mapping information
129 * @op_tmpl: operation template that should be used by the direct mapping when
131 * @offset: absolute offset this direct mapping is pointing to
132 * @length: length in byte of this direct mapping
137 * A direct mapping is only valid for one direction (read or write) and this
138 * direction is directly encoded in the ->op_tmpl.data.dir field.
147 * struct spi_mem_dirmap_desc - Direct mapping descriptor
148 * @mem: the SPI memory device this direct mapping is attached to
149 * @info: information passed at direct mapping creation time
151 * ->mem_ops->dirmap_create() or when this function returned an
155 * no matter whether the controller supports direct mapping or not
156 * @priv: field pointing to controller specific data
158 * Common part of a direct mapping descriptor. This object is created by
159 * spi_mem_dirmap_create() and controller implementation of ->create_dirmap()
160 * can create/attach direct mapping resources to the descriptor in the ->priv
171 * struct spi_mem - describes a SPI memory device
173 * @drvpriv: spi_mem_driver private data
180 * mem devices through a io-mapped region.
189 * struct spi_mem_set_drvdata() - attach driver private data to a SPI mem
192 * @data: data to attach to the memory device
194 static inline void spi_mem_set_drvdata(struct spi_mem *mem, void *data) in spi_mem_set_drvdata() argument
196 mem->drvpriv = data; in spi_mem_set_drvdata()
200 * struct spi_mem_get_drvdata() - get driver private data attached to a SPI mem
204 * Return: the data attached to the mem device.
208 return mem->drvpriv; in spi_mem_get_drvdata()
212 * struct spi_controller_mem_ops - SPI memory operations
213 * @adjust_op_size: shrink the data xfer of an operation to match controller's
224 * have a ->free_name() function.
225 * @dirmap_create: create a direct mapping descriptor that can later be used to
228 * ->dirmap_create()
229 * @dirmap_read: read data from the memory device using the direct mapping
230 * created by ->dirmap_create(). The function can return less
231 * data than requested (for example when the request is crossing
235 * @dirmap_write: write data to the memory device using the direct mapping
236 * created by ->dirmap_create(). The function can return less
237 * data than requested (for example when the request is crossing
243 * high-level interface to execute SPI memory operation, which is usually the
246 * Note on ->dirmap_{read,write}(): drivers should avoid accessing the direct
247 * mapping from the CPU because doing that can stall the CPU waiting for the
248 * SPI mem transaction to finish, and this will make real-time maintainers
250 * use DMA to access this direct mapping.
268 * struct spi_mem_driver - SPI memory driver
308 return -ENOTSUPP; in spi_controller_dma_map_mem_op_data()