[PATCH v4 10/15] iio: adc: xilinx-xadc: Add clarifying comments
From: Dileep Kumar Nagavarapu
Date: Mon Oct 05 2026 - 05:46:39 EST
Add missing comments on struct mutex and spinlock_t in struct xadc
(per checkpatch.pl), and explain the non-obvious FIFO-drain loop and
Zynq alarm-bit reordering logic.
No functional change intended.
Co-developed-by: Sai Krishna Potthuri <sai.krishna.potthuri@xxxxxxx>
Signed-off-by: Sai Krishna Potthuri <sai.krishna.potthuri@xxxxxxx>
Signed-off-by: Dileep Kumar Nagavarapu <dileepkumar.nagavarapu@xxxxxxx>
---
drivers/iio/adc/xilinx-xadc-core.c | 9 +++++++++
drivers/iio/adc/xilinx-xadc.h | 2 ++
2 files changed, 11 insertions(+)
diff --git a/drivers/iio/adc/xilinx-xadc-core.c b/drivers/iio/adc/xilinx-xadc-core.c
index 46b95883a250..47fa4d516611 100644
--- a/drivers/iio/adc/xilinx-xadc-core.c
+++ b/drivers/iio/adc/xilinx-xadc-core.c
@@ -133,6 +133,11 @@ static void xadc_zynq_drain_fifo(struct xadc *xadc)
xadc_read_reg(xadc, XADC_ZYNQ_REG_STATUS, &status);
+ /*
+ * Reading XADC_ZYNQ_REG_DFIFO pops one entry from the data FIFO.
+ * The loop therefore removes one pending entry per iteration and
+ * terminates once the hardware reports the FIFO empty.
+ */
while (!(status & XADC_ZYNQ_STATUS_DFIFOE)) {
xadc_read_reg(xadc, XADC_ZYNQ_REG_DFIFO, &tmp);
xadc_read_reg(xadc, XADC_ZYNQ_REG_STATUS, &status);
@@ -216,6 +221,10 @@ static int xadc_zynq_read_adc_reg(struct xadc *xadc, unsigned int reg, u16 *val)
static unsigned int xadc_zynq_transform_alarm(unsigned int alarm)
{
+ /*
+ * Reorder the Zynq PS-XADC alarm bits defined in UG585 to match the common
+ * XADC driver alarm layout.
+ */
return ((alarm & 0x80) >> 4) | ((alarm & 0x78) << 1) | (alarm & 0x07);
}
diff --git a/drivers/iio/adc/xilinx-xadc.h b/drivers/iio/adc/xilinx-xadc.h
index a659b7981b2f..cb48a5a38e8b 100644
--- a/drivers/iio/adc/xilinx-xadc.h
+++ b/drivers/iio/adc/xilinx-xadc.h
@@ -60,7 +60,9 @@ struct xadc {
unsigned int zynq_intmask;
struct delayed_work zynq_unmask_work;
+ /* Serializes register access and device configuration updates */
struct mutex mutex;
+ /* Protects interrupt state and FIFO operations */
spinlock_t lock;
struct completion completion;
--
2.34.1