STRUCT GPMI_NFC_HARDWARE_TIMING(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸŽ€ struct gpmi_nfc_hardware_timing(9) πŸŽ€

okay bestie, welcome to the Kernel API Manual β€” this one's a struct page, it's giving "backstage pass to the NAND controller" energy, and honestly? kinda iconic. let's get into it πŸ’…


✨ NAME ✨

struct gpmi_nfc_hardware_timing β€” the GPMI hardware timing parameters, periodt. this is literally the little bundle of numbers that tells your hardware how to vibe-check its own clock 🌸


πŸ¦‹ SYNOPSIS πŸ¦‹

struct gpmi_nfc_hardware_timing {
    bool must_apply_timings;
    unsigned long int clk_rate;
    u32 timing0;
    u32 timing1;
    u32 ctrl1n;
};

look at her. five fields. main character energy fr fr πŸ”₯


πŸ‘‘ Members πŸ‘‘

  • must_apply_timings β€” whether the controller timings have already been applied or not. lowkey a little flag that keeps track of itself. and ngl, it's useful only while there is support for only one chip select β€” so like, one-chip-select era only, iykyk πŸ™ˆ
  • clk_rate β€” the clock rate that must be used to derive the following parameters. so basically the mother of the next few values, everything downstream gets calculated from her πŸ’–
  • timing0 β€” the HW_GPMI_TIMING0 register. that's it, that's the whole vibe ✨
  • timing1 β€” the HW_GPMI_TIMING1 register. yes bestie, there's a second one, and yes it's numbered correctly πŸŽ€
  • ctrl1n β€” the HW_GPMI_CTRL1n register. note the little n, she's fancy 🌈

🌸 SEE ALSO 🌸

  • the kernel file ./drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.h β€” go read the source, it's where she lives 🫢
  • struct bch_geometry(9)
  • struct boot_rom_geometry(9)

πŸ’€ reminder bestie: this is a struct definition page, so there's no options, no exit statuses, no signals β€” just fields. don't go looking for extra lore, it's genuinely not here πŸ™ˆ

and that's the page!! sourced straight from ./drivers/mtd/nand/raw/gpmi-nand, dated October 2026, in the Kernel API Manual β€” slay, ate, no cap, go forth and apply those timings πŸ’œβœ¨πŸŽ€

πŸ“¦ where this page comes from