nand_choose_...rface_config(9)
π NAME π
nand_choose_interface_config β find the best data interface and timings β¨
okay so real quick, bestie: this page lives in the Kernel API Manual, and the star of the show is nand_choose_interface_config. it's giving "matchmaker, but for NAND timings." π
πΈ SYNOPSIS πΈ
int nand_choose_interface_config (struct nand_chip *chip );
π¦ ARGUMENTS π¦
chipβ the NAND chip. yeah. that one. your fave. π
β¨ DESCRIPTION β¨
so what does it actually do, you ask? it goes and finds the best data interface and NAND timings that are supported by both the chip and the driver. like, it's out here doing compatibility math so you don't have to. π§
and then β plot twist β it eventually lets the NAND manufacturer driver propose its own set of timings. so the driver gets a say too. main character energy from everyone involved, honestly.
after this function runs, nand_chip->interface_config is initialized with the best timing mode available. cute, clean, done. π
and the return value? 0 for success, or a negative error code otherwise. classic. no cap.
lowkey important: this isnand_choose_interface_config, the function. the header up top got clipped tonand_choose_...rface_config(9)in the man page title, so if you were squinting at that thinking "is that a typo??" β nope, it's just the long name doing its thing. iykyk π
π₯ SEE ALSO π₯
first up, the source of truth itself, the kernel file ./drivers/mtd/nand/raw/nand_base.c. go read it, it's iconic:
then, the whole extended family β every single one of these, fr fr:
nand_extract_bits(9), nand_select_target(9), nand_deselect_target(9), nand_release_device(9), nand_bbm_get_next_page(9), nand_block_bad(9), nand_region_is_secured(9), nand_get_device(9), nand_check_wp(9), nand_fill_oob(9), nand_do_write_oob(9), nand_default_block_markbad(9), nand_markbad_bbm(9), nand_block_markbad_lowlevel(9), nand_block_isreserved(9), nand_block_checkbad(9), nand_soft_waitrdy(9), nand_gpio_waitrdy(9), panic_nand_wait(9), nand_reset_interface(9), nand_setup_interface(9), nand_choose_best_sdr_timings(9), nand_choose_best_nvddr_timings(9), nand_choose_best_timings(9), nand_fill_column_cycles(9), nand_read_page_op(9), nand_read_param_page_op(9), nand_change_read_column_op(9), nand_read_oob_op(9), nand_prog_page_begin_op(9), nand_prog_page_end_op(9), nand_prog_page_op(9), nand_change_write_column_op(9), nand_readid_op(9), nand_status_op(9), nand_exit_status_op(9), nand_erase_op(9), nand_set_features_op(9), nand_get_features_op(9), nand_reset_op(9), nand_read_data_op(9), nand_write_data_op(9), struct nand_op_parser_ctx(9), nand_op_parser_must_split_instr(9), nand_op_parser_match_pat(9), nand_op_parser_exec_op(9), nand_subop_get_addr_start_off(9), nand_subop_get_num_addr_cyc(9), nand_subop_get_data_start_off(9), nand_subop_get_data_len(9), nand_reset(9), nand_get_features(9), nand_set_features(9), nand_read_page_raw_notsupp(9), nand_read_page_raw(9), nand_monolithic_read_page_raw(9), nand_read_page_raw_syndrome(9), nand_read_page_swecc(9), nand_read_subpage(9), nand_read_page_hwecc(9), nand_read_page_hwecc_oob_first(9), nand_read_page_syndrome(9), nand_transfer_oob(9), nand_setup_read_retry(9), nand_do_read_ops(9), nand_read_oob_std(9), nand_read_oob_syndrome(9), nand_write_oob_std(9), nand_write_oob_syndrome(9), nand_do_read_oob(9), nand_read_oob(9), nand_write_page_raw_notsupp(9), nand_write_page_raw(9), nand_monolithic_write_page_raw(9), nand_write_page_raw_syndrome(9), nand_write_page_swecc(9), nand_write_page_hwecc(9), nand_write_subpage_hwecc(9), nand_write_page_syndrome(9), nand_write_page(9), nand_do_write_ops(9), panic_nand_write(9), nand_write_oob(9), nand_erase(9), nand_erase_nand(9), nand_sync(9), nand_block_isbad(9), nand_block_markbad(9), nand_suspend(9), nand_resume(9), nand_shutdown(9), nand_lock(9), nand_unlock(9), rawnand_dt_parse_gpio_cs(9), nand_scan_ident(9), nand_check_ecc_caps(9), nand_match_ecc_req(9), nand_maximize_ecc(9), nand_ecc_choose_conf(9), nand_scan_tail(9), nand_scan_with_ids(9), nand_cleanup(9)
like i said. the whole family. ππ
and that's the whole page, bestie β nothing skipped, nothing dropped, every (9) accounted for. π«Ά
source: ./drivers/mtd/nand/raw Β· dated: October 2026 β mwah, go touch some NAND, ily π
β¨πΈ
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms