]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
staging: iio: addac: adt7316: document SPI interface switching sequence
authorHungyu Lin <dennylin0707@gmail.com>
Mon, 11 May 2026 14:06:41 +0000 (14:06 +0000)
committerJonathan Cameron <jic23@kernel.org>
Sun, 31 May 2026 09:59:40 +0000 (10:59 +0100)
The device powers up in I2C mode. Switching to SPI mode
requires sending a sequence of SPI writes as described in
the datasheet.

During this sequence, the device may still be in I2C mode,
so SPI transactions may not be recognized and can fail.
Such errors are therefore ignored.

Add a comment to clarify this behavior.

Datasheet: https://www.analog.com/en/products/adt7316.html
Reviewed-by: Maxwell Doose <m32285159@gmail.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com>
Signed-off-by: Hungyu Lin <dennylin0707@gmail.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
drivers/staging/iio/addac/adt7316-spi.c

index f91325d11394da3179ec73e1643f280018d754ff..1debcc36c1afbaeb5477c87600910d6fc77b6922 100644 (file)
@@ -106,7 +106,18 @@ static int adt7316_spi_probe(struct spi_device *spi_dev)
                return -EINVAL;
        }
 
-       /* switch from default I2C protocol to SPI protocol */
+       /*
+        * The device powers up in I2C mode. Switching to SPI mode
+        * requires sending a sequence of SPI writes as described in
+        * the datasheet "ADT7316/ADT7317/ADT7318", Rev. B,
+        * in the "Serial Interface Selection" section.
+        *
+        * During this sequence, the device may still be in I2C mode,
+        * so SPI transactions may not be recognized and can fail.
+        * Such errors are therefore ignored.
+        *
+        * TL;DR: Do not change this!
+        */
        adt7316_spi_write(spi_dev, 0, 0);
        adt7316_spi_write(spi_dev, 0, 0);
        adt7316_spi_write(spi_dev, 0, 0);