# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause %YAML 1.2 --- $id: http://devicetree.org/schemas/hwmon/smsc,emc1403.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: SMSC EMC1402/1403/1404/1428 thermal sensors maintainers: - Svyatoslav Ryhel properties: compatible: oneOf: - enum: - smsc,emc1402 - smsc,emc1403 - smsc,emc1404 - smsc,emc1428 - items: - enum: - smsc,emc1412 - smsc,emc1422 - smsc,emc1442 - const: smsc,emc1402 - items: - enum: - smsc,emc1413 - smsc,emc1423 - const: smsc,emc1403 - items: - enum: - smsc,emc1414 - smsc,emc1424 - const: smsc,emc1404 - items: - enum: - smsc,emc1438 - const: smsc,emc1428 interrupts: items: - description: Sensors "ALERT" pin output. reg: maxItems: 1 "#thermal-sensor-cells": const: 1 '#address-cells': const: 1 '#size-cells': const: 0 vdd-supply: true required: - compatible - reg patternProperties: "^channel@([0-7])$": type: object description: Represents channels of the device and their specific configuration. properties: reg: description: The channel number. 0 is local channel, 1-7 are remote channels. items: minimum: 0 maximum: 7 label: description: A descriptive name for this channel, like "ambient" or "psu". required: - reg additionalProperties: false allOf: - if: properties: compatible: contains: enum: - smsc,emc1402 then: patternProperties: "^channel@([0-7])$": properties: reg: items: maximum: 1 - if: properties: compatible: contains: enum: - smsc,emc1403 then: patternProperties: "^channel@([0-7])$": properties: reg: items: maximum: 2 - if: properties: compatible: contains: enum: - smsc,emc1404 then: patternProperties: "^channel@([0-7])$": properties: reg: items: maximum: 3 additionalProperties: false examples: - | #include i2c { #address-cells = <1>; #size-cells = <0>; sensor@4c { compatible = "smsc,emc1412", "smsc,emc1402"; reg = <0x4c>; interrupt-parent = <&gpio>; interrupts = <4 IRQ_TYPE_LEVEL_LOW>; vdd-supply = <&vdd_3v3_sys>; #thermal-sensor-cells = <1>; }; }; - | i2c { #address-cells = <1>; #size-cells = <0>; sensor@29 { compatible = "smsc,emc1428"; reg = <0x29>; #address-cells = <1>; #size-cells = <0>; channel@0 { reg = <0x0>; label = "local"; }; channel@1 { reg = <0x1>; label = "chan1"; }; channel@2 { reg = <0x2>; label = "chan2"; }; channel@3 { reg = <0x3>; label = "chan3"; }; channel@4 { reg = <0x4>; label = "chan4"; }; channel@5 { reg = <0x5>; label = "chan5"; }; channel@6 { reg = <0x6>; label = "chan6"; }; channel@7 { reg = <0x7>; label = "chan7"; }; }; };