mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH 0/5] iio: dac: ad5758: fix DMA alignment, raw range, offset and 4-20 mA
@ 2026-09-18 12:20 Arka Mondal
  2026-09-18 12:20 ` [PATCH 1/5] iio: dac: ad5758: Fix alignment for DMA safety Arka Mondal
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Arka Mondal @ 2026-09-18 12:20 UTC (permalink / raw)
  To: Jonathan Cameron, Nuno Sá, Michael Hennerich
  Cc: David Lechner, Andy Shevchenko, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, linux, linux-iio, devicetree, linux-kernel,
	arkamondalofficial, Arka Mondal

The first attempt to send this series on 2026-09-18 was rejected by
the kernel.org mail servers, so it did not reach the lists. The patches
are unchanged.

This series fixes four bugs in the AD5758 driver, all present since
commit 28d1a7ac2a0d ("iio: dac: Add AD5758 support"). The last bug
takes two patches, one for the binding and one for the driver.

Patch 1 marks the SPI receive buffer __aligned(IIO_DMA_MINALIGN), so
it no longer shares a cacheline with other driver state. The 2022
conversion of IIO drivers to IIO_DMA_MINALIGN only changed existing
____cacheline_aligned markings, and this driver had none.

Patch 2 rejects raw values outside 0 to U16_MAX. Writing -1 currently
gives full-scale output.

Patch 3 fixes the offset for every range that does not start at 0.
The +-20 mA range reports -32 instead of -32768.

Patches 4 and 5 fix the 4 mA to 20 mA range. The binding and the
driver give it as <4 24000>, which is 4 uA to 24 mA. The data sheet
(Rev. B, Table 32) and the original text binding say range code 1010
is 4 mA to 20 mA. The old value is still accepted: the binding marks
it deprecated and the driver maps it to the corrected range, so
existing device trees keep working.

Compile tested only; no relevant hardware available. The binding was
checked with make dt_binding_check and with test device trees:
<4000 20000> and <4 24000> are accepted; <4 20000> is rejected.

Arka Mondal (5):
  iio: dac: ad5758: Fix alignment for DMA safety
  iio: dac: ad5758: Reject out-of-range raw values
  iio: dac: ad5758: Fix the offset calculation
  dt-bindings: iio: dac: adi,ad5758: Fix the 4 mA to 20 mA current range
  iio: dac: ad5758: Fix the 4 mA to 20 mA current range

 .../bindings/iio/dac/adi,ad5758.yaml           |  4 ++++
 drivers/iio/dac/ad5758.c                       | 18 ++++++++++++++----
 2 files changed, 18 insertions(+), 4 deletions(-)


base-commit: 08df884136f1c1197bab2a27814404fd329d9aac
-- 
2.55.0


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

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

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-18 12:20 [PATCH 0/5] iio: dac: ad5758: fix DMA alignment, raw range, offset and 4-20 mA Arka Mondal
2026-09-18 12:20 ` [PATCH 1/5] iio: dac: ad5758: Fix alignment for DMA safety Arka Mondal
2026-09-18 12:20 ` [PATCH 2/5] iio: dac: ad5758: Reject out-of-range raw values Arka Mondal
2026-09-18 12:20 ` [PATCH 3/5] iio: dac: ad5758: Fix the offset calculation Arka Mondal
2026-09-18 12:20 ` [PATCH 4/5] dt-bindings: iio: dac: adi,ad5758: Fix the 4 mA to 20 mA current range Arka Mondal
2026-09-18 12:20 ` [PATCH 5/5] iio: dac: ad5758: " Arka Mondal
2026-09-18 15:22 ` [PATCH 0/5] iio: dac: ad5758: fix DMA alignment, raw range, offset and 4-20 mA Nuno Sá

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®