Lines Matching +full:non +full:- +full:flash
1 /* SPDX-License-Identifier: GPL-2.0 */
21 /* Standard SPI NOR flash operations. */
203 * struct spi_nor_erase_type - Structure to describe a SPI NOR erase type
210 * @idx: Erase Type index as sorted in the Basic Flash Parameter
224 * struct spi_nor_erase_command - Used for non-uniform erases
227 * are run-length encoded.
242 * struct spi_nor_erase_region - Structure to describe a SPI NOR erase region
261 * struct spi_nor_erase_map - Structure to describe the SPI NOR erase map
265 * @uniform_region: a pre-allocated erase region for SPI NOR with a uniform
281 * struct spi_nor_locking_ops - SPI NOR locking methods
293 * struct spi_nor_otp_organization - Structure to describe the SPI NOR OTP regions
308 * struct spi_nor_otp_ops - SPI NOR OTP methods
325 * struct spi_nor_otp - SPI NOR OTP grouping structure
335 * struct spi_nor_flash_parameter - SPI NOR flash parameters and settings.
336 * Includes legacy flash parameters and settings that can be overwritten
338 * Serial Flash Discoverable Parameters (SFDP) tables.
340 * @bank_size: the flash memory bank density in bytes.
341 * @size: the total flash memory density in bytes.
342 * @writesize Minimal writable flash unit size. Defaults to 1. Set to
343 * ECC unit size for ECC-ed flashes.
344 * @page_size: the page size of the SPI NOR flash memory.
347 * when the flash operates with 4B opcodes but needs the
355 * @n_dice: number of dice in the flash memory.
374 * @priv: flash's private data.
407 * struct spi_nor_fixups - SPI NOR fixup hooks
408 * @default_init: called after default flash parameters init. Used to tweak
409 * flash parameters when information provided by the flash_info
417 * @late_init: used to initialize flash parameters that are not declared in the
434 * struct spi_nor_id - SPI NOR flash ID.
436 * @bytes: the bytes returned by the flash when issuing command 9F. Typically,
438 * two bytes are a flash part specific ID.
447 * struct flash_info - SPI NOR flash_info entry.
450 * @name: (obsolete) the name of the flash. Do not set it for new additions.
451 * @size: the size of the flash in bytes. The flash size is one
453 * whether we need SFDP parsing for a particular flash.
454 * I.e. non-legacy flash entries in flash_info will have
460 * @page_size: (optional) the flash's page size. Defaults to 256.
465 * SPI_NOR_HAS_LOCK: flash supports lock/unlock via SR
466 * SPI_NOR_HAS_TB: flash SR has Top/Bottom (TB) protect bit. Must be
470 * SPI_NOR_4BIT_BP: flash SR has 4 bit fields (BP0-3) for block
474 * SPI_NOR_SWP_IS_VOLATILE: flash has volatile software write protection bits.
475 * Usually these will power-up in a write-protected
478 * SPI_NOR_QUAD_PP: flash supports Quad Input Page Program.
479 * SPI_NOR_RWW: flash supports reads while write.
482 * Used when SFDP tables are not defined in the flash. These
486 * SPI_NOR_DUAL_READ: flash supports Dual Read.
487 * SPI_NOR_QUAD_READ: flash supports Quad Read.
488 * SPI_NOR_OCTAL_READ: flash supports Octal Read.
489 * SPI_NOR_OCTAL_DTR_READ: flash supports octal DTR Read.
490 * SPI_NOR_OCTAL_DTR_PP: flash supports Octal DTR Page Program.
493 * ideally, but can not be discovered for this particular flash
495 * defined by the flash. In case the table for this support is
501 * SPI_NOR_IO_MODE_EN_VOLATILE: flash enables the best available I/O mode
506 * @otp_org: flash's OTP organization.
563 * struct spi_nor_manufacturer - SPI NOR manufacturer object
577 * struct sfdp - SFDP data
687 * spi_nor_needs_sfdp() - returns true if SFDP parsing is used for this flash.
694 * The flash size is one property parsed by the SFDP. We use it as an in spi_nor_needs_sfdp()
695 * indicator whether we need SFDP parsing for a particular flash. I.e. in spi_nor_needs_sfdp()
696 * non-legacy flash entries in flash_info will have a size of zero iff in spi_nor_needs_sfdp()
699 return !nor->info->size; in spi_nor_needs_sfdp()