STRUCT NAND_OPERATION(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸŽ€ struct nand_operation(9) β€” NAND operation descriptor πŸŽ€

Okay bestie, welcome to the struct nand_operation(9) page in the Kernel API Manual. We’re doing the NAND operation descriptor today, and it’s lowkey iconic ✨.


πŸ’– NAME πŸ’–

struct nand_operation β€” NAND operation descriptor. That’s the whole name-and-one-liner situation 🫢.

πŸ¦‹ SYNOPSIS πŸ¦‹

Here’s the shape of the struct, no cap:

struct nand_operation {
    unsigned int cs;
    bool deassert_wp;
    const struct nand_op_instr *instrs;
    unsigned int ninstrs;
 };

🌸 Members 🌸

  • cs β€” the CS line to select for this NAND operation.
  • deassert_wp β€” set to true when the operation requires the WP pin to be de-asserted (ERASE, PROG, ...).
  • instrs β€” array of instructions to execute.
  • ninstrs β€” length of the instrs array.

🌈 Description 🌈

This is the actual operation structure that will be passed to chip->exec_op. That’s the tea β˜• β€” it’s the real descriptor doing the rounds.

πŸ”₯ SEE ALSO πŸ”₯

Kernel file: ./include/linux/mtd/rawnand.h β€” and here’s the whole friend group, because we don’t leave anyone out:

  • struct nand_parameters(9)
  • struct nand_id(9)
  • struct nand_ecc_step_info(9)
  • struct nand_ecc_caps(9)
  • struct nand_ecc_ctrl(9)
  • struct nand_sdr_timings(9)
  • struct nand_nvddr_timings(9)
  • enum nand_interface_type(9)
  • struct nand_interface_config(9)
  • nand_interface_is_sdr(9)
  • nand_interface_is_nvddr(9)
  • nand_get_sdr_timings(9)
  • nand_get_nvddr_timings(9)
  • struct nand_op_cmd_instr(9)
  • struct nand_op_addr_instr(9)
  • struct nand_op_data_instr(9)
  • struct nand_op_waitrdy_instr(9)
  • enum nand_op_instr_type(9)
  • struct nand_op_instr(9)
  • struct nand_subop(9)
  • struct nand_op_parser_addr_constraints(9)
  • struct nand_op_parser_data_constraints(9)
  • struct nand_op_parser_pattern_elem(9)
  • struct nand_op_parser_pattern(9)
  • struct nand_op_parser(9)
  • struct nand_controller_ops(9)
  • struct nand_controller(9)
  • struct nand_legacy(9)
  • struct nand_chip_ops(9)
  • struct nand_manufacturer(9)
  • struct nand_secure_region(9)
  • struct nand_chip(9)
  • nand_get_interface_config(9)
  • struct nand_flash_dev(9)
  • nand_opcode_8bits(9)
  • nand_get_data_buf(9)

Okay bye bestie! The footer source/version line was ./include/linux/mtd, and the date on it is October 2026. Go read some kernel headers, slay πŸ’…πŸ’œ.

πŸ“¦ where this page comes from