spi_nor_soft_reset(9)
β¨ spi_nor_soft_reset(9) β¨
okay so bestie, welcome to the Kernel API Manual π this one's a lil function that hits the factory-reset button on your flash chip, and honestly? she's iconic for it π
πΈ NAME πΈ
spi_nor_soft_reset β perform a software reset π«Ά
β SYNOPSIS β
void spi_nor_soft_reset (struct spi_nor *nor );
π ARGUMENTS π
norβ pointer tostruct spi_norπ that's it, that's the whole input, she takes one (1) pointer and she's off
π DESCRIPTION π
So what she does is run a "Soft Reset and Enter Default Protocol Mode" sequence, which resets the device allll the way back to its power-on-reset state β¨ like a little factory reset moment, no cap. Which is genuinely useful when your software has been out here making changes to device (volatile) registers and needs to reset it before shutting down β for example π
β οΈ okay important, real talk: not every flash supports this sequence. The same set of opcodes might be used for some other operation on a flash that doesn't support this. So don't just assume, bestie π
You can find out whether this sequence is supported via SFDP in the BFPT table π
π¦ RETURN π¦
0 on success, -errno otherwise π (so like, zero means slay, negative means the kernel is telling you exactly what went wrong, iykyk)
π SEE ALSO π
Kernel file ./drivers/mtd/spi-nor/core.c β and the whole girlies of the spi_nor cinematic universe, all (9):
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_spimem_write_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)
and that's the whole page, bestie π go forth and reset things responsibly, mwah π§
shoutout to ./drivers/mtd/spi-nor for hosting this masterpiece, and October 2026 for the timestamp β see you in the docs, periodt π
β¨
π¦ 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