spi_nor_spimem_write_data(9)
π spi_nor_spimem_write_data β the Kernel API Manual β¨
okay so bestie, welcome to the spi_nor_spimem_write_data(9) page π
you're literally about to learn how to write data to flash memory via spi-mem. yes it's a kernel function. yes it's iconic. let's go π«Ά
πΈ NAME πΈ
spi_nor_spimem_write_data β write data to flash memory via spi-mem β¨
π SYNOPSIS π
ssize_t spi_nor_spimem_write_data (struct spi_nor *nor , loff_t to ,
size_t len , const u8 *buf );
like, that's the whole vibe check right there π
β¨ ARGUMENTS β¨
norβ pointer tostruct spi_nor, the actual flash chip we're talking to π§toβ offset to write to, aka where the magic lands πlenβ number of bytes to write, be delulu about the size and it goes wrong fr frbufβ pointer to src buffer, your data lives here bestie π
π₯ RETURN π₯
number of bytes written successfully, -errno otherwise π (yes, negative errno, that's the plot twist)
π SEE ALSO π
Kernel file ./drivers/mtd/spi-nor/core.c β and honestly the whole friend group is here, no cap:
spi_nor_get_cmd_ext(9)spi_nor_spimem_setup_op(9)spi_nor_spimem_bounce(9)spi_nor_spimem_exec_op(9)spi_nor_spimem_read_data(9)spi_nor_read_data(9)spi_nor_write_data(9)spi_nor_read_any_reg(9)spi_nor_write_any_volatile_reg(9)spi_nor_write_enable(9)spi_nor_write_disable(9)spi_nor_read_id(9)spi_nor_read_sr(9)spi_nor_read_cr(9)spi_nor_set_4byte_addr_mode_en4b_ex4b(9)spi_nor_set_4byte_addr_mode_wren_en4b_ex4b(9)spi_nor_set_4byte_addr_mode_brwr(9)spi_nor_sr_ready(9)spi_nor_use_parallel_locking(9)spi_nor_ready(9)spi_nor_wait_till_ready_with_timeout(9)spi_nor_wait_till_ready(9)spi_nor_global_block_unlock(9)spi_nor_write_sr(9)spi_nor_write_sr1_and_check(9)spi_nor_write_16bit_sr_and_check(9)spi_nor_write_16bit_cr_and_check(9)spi_nor_write_16bit_sr_cr_and_check(9)spi_nor_write_sr_and_check(9)spi_nor_write_sr_cr_and_check(9)spi_nor_write_sr2(9)spi_nor_read_sr2(9)spi_nor_erase_die(9)spi_nor_div_by_erase_size(9)spi_nor_find_best_erase_type(9)spi_nor_init_erase_cmd(9)spi_nor_destroy_erase_cmd_list(9)spi_nor_init_erase_cmd_list(9)spi_nor_erase_multi_sectors(9)spi_nor_sr1_bit6_quad_enable(9)spi_nor_sr2_bit1_quad_enable(9)spi_nor_sr2_bit7_quad_enable(9)spi_nor_spimem_check_read_pp_op(9)spi_nor_spimem_check_readop(9)spi_nor_spimem_check_pp(9)spi_nor_spimem_adjust_hwcaps(9)spi_nor_set_erase_type(9)spi_nor_mask_erase_type(9)spi_nor_init_uniform_erase_map(9)spi_nor_select_uniform_erase(9)spi_nor_manufacturer_init_params(9)spi_nor_no_sfdp_init_params(9)spi_nor_init_flags(9)spi_nor_init_fixup_flags(9)spi_nor_late_init_params(9)spi_nor_sfdp_init_params_deprecated(9)spi_nor_init_params_deprecated(9)spi_nor_init_default_params(9)spi_nor_init_params(9)spi_nor_quad_enable(9)spi_nor_set_4byte_addr_mode(9)spi_nor_soft_reset(9)
and that's the page bestie π it lives in ./drivers/mtd/spi-nor, dated October 2026, and it's literally part of the Kernel API Manual. slay, go write some flash π¦β¨
π¦ 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