nand_prog_page_op(9)
β¨ nand_prog_page_op(9) β¨
okay so this is from the Kernel API Manual, and bestie, we're about to learn how to shove a whole page of data into a NAND chip. it's giving "one function, zero drama." π
πΈ NAME πΈ
nand_prog_page_op β do a full PROG PAGE operation. yes, the whole thing. one call. iconic. π
π¦ SYNOPSIS π¦
int nand_prog_page_op (struct nand_chip *chip , unsigned int page ,
unsigned int offset_in_page , const void *buf , unsigned int len );
π ARGUMENTS π
chipβ the NAND chip. the main character. your whole world for the duration of this call. πpageβ the page you're writing to. pick one. wisely. πoffset_in_pageβ the offset within that page, because sometimes you don't start at zero and that's fine, we don't judge. β¨bufβ the buffer holding the data you're writing into the page. that's your payload, bestie. π«Άlenβ length of the buffer. how much ofbufis actually going in. don't lie about it. π
π₯ DESCRIPTION π₯
so nand_prog_page_op issues a full PROG PAGE operation. the entire thing. not a begin, not an end, the whole full send. π
π¨ heads up, this is the important part: this function does not select/unselect the CS line. so don't come for it about chip select β that's literally not its job. handle your own CS, bestie. no cap. π
and the returns? it returns 0 on success, or a negative error code otherwise. lowkey the cleanest contract ever. π§
π SEE ALSO π
Kernel file ./drivers/mtd/nand/raw/nand_base.c β go read it, it's the whole vibe. π
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_choose_interface_config(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_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)
that's the whole page, bestie. go write some pages. π¦π
this lil drop came straight out of ./drivers/mtd/nand/raw, timestamped October 2026 β periodt, you're welcome β¨π
π¦ 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