Lines Matching +full:spi +full:- +full:device

1 /* SPDX-License-Identifier: GPL-2.0 */
3 * Copyright (c) 2016-2017 Micron Technology, Inc.
14 #include <linux/device.h>
17 #include <linux/spi/spi.h>
18 #include <linux/spi/spi-mem.h>
21 #include <spi.h>
22 #include <spi-mem.h>
27 * Standard SPI NAND flash operations
151 * Standard SPI NAND flash commands
182 * struct spinand_id - SPI NAND id structure
199 * struct spinand_devid - SPI NAND device id structure
200 * @id: device id of current chip
201 * @len: number of bytes in device id
207 * read_id opcode + 1-byte address.
218 * struct manufacurer_ops - SPI NAND manufacturer specific operations
219 * @init: initialize a SPI NAND device
220 * @cleanup: cleanup a SPI NAND device
222 * Each SPI NAND manufacturer driver should implement this interface so that
231 * struct spinand_manufacturer - SPI NAND manufacturer instance
234 * @devid_len: number of bytes in device ID
235 * @chips: supported SPI NANDs under current manufacturer
236 * @nchips: number of SPI NANDs available in chips array
247 /* SPI NAND manufacturers */
269 * struct spinand_op_variants - SPI NAND operation variants
273 * Some operations like read-from-cache/write-to-cache have several variants
276 * by a chip and let the core pick the best one based on the SPI mem controller
292 * spinand_ecc_info - description of the on-die ECC implemented by a SPI NAND
296 * -EBADMSG if there are uncorrectable errors. I can also return
299 * @ooblayout: the OOB layout used by the on-die ECC implementation
309 * struct spinand_info - Structure used to describe SPI NAND chips
311 * @devid: device ID
312 * @flags: OR-ing of the SPINAND_XXX flags
315 * @eccinfo: on-die ECC info
317 * @op_variants.read_cache: variants of the read-cache operation
318 * @op_variants.write_cache: variants of the write-cache operation
319 * @op_variants.update_cache: variants of the update-cache operation
321 * multi-die chips
323 * Each SPI NAND manufacturer driver should have a spinand_info table
378 * struct spinand_device - SPI NAND device instance
379 * @base: NAND device instance
380 * @slave: pointer to the SPI slave object
384 * @op_templates: various SPI mem op templates
392 * @eccinfo: on-die ECC information
397 * because the spi-mem interface explicitly requests that buffers
398 * passed in spi_mem_op be DMA-able, so we can't based the bufs on
400 * @manufacturer: SPI NAND manufacturer information
435 * mtd_to_spinand() - Get the SPI NAND device attached to an MTD instance
438 * Return: the SPI NAND device attached to @mtd.
446 * spinand_to_mtd() - Get the MTD device embedded in a SPI NAND device
447 * @spinand: SPI NAND device
449 * Return: the MTD device embedded in @spinand.
453 return nanddev_to_mtd(&spinand->base); in spinand_to_mtd()
457 * nand_to_spinand() - Get the SPI NAND device embedding an NAND object
460 * Return: the SPI NAND device embedding @nand.
468 * spinand_to_nand() - Get the NAND device embedded in a SPI NAND object
469 * @spinand: SPI NAND device
471 * Return: the NAND device embedded in @spinand.
476 return &spinand->base; in spinand_to_nand()
480 * spinand_set_of_node - Attach a DT node to a SPI NAND device
481 * @spinand: SPI NAND device
484 * Attach a DT node to a SPI NAND device.
489 nanddev_set_of_node(&spinand->base, np); in spinand_set_of_node()