Thread (21 messages) 21 messages, 5 authors, 2020-11-28

Re: [PATCH 07/10] dt-bindings:iio:adc:maxim,max1027: Pull out to separate binding doc.

From: Jonathan Cameron <jic23@kernel.org>
Date: 2020-11-01 20:33:11
Also in: linux-iio

On Sun, 1 Nov 2020 14:25:57 +0100
Miquel Raynal [off-list ref] wrote:
Hi Jonathan,

Jonathan Cameron [off-list ref] wrote on Sat, 31 Oct 2020 18:12:39
+0000:
quoted
From: Jonathan Cameron <Jonathan.Cameron@huawei.com>

The afe/voltage-divider.yaml example uses this device with 2 properties
not provided by trivial-devices.yaml (spi-max-frequency and #io-channel-cells)

Solve that by creating a more specific binding doc.  
I don't know #io-channel-cells but spi-max-frequency is very common and
is related to the fact that this device is a SPI device (hence, a SPI
subnode), IMHO it has nothing to do with trivial-devices.yaml
description.
There may be some logic to adding spi-max-frequency to the allowed properties
of devices listed in trivial-devices.  Right now it's not there so you will
get warnings if you check a dts file that has it in for bindings described
by that file.  I've been lazy here, but ideally we also want to document
a maximum for this property.  In this case, it should be 10000000 (10MHz).
I'll add that to this binding either in v2, or whilst applying.

The io-channel-cells, is specific to devices proving analog channel measurement
services that other bindings can make use of.  (typically ADCs and DACs).
Currently only applies to IIO bindings for ADCs and DACs.
It specifies how many parameters are needed as part of the phandle to identify
a channel.

Given most of trivial devices don't fall into that category, we need to do
a separate binding where it's known to be used anyway.

As a side note.. I just noticed these devices have reference voltage pins.
At somepoint (not necessarily now) we should look at adding appropriate regulator
bindings.

Jonathan
quoted
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Cc: Miquel Raynal <miquel.raynal@bootlin.com>
Cc: Philippe Reynes <redacted>
---
 .../bindings/iio/adc/maxim,max1027.yaml       | 64 +++++++++++++++++++
 .../devicetree/bindings/trivial-devices.yaml  | 12 ----
 2 files changed, 64 insertions(+), 12 deletions(-)
diff --git a/Documentation/devicetree/bindings/iio/adc/maxim,max1027.yaml b/Documentation/devicetree/bindings/iio/adc/maxim,max1027.yaml
new file mode 100644
index 000000000000..09e853c50c76
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/adc/maxim,max1027.yaml
@@ -0,0 +1,64 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/adc/maxim,max1027.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Maxim MAX1027 and similar ADCs
+
+maintainers:
+  - Miquel Raynal <miquel.raynal@bootlin.com>
+  - Philippe Reynes <tremyfr@yahoo.fr>
+
+description: |
+  300ks/s SPI ADCs with temperature sensors.
+
+properties:
+  compatible:
+    enum:
+        # 10-bit 8 channels
+      - maxim,max1027
+        # 10-bit 12 channels
+      - maxim,max1029
+        # 10-bit 16 channels
+      - maxim,max1031
+         # 12-bit 8 channels
+      - maxim,max1227
+         # 12-bit 12 channels
+      - maxim,max1229
+         # 12-bit 16 channels
+      - maxim,max1231
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  spi-max-frequency: true
+
+  "#io-channel-cells":
+    const: 1
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    spi {
+       #address-cells = <1>;
+       #size-cells = <0>;
+        maxadc: adc@0 {
+            compatible = "maxim,max1027";
+            reg = <0>;
+            #io-channel-cells = <1>;
+            interrupt-parent = <&gpio5>;
+            interrupts = <15 IRQ_TYPE_EDGE_RISING>;
+            spi-max-frequency = <1000000>;
+        };
+    };
+...
diff --git a/Documentation/devicetree/bindings/trivial-devices.yaml b/Documentation/devicetree/bindings/trivial-devices.yaml
index d154ea97e30d..185e09e61e16 100644
--- a/Documentation/devicetree/bindings/trivial-devices.yaml
+++ b/Documentation/devicetree/bindings/trivial-devices.yaml
@@ -108,18 +108,6 @@ properties:
           - isil,isl68137
             # 5 Bit Programmable, Pulse-Width Modulator
           - maxim,ds1050
-            # 10-bit 8 channels 300ks/s SPI ADC with temperature sensor
-          - maxim,max1027
-            # 10-bit 12 channels 300ks/s SPI ADC with temperature sensor
-          - maxim,max1029
-            # 10-bit 16 channels 300ks/s SPI ADC with temperature sensor
-          - maxim,max1031
-            # 12-bit 8 channels 300ks/s SPI ADC with temperature sensor
-          - maxim,max1227
-            # 12-bit 12 channels 300ks/s SPI ADC with temperature sensor
-          - maxim,max1229
-            # 12-bit 16 channels 300ks/s SPI ADC with temperature sensor
-          - maxim,max1231
             # Low-Power, 4-/12-Channel, 2-Wire Serial, 12-Bit ADCs
           - maxim,max1237
             # PECI-to-I2C translator for PECI-to-SMBus/I2C protocol conversion  
Thanks,
Miquèl
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help