[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250818035053.32626-2-bcollins@watter.com>
Date: Sun, 17 Aug 2025 23:50:49 -0400
From: Ben Collins <bcollins@...ter.com>
To: Jonathan Cameron <jic23@...nel.org>,
David Lechner <dlechner@...libre.com>,
Nuno Sá <nuno.sa@...log.com>,
Andy Shevchenko <andy@...nel.org>,
Rob Herring <robh@...nel.org>,
Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>,
Andrew Hepp <andrew.hepp@...pp.dev>
Cc: Ben Collins <bcollins@...ter.com>,
linux-iio@...r.kernel.org,
devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: [PATCH v4 1/5] dt-bindings: iio: mcp9600: Add microchip,mcp9601 and add constraints
The mcp9600 driver supports the mcp9601 chip, but complains about not
recognizing the device id on probe. A separate patch...
iio: mcp9600: Recognize chip id for mcp9601
...addresses this. This patch updates the dt-bindings for this chip to
reflect the change to allow explicitly setting microchip,mcp9601 as
the expected chip type.
The mcp9601 also supports features not found on the mcp9600, so this
will also allow the driver to differentiate the support of these
features.
In addition, the thermocouple-type needs a default of 3 (k-type). The
driver doesn't support this, yet. A later patch in this series adds it:
iio: mcp9600: Add support for thermocouple-type
Lastly, the open/short circuit functionality is dependent on mcp9601
chipsset. Add constraints for this and a new property, microchip,vsense,
enables this feature since it depends on the chip being wired
properly.
Passed dt_binding_check.
Signed-off-by: Ben Collins <bcollins@...ter.com>
---
.../iio/temperature/microchip,mcp9600.yaml | 69 +++++++++++++++----
1 file changed, 56 insertions(+), 13 deletions(-)
diff --git a/Documentation/devicetree/bindings/iio/temperature/microchip,mcp9600.yaml b/Documentation/devicetree/bindings/iio/temperature/microchip,mcp9600.yaml
index d2cafa38a5442..1caeb6526fd20 100644
--- a/Documentation/devicetree/bindings/iio/temperature/microchip,mcp9600.yaml
+++ b/Documentation/devicetree/bindings/iio/temperature/microchip,mcp9600.yaml
@@ -4,7 +4,7 @@
$id: http://devicetree.org/schemas/iio/temperature/microchip,mcp9600.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
-title: Microchip MCP9600 thermocouple EMF converter
+title: Microchip MCP9600 and similar thermocouple EMF converters
maintainers:
- Andrew Hepp <andrew.hepp@...pp.dev>
@@ -14,29 +14,30 @@ description:
properties:
compatible:
- const: microchip,mcp9600
+ oneOf:
+ - const: microchip,mcp9600
+ - items:
+ - const: microchip,mcp9600
+ - const: microchip,mcp9601
reg:
maxItems: 1
interrupts:
minItems: 1
- maxItems: 6
+ maxItems: 4
interrupt-names:
minItems: 1
- maxItems: 6
items:
- enum:
- - open-circuit
- - short-circuit
- - alert1
- - alert2
- - alert3
- - alert4
+ - const: alert1
+ - const: alert2
+ - const: alert3
+ - const: alert4
thermocouple-type:
$ref: /schemas/types.yaml#/definitions/uint32
+ default: 3
description:
Type of thermocouple (THERMOCOUPLE_TYPE_K if omitted).
Use defines in dt-bindings/iio/temperature/thermocouple.h.
@@ -44,6 +45,33 @@ properties:
vdd-supply: true
+allOf:
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: microchip,mcp9601
+ then:
+ properties:
+ interrupts:
+ minItems: 1
+ maxItems: 6
+ interrupt-names:
+ items:
+ - const: alert1
+ - const: alert2
+ - const: alert3
+ - const: alert4
+ - const: open-circuit
+ - const: short-circuit
+ microchip,vsense:
+ default: false
+ description:
+ This flag indicates that the chip has been wired with VSENSE to
+ enable open and short circuit detect. By default, this is false,
+ since there's no way to detect that the chip is wired correctly.
+ type: boolean
+
required:
- compatible
- reg
@@ -62,9 +90,24 @@ examples:
compatible = "microchip,mcp9600";
reg = <0x60>;
interrupt-parent = <&gpio>;
- interrupts = <25 IRQ_TYPE_EDGE_RISING>;
- interrupt-names = "open-circuit";
+ interrupts = <25 IRQ_TYPE_EDGE_RISIN>;
+ interrupt-names = "alert1";
thermocouple-type = <THERMOCOUPLE_TYPE_K>;
vdd-supply = <&vdd>;
};
};
+ - |
+ #include <dt-bindings/iio/temperature/thermocouple.h>
+ #include <dt-bindings/interrupt-controller/irq.h>
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ temperature-sensor@60 {
+ compatible = "microchip,mcp9601", "microchip,mcp9600";
+ microchip,vsense;
+ reg = <0x62>;
+ interrupt-parent = <&gpio>;
+ vdd-supply = <&vdd>;
+ };
+ };
--
2.39.5
Powered by blists - more mailing lists