All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/9] iio: adc: rzt2h: add DMA buffer support
@ 2026-09-10  8:54 Cosmin Tanislav
  2026-09-10  8:54 ` [PATCH v2 1/9] iio: adc: rzt2h: remove unused struct rzt2h_adc::max_channels Cosmin Tanislav
                   ` (9 more replies)
  0 siblings, 10 replies; 16+ messages in thread
From: Cosmin Tanislav @ 2026-09-10  8:54 UTC (permalink / raw)
  To: Cosmin Tanislav, Jonathan Cameron, David Lechner, Nuno Sá,
	Andy Shevchenko, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Geert Uytterhoeven, Magnus Damm
  Cc: linux-iio, linux-renesas-soc, devicetree, linux-kernel

Add DMA-based buffered capture to the Renesas RZ/T2H and RZ/N2H ADC
driver and the necessary device-tree properties. Also add a per-channel
sampling-frequency control.

Capture uses a cyclic DMA transfer into a non-coherent buffer. The DMA
controller has no per-descriptor scatter-gather and each transfer needs
to be of power-of-two width, so the transfer covers the smallest
power-of-two-aligned group of channel registers spanning the enabled
channels, and a consumer kthread compacts each completed period down to
the enabled channels before handing it to the IIO core.

V2:
 * advance period index on backlog overflow
 * add a comment describing the logic for dropping already overwritten
   periods
 * build dma_slave_config as a compound literal
 * use the local dev instead of adc->dev in rzt2h_adc_setup_dma()
 * sync the DMA buffer to device immediately after allocation to handle
   the zero-fill done by the CPU
 * extend the single read completion timeout to maximum possible
   conversion time + 1 jiffy
 * pick up Conor's Acked-by

Cosmin Tanislav (9):
  iio: adc: rzt2h: remove unused struct rzt2h_adc::max_channels
  iio: adc: rzt2h: store IRQ in private state
  iio: adc: rzt2h: store the physical address in private state
  iio: adc: rzt2h: claim direct mode on single reads
  iio: adc: rzt2h: implement DMA buffer support
  iio: adc: rzt2h: expose sampling frequency
  dt-bindings: iio: adc: renesas,r9a09g077-adc: document DMA support
  arm64: dts: renesas: r9a09g077: Wire up DMA support for ADC
  arm64: dts: renesas: r9a09g087: Wire up DMA support for ADC

 .../iio/adc/renesas,r9a09g077-adc.yaml        |  12 +
 arch/arm64/boot/dts/renesas/r9a09g077.dtsi    |   6 +
 arch/arm64/boot/dts/renesas/r9a09g087.dtsi    |   6 +
 drivers/iio/adc/Kconfig                       |   2 +
 drivers/iio/adc/rzt2h_adc.c                   | 499 +++++++++++++++++-
 5 files changed, 509 insertions(+), 16 deletions(-)

-- 
2.55.0


^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2026-09-13 21:20 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-10  8:54 [PATCH v2 0/9] iio: adc: rzt2h: add DMA buffer support Cosmin Tanislav
2026-09-10  8:54 ` [PATCH v2 1/9] iio: adc: rzt2h: remove unused struct rzt2h_adc::max_channels Cosmin Tanislav
2026-09-10  8:54 ` [PATCH v2 2/9] iio: adc: rzt2h: store IRQ in private state Cosmin Tanislav
2026-09-10  8:54 ` [PATCH v2 3/9] iio: adc: rzt2h: store the physical address " Cosmin Tanislav
2026-09-10  8:54 ` [PATCH v2 4/9] iio: adc: rzt2h: claim direct mode on single reads Cosmin Tanislav
2026-09-10  8:54 ` [PATCH v2 5/9] iio: adc: rzt2h: implement DMA buffer support Cosmin Tanislav
2026-09-13 21:12   ` Jonathan Cameron
2026-09-10  8:54 ` [PATCH v2 6/9] iio: adc: rzt2h: expose sampling frequency Cosmin Tanislav
2026-09-10  9:11   ` sashiko-bot
2026-09-13 21:12   ` Jonathan Cameron
2026-09-13 21:20     ` Cosmin-Gabriel Tanislav
2026-09-10  8:54 ` [PATCH v2 7/9] dt-bindings: iio: adc: renesas,r9a09g077-adc: document DMA support Cosmin Tanislav
2026-09-10  9:14   ` sashiko-bot
2026-09-10  8:54 ` [PATCH v2 8/9] arm64: dts: renesas: r9a09g077: Wire up DMA support for ADC Cosmin Tanislav
2026-09-10  8:54 ` [PATCH v2 9/9] arm64: dts: renesas: r9a09g087: " Cosmin Tanislav
2026-09-13 21:12 ` [PATCH v2 0/9] iio: adc: rzt2h: add DMA buffer support Jonathan Cameron

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.