stm32h7_spi_...sfer_one_irq(9)
π stm32h7_spi_transfer_one_irq β bestie edition
okay so this is a page straight out of the Kernel API Manual (yes, that manual, the big one), and it's all about one tiny but iconic function that moves a single SPI transfer along using interrupts. no DMA, no polling, just vibes and IRQs. let's get into it π«Ά
β¨ NAME β¨
stm32h7_spi_transfer_one_irq β transfers a single spi_transfer using interrupts, and honestly? it does exactly what it says on the tin. no cap.
πΈ SYNOPSIS πΈ
int stm32h7_spi_transfer_one_irq (struct stm32_spi *spi );
that's the whole signature, bestie. one argument, one int coming back. keep the spacing exactly like that, she's particular π
π ARGUMENTS π
spiβ a pointer to the spi controller data structure. like, the main-character struct of the whole controller. you hand it over and the function knows what to do β¨
π¦ DESCRIPTION π¦
okay so here's the entire vibe check: it must return 0 if the transfer is finished, or 1 if the transfer is still in progress. that's it. that's the contract. nothing else. no extra lore.
so like β 0 = we're done here, 1 = still cooking π₯. that's the entire personality.
ngl this is one of those "the whole manpage is one sentence" situations and honestly? respect. she said what she said.
π SEE ALSO π
buckle up because this list is long, and every single one of these is part of the extended universe iykyk π
first up, the source file itself:
- kernel file
./drivers/spi/spi-stm32.c
and then the structs, the icons, the legends:
struct stm32_spi_reg(9)struct stm32_spi_regspec(9)struct stm32_spi_cfg(9)struct stm32_spi(9)
the fifo + bpw mask girlies:
stm32h7_spi_get_fifo_size(9)stm32f4_spi_get_bpw_mask(9)stm32f7_spi_get_bpw_mask(9)stm32h7_spi_get_bpw_mask(9)stm32mp25_spi_get_bpw_mask(9)
the prepare + write set:
stm32_spi_prepare_mbr(9)stm32h7_spi_prepare_fthlv(9)stm32f4_spi_write_tx(9)stm32f7_spi_write_tx(9)stm32h7_spi_write_txfifo(9)
the read squad:
enable/disable era:
dma + irq besties:
stm32_spi_can_dma(9)stm32fx_spi_irq_event(9)stm32fx_spi_irq_thread(9)stm32h7_spi_irq_thread(9)stm32_spi_prepare_msg(9)stm32fx_spi_dma_tx_cb(9)stm32_spi_dma_rx_cb(9)stm32_spi_dma_config(9)
the sibling transfer functions (family reunion π):
stm32fx_spi_transfer_one_irq(9)stm32h7_spi_transfer_one_poll(9)stm32fx_spi_transfer_one_dma_start(9)stm32f7_spi_transfer_one_dma_start(9)stm32h7_spi_transfer_one_dma_start(9)stm32_spi_prepare_rx_dma_mdma_chaining(9)stm32_spi_transfer_one_dma(9)
bits-per-word + mode crew:
stm32f4_spi_set_bpw(9)stm32f7_spi_set_bpw(9)stm32h7_spi_set_bpw(9)stm32_spi_set_mbr(9)stm32_spi_communication_type(9)stm32fx_spi_set_mode(9)stm32h7_spi_set_mode(9)
and the final boss row:
stm32h7_spi_data_idleness(9)stm32h7_spi_number_of_data(9)stm32_spi_transfer_one_setup(9)stm32_spi_can_poll(9)stm32_spi_transfer_one(9)stm32_spi_unprepare_msg(9)stm32fx_spi_config(9)stm32h7_spi_config(9)
like, that's the whole friend group right there. she knows everyone π
lowkey: if you're reading this because you're debugging an SPI transfer that won't finish, bestie i'm sending you strength π
πΈ okay that's the page! source lives under ./drivers/spi, it's part of the Kernel API Manual, and this edition is dated October 2026. mwah, go forth and slay your interrupts πβ¨π
π¦ 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