Resguardo inicial

This commit is contained in:
lastdragon
2026-09-06 12:53:21 -06:00
parent 662efe3c2a
commit ad2088d178
94853 changed files with 43200404 additions and 0 deletions
@@ -0,0 +1,38 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/adi,ad741x.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Analog Devices AD7416/AD7417/AD7418 temperature sensors
maintainers:
- Krzysztof Kozlowski <krzk@kernel.org>
properties:
compatible:
enum:
- adi,ad7416
- adi,ad7417
- adi,ad7418
reg:
maxItems: 1
required:
- compatible
- reg
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
temperature-sensor@28 {
compatible = "adi,ad7418";
reg = <0x28>;
};
};
@@ -0,0 +1,70 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/adi,adm1177.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Analog Devices ADM1177 Hot Swap Controller and Digital Power Monitor
maintainers:
- Michael Hennerich <michael.hennerich@analog.com>
description: |
Analog Devices ADM1177 Hot Swap Controller and Digital Power Monitor
https://www.analog.com/media/en/technical-documentation/data-sheets/ADM1177.pdf
properties:
compatible:
enum:
- adi,adm1177
reg:
maxItems: 1
avcc-supply:
description:
Phandle to the Avcc power supply
shunt-resistor-micro-ohms:
description:
The value of current sense resistor in microohms. If not provided,
the current reading and overcurrent alert is disabled.
adi,shutdown-threshold-microamp:
description:
Specifies the current level at which an over current alert occurs.
If not provided, the overcurrent alert is configured to max ADC range
based on shunt-resistor-micro-ohms.
adi,vrange-high-enable:
description:
Specifies which internal voltage divider to be used. A 1 selects
a 7:2 voltage divider while a 0 selects a 14:1 voltage divider.
type: boolean
required:
- compatible
- reg
allOf:
- $ref: hwmon-common.yaml#
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
pwmon@5a {
compatible = "adi,adm1177";
reg = <0x5a>;
shunt-resistor-micro-ohms = <50000>; /* 50 mOhm */
adi,shutdown-threshold-microamp = <1059000>; /* 1.059 A */
adi,vrange-high-enable;
};
};
...
@@ -0,0 +1,51 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/adi,adm1266.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Analog Devices ADM1266 Cascadable Super Sequencer with Margin
Control and Fault Recording
maintainers:
- Cedric Encarnacion <cedricjustine.encarnacion@analog.com>
description: |
Analog Devices ADM1266 Cascadable Super Sequencer with Margin
Control and Fault Recording.
https://www.analog.com/media/en/technical-documentation/data-sheets/ADM1266.pdf
properties:
compatible:
enum:
- adi,adm1266
reg:
description: |
I2C address of slave device.
items:
minimum: 0x40
maximum: 0x4F
avcc-supply:
description: |
Phandle to the Avcc power supply.
required:
- compatible
- reg
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
adm1266@40 {
compatible = "adi,adm1266";
reg = <0x40>;
};
};
...
@@ -0,0 +1,134 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/adi,adm1275.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Analog Devices ADM1075/ADM127x/ADM1281/ADM129x digital power monitors
maintainers:
- Krzysztof Kozlowski <krzk@kernel.org>
description: |
The ADM1293 and ADM1294 are high accuracy integrated digital power monitors
that offer digital current, voltage, and power monitoring using an on-chip,
12-bit analog-to-digital converter (ADC), communicated through a PMBus
compliant I2C interface.
Datasheets:
https://www.analog.com/en/products/adm1294.html
The SQ24905C is also a Hot-swap controller compatibility to the ADM1278,
the PMBUS_MFR_MODEL is MC09C
Datasheets:
https://www.silergy.com/
download/downloadFile?id=5669&type=product&ftype=note
properties:
compatible:
enum:
- adi,adm1075
- adi,adm1272
- adi,adm1273
- adi,adm1275
- adi,adm1276
- adi,adm1278
- adi,adm1281
- adi,adm1293
- adi,adm1294
- silergy,mc09c
reg:
maxItems: 1
adi,volt-curr-sample-average:
description: |
Number of samples to be used to report voltage and current values.
$ref: /schemas/types.yaml#/definitions/uint32
enum: [1, 2, 4, 8, 16, 32, 64, 128]
adi,power-sample-average:
description: |
Number of samples to be used to report power values.
$ref: /schemas/types.yaml#/definitions/uint32
enum: [1, 2, 4, 8, 16, 32, 64, 128]
allOf:
- $ref: hwmon-common.yaml#
- if:
properties:
compatible:
contains:
enum:
- adi,adm1075
- adi,adm1276
then:
properties:
adi,volt-curr-sample-average:
default: 128
adi,power-sample-average: false
- if:
properties:
compatible:
contains:
enum:
- adi,adm1275
then:
properties:
adi,volt-curr-sample-average:
default: 16
adi,power-sample-average: false
- if:
properties:
compatible:
contains:
enum:
- adi,adm1272
- adi,adm1273
then:
properties:
adi,volt-curr-sample-average:
default: 128
adi,power-sample-average:
default: 128
- if:
properties:
compatible:
contains:
enum:
- adi,adm1278
- adi,adm1281
- adi,adm1293
- adi,adm1294
- silergy,mc09c
then:
properties:
adi,volt-curr-sample-average:
default: 128
adi,power-sample-average:
default: 1
required:
- compatible
- reg
unevaluatedProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
power-sensor@10 {
compatible = "adi,adm1272";
reg = <0x10>;
shunt-resistor-micro-ohms = <500>;
adi,volt-curr-sample-average = <128>;
adi,power-sample-average = <128>;
};
};
@@ -0,0 +1,63 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright 2019 Analog Devices Inc.
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/adi,axi-fan-control.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Analog Devices AXI FAN Control
maintainers:
- Nuno Sá <nuno.sa@analog.com>
description: |+
Bindings for the Analog Devices AXI FAN Control driver. Specifications of the
core can be found in:
https://wiki.analog.com/resources/fpga/docs/axi_fan_control
properties:
compatible:
enum:
- adi,axi-fan-control-1.00.a
reg:
maxItems: 1
clocks:
maxItems: 1
interrupts:
maxItems: 1
pulses-per-revolution:
description:
Value specifying the number of pulses per revolution of the controlled
FAN.
$ref: /schemas/types.yaml#/definitions/uint32
enum: [1, 2, 4]
required:
- compatible
- reg
- clocks
- interrupts
- pulses-per-revolution
additionalProperties: false
examples:
- |
fpga_axi: fpga-axi {
#address-cells = <0x2>;
#size-cells = <0x1>;
axi_fan_control: axi-fan-control@80000000 {
compatible = "adi,axi-fan-control-1.00.a";
reg = <0x0 0x80000000 0x10000>;
clocks = <&clk 71>;
interrupts = <0 110 0>;
pulses-per-revolution = <2>;
};
};
...
@@ -0,0 +1,52 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/adi,ltc2945.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Analog Devices LTC2945 wide range i2c power monitor
maintainers:
- Guenter Roeck <linux@roeck-us.net>
description: |
Analog Devices LTC2945 wide range i2c power monitor over I2C.
https://www.analog.com/media/en/technical-documentation/data-sheets/LTC2945.pdf
properties:
compatible:
enum:
- adi,ltc2945
reg:
maxItems: 1
shunt-resistor-micro-ohms:
description:
Shunt resistor value in micro-Ohms
default: 1000
required:
- compatible
- reg
allOf:
- $ref: hwmon-common.yaml#
unevaluatedProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
power-monitor@6e {
compatible = "adi,ltc2945";
reg = <0x6e>;
/* 10 milli-Ohm shunt resistor */
shunt-resistor-micro-ohms = <10000>;
};
};
...
@@ -0,0 +1,100 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/adi,ltc2947.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Analog Devices LTC2947 high precision power and energy monitor
maintainers:
- Nuno Sá <nuno.sa@analog.com>
description: |
Analog Devices LTC2947 high precision power and energy monitor over SPI or I2C.
https://www.analog.com/media/en/technical-documentation/data-sheets/LTC2947.pdf
properties:
compatible:
enum:
- adi,ltc2947
reg:
maxItems: 1
clocks:
description:
The LTC2947 uses either a trimmed internal oscillator or an external clock
as the time base for determining the integration period to represent time,
charge and energy. When an external clock is used, this property must be
set accordingly.
maxItems: 1
adi,accumulator-ctl-pol:
description:
This property controls the polarity of current that is accumulated to
calculate charge and energy so that, they can be only accumulated for
positive current for example. Since there are two sets of registers for
the accumulated values, this entry can also have two items which sets
energy1/charge1 and energy2/charger2 respectively. Check table 12 of the
datasheet for more information on the supported options.
$ref: /schemas/types.yaml#/definitions/uint32-array
minItems: 2
maxItems: 2
items:
enum: [0, 1, 2, 3]
default: 0
adi,accumulation-deadband-microamp:
description:
This property controls the Accumulation Dead band which allows to set the
level of current below which no accumulation takes place.
maximum: 255
default: 0
adi,gpio-out-pol:
description:
This property controls the GPIO polarity. Setting it to one makes the GPIO
active high, setting it to zero makets it active low. When this property
is present, the GPIO is automatically configured as output and set to
control a fan as a function of measured temperature.
$ref: /schemas/types.yaml#/definitions/uint32
enum: [0, 1]
default: 0
adi,gpio-in-accum:
description:
When set, this property sets the GPIO as input. It is then used to control
the accumulation of charge, energy and time. This function can be
enabled/configured separately for each of the two sets of accumulation
registers. Check table 13 of the datasheet for more information on the
supported options. This property cannot be used together with
adi,gpio-out-pol.
$ref: /schemas/types.yaml#/definitions/uint32-array
minItems: 2
maxItems: 2
items:
enum: [0, 1, 2]
default: 0
required:
- compatible
- reg
additionalProperties: false
examples:
- |
spi {
#address-cells = <1>;
#size-cells = <0>;
ltc2947_spi: ltc2947@0 {
compatible = "adi,ltc2947";
reg = <0>;
/* accumulation takes place always for energ1/charge1. */
/* accumulation only on positive current for energy2/charge2. */
adi,accumulator-ctl-pol = <0 1>;
};
};
...
@@ -0,0 +1,127 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/adi,ltc2991.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Analog Devices LTC2991 Octal I2C Voltage, Current and Temperature Monitor
maintainers:
- Antoniu Miclaus <antoniu.miclaus@analog.com>
description: |
The LTC2991 is used to monitor system temperatures, voltages and currents.
Through the I2C serial interface, the eight monitors can individually measure
supply voltages and can be paired for differential measurements of current
sense resistors or temperature sensing transistors.
Datasheet:
https://www.analog.com/en/products/ltc2991.html
properties:
compatible:
const: adi,ltc2991
reg:
maxItems: 1
'#address-cells':
const: 1
'#size-cells':
const: 0
vcc-supply: true
patternProperties:
"^channel@[0-3]$":
type: object
description:
Represents the differential/temperature channels.
properties:
reg:
description:
The channel number. LTC2991 can monitor 4 currents/temperatures.
items:
minimum: 0
maximum: 3
shunt-resistor-micro-ohms:
description:
The value of curent sense resistor in micro ohms. Pin configuration is
set for differential input pair.
adi,temperature-enable:
description:
Enables temperature readings. Pin configuration is set for remote
diode temperature measurement.
type: boolean
required:
- reg
allOf:
- if:
required:
- shunt-resistor-micro-ohms
then:
properties:
adi,temperature-enable: false
additionalProperties: false
required:
- compatible
- reg
- vcc-supply
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
hwmon@48 {
compatible = "adi,ltc2991";
reg = <0x48>;
vcc-supply = <&vcc>;
};
};
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
hwmon@48 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "adi,ltc2991";
reg = <0x48>;
vcc-supply = <&vcc>;
channel@0 {
reg = <0x0>;
shunt-resistor-micro-ohms = <100000>;
};
channel@1 {
reg = <0x1>;
shunt-resistor-micro-ohms = <100000>;
};
channel@2 {
reg = <0x2>;
adi,temperature-enable;
};
channel@3 {
reg = <0x3>;
adi,temperature-enable;
};
};
};
...
@@ -0,0 +1,81 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/adi,ltc2992.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Linear Technology 2992 Power Monitor
maintainers:
- Cedric Encarnacion <cedricjustine.encarnacion@analog.com>
description: |
Linear Technology 2992 Dual Wide Range Power Monitor
https://www.analog.com/media/en/technical-documentation/data-sheets/ltc2992.pdf
properties:
compatible:
enum:
- adi,ltc2992
reg:
maxItems: 1
'#address-cells':
const: 1
'#size-cells':
const: 0
avcc-supply: true
patternProperties:
"^channel@([0-1])$":
type: object
additionalProperties: false
description: |
Represents the two supplies to be monitored.
properties:
reg:
description: |
The channel number. LTC2992 can monitor two supplies.
items:
minimum: 0
maximum: 1
shunt-resistor-micro-ohms:
description:
The value of current sense resistor in microohms.
required:
- compatible
- reg
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
ltc2992@6f {
#address-cells = <1>;
#size-cells = <0>;
compatible = "adi,ltc2992";
reg = <0x6f>;
channel@0 {
reg = <0x0>;
shunt-resistor-micro-ohms = <10000>;
};
channel@1 {
reg = <0x1>;
shunt-resistor-micro-ohms = <10000>;
};
};
};
...
@@ -0,0 +1,159 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/adi,ltc4282.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Analog Devices LTC4282 I2C High Current Hot Swap Controller over I2C
maintainers:
- Nuno Sa <nuno.sa@analog.com>
description: |
Analog Devices LTC4282 I2C High Current Hot Swap Controller over I2C.
https://www.analog.com/media/en/technical-documentation/data-sheets/ltc4282.pdf
properties:
compatible:
enum:
- adi,ltc4282
reg:
maxItems: 1
vdd-supply: true
clocks:
maxItems: 1
'#clock-cells':
const: 0
adi,rsense-nano-ohms:
description: Value of the sense resistor.
adi,vin-mode-microvolt:
description:
Selects operating range for the Undervoltage, Overvoltage and Foldback
pins. Also for the ADC. Should be set to the nominal input voltage.
enum: [3300000, 5000000, 12000000, 24000000]
default: 12000000
adi,fet-bad-timeout-ms:
description:
From the moment a FET bad conditions is present, this property selects the
wait time/timeout for a FET-bad fault to be signaled. Setting this to 0,
disables FET bad faults to be reported.
default: 255
maximum: 255
adi,overvoltage-dividers:
description: |
Select which dividers to use for VDD Overvoltage detection. Note that
when the internal dividers are used the threshold is referenced to VDD.
The percentages in the datasheet are misleading since the actual values
to look for are in the "Absolute Maximum Ratings" table in the
"Comparator Inputs" section. In there there's a line for each of the 5%,
10% and 15% settings with the actual min, typical and max tolerances.
$ref: /schemas/types.yaml#/definitions/string
enum: [external, vdd_5_percent, vdd_10_percent, vdd_15_percent]
default: external
adi,undervoltage-dividers:
description: |
Select which dividers to use for VDD Overvoltage detection. Note that
when the internal dividers are used the threshold is referenced to VDD.
The percentages in the datasheet are misleading since the actual values
to look for are in the "Absolute Maximum Ratings" table in the
"Comparator Inputs" section. In there there's a line for each of the 5%,
10% and 15% settings with the actual min, typical and max tolerances.
$ref: /schemas/types.yaml#/definitions/string
enum: [external, vdd_5_percent, vdd_10_percent, vdd_15_percent]
default: external
adi,current-limit-sense-microvolt:
description:
The current limit sense voltage of the chip is adjustable between
12.5mV and 34.4mV in 3.1mV steps. This effectively limits the current
on the load.
enum: [12500, 15625, 18750, 21875, 25000, 28125, 31250, 34375]
default: 25000
adi,overcurrent-retry:
description:
If set, enables the chip to auto-retry 256 timer cycles after an
Overcurrent fault.
type: boolean
adi,overvoltage-retry-disable:
description:
If set, disables the chip to auto-retry 50ms after an Overvoltage fault.
It's enabled by default.
type: boolean
adi,undervoltage-retry-disable:
description:
If set, disables the chip to auto-retry 50ms after an Undervoltage fault.
It's enabled by default.
type: boolean
adi,fault-log-enable:
description:
If set, enables the FAULT_LOG and ADC_ALERT_LOG registers to be written
to the EEPROM when a fault bit transitions high and hence, will be
available after a power cycle (the chip loads the contents of
the EE_FAULT_LOG register - the one in EEPROM - into FAULT_LOG at boot).
type: boolean
adi,gpio1-mode:
description: Defines the function of the Pin. It can indicate that power is
good (PULL the pin low when power is not good) or that power is bad (Go
into high-z when power is not good).
$ref: /schemas/types.yaml#/definitions/string
enum: [power_bad, power_good]
default: power_good
adi,gpio2-mode:
description: Defines the function of the Pin. It can be set as the input for
the ADC or indicating that the MOSFET is in stress (dissipating power).
$ref: /schemas/types.yaml#/definitions/string
enum: [adc_input, stress_fet]
default: adc_input
adi,gpio3-monitor-enable:
description: If set, gpio3 is set as input for the ADC instead of gpio2.
type: boolean
allOf:
- if:
required:
- adi,gpio3-monitor-enable
then:
properties:
adi,gpio2-mode:
const: stress_fet
required:
- compatible
- reg
- adi,rsense-nano-ohms
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
hwmon@50 {
compatible = "adi,ltc4282";
reg = <0x50>;
adi,rsense-nano-ohms = <500>;
adi,gpio1-mode = "power_good";
adi,gpio2-mode = "adc_input";
};
};
...
@@ -0,0 +1,272 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/adi,ltc4283.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: LTC4283 Negative Voltage Hot Swap Controller
maintainers:
- Nuno Sá <nuno.sa@analog.com>
description: |
The LTC4283 negative voltage hot swap controller drives an external N-channel
MOSFET to allow a board to be safely inserted and removed from a live
backplane.
https://www.analog.com/media/en/technical-documentation/data-sheets/ltc4283.pdf
properties:
compatible:
enum:
- adi,ltc4283
reg:
maxItems: 1
adi,rsense-nano-ohms:
description: Value of the sense resistor.
adi,current-limit-sense-microvolt:
description:
The current limit sense voltage of the chip is adjustable between
15mV and 30mV in 1mV steps. This effectively limits the current
on the load.
minimum: 15000
maximum: 30000
default: 15000
adi,current-limit-foldback-factor:
description:
Specifies the foldback factor for the current limit. The current limit
can be reduced (folded back) to one of four preset levels. The value
represents the percentage of the current limit sense voltage to use
during foldback. A value of 100 means no foldback.
$ref: /schemas/types.yaml#/definitions/uint32
enum: [10, 20, 50, 100]
default: 100
adi,cooling-delay-ms:
description:
Cooling time to apply after an overcurrent fault, FET bad or
external fault.
enum: [512, 1002, 2005, 4100, 8190, 16400, 32800, 65600]
default: 512
adi,fet-bad-timer-delay-ms:
description:
FET bad timer delay. After a FET bad status condition is detected,
this timer is started. If the condition persists for the
specified time, the FET is turned off and a fault is logged.
enum: [256, 512, 1002, 2005]
default: 256
adi,power-good-reset-on-fet:
description:
If set, resets the power good status when the MOSFET is turned off.
Otherwise, it resets when a low output voltage is detected.
type: boolean
adi,fet-turn-off-disable:
description:
If set, the MOSFET is not turned off when a FET fault is detected.
type: boolean
adi,tmr-pull-down-disable:
description: Disables 2uA pull-down current on the TMR pin.
type: boolean
adi,dvdt-inrush-control-disable:
description:
Disables dV/dt inrush control during startup. In dV/dt mode, the inrush
current is limited by controlling a constant output voltage ramp rate.
When disabled, the inrush control mechanism is active current limiting.
type: boolean
adi,fault-log-enable:
description:
If set, enables logging fault registers and ADC data into EEPROM upon a
fault.
type: boolean
adi,vpower-drns-enable:
description:
If set, enables the attenuated MOSFET drain voltage to be monitored. This
effectively means that the MOSFET power is monitored. If not set, the
attenuated input voltage (and hence input power) is monitored.
type: boolean
adi,external-fault-fet-off-enable:
description: Turns MOSFET off following an external fault.
type: boolean
adi,undervoltage-retry-disable:
description: Do not retry to turn on the MOSFET after an undervoltage fault.
type: boolean
adi,overvoltage-retry-disable:
description: Do not retry to turn on the MOSFET after an overvoltage fault.
type: boolean
adi,external-fault-retry-enable:
description: Retry to turn on the MOSFET after an external fault.
type: boolean
adi,overcurrent-retries:
description: Configures auto-retry following an Overcurrent fault.
$ref: /schemas/types.yaml#/definitions/string
enum: [latch-off, "1", "7", unlimited]
default: latch-off
adi,fet-bad-retries:
description:
Configures auto-retry following a FET bad fault and a consequent MOSFET
turn off.
$ref: /schemas/types.yaml#/definitions/string
enum: [latch-off, "1", "7", unlimited]
default: latch-off
adi,pgio1-func:
description: Configures the function of the PGIO1 pin.
$ref: /schemas/types.yaml#/definitions/string
enum: [inverted_power_good, power_good, gpio]
default: inverted_power_good
adi,pgio2-func:
description: Configures the function of the PGIO2 pin.
$ref: /schemas/types.yaml#/definitions/string
enum: [inverted_power_good, power_good, gpio, active_current_limiting]
default: inverted_power_good
adi,pgio3-func:
description: Configures the function of the PGIO3 pin.
$ref: /schemas/types.yaml#/definitions/string
enum: [inverted_power_good_input, power_good_input, gpio]
default: inverted_power_good_input
adi,pgio4-func:
description: Configures the function of the PGIO4 pin.
$ref: /schemas/types.yaml#/definitions/string
enum: [inverted_external_fault, external_fault, gpio]
default: inverted_external_fault
adi,gpio-on-adio1:
description: If set, the ADIO1 pin is used as a GPIO.
type: boolean
adi,gpio-on-adio2:
description: If set, the ADIO2 pin is used as a GPIO.
type: boolean
adi,gpio-on-adio3:
description: If set, the ADIO3 pin is used as a GPIO.
type: boolean
adi,gpio-on-adio4:
description: If set, the ADIO4 pin is used as a GPIO.
type: boolean
gpio-controller: true
'#gpio-cells':
const: 2
dependencies:
adi,gpio-on-adio1:
- gpio-controller
- '#gpio-cells'
adi,gpio-on-adio2:
- gpio-controller
- '#gpio-cells'
adi,gpio-on-adio3:
- gpio-controller
- '#gpio-cells'
adi,gpio-on-adio4:
- gpio-controller
- '#gpio-cells'
adi,external-fault-retry-enable:
- adi,pgio4-func
adi,external-fault-fet-off-enable:
- adi,pgio4-func
required:
- compatible
- reg
- adi,rsense-nano-ohms
allOf:
- if:
properties:
adi,pgio1-func:
const: gpio
required:
- adi,pgio1-func
then:
required:
- gpio-controller
- '#gpio-cells'
- if:
properties:
adi,pgio2-func:
const: gpio
required:
- adi,pgio2-func
then:
required:
- gpio-controller
- '#gpio-cells'
- if:
properties:
adi,pgio3-func:
const: gpio
required:
- adi,pgio3-func
then:
required:
- gpio-controller
- '#gpio-cells'
- if:
properties:
adi,pgio4-func:
const: gpio
required:
- adi,pgio4-func
then:
properties:
adi,external-fault-retry-enable: false
adi,external-fault-fet-off-enable: false
required:
- gpio-controller
- '#gpio-cells'
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
swap-controller@15 {
compatible = "adi,ltc4283";
reg = <0x15>;
adi,rsense-nano-ohms = <500>;
adi,current-limit-sense-microvolt = <25000>;
adi,current-limit-foldback-factor = <10>;
adi,cooling-delay-ms = <8190>;
adi,fet-bad-timer-delay-ms = <512>;
adi,external-fault-fet-off-enable;
adi,pgio4-func = "external_fault";
adi,gpio-on-adio1;
adi,pgio1-func = "gpio";
gpio-controller;
#gpio-cells = <2>;
};
};
...
@@ -0,0 +1,42 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/adi,max31760.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Analog Devices MAX31760 Fan-Speed Controller
maintainers:
- Ibrahim Tilki <Ibrahim.Tilki@analog.com>
description: |
Analog Devices MAX31760 Fan-Speed Controller
https://datasheets.maximintegrated.com/en/ds/MAX31760.pdf
properties:
compatible:
enum:
- adi,max31760
reg:
description: I2C address of slave device.
minimum: 0x50
maximum: 0x57
required:
- compatible
- reg
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
fan-controller@50 {
reg = <0x50>;
compatible = "adi,max31760";
};
};
@@ -0,0 +1,119 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/adi,max31827.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Analog Devices MAX31827, MAX31828, MAX31829 Low-Power Temperature Switch
maintainers:
- Daniel Matyas <daniel.matyas@analog.com>
description: |
Analog Devices MAX31827, MAX31828, MAX31829 Low-Power Temperature Switch with
I2C Interface
https://www.analog.com/media/en/technical-documentation/data-sheets/MAX31827-MAX31829.pdf
properties:
compatible:
oneOf:
- const: adi,max31827
- items:
- enum:
- adi,max31828
- adi,max31829
- const: adi,max31827
reg:
maxItems: 1
vref-supply:
description:
Must have values in the interval (1.6V; 3.6V) in order for the device to
function correctly.
adi,comp-int:
description:
If present interrupt mode is used. If not present comparator mode is used
(default).
type: boolean
adi,alarm-pol:
description:
Sets the alarms active state.
- 0 = active low
- 1 = active high
$ref: /schemas/types.yaml#/definitions/uint32
enum: [0, 1]
adi,fault-q:
description:
Select how many consecutive temperature faults must occur before
overtemperature or undertemperature faults are indicated in the
corresponding status bits.
$ref: /schemas/types.yaml#/definitions/uint32
enum: [1, 2, 4, 8]
adi,timeout-enable:
description:
Enables timeout. Bus timeout resets the I2C-compatible interface when SCL
is low for more than 30ms (nominal).
type: boolean
allOf:
- if:
properties:
compatible:
contains:
const: adi,max31829
then:
properties:
adi,alarm-pol:
default: 1
else:
properties:
adi,alarm-pol:
default: 0
- if:
properties:
compatible:
contains:
const: adi,max31827
then:
properties:
adi,fault-q:
default: 1
else:
properties:
adi,fault-q:
default: 4
required:
- compatible
- reg
- vref-supply
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
temperature-sensor@42 {
compatible = "adi,max31827";
reg = <0x42>;
vref-supply = <&reg_vdd>;
adi,comp-int;
adi,alarm-pol = <0>;
adi,fault-q = <1>;
adi,timeout-enable;
};
};
...
@@ -0,0 +1,141 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/adt7475.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: ADT7475 hwmon sensor
maintainers:
- Jean Delvare <jdelvare@suse.com>
description: |
The ADT7473, ADT7475, ADT7476, and ADT7490 are thermal monitors and multiple
PWN fan controllers.
They support monitoring and controlling up to four fans (the ADT7490 can only
control up to three). They support reading a single on chip temperature
sensor and two off chip temperature sensors (the ADT7490 additionally
supports measuring up to three current external temperature sensors with
series resistance cancellation (SRC)).
Datasheets:
https://www.onsemi.com/pub/Collateral/ADT7473-D.PDF
https://www.onsemi.com/pub/Collateral/ADT7475-D.PDF
https://www.onsemi.com/pub/Collateral/ADT7476-D.PDF
https://www.onsemi.com/pub/Collateral/ADT7490-D.PDF
Description taken from onsemiconductors specification sheets, with minor
rephrasing.
properties:
compatible:
enum:
- adi,adt7473
- adi,adt7475
- adi,adt7476
- adi,adt7490
reg:
maxItems: 1
adi,pwm-active-state:
description: |
Integer array, represents the active state of the pwm outputs If set to 0
the pwm uses a logic low output for 100% duty cycle. If set to 1 the pwm
uses a logic high output for 100% duty cycle.
$ref: /schemas/types.yaml#/definitions/uint32-array
deprecated: true
minItems: 3
maxItems: 3
items:
enum: [0, 1]
default: 1
"#pwm-cells":
oneOf:
- const: 3
- const: 4
deprecated: true
description: |
Number of cells in a PWM specifier.
- 0: The PWM channel
- 1: The PWM period in nanoseconds
- 90909091 (11 Hz)
- 71428571 (14 Hz)
- 45454545 (22 Hz)
- 34482759 (29 Hz)
- 28571429 (35 Hz)
- 22727273 (44 Hz)
- 17241379 (58 Hz)
- 11363636 (88 Hz)
- 44444 (22 kHz)
- 2: PWM flags 0 or PWM_POLARITY_INVERTED
- 3: The default PWM duty cycle in nanoseconds, defaults to period.
patternProperties:
"^adi,bypass-attenuator-in[0-4]$":
description: |
Configures bypassing the individual voltage input attenuator. If
set to 1 the attenuator is bypassed if set to 0 the attenuator is
not bypassed. If the property is absent then the attenuator
retains its configuration from the bios/bootloader.
$ref: /schemas/types.yaml#/definitions/uint32
enum: [0, 1]
"^adi,pin(5|10)-function$":
description: |
Configures the function for pin 5 on the adi,adt7473 and adi,adt7475. Or
pin 10 on the adi,adt7476 and adi,adt7490.
$ref: /schemas/types.yaml#/definitions/string
enum:
- pwm2
- smbalert#
"^adi,pin(9|14)-function$":
description: |
Configures the function for pin 9 on the adi,adt7473 and adi,adt7475. Or
pin 14 on the adi,adt7476 and adi,adt7490
$ref: /schemas/types.yaml#/definitions/string
enum:
- tach4
- therm#
- smbalert#
- gpio
"^fan-[0-9]+$":
$ref: fan-common.yaml#
unevaluatedProperties: false
required:
- compatible
- reg
additionalProperties: false
examples:
- |
#include <dt-bindings/pwm/pwm.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
pwm: hwmon@2e {
compatible = "adi,adt7476";
reg = <0x2e>;
adi,bypass-attenuator-in0 = <1>;
adi,bypass-attenuator-in1 = <0>;
adi,pin10-function = "smbalert#";
adi,pin14-function = "tach4";
#pwm-cells = <3>;
/* PWMs at 22.5 kHz frequency */
fan-0 {
pwms = <&pwm 0 44444 0>;
};
fan-1 {
pwms = <&pwm 2 44444 0>;
};
};
};
@@ -0,0 +1,53 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/amd,sbrmi.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: >
Sideband Remote Management Interface (SB-RMI) compliant
AMD SoC power device.
maintainers:
- Akshay Gupta <Akshay.Gupta@amd.com>
description: |
SB Remote Management Interface (SB-RMI) is an SMBus compatible
interface that reports AMD SoC's Power (normalized Power) using,
Mailbox Service Request and resembles a typical 8-pin remote power
sensor's I2C interface to BMC. The power attributes in hwmon
reports power in microwatts.
properties:
compatible:
enum:
- amd,sbrmi
reg:
maxItems: 1
description: |
I2C bus address of the device as specified in Section SBI SMBus Address
of the SoC register reference. The SB-RMI address is normally 78h for
socket 0 and 70h for socket 1, but it could vary based on hardware
address select pins.
\[open source SoC register reference\]
https://www.amd.com/en/support/tech-docs?keyword=55898
required:
- compatible
- reg
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
sbrmi@3c {
compatible = "amd,sbrmi";
reg = <0x3c>;
};
};
...
@@ -0,0 +1,54 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/amd,sbtsi.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: >
Sideband interface Temperature Sensor Interface (SB-TSI) compliant
AMD SoC temperature device
maintainers:
- Kun Yi <kunyi@google.com>
- Supreeth Venkatesh <supreeth.venkatesh@amd.com>
description: |
SB Temperature Sensor Interface (SB-TSI) is an SMBus compatible
interface that reports AMD SoC's Ttcl (normalized temperature),
and resembles a typical 8-pin remote temperature sensor's I2C interface
to BMC. The emulated thermal sensor can report temperatures in increments
of 0.125 degrees, ranging from 0 to 255.875.
properties:
compatible:
enum:
- amd,sbtsi
reg:
maxItems: 1
description: |
I2C bus address of the device as specified in Section 6.3.1 of the
SoC register reference. The SB-TSI address is normally 98h for socket
0 and 90h for socket 1, but it could vary based on hardware address
select pins.
\[open source SoC register reference\]
https://www.amd.com/system/files/TechDocs/56255_OSRR.pdf
required:
- compatible
- reg
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
sbtsi@4c {
compatible = "amd,sbtsi";
reg = <0x4c>;
};
};
...
@@ -0,0 +1,77 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/amphenol,chipcap2.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: ChipCap 2 humidity and temperature iio sensor
maintainers:
- Javier Carrasco <javier.carrasco.cruz@gmail.com>
description: |
Relative humidity and temperature sensor on I2C bus.
Datasheets:
https://www.amphenol-sensors.com/en/telaire/humidity/527-humidity-sensors/3095-chipcap-2
properties:
compatible:
oneOf:
- const: amphenol,cc2d23
- items:
- enum:
- amphenol,cc2d23s
- amphenol,cc2d25
- amphenol,cc2d25s
- amphenol,cc2d33
- amphenol,cc2d33s
- amphenol,cc2d35
- amphenol,cc2d35s
- const: amphenol,cc2d23
reg:
maxItems: 1
interrupts:
items:
- description: measurement ready indicator
- description: low humidity alarm
- description: high humidity alarm
interrupt-names:
items:
- const: ready
- const: low
- const: high
vdd-supply:
description:
Dedicated, controllable supply-regulator to reset the device and
enter in command mode.
required:
- compatible
- reg
- vdd-supply
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
humidity@28 {
compatible = "amphenol,cc2d23s", "amphenol,cc2d23";
reg = <0x28>;
interrupt-parent = <&gpio>;
interrupts = <4 IRQ_TYPE_EDGE_RISING>,
<5 IRQ_TYPE_EDGE_RISING>,
<6 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "ready", "low", "high";
vdd-supply = <&reg_vdd>;
};
};
@@ -0,0 +1,30 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/apm,xgene-slimpro-hwmon.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: APM X-Gene SLIMpro hwmon
maintainers:
- Khuong Dinh <khuong@os.amperecomputing.com>
properties:
compatible:
const: apm,xgene-slimpro-hwmon
mboxes:
maxItems: 1
required:
- compatible
- mboxes
additionalProperties: false
examples:
- |
hwmon {
compatible = "apm,xgene-slimpro-hwmon";
mboxes = <&mailbox 7>;
};
@@ -0,0 +1,85 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/apple,smc-hwmon.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Apple SMC Hardware Monitoring
description:
Apple's System Management Controller (SMC) exposes a vast array of
hardware monitoring sensors, including temperature probes, current and
voltage sense, power meters, and fan speeds. It also provides endpoints
to manually control the speed of each fan individually. Each Apple
Silicon device exposes a different set of endpoints via SMC keys. This
is true even when two machines share an SoC. The CPU core temperature
sensor keys on an M1 Mac mini are different to those on an M1 MacBook
Pro, for example.
maintainers:
- James Calligeros <jcalligeros99@gmail.com>
$defs:
sensor:
type: object
properties:
apple,key-id:
$ref: /schemas/types.yaml#/definitions/string
pattern: "^[A-Za-z0-9]{4}$"
description: The SMC FourCC key of the desired sensor.
Must match the node's suffix.
label:
description: Human-readable name for the sensor
required:
- apple,key-id
properties:
compatible:
const: apple,smc-hwmon
patternProperties:
"^current-[A-Za-z0-9]{4}$":
$ref: "#/$defs/sensor"
unevaluatedProperties: false
"^fan-[A-Za-z0-9]{4}$":
$ref: "#/$defs/sensor"
unevaluatedProperties: false
properties:
apple,fan-minimum:
$ref: /schemas/types.yaml#/definitions/string
pattern: "^[A-Za-z0-9]{4}$"
description: SMC key containing the fan's minimum speed
apple,fan-maximum:
$ref: /schemas/types.yaml#/definitions/string
pattern: "^[A-Za-z0-9]{4}$"
description: SMC key containing the fan's maximum speed
apple,fan-target:
$ref: /schemas/types.yaml#/definitions/string
pattern: "^[A-Za-z0-9]{4}$"
description: Writeable endpoint for setting desired fan speed
apple,fan-mode:
$ref: /schemas/types.yaml#/definitions/string
pattern: "^[A-Za-z0-9]{4}$"
description: Writeable key to enable/disable manual fan control
"^power-[A-Za-z0-9]{4}$":
$ref: "#/$defs/sensor"
unevaluatedProperties: false
"^temperature-[A-Za-z0-9]{4}$":
$ref: "#/$defs/sensor"
unevaluatedProperties: false
"^voltage-[A-Za-z0-9]{4}$":
$ref: "#/$defs/sensor"
unevaluatedProperties: false
additionalProperties: false
@@ -0,0 +1,106 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/aspeed,ast2400-pwm-tacho.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: ASPEED AST2400/AST2500 PWM and Fan Tacho controller
maintainers:
- Joel Stanley <joel@jms.id.au>
- Andrew Jeffery <andrew@codeconstruct.com.au>
description: >
The ASPEED PWM controller can support up to 8 PWM outputs. The ASPEED Fan
Tacho controller can support up to 16 Fan tachometer inputs.
There can be up to 8 fans supported. Each fan can have 1 PWM output and
1-2 Fan tach inputs.
properties:
compatible:
enum:
- aspeed,ast2400-pwm-tacho
- aspeed,ast2500-pwm-tacho
reg:
maxItems: 1
'#address-cells':
const: 1
'#size-cells':
const: 0
'#cooling-cells':
const: 2
clocks:
maxItems: 1
resets:
maxItems: 1
patternProperties:
'^fan@[0-7]$':
description: Fan subnode
type: object
additionalProperties: false
properties:
reg:
description: PWM source port index (0 = PWM A, ..., 7 = PWM H)
maximum: 7
cooling-levels:
description: PWM duty cycle values for cooling states
$ref: /schemas/types.yaml#/definitions/uint8-array
minItems: 1
maxItems: 16 # Should be enough
aspeed,fan-tach-ch:
description: Fan tachometer input channel
$ref: /schemas/types.yaml#/definitions/uint8-array
minItems: 1
maxItems: 2
items:
maximum: 15
required:
- reg
- aspeed,fan-tach-ch
required:
- compatible
- reg
- '#address-cells'
- '#size-cells'
- clocks
- resets
additionalProperties: false
examples:
- |
#include <dt-bindings/clock/aspeed-clock.h>
fan-controller@1e786000 {
compatible = "aspeed,ast2500-pwm-tacho";
reg = <0x1e786000 0x1000>;
#address-cells = <1>;
#size-cells = <0>;
#cooling-cells = <2>;
clocks = <&syscon ASPEED_CLK_APB>;
resets = <&syscon ASPEED_RESET_PWM>;
fan@0 {
reg = <0x00>;
cooling-levels = /bits/ 8 <125 151 177 203 229 255>;
aspeed,fan-tach-ch = /bits/ 8 <0x00>;
};
fan@1 {
reg = <0x01>;
aspeed,fan-tach-ch = /bits/ 8 <0x01 0x02>;
};
};
@@ -0,0 +1,74 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright (C) 2023 Aspeed, Inc.
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/aspeed,g6-pwm-tach.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: ASPEED G6 PWM and Fan Tach controller
maintainers:
- Billy Tsai <billy_tsai@aspeedtech.com>
description: |
The ASPEED PWM controller can support up to 16 PWM outputs.
The ASPEED Fan Tacho controller can support up to 16 fan tach input.
They are independent hardware blocks, which are different from the
previous version of the ASPEED chip.
properties:
compatible:
oneOf:
- items:
- const: aspeed,ast2700-pwm-tach
- const: aspeed,ast2600-pwm-tach
- const: aspeed,ast2600-pwm-tach
reg:
maxItems: 1
clocks:
maxItems: 1
resets:
maxItems: 1
"#pwm-cells":
const: 3
patternProperties:
"^fan-[0-9]+$":
$ref: fan-common.yaml#
unevaluatedProperties: false
required:
- tach-ch
required:
- reg
- clocks
- resets
- "#pwm-cells"
- compatible
additionalProperties: false
examples:
- |
#include <dt-bindings/clock/aspeed-clock.h>
pwm_tach: pwm-tach-controller@1e610000 {
compatible = "aspeed,ast2600-pwm-tach";
reg = <0x1e610000 0x100>;
clocks = <&syscon ASPEED_CLK_AHB>;
resets = <&syscon ASPEED_RESET_PWM>;
#pwm-cells = <3>;
fan-0 {
tach-ch = /bits/ 8 <0x0>;
pwms = <&pwm_tach 0 40000 0>;
};
fan-1 {
tach-ch = /bits/ 8 <0x1 0x2>;
pwms = <&pwm_tach 1 40000 0>;
};
};
@@ -0,0 +1,35 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/cirrus,lochnagar.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Cirrus Logic Lochnagar Audio Development Board
maintainers:
- patches@opensource.cirrus.com
description: |
Lochnagar is an evaluation and development board for Cirrus Logic
Smart CODEC and Amp devices. It allows the connection of most Cirrus
Logic devices on mini-cards, as well as allowing connection of various
application processor systems to provide a full evaluation platform.
Audio system topology, clocking and power can all be controlled through
the Lochnagar, allowing the device under test to be used in a variety of
possible use cases.
This binding document describes the binding for the hardware monitor
portion of the driver.
This binding must be part of the Lochnagar MFD binding:
[1] ../mfd/cirrus,lochnagar.yaml
properties:
compatible:
enum:
- cirrus,lochnagar2-hwmon
required:
- compatible
additionalProperties: false
@@ -0,0 +1,79 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/fan-common.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Common Fan Properties
maintainers:
- Naresh Solanki <naresh.solanki@9elements.com>
- Billy Tsai <billy_tsai@aspeedtech.com>
properties:
max-rpm:
description:
Max RPM supported by fan.
$ref: /schemas/types.yaml#/definitions/uint32
maximum: 100000
min-rpm:
description:
Min RPM supported by fan.
$ref: /schemas/types.yaml#/definitions/uint32
maximum: 1000
pulses-per-revolution:
description:
The number of pulse from fan sensor per revolution.
$ref: /schemas/types.yaml#/definitions/uint32
maximum: 4
tach-div:
description:
Divisor for the tach sampling clock, which determines the sensitivity of the tach pin.
$ref: /schemas/types.yaml#/definitions/uint32
target-rpm:
description:
The default desired fan speed in RPM.
$ref: /schemas/types.yaml#/definitions/uint32
fan-driving-mode:
description:
Select the driving mode of the fan.(DC, PWM and so on)
$ref: /schemas/types.yaml#/definitions/string
enum: [ dc, pwm ]
pwms:
description:
PWM provider.
maxItems: 1
"#cooling-cells":
const: 2
cooling-levels:
description:
The control value which correspond to thermal cooling states.
$ref: /schemas/types.yaml#/definitions/uint32-array
tach-ch:
description:
The tach channel used for the fan.
$ref: /schemas/types.yaml#/definitions/uint8-array
label:
description:
Optional fan label
fan-supply:
description:
Power supply for fan.
reg:
maxItems: 1
additionalProperties: true
...
@@ -0,0 +1,95 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/gmt,g762.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: GMT G761/G762/G763 PWM Fan controller
maintainers:
- Christian Marangi <ansuelsmth@gmail.com>
description: |
GMT G761/G762/G763 PWM Fan controller.
G761 supports an internal-clock hence the clocks property is optional.
If not defined, internal-clock will be used. (31KHz is the clock of
the internal crystal oscillator)
If an optional property is not set in DT, then current value is kept
unmodified (e.g. bootloader installed value).
Additional information on operational parameters for the device is available
in Documentation/hwmon/g762.rst. A detailed datasheet for the device is available
at http://natisbad.org/NAS/refs/GMT_EDS-762_763-080710-0.2.pdf.
properties:
compatible:
enum:
- gmt,g761
- gmt,g762
- gmt,g763
reg:
maxItems: 1
clocks:
description: a fixed clock providing input clock frequency on CLK
pin of the chip.
maxItems: 1
fan_startv:
description: Fan startup voltage step
$ref: /schemas/types.yaml#/definitions/uint32
enum: [0, 1, 2, 3]
pwm_polarity:
description: PWM polarity (positive or negative duty)
$ref: /schemas/types.yaml#/definitions/uint32
enum: [0, 1]
fan_gear_mode:
description: FAN gear mode. Configure High speed fan setting factor
$ref: /schemas/types.yaml#/definitions/uint32
enum: [0, 1, 2]
required:
- compatible
- reg
if:
properties:
compatible:
contains:
enum:
- gmt,g762
- gmt,g763
then:
required:
- clocks
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
g762@3e {
compatible = "gmt,g762";
reg = <0x3e>;
clocks = <&g762_clk>;
fan_gear_mode = <0>;
fan_startv = <1>;
pwm_polarity = <0>;
};
g761@1e {
compatible = "gmt,g761";
reg = <0x1e>;
fan_gear_mode = <0>;
fan_startv = <1>;
pwm_polarity = <0>;
};
};
@@ -0,0 +1,63 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/gpio-fan.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Fan connected to GPIO lines
maintainers:
- Rob Herring <robh@kernel.org>
properties:
compatible:
const: gpio-fan
gpios:
description: |
Specifies the pins that map to bits in the control value,
ordered MSB-->LSB.
minItems: 1
maxItems: 7
alarm-gpios:
maxItems: 1
fan-supply:
description: Power supply for fan
gpio-fan,speed-map:
$ref: /schemas/types.yaml#/definitions/uint32-matrix
minItems: 2
maxItems: 127
items:
items:
- description: fan speed in RPMs
- description: control value
description: |
A mapping of possible fan RPM speeds and the
control value that should be set to achieve them. This array
must have the RPM values in ascending order.
'#cooling-cells':
const: 2
required:
- compatible
- gpios
- gpio-fan,speed-map
additionalProperties: false
examples:
- |
gpio-fan {
compatible = "gpio-fan";
gpios = <&gpio2 14 1
&gpio2 13 1>;
gpio-fan,speed-map = < 0 0>,
<3000 1>,
<6000 2>;
alarm-gpios = <&gpio2 15 1>;
#cooling-cells = <2>; /* min followed by max */
};
@@ -0,0 +1,45 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/hpe,gxp-fan-ctrl.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: HPE GXP Fan Controller
maintainers:
- Nick Hawkins <nick.hawkins@hpe.com>
description: |
The HPE GXP fan controller controls the fans through an external CPLD
device that connects to the fans.
properties:
compatible:
const: hpe,gxp-fan-ctrl
reg:
items:
- description: Fan controller PWM
- description: Programmable logic
- description: Function 2
reg-names:
items:
- const: base
- const: pl
- const: fn2
required:
- compatible
- reg
- reg-names
additionalProperties: false
examples:
- |
fan-controller@1000c00 {
compatible = "hpe,gxp-fan-ctrl";
reg = <0x1000c00 0x200>, <0xd1000000 0xff>, <0x80200000 0x100000>;
reg-names = "base", "pl", "fn2";
};
@@ -0,0 +1,19 @@
# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/hwmon-common.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Hardware Monitoring Devices Common Properties
maintainers:
- Guenter Roeck <linux@roeck-us.net>
properties:
label:
description: A descriptive name for this device.
shunt-resistor-micro-ohms:
description: The value of current sense resistor.
additionalProperties: true
@@ -0,0 +1,39 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/ibm,occ-hwmon.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: IBM On-Chip Controller (OCC) accessed from a service processor
maintainers:
- Eddie James <eajames@linux.ibm.com>
description: |
The POWER processor On-Chip Controller (OCC) helps manage power and
thermals for the system. A service processor or baseboard management
controller can query the OCC for it's power and thermal data to report
through hwmon.
properties:
compatible:
enum:
- ibm,p9-occ-hwmon
- ibm,p10-occ-hwmon
ibm,no-poll-on-init:
description: This property describes whether or not the OCC should
be polled during driver initialization.
type: boolean
required:
- compatible
additionalProperties: false
examples:
- |
hwmon {
compatible = "ibm,p10-occ-hwmon";
ibm,no-poll-on-init;
};
@@ -0,0 +1,37 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/ibm,opal-sensor.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: IBM POWERNV platform sensors
maintainers:
- Javier Carrasco <javier.carrasco.cruz@gmail.com>
properties:
compatible:
enum:
- ibm,opal-sensor-cooling-fan
- ibm,opal-sensor-amb-temp
- ibm,opal-sensor-power-supply
- ibm,opal-sensor-power
sensor-id:
description:
An opaque id provided by the firmware to the kernel, identifies a
given sensor and its attribute data.
$ref: /schemas/types.yaml#/definitions/uint32
required:
- compatible
- sensor-id
additionalProperties: false
examples:
- |
sensor {
compatible = "ibm,opal-sensor-cooling-fan";
sensor-id = <0x7052107>;
};
@@ -0,0 +1,59 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/iei,wt61p803-puzzle-hwmon.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: IEI WT61P803 PUZZLE MCU HWMON module from IEI Integration Corp.
maintainers:
- Luka Kovacic <luka.kovacic@sartura.hr>
description: |
This module is a part of the IEI WT61P803 PUZZLE MFD device. For more details
see Documentation/devicetree/bindings/mfd/iei,wt61p803-puzzle.yaml.
The HWMON module is a sub-node of the MCU node in the Device Tree.
properties:
compatible:
const: iei,wt61p803-puzzle-hwmon
'#address-cells':
const: 1
'#size-cells':
const: 0
patternProperties:
'^fan-group@[0-1]$':
type: object
additionalProperties: false
properties:
reg:
minimum: 0
maximum: 1
description:
Fan group ID
'#cooling-cells':
const: 2
cooling-levels:
minItems: 1
maxItems: 255
description:
Cooling levels for the fans (PWM value mapping)
required:
- reg
- '#cooling-cells'
- cooling-levels
required:
- compatible
- '#address-cells'
- '#size-cells'
additionalProperties: false
@@ -0,0 +1,37 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/iio-hwmon.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: ADC-attached Hardware Sensor
maintainers:
- Jonathan Cameron <jic23@kernel.org>
description: >
Bindings for hardware monitoring devices connected to ADC controllers
supporting the Industrial I/O bindings.
properties:
compatible:
const: iio-hwmon
io-channels:
minItems: 1
maxItems: 51 # Should be enough
description: >
List of phandles to ADC channels to read the monitoring values
required:
- compatible
- io-channels
additionalProperties: false
examples:
- |
iio-hwmon {
compatible = "iio-hwmon";
io-channels = <&adc 1>, <&adc 2>;
};
@@ -0,0 +1,78 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/jedec,jc42.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Jedec JC-42.4 compatible temperature sensors
maintainers:
- Jean Delvare <jdelvare@suse.com>
- Guenter Roeck <linux@roeck-us.net>
select:
properties:
compatible:
const: jedec,jc-42.4-temp
required:
- compatible
properties:
compatible:
oneOf:
- const: jedec,jc-42.4-temp
- items:
- enum:
- adi,adt7408
- atmel,at30ts00
- atmel,at30tse004
- idt,tse2002
- idt,tse2004
- idt,ts3000
- idt,ts3001
- maxim,max6604
- microchip,mcp9804
- microchip,mcp9805
- microchip,mcp9808
- microchip,mcp98243
- microchip,mcp98244
- microchip,mcp9843
- nxp,se97
- nxp,se97b
- nxp,se98
- onnn,cat6095
- onnn,cat34ts02
- st,stts2002
- st,stts2004
- st,stts3000
- st,stts424
- st,stts424e
- const: jedec,jc-42.4-temp
reg:
maxItems: 1
smbus-timeout-disable:
description: |
When set, the smbus timeout function will be disabled. This is not
supported on all chips.
type: boolean
required:
- compatible
- reg
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
temp-sensor@1a {
compatible = "jedec,jc-42.4-temp";
reg = <0x1a>;
};
};
@@ -0,0 +1,27 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/kontron,sl28cpld-hwmon.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Hardware monitoring driver for the sl28cpld board management controller
maintainers:
- Michael Walle <michael@walle.cc>
description: |
This module is part of the sl28cpld multi-function device. For more
details see ../embedded-controller/kontron,sl28cpld.yaml.
properties:
compatible:
enum:
- kontron,sl28cpld-fan
reg:
maxItems: 1
required:
- compatible
additionalProperties: false
@@ -0,0 +1,30 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/lantiq,cputemp.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Lantiq cpu temperature sensor
maintainers:
- Florian Eckert <fe@dev.tdt.de>
properties:
compatible:
const: lantiq,cputemp
reg:
maxItems: 1
required:
- compatible
- reg
additionalProperties: false
examples:
- |
cputemp@103040 {
compatible = "lantiq,cputemp";
reg = <0x103040 0x4>;
};
@@ -0,0 +1,103 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/lltc,ltc2978.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Octal Digital Power-supply monitor/supervisor/sequencer/margin controller.
maintainers:
- Frank Li <Frank.Li@nxp.com>
properties:
compatible:
enum:
- lltc,lt7170
- lltc,lt7171
- lltc,ltc2972
- lltc,ltc2974
- lltc,ltc2975
- lltc,ltc2977
- lltc,ltc2978
- lltc,ltc2979
- lltc,ltc2980
- lltc,ltc3880
- lltc,ltc3882
- lltc,ltc3883
- lltc,ltc3884
- lltc,ltc3886
- lltc,ltc3887
- lltc,ltc3889
- lltc,ltc7132
- lltc,ltc7841
- lltc,ltc7880
- lltc,ltm2987
- lltc,ltm4664
- lltc,ltm4673
- lltc,ltm4675
- lltc,ltm4676
- lltc,ltm4677
- lltc,ltm4678
- lltc,ltm4680
- lltc,ltm4686
- lltc,ltm4700
reg:
maxItems: 1
regulators:
type: object
description: |
list of regulators provided by this controller.
Valid names of regulators depend on number of supplies supported per device:
* lt7170, lt7171 : vout0
* ltc2972 vout0 - vout1
* ltc2974, ltc2975 : vout0 - vout3
* ltc2977, ltc2979, ltc2980, ltm2987 : vout0 - vout7
* ltc2978 : vout0 - vout7
* ltc3880, ltc3882, ltc3884, ltc3886, ltc3887, ltc3889 : vout0 - vout1
* ltc7132 : vout0 - vout1
* ltc7841 : vout0
* ltc7880 : vout0 - vout1
* ltc3883 : vout0
* ltm4664 : vout0 - vout1
* ltm4673 : vout0 - vout3
* ltm4675, ltm4676, ltm4677, ltm4678 : vout0 - vout1
* ltm4680, ltm4686 : vout0 - vout1
* ltm4700 : vout0 - vout1
patternProperties:
"^vout[0-7]$":
$ref: /schemas/regulator/regulator.yaml#
type: object
unevaluatedProperties: false
additionalProperties: false
required:
- compatible
- reg
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
regulator@5e {
compatible = "lltc,ltc2978";
reg = <0x5e>;
regulators {
vout0 {
regulator-name = "FPGA-2.5V";
};
vout2 {
regulator-name = "FPGA-1.5V";
};
};
};
};
@@ -0,0 +1,44 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/lltc,ltc4151.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: LTC4151 High Voltage I2C Current and Voltage Monitor
maintainers:
- Krzysztof Kozlowski <krzk@kernel.org>
properties:
compatible:
const: lltc,ltc4151
reg:
maxItems: 1
shunt-resistor-micro-ohms:
description:
Shunt resistor value in micro-Ohms
default: 1000
required:
- compatible
- reg
allOf:
- $ref: hwmon-common.yaml#
unevaluatedProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
sensor@6e {
compatible = "lltc,ltc4151";
reg = <0x6e>;
shunt-resistor-micro-ohms = <1500>;
};
};
@@ -0,0 +1,49 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/lltc,ltc4286.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: LTC4286 power monitors
maintainers:
- Delphine CC Chiu <Delphine_CC_Chiu@Wiwynn.com>
properties:
compatible:
enum:
- lltc,ltc4286
- lltc,ltc4287
reg:
maxItems: 1
adi,vrange-low-enable:
description:
This property is a bool parameter to represent the
voltage range is 25.6 volts or 102.4 volts for this chip.
The default is 102.4 volts.
type: boolean
required:
- compatible
- reg
allOf:
- $ref: hwmon-common.yaml#
unevaluatedProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
power-monitor@40 {
compatible = "lltc,ltc4286";
reg = <0x40>;
adi,vrange-low-enable;
shunt-resistor-micro-ohms = <300>;
};
};
@@ -0,0 +1,112 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/lm75.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: LM75 hwmon sensor
maintainers:
- Jean Delvare <jdelvare@suse.com>
- Guenter Roeck <linux@roeck-us.net>
properties:
compatible:
enum:
- adi,adt75
- ams,as6200
- atmel,at30ts74
- dallas,ds1775
- dallas,ds75
- dallas,ds7505
- gmt,g751
- national,lm75
- national,lm75a
- national,lm75b
- maxim,max6625
- maxim,max6626
- maxim,max31725
- maxim,max31726
- maxim,mcp980x
- nxp,p3t1750
- nxp,p3t1755
- nxp,pct2075
- st,stds75
- st,stlm75
- microchip,tcn75
- ti,tmp1075
- ti,tmp100
- ti,tmp101
- ti,tmp105
- ti,tmp112
- ti,tmp175
- ti,tmp275
- ti,tmp75
- ti,tmp75b
- ti,tmp75c
reg:
maxItems: 1
vs-supply:
description: phandle to the regulator that provides the +VS supply
interrupts:
maxItems: 1
ti,alert-polarity-active-high:
description: Alert pin is asserted based on the value of alert polarity
bit of configuration register. Default value is normal (0 which maps to
active-low). The other value is inverted (1 which maps to active-high).
Specify this property to set the alert polarity to active-high.
$ref: /schemas/types.yaml#/definitions/flag
required:
- compatible
- reg
allOf:
- $ref: hwmon-common.yaml#
- if:
not:
properties:
compatible:
contains:
enum:
- ams,as6200
- ti,tmp100
- ti,tmp101
- ti,tmp112
- ti,tmp75
then:
properties:
interrupts: false
unevaluatedProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
sensor@48 {
compatible = "st,stlm75";
reg = <0x48>;
vs-supply = <&vs>;
};
};
- |
#include <dt-bindings/interrupt-controller/irq.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
temperature-sensor@48 {
compatible = "ams,as6200";
reg = <0x48>;
vs-supply = <&vs>;
interrupt-parent = <&gpio1>;
interrupts = <17 IRQ_TYPE_EDGE_BOTH>;
};
};
@@ -0,0 +1,36 @@
ltc2990: Linear Technology LTC2990 power monitor
Required properties:
- compatible: Must be "lltc,ltc2990"
- reg: I2C slave address
- lltc,meas-mode:
An array of two integers for configuring the chip measurement mode.
The first integer defines the bits 2..0 in the control register. In all
cases the internal temperature and supply voltage are measured. In
addition the following input measurements are enabled per mode:
0: V1, V2, TR2
1: V1-V2, TR2
2: V1-V2, V3, V4
3: TR1, V3, V4
4: TR1, V3-V4
5: TR1, TR2
6: V1-V2, V3-V4
7: V1, V2, V3, V4
The second integer defines the bits 4..3 in the control register. This
allows a subset of the measurements to be enabled:
0: Internal temperature and supply voltage only
1: TR1, V1 or V1-V2 only per mode
2: TR2, V3 or V3-V4 only per mode
3: All measurements per mode
Example:
ltc2990@4c {
compatible = "lltc,ltc2990";
reg = <0x4c>;
lltc,meas-mode = <7 3>; /* V1, V2, V3, V4 */
};
@@ -0,0 +1,64 @@
max6697 properties
Required properties:
- compatible:
Should be one of
maxim,max6581
maxim,max6602
maxim,max6622
maxim,max6636
maxim,max6689
maxim,max6693
maxim,max6694
maxim,max6697
maxim,max6698
maxim,max6699
- reg: I2C address
Optional properties:
- smbus-timeout-disable
Set to disable SMBus timeout. If not specified, SMBus timeout will be
enabled.
- extended-range-enable
Only valid for MAX6581. Set to enable extended temperature range.
Extended temperature will be disabled if not specified.
- beta-compensation-enable
Only valid for MAX6693 and MX6694. Set to enable beta compensation on
remote temperature channel 1.
Beta compensation will be disabled if not specified.
- alert-mask
Alert bit mask. Alert disabled for bits set.
Select bit 0 for local temperature, bit 1..7 for remote temperatures.
If not specified, alert will be enabled for all channels.
- over-temperature-mask
Over-temperature bit mask. Over-temperature reporting disabled for
bits set.
Select bit 0 for local temperature, bit 1..7 for remote temperatures.
If not specified, over-temperature reporting will be enabled for all
channels.
- resistance-cancellation
Boolean for all chips other than MAX6581. Set to enable resistance
cancellation on remote temperature channel 1.
For MAX6581, resistance cancellation enabled for all channels if
specified as boolean, otherwise as per bit mask specified.
Only supported for remote temperatures (bit 1..7).
If not specified, resistance cancellation will be disabled for all
channels.
- transistor-ideality
For MAX6581 only. Two values; first is bit mask, second is ideality
select value as per MAX6581 data sheet. Select bit 1..7 for remote
channels.
Transistor ideality will be initialized to default (1.008) if not
specified.
Example:
temp-sensor@1a {
compatible = "maxim,max6697";
reg = <0x1a>;
smbus-timeout-disable;
resistance-cancellation;
alert-mask = <0x72>;
over-temperature-mask = <0x7f>;
};
@@ -0,0 +1,65 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/maxim,max20730.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Maxim max20730
maintainers:
- Jean Delvare <jdelvare@suse.com>
- Guenter Roeck <linux@roeck-us.net>
description: |
The MAX20730 is a fully integrated, highly efficient switching regulator
with PMBus for applications operating from 4.5V to 16V and requiring
up to 25A (max) load. This single-chip regulator provides extremely
compact, high efficiency power-delivery solutions with high-precision
output voltages and excellent transient response.
Datasheets:
https://datasheets.maximintegrated.com/en/ds/MAX20730.pdf
https://datasheets.maximintegrated.com/en/ds/MAX20734.pdf
https://datasheets.maximintegrated.com/en/ds/MAX20743.pdf
properties:
compatible:
enum:
- maxim,max20710
- maxim,max20730
- maxim,max20734
- maxim,max20743
reg:
maxItems: 1
vout-voltage-divider:
description: |
If voltage divider present at vout, the voltage at voltage sensor pin
will be scaled. The properties will convert the raw reading to a more
meaningful number if voltage divider present. It has two numbers,
the first number is the output resistor, the second number is the total
resistance. Therefore, the adjusted vout is equal to
Vout = Vout * output_resistance / total resistance.
$ref: /schemas/types.yaml#/definitions/uint32-array
minItems: 2
maxItems: 2
required:
- compatible
- reg
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
max20730@10 {
compatible = "maxim,max20730";
reg = <0x10>;
vout-voltage-divider = <1000 2000>; // vout would be scaled to 0.5
};
};
@@ -0,0 +1,84 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/maxim,max31790.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: The Maxim MAX31790 Fan Controller
maintainers:
- Guenter Roeck <linux@roeck-us.net>
- Chanh Nguyen <chanh@os.amperecomputing.com>
description: >
The MAX31790 controls the speeds of up to six fans using six
independent PWM outputs. The desired fan speeds (or PWM duty cycles)
are written through the I2C interface.
Datasheets:
https://datasheets.maximintegrated.com/en/ds/MAX31790.pdf
properties:
compatible:
enum:
- maxim,max31785
- maxim,max31785a
- maxim,max31785b
- maxim,max31790
reg:
maxItems: 1
clocks:
maxItems: 1
resets:
maxItems: 1
'#address-cells':
const: 1
'#size-cells':
const: 0
"#pwm-cells":
const: 1
patternProperties:
"^fan@[0-9]+$":
$ref: fan-common.yaml#
unevaluatedProperties: false
required:
- compatible
- reg
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
pwm_provider: fan-controller@20 {
compatible = "maxim,max31790";
reg = <0x20>;
clocks = <&sys_clk>;
resets = <&reset 0>;
#address-cells = <1>;
#pwm-cells = <1>;
#size-cells = <0>;
fan@0 {
reg = <0x0>;
pwms = <&pwm_provider 1>;
};
fan@1 {
reg = <0x1>;
pwms = <&pwm_provider 2>;
};
};
};
@@ -0,0 +1,91 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/maxim,max6639.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Maxim max6639
maintainers:
- Naresh Solanki <naresh.solanki@9elements.com>
description: |
The MAX6639 is a 2-channel temperature monitor with dual, automatic, PWM
fan-speed controller. It monitors its own temperature and one external
diode-connected transistor or the temperatures of two external diode-connected
transistors, typically available in CPUs, FPGAs, or GPUs.
Datasheets:
https://datasheets.maximintegrated.com/en/ds/MAX6639-MAX6639F.pdf
properties:
compatible:
enum:
- maxim,max6639
reg:
maxItems: 1
'#address-cells':
const: 1
'#size-cells':
const: 0
'#pwm-cells':
const: 3
required:
- compatible
- reg
patternProperties:
"^fan@[0-1]$":
type: object
description:
Represents the two fans and their specific configuration.
$ref: fan-common.yaml#
unevaluatedProperties: false
properties:
reg:
description:
The fan number.
required:
- reg
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
fan1: fan-controller@10 {
compatible = "maxim,max6639";
reg = <0x10>;
#address-cells = <1>;
#size-cells = <0>;
#pwm-cells = <3>;
fan@0 {
reg = <0x0>;
pulses-per-revolution = <2>;
max-rpm = <4000>;
target-rpm = <1000>;
pwms = <&fan1 0 25000 0>;
};
fan@1 {
reg = <0x1>;
pulses-per-revolution = <2>;
max-rpm = <8000>;
pwms = <&fan1 1 25000 0>;
};
};
};
...
@@ -0,0 +1,69 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/maxim,max6650.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Maxim MAX6650 and MAX6651 I2C Fan Controllers
maintainers:
- Javier Carrasco <javier.carrasco.cruz@gmail.com>
description: |
The MAX6650 and MAX6651 regulate and monitor the speed
of 5VDC/12VDC burshless fans with built-in tachometers.
Datasheets:
https://datasheets.maximintegrated.com/en/ds/MAX6650-MAX6651.pdf
properties:
compatible:
enum:
- maxim,max6650
- maxim,max6651
reg:
maxItems: 1
maxim,fan-microvolt:
description:
The supply voltage of the fan, either 5000000 uV or
12000000 uV.
enum: [5000000, 12000000]
maxim,fan-prescale:
description:
Pre-scaling value, as per datasheet. Lower values
allow more fine-grained control of slower fans.
$ref: /schemas/types.yaml#/definitions/uint32
enum: [1, 2, 4, 8, 16]
maxim,fan-target-rpm:
description:
Initial requested fan rotation speed. If specified, the
driver selects closed-loop mode and the requested speed.
This ensures the fan is already running before userspace
takes over.
$ref: /schemas/types.yaml#/definitions/uint32
maximum: 30000
required:
- compatible
- reg
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
fan-controller@1b {
compatible = "maxim,max6650";
reg = <0x1b>;
maxim,fan-microvolt = <12000000>;
maxim,fan-prescale = <4>;
maxim,fan-target-rpm = <1200>;
};
};
@@ -0,0 +1,193 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/microchip,emc1812.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Microchip EMC1812/13/14/15/33 multichannel temperature sensor
maintainers:
- Marius Cristea <marius.cristea@microchip.com>
description: |
The Microchip EMC1812/13/14/15/33 is a high-accuracy 2-wire multichannel
low-voltage remote diode temperature monitor.
The datasheet can be found here:
https://ww1.microchip.com/downloads/aemDocuments/documents/MSLD/ProductDocuments/DataSheets/EMC1812-3-4-5-33-Data-Sheet-DS20005751.pdf
EMC1812 has one external remote temperature monitoring channel
EMC1813 has two external remote temperature monitoring channels
EMC1814 has three external remote temperature monitoring channels and
channels 2 and 3 support anti parallel diode
EMC1815 has four external remote temperature monitoring channels and
channels 1/2 and 3/4 support anti parallel diode
EMC1833 has two external remote temperature monitoring channels and
channels 1 and 2 support anti parallel diode
properties:
compatible:
enum:
- microchip,emc1812
- microchip,emc1813
- microchip,emc1814
- microchip,emc1815
- microchip,emc1833
reg:
maxItems: 1
interrupts:
items:
- description: alert-therm2 asserts when the ALERT limit is exceeded.
- description: therm-addr asserts when the THERM limit is exceeded.
minItems: 1
interrupt-names:
items:
- const: alert-therm2
- const: therm-addr
minItems: 1
"#address-cells":
const: 1
"#size-cells":
const: 0
microchip,enable-anti-parallel:
description:
Enable anti-parallel diode mode operation. EMC1814, EMC1815 and EMC1833
support reading two external diodes in anti-parallel connection on the
same set of pins. Disabling APD functionality to implement substrate
diodes on devices that support APD eliminates the benefit of APD
(two diodes on one channel).
type: boolean
microchip,parasitic-res-on-channel1-2:
description:
Indicates that the chip and the diodes/transistors are sufficiently
far apart that a parasitic resistance is added to the wires, which can
affect the measurements. Due to the availability of only a single
configuration bit in hardware, channels 1 and 2 are affected together.
If channel 2 is not available in hardware, this setting affects only
channel 1.
type: boolean
microchip,parasitic-res-on-channel3-4:
description:
Indicates that the chip and the diodes/transistors are sufficiently
far apart that a parasitic resistance is added to the wires, which can
affect the measurements. Due to the availability of only a single
configuration bit in hardware, channels 3 and 4 are affected together.
If channel 4 is not available in hardware, this setting affects only
channel 3.
type: boolean
vdd-supply: true
patternProperties:
"^channel@[0-4]$":
description: |
Represents the temperature channels.
0: Internal sensor
1-4: External remote diodes
type: object
properties:
reg:
maxItems: 1
label:
description: Unique name to identify which channel this is.
required:
- reg
additionalProperties: false
required:
- compatible
- reg
- vdd-supply
allOf:
# EMC1812: 1 Internal, 1 External Channels, No APD,
# parasitic-res-on-channel1-2: for channel 1
- if:
properties:
compatible:
const: microchip,emc1812
then:
properties:
microchip,enable-anti-parallel: false
microchip,parasitic-res-on-channel3-4: false
patternProperties:
"^channel@[2-4]$": false
# EMC1813: 1 Internal, 2 External Channels, No APD,
# parasitic-res-on-channel1-2: on both channel 1 & 2
- if:
properties:
compatible:
const: microchip,emc1813
then:
properties:
microchip,enable-anti-parallel: false
microchip,parasitic-res-on-channel3-4: false
patternProperties:
"^channel@[3-4]$": false
# EMC1833: 1 Internal, 2 External Channels, Supports APD,
# parasitic-res-on-channel1-2: on both channel 1 & 2
- if:
properties:
compatible:
const: microchip,emc1833
then:
properties:
microchip,parasitic-res-on-channel3-4: false
patternProperties:
"^channel@[3-4]$": false
# EMC1814: 1 Internal, 3 External Channels, Supports APD,
# parasitic-res-on-channel1-2: on both channel 1 & 2
# parasitic-res-on-channel3-4: for channel 3
- if:
properties:
compatible:
const: microchip,emc1814
then:
properties:
channel@4: false
unevaluatedProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
temperature-sensor@4c {
compatible = "microchip,emc1813";
reg = <0x4c>;
#address-cells = <1>;
#size-cells = <0>;
microchip,parasitic-res-on-channel1-2;
vdd-supply = <&vdd>;
channel@1 {
reg = <1>;
label = "External CH1 Temperature";
};
channel@2 {
reg = <2>;
label = "External CH2 Temperature";
};
};
};
@@ -0,0 +1,119 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/microchip,emc2305.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Microchip EMC2305 SMBus compliant PWM fan controller
maintainers:
- Michael Shych <michaelsh@nvidia.com>
description:
Microchip EMC2301/2/3/5 pwm controller which supports up to five programmable
fan control circuits.
properties:
compatible:
oneOf:
- enum:
- microchip,emc2305
- items:
- enum:
- microchip,emc2303
- microchip,emc2302
- microchip,emc2301
- const: microchip,emc2305
reg:
maxItems: 1
'#address-cells':
const: 1
'#size-cells':
const: 0
'#pwm-cells':
const: 3
description: |
Number of cells in a PWM specifier.
- cell 0: The PWM frequency
- cell 1: The PWM polarity: 0 or PWM_POLARITY_INVERTED
- cell 2: The PWM output config:
- 0 (Open-Drain)
- 1 (Push-Pull)
patternProperties:
'^fan@[0-4]$':
$ref: fan-common.yaml#
unevaluatedProperties: false
properties:
reg:
description:
The fan number used to determine the associated PWM channel.
maxItems: 1
fan-shutdown-percent:
description:
PWM duty cycle in percent applied to the fan during shutdown.
minimum: 0
maximum: 100
required:
- reg
required:
- compatible
- reg
additionalProperties: false
examples:
- |
#include <dt-bindings/pwm/pwm.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
fan_controller: fan-controller@2f {
compatible = "microchip,emc2305";
reg = <0x2f>;
#address-cells = <1>;
#size-cells = <0>;
#pwm-cells = <3>;
fan@0 {
reg = <0x0>;
pwms = <&fan_controller 26000 PWM_POLARITY_INVERTED 1>;
fan-shutdown-percent = <100>;
#cooling-cells = <2>;
};
fan@1 {
reg = <0x1>;
pwms = <&fan_controller 26000 0 1>;
fan-shutdown-percent = <50>;
#cooling-cells = <2>;
};
fan@2 {
reg = <0x2>;
pwms = <&fan_controller 26000 0 1>;
#cooling-cells = <2>;
};
fan@3 {
reg = <0x3>;
pwms = <&fan_controller 26000 0 1>;
#cooling-cells = <2>;
};
fan@4 {
reg = <0x4>;
pwms = <&fan_controller 26000 0 1>;
#cooling-cells = <2>;
};
};
};
...
@@ -0,0 +1,53 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/microchip,lan966x.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Microchip LAN966x Hardware Monitor
maintainers:
- Michael Walle <michael@walle.cc>
description: |
Microchip LAN966x temperature monitor and fan controller
properties:
compatible:
enum:
- microchip,lan9668-hwmon
reg:
items:
- description: PVT registers
- description: FAN registers
reg-names:
items:
- const: pvt
- const: fan
clocks:
maxItems: 1
'#thermal-sensor-cells':
const: 0
required:
- compatible
- reg
- reg-names
- clocks
additionalProperties: false
examples:
- |
hwmon: hwmon@e2010180 {
compatible = "microchip,lan9668-hwmon";
reg = <0xe2010180 0xc>,
<0xe20042a8 0xc>;
reg-names = "pvt", "fan";
clocks = <&sys_clk>;
#thermal-sensor-cells = <0>;
};
@@ -0,0 +1,43 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/microchip,mcp3021.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Microchip MCP3021 A/D converter
maintainers:
- Krzysztof Kozlowski <krzk@kernel.org>
properties:
compatible:
enum:
- microchip,mcp3021
- microchip,mcp3221
reg:
maxItems: 1
reference-voltage-microvolt:
description:
VDD supply power and reference voltage
required:
- compatible
- reg
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
adc@4d {
compatible = "microchip,mcp3021";
reg = <0x4d>;
reference-voltage-microvolt = <4500000>; /* 4.5 V */
};
};
@@ -0,0 +1,237 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/microchip,mcp9982.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Microchip MCP998X/33 and MCP998XD/33D Temperature Monitor
maintainers:
- Victor Duicu <victor.duicu@microchip.com>
description: |
The MCP998X/33 and MCP998XD/33D family is a high-accuracy 2-wire
multichannel automotive temperature monitor.
The datasheet can be found here:
https://ww1.microchip.com/downloads/aemDocuments/documents/MSLD/ProductDocuments/DataSheets/MCP998X-Family-Data-Sheet-DS20006827.pdf
properties:
compatible:
enum:
- microchip,mcp9933
- microchip,mcp9933d
- microchip,mcp9982
- microchip,mcp9982d
- microchip,mcp9983
- microchip,mcp9983d
- microchip,mcp9984
- microchip,mcp9984d
- microchip,mcp9985
- microchip,mcp9985d
reg:
maxItems: 1
interrupts:
minItems: 1
maxItems: 2
interrupt-names:
description:
The chip family has three different interrupt pins divided among them.
The chips without "D" have alert-therm and therm-addr.
The chips with "D" have alert-therm and sys-shtdwn.
minItems: 1
items:
- enum: [alert-therm, therm-addr, sys-shtdwn]
- enum: [therm-addr, sys-shtdwn]
"#address-cells":
const: 1
"#size-cells":
const: 0
microchip,enable-anti-parallel:
description:
Enable anti-parallel diode mode operation.
MCP9984/84D/85/85D and MCP9933/33D support reading two external diodes
in anti-parallel connection on the same set of pins.
type: boolean
microchip,parasitic-res-on-channel1-2:
description:
Indicates that the chip and the diodes/transistors are sufficiently far
apart that a parasitic resistance is added to the wires, which can affect
the measurements. Due to the anti-parallel diode connections, channels
1 and 2 are affected together.
type: boolean
microchip,parasitic-res-on-channel3-4:
description:
Indicates that the chip and the diodes/transistors are sufficiently far
apart that a parasitic resistance is added to the wires, which can affect
the measurements. Due to the anti-parallel diode connections, channels
3 and 4 are affected together.
type: boolean
microchip,power-state:
description:
The chip can be set in Run state or Standby state. In Run state the ADC
is converting on all channels at the programmed conversion rate.
In Standby state the host must initiate a conversion cycle by writing
to the One-Shot register.
True value sets Run state.
Chips with "D" in the name can only be set in Run mode.
type: boolean
vdd-supply: true
patternProperties:
"^channel@[1-4]$":
description:
Represents the external temperature channels to which
a remote diode is connected.
type: object
properties:
reg:
items:
maxItems: 1
label:
description: Unique name to identify which channel this is.
required:
- reg
additionalProperties: false
required:
- compatible
- reg
- vdd-supply
allOf:
- if:
properties:
compatible:
contains:
enum:
- microchip,mcp9982d
- microchip,mcp9983d
- microchip,mcp9984d
- microchip,mcp9985d
- microchip,mcp9933d
then:
properties:
interrupt-names:
items:
enum:
- alert-therm
- sys-shtdwn
required:
- microchip,power-state
- microchip,parasitic-res-on-channel1-2
else:
properties:
microchip,power-state: true
interrupt-names:
items:
enum:
- alert-therm
- therm-addr
- if:
properties:
compatible:
contains:
enum:
- microchip,mcp9983d
- microchip,mcp9984d
- microchip,mcp9985d
then:
required:
- microchip,parasitic-res-on-channel3-4
- if:
properties:
compatible:
contains:
enum:
- microchip,mcp9982
- microchip,mcp9982d
then:
properties:
microchip,enable-anti-parallel: false
patternProperties:
"^channel@[2-4]$": false
- if:
properties:
compatible:
contains:
enum:
- microchip,mcp9983
- microchip,mcp9983d
then:
properties:
microchip,enable-anti-parallel: false
patternProperties:
"^channel@[3-4]$": false
- if:
properties:
compatible:
contains:
enum:
- microchip,mcp9933
- microchip,mcp9933d
then:
patternProperties:
"^channel@[3-4]$": false
- if:
properties:
compatible:
contains:
enum:
- microchip,mcp9984
- microchip,mcp9984d
then:
properties:
channel@4: false
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
temperature-sensor@4c {
compatible = "microchip,mcp9985";
reg = <0x4c>;
#address-cells = <1>;
#size-cells = <0>;
microchip,enable-anti-parallel;
microchip,parasitic-res-on-channel1-2;
microchip,parasitic-res-on-channel3-4;
vdd-supply = <&vdd>;
channel@1 {
reg = <1>;
label = "Room Temperature";
};
channel@2 {
reg = <2>;
label = "GPU Temperature";
};
};
};
...
@@ -0,0 +1,48 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/microchip,sparx5-temp.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Microchip Sparx5 Temperature Monitor
maintainers:
- Lars Povlsen <lars.povlsen@microchip.com>
description: |
Microchip Sparx5 embedded temperature monitor
properties:
compatible:
oneOf:
- const: microchip,sparx5-temp
- items:
- enum:
- microchip,lan9691-temp
- const: microchip,sparx5-temp
reg:
maxItems: 1
clocks:
items:
- description: System reference clock
'#thermal-sensor-cells':
const: 0
required:
- compatible
- reg
- clocks
additionalProperties: false
examples:
- |
tmon0: tmon@610508110 {
compatible = "microchip,sparx5-temp";
reg = <0x10508110 0xc>;
#thermal-sensor-cells = <0>;
clocks = <&sys_clk>;
};
@@ -0,0 +1,164 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/moortec,mr75203.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Moortec Semiconductor MR75203 PVT Controller
maintainers:
- Rahul Tanwar <rtanwar@maxlinear.com>
description: |
A Moortec PVT (Process, Voltage, Temperature) monitoring logic design can
include many different units.
Such a design will usually consists of several Moortec's embedded analog IPs,
and a single Moortec controller (mr75203) to configure and control the IPs.
Some of the Moortec's analog hard IPs that can be used in a design:
*) Temperature Sensor (TS) - used to monitor core temperature (e.g. mr74137).
*) Voltage Monitor (VM) - used to monitor voltage levels (e.g. mr74138).
*) Process Detector (PD) - used to assess silicon speed (e.g. mr74139).
*) Delay Chain - ring oscillator connected to the PD, used to measure IO
based transistors (e.g. mr76008 ring oscillator at 1.1V, mr76007 ring
oscillator at 1.8V).
*) Pre Scaler - provides divide-by-X scaling of input voltage, which can then
be presented for VM for measurement within its range (e.g. mr76006 -
divide by 2 pre-scaler).
TS, VM & PD also include a digital interface, which consists of configuration
inputs and measurement outputs.
Some of the units have number of series, each series can have slightly
different characteristics.
The mr75203 binding describes configuration for the controller unit, but also
for some of the analog IPs.
properties:
compatible:
const: moortec,mr75203
reg:
items:
- description: PVT common registers
- description: PVT temperature sensor registers
- description: PVT process detector registers
- description: PVT voltage monitor registers
reg-names:
items:
- const: common
- const: ts
- const: pd
- const: vm
intel,vm-map:
description:
PVT controller has 5 VM (voltage monitor) sensors.
vm-map defines CPU core to VM instance mapping. A
value of 0xff means that VM sensor is unused.
$ref: /schemas/types.yaml#/definitions/uint8-array
maxItems: 5
clocks:
maxItems: 1
resets:
maxItems: 1
"#thermal-sensor-cells":
const: 1
moortec,vm-active-channels:
description:
Defines the number of channels per VM that are actually used and are
connected to some input source.
Maximum number of items - number of VMs.
Maximum value of each item - number of channels.
Minimum value of each item - 0 (which means entire VM sensor is not used).
$ref: /schemas/types.yaml#/definitions/uint8-array
moortec,vm-pre-scaler-x2:
description:
Defines the channels that use a mr76006 pre-scaler to divide the input
source by 2.
The pre-scaler is used for input sources that exceed the VM input range.
The driver uses this information to present to the user with the actual
value of the voltage source.
For channels that are not listed, no pre-scaler is assumed.
Maximum number of items - total number of channels in all VMs.
Each channel should not appear more than once.
$ref: /schemas/types.yaml#/definitions/uint8-array
moortec,ts-series:
description:
Definition of the temperature equation and coefficients that shall be
used to convert the digital output to value in milli-Celsius.
minimum: 5
maximum: 6
default: 5
$ref: /schemas/types.yaml#/definitions/uint32
moortec,ts-coeff-g:
description:
G coefficient for temperature equation.
Default for series 5 = 60000
Default for series 6 = 57400
multipleOf: 10
minimum: 1000
$ref: /schemas/types.yaml#/definitions/uint32
moortec,ts-coeff-h:
description:
H coefficient for temperature equation.
Default for series 5 = 200000
Default for series 6 = 249400
multipleOf: 100
minimum: 1000
$ref: /schemas/types.yaml#/definitions/uint32
moortec,ts-coeff-cal5:
description:
cal5 coefficient for temperature equation.
Default for series 5 = 4094
Default for series 6 = 4096
minimum: 1
$ref: /schemas/types.yaml#/definitions/uint32
moortec,ts-coeff-j:
description:
J coefficient for temperature equation.
Default for series 5 = -100
Default for series 6 = 0
multipleOf: 10
maximum: 0
$ref: /schemas/types.yaml#/definitions/int32
required:
- compatible
- reg
- reg-names
- clocks
- "#thermal-sensor-cells"
additionalProperties: false
examples:
- |
pvt: pvt@e0680000 {
compatible = "moortec,mr75203";
reg = <0xe0680000 0x80>,
<0xe0680080 0x180>,
<0xe0680200 0x200>,
<0xe0680400 0xc00>;
reg-names = "common", "ts", "pd", "vm";
intel,vm-map = [03 01 04 ff ff];
clocks = <&osc0>;
resets = <&rcu0 0x40 7>;
moortec,vm-active-channels = /bits/ 8 <0x10 0x05>;
moortec,vm-pre-scaler-x2 = /bits/ 8 <5 6 20>;
moortec,ts-coeff-g = <61400>;
moortec,ts-coeff-h = <253700>;
#thermal-sensor-cells = <1>;
};
@@ -0,0 +1,240 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/national,lm90.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: LM90 series thermometer
maintainers:
- Jean Delvare <jdelvare@suse.com>
- Guenter Roeck <linux@roeck-us.net>
properties:
compatible:
enum:
- adi,adm1032
- adi,adt7461
- adi,adt7461a
- adi,adt7481
- dallas,max6646
- dallas,max6647
- dallas,max6649
- dallas,max6654
- dallas,max6657
- dallas,max6658
- dallas,max6659
- dallas,max6680
- dallas,max6681
- dallas,max6695
- dallas,max6696
- gmt,g781
- national,lm86
- national,lm89
- national,lm90
- national,lm99
- nuvoton,nct7716
- nuvoton,nct7717
- nuvoton,nct7718
- nxp,sa56004
- onnn,nct72
- onnn,nct214
- onnn,nct218
- onnn,nct1008
- ti,tmp451
- ti,tmp461
- winbond,w83l771
interrupts:
items:
- description: |
Single interrupt specifier which describes the LM90 "-ALERT" pin
output.
reg:
maxItems: 1
"#thermal-sensor-cells":
const: 1
'#address-cells':
const: 1
'#size-cells':
const: 0
vcc-supply:
description: phandle to the regulator that provides the +VCC supply
ti,extended-range-enable:
description: Set to enable extended range temperature.
type: boolean
required:
- compatible
- reg
patternProperties:
"^channel@([0-2])$":
type: object
description: Represents channels of the device and their specific configuration.
properties:
reg:
description: The channel number. 0 is local channel, 1-2 are remote channels.
items:
minimum: 0
maximum: 2
label:
description: A descriptive name for this channel, like "ambient" or "psu".
temperature-offset-millicelsius:
description: Temperature offset to be added to or subtracted from remote temperature measurements.
required:
- reg
additionalProperties: false
allOf:
- if:
not:
properties:
compatible:
contains:
enum:
- adi,adt7461
- adi,adt7461a
- adi,adt7481
- ti,tmp451
- ti,tmp461
then:
properties:
ti,extended-range-enable: false
- if:
properties:
compatible:
contains:
enum:
- dallas,max6646
- dallas,max6647
- dallas,max6649
- dallas,max6654
- dallas,max6657
- dallas,max6658
- dallas,max6659
- dallas,max6695
- dallas,max6696
- nuvoton,nct7716
- nuvoton,nct7717
then:
patternProperties:
"^channel@([0-2])$":
properties:
temperature-offset-millicelsius: false
- if:
properties:
compatible:
contains:
enum:
- adi,adt7461
- adi,adt7461a
- adi,adt7481
- onnn,nct72
- onnn,nct214
- onnn,nct218
- onnn,nct1008
then:
patternProperties:
"^channel@([0-2])$":
properties:
temperature-offset-millicelsius:
maximum: 127750
- if:
properties:
compatible:
contains:
enum:
- adi,adm1032
- dallas,max6680
- dallas,max6681
- gmt,g781
- national,lm86
- national,lm89
- national,lm90
- national,lm99
- nuvoton,nct7718
- nxp,sa56004
- winbond,w83l771
then:
patternProperties:
"^channel@([0-2])$":
properties:
temperature-offset-millicelsius:
maximum: 127875
- if:
properties:
compatible:
contains:
enum:
- ti,tmp451
- ti,tmp461
then:
patternProperties:
"^channel@([0-2])$":
properties:
temperature-offset-millicelsius:
maximum: 127937
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
sensor@4c {
compatible = "onnn,nct1008";
reg = <0x4c>;
vcc-supply = <&palmas_ldo6_reg>;
interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
#thermal-sensor-cells = <1>;
};
};
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
sensor@4c {
compatible = "adi,adt7481";
reg = <0x4c>;
#address-cells = <1>;
#size-cells = <0>;
channel@0 {
reg = <0x0>;
label = "local";
};
channel@1 {
reg = <0x1>;
label = "front";
temperature-offset-millicelsius = <4000>;
};
channel@2 {
reg = <0x2>;
label = "back";
temperature-offset-millicelsius = <750>;
};
};
};
@@ -0,0 +1,142 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
---
$id: http://devicetree.org/schemas/hwmon/ntc-thermistor.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: NTC thermistor temperature sensors
maintainers:
- Linus Walleij <linusw@kernel.org>
description: |
Thermistors with negative temperature coefficient (NTC) are resistors that
vary in resistance in an often non-linear way in relation to temperature.
The negative temperature coefficient means that the resistance decreases
as the temperature rises. Since the relationship between resistance and
temperature is non-linear, software drivers most often need to use a look
up table and interpolation to get from resistance to temperature.
When used in practice, a thermistor is often connected between ground, a
pull-up resistor or/and a pull-down resistor and a fixed voltage like this:
+ e.g. 5V = pull-up voltage (puv)
|
+-+
| |
| | Pull-up resistor
| | (puo)
+-+
|-------------------------o
+-+ | ^
| |/ |
| / |
|/| Thermistor | Measured voltage (mv)
/ | | "connected ground"
/| | |
+-+ |
|-------------------------o
+-+ ^
| | |
| | Pull-down resistor | Measured voltage (mv)
| | (pdo) | "connected positive"
+-+ |
| |
| v
+ GND GND
The arrangements of where we measure the voltage over the thermistor are
called "connected ground" and "connected positive" and shall be understood as
the cases when either pull-up or pull-down resistance is zero.
If the pull-up resistance is 0 one end of the thermistor is connected to the
positive voltage and we get the thermistor on top of a pull-down resistor
and we take the measure between the thermistor and the pull-down resistor.
Conversely if the pull-down resistance is zero, one end of the thermistor is
connected to ground and we get the thermistor under the pull-up resistor
and we take the measure between the pull-up resistor and the thermistor.
We can use both pull-up and pull-down resistors at the same time, and then
the figure illustrates where the voltage will be measured for the "connected
ground" and "connected positive" cases.
properties:
$nodename:
pattern: "^thermistor(.*)?$"
compatible:
oneOf:
- const: epcos,b57330v2103
- const: epcos,b57891s0103
- const: murata,ncp15wb473
- const: murata,ncp18wb473
- const: murata,ncp21wb473
- const: murata,ncp03wb473
- const: murata,ncp15wl333
- const: murata,ncp03wf104
- const: murata,ncp15xh103
- const: murata,ncp18wm474
- const: samsung,1404-001221
# Deprecated "ntc," compatible strings
- const: ntc,ncp15wb473
deprecated: true
- const: ntc,ncp18wb473
deprecated: true
- const: ntc,ncp21wb473
deprecated: true
- const: ntc,ncp03wb473
deprecated: true
- const: ntc,ncp15wl333
deprecated: true
"#thermal-sensor-cells":
description: Thermal sensor cells if used for thermal sensoring.
const: 0
pullup-uv:
$ref: /schemas/types.yaml#/definitions/uint32
description: Pull-up voltage in micro volts. Must always be specified.
pullup-ohm:
$ref: /schemas/types.yaml#/definitions/uint32
description: Pull-up resistance in ohms. Must always be specified, even
if zero.
pulldown-ohm:
$ref: /schemas/types.yaml#/definitions/uint32
description: Pull-down resistance in ohms. Must always be specified, even
if zero.
connected-positive:
$ref: /schemas/types.yaml#/definitions/flag
description: Indicates how the thermistor is connected in series with
a pull-up and/or a pull-down resistor. See the description above for
an illustration. If this flag is NOT specified, the thermistor is assumed
to be connected-ground, which usually means a pull-down resistance of
zero but complex arrangements are possible.
# See /schemas/iio/adc/adc.yaml
io-channels:
maxItems: 1
description: IIO ADC channel to read the voltage over the resistor. Must
always be specified.
required:
- compatible
- pullup-uv
- pullup-ohm
- pulldown-ohm
- io-channels
additionalProperties: false
examples:
- |
thermistor {
compatible = "murata,ncp18wb473";
io-channels = <&gpadc 0x06>;
pullup-uv = <1800000>;
pullup-ohm = <220000>;
pulldown-ohm = <0>;
#thermal-sensor-cells = <0>;
};
@@ -0,0 +1,57 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/nuvoton,nct6775.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Nuvoton NCT6775 and compatible Super I/O chips
maintainers:
- Zev Weiss <zev@bewilderbeest.net>
properties:
compatible:
enum:
- nuvoton,nct6106
- nuvoton,nct6116
- nuvoton,nct6775
- nuvoton,nct6776
- nuvoton,nct6779
- nuvoton,nct6791
- nuvoton,nct6792
- nuvoton,nct6793
- nuvoton,nct6795
- nuvoton,nct6796
- nuvoton,nct6797
- nuvoton,nct6798
- nuvoton,nct6799
reg:
maxItems: 1
nuvoton,tsi-channel-mask:
description:
Bitmask indicating which TSI temperature sensor channels are
active. LSB is TSI0, bit 1 is TSI1, etc.
$ref: /schemas/types.yaml#/definitions/uint32
maximum: 0xff
default: 0
required:
- compatible
- reg
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
superio@4d {
compatible = "nuvoton,nct6779";
reg = <0x4d>;
nuvoton,tsi-channel-mask = <0x03>;
};
};
@@ -0,0 +1,65 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/nuvoton,nct7363.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Nuvoton NCT7363Y Hardware Monitoring IC
maintainers:
- Ban Feng <kcfeng0@nuvoton.com>
description: |
The NCT7363Y is a fan controller which provides up to 16 independent
FAN input monitors, and up to 16 independent PWM outputs with SMBus interface.
Datasheets: Available from Nuvoton upon request
properties:
compatible:
enum:
- nuvoton,nct7363
- nuvoton,nct7362
reg:
maxItems: 1
"#pwm-cells":
const: 2
patternProperties:
"^fan-[0-9]+$":
$ref: fan-common.yaml#
unevaluatedProperties: false
required:
- pwms
- tach-ch
required:
- compatible
- reg
- "#pwm-cells"
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
hwmon: hwmon@22 {
compatible = "nuvoton,nct7363";
reg = <0x22>;
#pwm-cells = <2>;
fan-0 {
pwms = <&hwmon 0 50000>;
tach-ch = /bits/ 8 <0x00>;
};
fan-1 {
pwms = <&hwmon 1 50000>;
tach-ch = /bits/ 8 <0x01>;
};
};
};
@@ -0,0 +1,144 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/nuvoton,nct7802.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Nuvoton NCT7802Y Hardware Monitoring IC
maintainers:
- Guenter Roeck <linux@roeck-us.net>
description: |
The NCT7802Y is a hardware monitor IC which supports one on-die and up to
5 remote temperature sensors with SMBus interface.
Datasheets:
https://www.nuvoton.com/export/resource-files/Nuvoton_NCT7802Y_Datasheet_V12.pdf
additionalProperties: false
properties:
compatible:
enum:
- nuvoton,nct7802
reg:
maxItems: 1
"#address-cells":
const: 1
"#size-cells":
const: 0
patternProperties:
"^channel@[0-3]$":
type: object
additionalProperties: false
properties:
reg:
items:
- enum:
- 0 # Local Temperature Sensor ("LTD")
- 1 # Remote Temperature Sensor or Voltage Sensor 1 ("RTD1")
- 2 # Remote Temperature Sensor or Voltage Sensor 2 ("RTD2")
- 3 # Remote Temperature Sensor or Voltage Sensor 3 ("RTD3")
sensor-type:
items:
- enum:
- temperature
- voltage
temperature-mode:
items:
- enum:
- thermistor
- thermal-diode
required:
- reg
allOf:
# For channels RTD1, RTD2 and RTD3, require sensor-type to be set.
# Otherwise (for all other channels), do not allow temperature-mode to be
# set.
- if:
properties:
reg:
items:
- enum:
- 1
- 2
- 3
then:
required:
- sensor-type
else:
not:
required:
- sensor-type
# For channels RTD1 and RTD2 and if sensor-type is "temperature", require
# temperature-mode to be set. Otherwise (for all other channels or
# sensor-type settings), do not allow temperature-mode to be set
- if:
properties:
reg:
items:
- enum:
- 1
- 2
sensor-type:
items:
- enum:
- temperature
then:
required:
- temperature-mode
else:
not:
required:
- temperature-mode
required:
- compatible
- reg
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
nct7802@28 {
compatible = "nuvoton,nct7802";
reg = <0x28>;
#address-cells = <1>;
#size-cells = <0>;
channel@0 { /* LTD */
reg = <0>;
};
channel@1 { /* RTD1 */
reg = <1>;
sensor-type = "voltage";
};
channel@2 { /* RTD2 */
reg = <2>;
sensor-type = "temperature";
temperature-mode = "thermal-diode";
};
channel@3 { /* RTD3 */
reg = <3>;
sensor-type = "temperature";
};
};
};
@@ -0,0 +1,139 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/nuvoton,npcm750-pwm-fan.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Nuvoton NPCM7xx/NPCM8xx PWM and Fan Tach Controller
maintainers:
- Tomer Maimon <tmaimon77@gmail.com>
description:
The NPCM7xx/NPCM8xx family includes a PWM and Fan Tachometer controller.
The controller provides up to 8 (NPCM7xx) or 12 (NPCM8xx) PWM channels and up
to 16 tachometer inputs. It is used for fan speed control and monitoring.
properties:
compatible:
enum:
- nuvoton,npcm750-pwm-fan
- nuvoton,npcm845-pwm-fan
reg:
maxItems: 2
description: Register addresses for PWM and Fan Tach units.
reg-names:
items:
- const: pwm
- const: fan
clocks:
maxItems: 2
description: Clocks for the PWM and Fan Tach modules.
clock-names:
items:
- const: pwm
- const: fan
interrupts:
description:
Contains the Fan interrupts with flags for falling edge.
For NPCM7XX, 8 interrupt lines are expected (one per PWM channel).
For NPCM8XX, 12 interrupt lines are expected (one per PWM channel).
minItems: 8
maxItems: 12
"#address-cells":
const: 1
"#size-cells":
const: 0
patternProperties:
"^fan@[0-9a-f]+$":
type: object
$ref: fan-common.yaml#
unevaluatedProperties: false
properties:
reg:
description:
Specify the PWM output channel. Integer value in the range 0-7 for
NPCM7XX or 0-11 for NPCM8XX, representing the PWM channel number.
maximum: 11
fan-tach-ch:
$ref: /schemas/types.yaml#/definitions/uint8-array
description:
The tach channel(s) used for the fan.
Integer values in the range 0-15.
items:
maximum: 15
cooling-levels:
description:
PWM duty cycle values in a range from 0 to 255 which
correspond to thermal cooling states. This property enables
thermal zone integration for automatic fan speed control
based on temperature.
items:
maximum: 255
required:
- reg
- fan-tach-ch
required:
- compatible
- reg
- reg-names
- clocks
- clock-names
- interrupts
additionalProperties: false
examples:
- |
#include <dt-bindings/clock/nuvoton,npcm7xx-clock.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
pwm_fan: pwm-fan@103000 {
compatible = "nuvoton,npcm750-pwm-fan";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x103000 0x2000>, <0x180000 0x8000>;
reg-names = "pwm", "fan";
clocks = <&clk NPCM7XX_CLK_APB3>, <&clk NPCM7XX_CLK_APB4>;
clock-names = "pwm", "fan";
interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&pwm0_pins &fanin0_pins>;
fan@0 {
reg = <0>;
fan-tach-ch = <0 1>;
cooling-levels = <64 128 192 255>;
};
fan@1 {
reg = <1>;
fan-tach-ch = <2>;
};
};
@@ -0,0 +1,36 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/nxp,mc34vr500.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: NXP MC34VR500 hwmon sensor
maintainers:
- Mario Kicherer <dev@kicherer.org>
properties:
compatible:
enum:
- nxp,mc34vr500
reg:
maxItems: 1
required:
- compatible
- reg
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
pmic@8 {
compatible = "nxp,mc34vr500";
reg = <0x08>;
};
};
@@ -0,0 +1,60 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/pmbus/adi,adp1050.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Analog Devices ADP1050 digital controller with PMBus interface
maintainers:
- Radu Sabau <radu.sabau@analog.com>
description: |
The ADP1050 and similar devices are used to monitor system voltages,
currents, power, and temperatures.
Through the PMBus interface, the ADP1050 targets isolated power supplies
and has four individual monitors for input/output voltage, input current
and temperature.
Datasheet:
https://www.analog.com/en/products/adp1050.html
https://www.analog.com/en/products/adp1051.html
https://www.analog.com/en/products/adp1055.html
https://www.analog.com/en/products/ltp8800-1a.html
https://www.analog.com/en/products/ltp8800-2.html
https://www.analog.com/en/products/ltp8800-4a.html
properties:
compatible:
enum:
- adi,adp1050
- adi,adp1051
- adi,adp1055
- adi,ltp8800
reg:
maxItems: 1
vcc-supply: true
required:
- compatible
- reg
- vcc-supply
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
clock-frequency = <100000>;
hwmon@70 {
compatible = "adi,adp1050";
reg = <0x70>;
vcc-supply = <&vcc>;
};
};
...
@@ -0,0 +1,50 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/pmbus/adi,lt3074.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Analog Devices LT3074 voltage regulator
maintainers:
- Cedric Encarnacion <cedricjustine.encarnacion@analog.com>
description: |
The LT3074 is a low voltage, ultra-low noise and ultra-fast transient
response linear regulator. It allows telemetry for input/output voltage,
output current and temperature through the PMBus serial interface.
Datasheet:
https://www.analog.com/en/products/lt3074.html
allOf:
- $ref: /schemas/regulator/regulator.yaml#
properties:
compatible:
enum:
- adi,lt3074
reg:
maxItems: 1
required:
- compatible
- reg
unevaluatedProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
regulator@6d {
compatible = "adi,lt3074";
reg = <0x6d>;
regulator-name = "vout";
regulator-max-microvolt = <1250000>;
regulator-min-microvolt = <1150000>;
};
};
@@ -0,0 +1,52 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/pmbus/adi,max17616.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Analog Devices MAX17616/MAX17616A Current-Limiter with PMBus Interface
maintainers:
- Kim Seer Paller <kimseer.paller@analog.com>
description: |
The MAX17616/MAX17616A is a 3V to 80V, 7A current-limiter with overvoltage,
surge, undervoltage, reverse polarity, and loss of ground protection. It allows
monitoring of input/output voltage, output current and temperature through the
PMBus serial interface.
Datasheet:
https://www.analog.com/en/products/max17616.html
properties:
compatible:
const: adi,max17616
reg:
maxItems: 1
vcc-supply: true
interrupts:
description: Fault condition signal provided on SMBALERT pin.
maxItems: 1
required:
- compatible
- reg
- vcc-supply
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
hwmon@16 {
compatible = "adi,max17616";
reg = <0x16>;
vcc-supply = <&vcc>;
};
};
...
@@ -0,0 +1,66 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/pmbus/adi,max20830.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Analog Devices MAX20830 Step-Down Switching Regulator with PMBus
maintainers:
- Alexis Czezar Torreno <alexisczezar.torreno@analog.com>
description: |
The MAX20830 is a fully integrated step-down DC-DC switching regulator with
PMBus interface. It provides 2.7V to 16V input, 0.4V to 5.8V adjustable
output, and up to 30A output current. It allows monitoring of input/output
voltage, output current and temperature through the PMBus serial interface.
Datasheet:
https://www.analog.com/en/products/max20830.html
allOf:
- $ref: /schemas/regulator/regulator.yaml#
properties:
compatible:
const: adi,max20830
reg:
maxItems: 1
vddh-supply:
description:
Phandle to the regulator that provides the VDDH power supply.
avdd-supply:
description:
Phandle to the regulator that provides the AVDD power supply.
ldoin-supply:
description:
Optional 2.5V to 5.5V LDO input supply.
pwr-good-gpios:
description:
GPIO connected to the power-good status output pin.
maxItems: 1
required:
- compatible
- reg
- vddh-supply
unevaluatedProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
regulator@30 {
compatible = "adi,max20830";
reg = <0x30>;
vddh-supply = <&vddh>;
};
};
...
@@ -0,0 +1,45 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/pmbus/adi,max20860a.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Analog Devices MAX20860A Step-Down Converter
maintainers:
- Sanman Pradhan <psanman@juniper.net>
description: |
The MAX20860A is a fully integrated step-down DC-DC switching regulator
with PMBus interface for monitoring input/output voltage, output current
and temperature.
Datasheet: https://www.analog.com/en/products/max20860a.html
allOf:
- $ref: /schemas/regulator/regulator.yaml#
properties:
compatible:
const: adi,max20860a
reg:
maxItems: 1
required:
- compatible
- reg
unevaluatedProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
regulator@40 {
compatible = "adi,max20860a";
reg = <0x40>;
};
};
@@ -0,0 +1,77 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/pmbus/infineon,tda38640.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Infineon TDA38640 Synchronous Buck Regulator with SVID and I2C
maintainers:
- Naresh Solanki <naresh.solanki@9elements.com>
description: |
The Infineon TDA38640 is a 40A Single-voltage Synchronous Buck
Regulator with SVID and I2C designed for Industrial use.
Datasheet: https://www.infineon.com/dgdl/Infineon-TDA38640-0000-DataSheet-v02_04-EN.pdf?fileId=8ac78c8c80027ecd018042f2337f00c9
properties:
compatible:
enum:
- infineon,tda38640
reg:
maxItems: 1
infineon,en-pin-fixed-level:
description:
Indicates that the chip EN pin is at fixed level or left
unconnected(has internal pull-down).
type: boolean
interrupts:
maxItems: 1
regulators:
type: object
description:
list of regulators provided by this controller.
properties:
vout:
$ref: /schemas/regulator/regulator.yaml#
type: object
unevaluatedProperties: false
additionalProperties: false
required:
- compatible
- reg
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
tda38640@40 {
compatible = "infineon,tda38640";
reg = <0x40>;
interrupt-parent = <&smb_pex_cpu0_event>;
interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
regulators {
pvnn_main_cpu0: vout {
regulator-name = "pvnn_main_cpu0";
regulator-enable-ramp-delay = <200>;
};
};
};
};
@@ -0,0 +1,67 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/pmbus/infineon,xdp720.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Infineon XDP720 / XDP730 Digital eFuse Controllers
maintainers:
- Ashish Yadav <ashish.yadav@infineon.com>
description: |
The XDP720 and XDP730 are PMBus-compliant digital eFuse controllers
with an integrated current sensor. They provide accurate system
telemetry (V, I, P, T) and report analog current at the IMON pin for
post-processing.
Both parts share the same PMBus register map and direct-format
coefficients; they differ in the GIMON gain step exposed via the
TELEMETRY_AVG register (bit 10) and in the VDD_VIN pin number
(XDP720: pin 9, XDP730: pin 20).
Datasheets:
- XDP720: https://www.infineon.com/assets/row/public/documents/24/49/infineon-xdp720-001-datasheet-en.pdf
- XDP730: https://www.infineon.com/assets/row/public/documents/24/49/infineon-xdp730-001-datasheet-en.pdf
properties:
compatible:
enum:
- infineon,xdp720
- infineon,xdp730
reg:
maxItems: 1
infineon,rimon-micro-ohms:
description:
The value of the RIMON resistor, in micro ohms, required to enable
the system overcurrent protection.
vdd-vin-supply:
description:
Supply for the VDD_VIN pin (XDP720 pin 9, XDP730 pin 20), the IC
controller power supply. Typically connected to the input bus
(VIN) through a 100 ohm / 100 nF RC filter.
required:
- compatible
- reg
- vdd-vin-supply
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
efuse@11 {
compatible = "infineon,xdp720";
reg = <0x11>;
vdd-vin-supply = <&vdd_vin>;
infineon,rimon-micro-ohms = <1098000000>; /* 1.098k ohm */
};
};
@@ -0,0 +1,158 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/pmbus/isil,isl68137.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Renesas Digital Multiphase Voltage Regulators with PMBus
maintainers:
- Grant Peltier <grant.peltier.jg@renesas.com>
description: |
Renesas digital multiphase voltage regulators with PMBus.
https://www.renesas.com/en/products/power-management/multiphase-power/multiphase-dcdc-switching-controllers
properties:
compatible:
oneOf:
- enum:
- isil,isl68137
- renesas,isl68220
- renesas,isl68221
- renesas,isl68222
- renesas,isl68223
- renesas,isl68224
- renesas,isl68225
- renesas,isl68226
- renesas,isl68227
- renesas,isl68229
- renesas,isl68233
- renesas,isl68239
- renesas,isl69222
- renesas,isl69223
- renesas,isl69224
- renesas,isl69225
- renesas,isl69227
- renesas,isl69228
- renesas,isl69234
- renesas,isl69236
- renesas,isl69239
- renesas,isl69242
- renesas,isl69243
- renesas,isl69247
- renesas,isl69248
- renesas,isl69254
- renesas,isl69255
- renesas,isl69256
- renesas,isl69259
- isil,isl69260
- renesas,isl69268
- isil,isl69269
- renesas,isl69298
- renesas,raa228000
- renesas,raa228004
- renesas,raa228006
- renesas,raa228228
- renesas,raa228244
- renesas,raa228246
- renesas,raa229001
- renesas,raa229004
- renesas,raa229621
- items:
- enum:
- renesas,raa228942
- renesas,raa228943
- const: renesas,raa228244
reg:
maxItems: 1
'#address-cells':
const: 1
'#size-cells':
const: 0
patternProperties:
"^channel@([0-3])$":
type: object
description:
Container for properties specific to a particular channel (rail).
properties:
reg:
description: The channel (rail) index.
items:
minimum: 0
maximum: 3
vout-voltage-divider:
description: |
Resistances of a voltage divider placed between Vout and the voltage
sense (Vsense) pin for the given channel (rail). It has two numbers
representing the resistances of the voltage divider provided as
<Rout Rtotal> which yields an adjusted Vout as
Vout_adj = Vout * Rtotal / Rout given the original Vout as reported
by the Vsense pin. Given a circuit configuration similar to the one
below, Rtotal = R1 + Rout.
Vout ----.
|
.-----.
| R1 |
'-----'
|
+---- Vsense
|
.-----.
| Rout|
'-----'
|
GND
$ref: /schemas/types.yaml#/definitions/uint32-array
minItems: 2
maxItems: 2
required:
- reg
additionalProperties: false
required:
- compatible
- reg
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
isl68239@60 {
compatible = "isil,isl68137";
reg = <0x60>;
};
};
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
isl68239@60 {
compatible = "renesas,isl68239";
reg = <0x60>;
#address-cells = <1>;
#size-cells = <0>;
channel@0 {
reg = <0>;
vout-voltage-divider = <1000 2000>; // Reported Vout/Pout would be scaled by 2
};
};
};
@@ -0,0 +1,75 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/pmbus/mps,mp2975.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: MPS MP2975 Synchronous Buck Regulator
maintainers:
- Naresh Solanki <naresh.solanki@9elements.com>
description:
The MPS MP2971, MP2973 & MP2975 is a multi-phase voltage regulator
designed for use in high-performance computing and server
applications. It supports I2C/PMBus for control and monitoring.
properties:
compatible:
enum:
- mps,mp2971
- mps,mp2973
- mps,mp2975
reg:
maxItems: 1
interrupts:
maxItems: 1
regulators:
type: object
description:
List of regulators provided by this controller.
patternProperties:
"^vout[0-1]$":
$ref: /schemas/regulator/regulator.yaml#
type: object
unevaluatedProperties: false
additionalProperties: false
required:
- compatible
- reg
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
regulator@58 {
compatible = "mps,mp2973";
reg = <0x58>;
interrupt-parent = <&smb_pex_cpu1_event>;
interrupts = <12 IRQ_TYPE_LEVEL_LOW>;
regulators {
vout0 {
regulator-name = "pvccin_cpu1";
regulator-enable-ramp-delay = <200>;
};
vout1 {
regulator-name = "pvccfa_ehv_fivra_cpu1";
regulator-enable-ramp-delay = <200>;
};
};
};
};
@@ -0,0 +1,74 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/pmbus/mps,mpq8785.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Monolithic Power Systems Multiphase Voltage Regulators with PMBus
maintainers:
- Charles Hsu <ythsu0511@gmail.com>
description:
Monolithic Power Systems digital multiphase voltage regulators with PMBus.
properties:
compatible:
enum:
- mps,mpm3695
- mps,mpm3695-25
- mps,mpm82504
- mps,mpq8785
reg:
maxItems: 1
mps,vout-fb-divider-ratio-permille:
description:
The feedback resistor divider ratio, expressed in permille
(Vfb / Vout * 1000). This value is written to the PMBUS_VOUT_SCALE_LOOP
register and is required for correct output voltage presentation.
$ref: /schemas/types.yaml#/definitions/uint32
minimum: 1
maximum: 4095
default: 706
required:
- compatible
- reg
allOf:
- if:
properties:
compatible:
enum:
- mps,mpm3695
- mps,mpm82504
then:
properties:
mps,vout-fb-divider-ratio-permille:
maximum: 1023
- if:
properties:
compatible:
const: mps,mpq8785
then:
properties:
mps,vout-fb-divider-ratio-permille:
maximum: 2047
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
pmic@30 {
compatible = "mps,mpm82504";
reg = <0x30>;
mps,vout-fb-divider-ratio-permille = <600>;
};
};
@@ -0,0 +1,69 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/pmbus/ti,lm25066.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: National Semiconductor/Texas Instruments LM250x6/LM506x power-management ICs
maintainers:
- Zev Weiss <zev@bewilderbeest.net>
description: |
The LM25066 family of power-management ICs (a.k.a. hot-swap
controllers or eFuses in various contexts) are PMBus devices that
offer temperature, current, voltage, and power monitoring.
Datasheet: https://www.ti.com/lit/ds/symlink/lm25066.pdf
properties:
compatible:
enum:
- ti,lm25056
- ti,lm25066
- ti,lm5064
- ti,lm5066
- ti,lm5066i
reg:
maxItems: 1
shunt-resistor-micro-ohms:
description:
Shunt (sense) resistor value in micro-Ohms
default: 1000
regulators:
type: object
properties:
vout:
$ref: /schemas/regulator/regulator.yaml#
type: object
unevaluatedProperties: false
additionalProperties: false
required:
- compatible
- reg
allOf:
- $ref: /schemas/hwmon/hwmon-common.yaml#
unevaluatedProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
pmic@40 {
compatible = "ti,lm25066";
reg = <0x40>;
shunt-resistor-micro-ohms = <675>;
};
};
@@ -0,0 +1,83 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/pmbus/ti,tps25990.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Texas Instruments TPS25990 Stackable eFuse
maintainers:
- Jerome Brunet <jbrunet@baylibre.com>
description:
The TI TPS25990 is an integrated, high-current circuit
protection and power management device with PMBUS interface
properties:
compatible:
const: ti,tps25990
reg:
maxItems: 1
ti,rimon-micro-ohms:
description:
micro Ohms value of the resistance installed between the Imon pin
and the ground reference.
interrupts:
description: PMBUS SMB Alert Interrupt.
maxItems: 1
regulators:
type: object
description:
list of regulators provided by this controller.
properties:
vout:
$ref: /schemas/regulator/regulator.yaml#
type: object
unevaluatedProperties: false
gpdac1:
$ref: /schemas/regulator/regulator.yaml#
type: object
unevaluatedProperties: false
gpdac2:
$ref: /schemas/regulator/regulator.yaml#
type: object
unevaluatedProperties: false
additionalProperties: false
required:
- compatible
- reg
- ti,rimon-micro-ohms
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
hw-monitor@46 {
compatible = "ti,tps25990";
reg = <0x46>;
interrupt-parent = <&gpio>;
interrupts = <42 IRQ_TYPE_LEVEL_LOW>;
ti,rimon-micro-ohms = <1370000000>;
regulators {
cpu0_vout: vout {
regulator-name = "main_cpu0";
};
};
};
};
@@ -0,0 +1,62 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/pmbus/ti,ucd90320.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: UCD90320 power sequencer
maintainers:
- Jim Wright <wrightj@linux.vnet.ibm.com>
description: |
The UCD90320 is a 32-rail PMBus/I2C addressable power-supply sequencer and
monitor. The 24 integrated ADC channels (AMONx) monitor the power supply
voltage, current, and temperature. Of the 84 GPIO pins, 8 can be used as
digital monitors (DMONx), 32 to enable the power supply (ENx), 24 for
margining (MARx), 16 for logical GPO, and 32 GPIs for cascading, and system
function.
http://focus.ti.com/lit/ds/symlink/ucd90320.pdf
properties:
compatible:
enum:
- ti,ucd9000
- ti,ucd9090
- ti,ucd90120
- ti,ucd90124
- ti,ucd90160
- ti,ucd90320
- ti,ucd90910
reg:
maxItems: 1
gpio-controller: true
gpio-line-names:
minItems: 84
maxItems: 84
'#gpio-cells':
const: 1
required:
- compatible
- reg
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
ucd90320@11 {
compatible = "ti,ucd90320";
reg = <0x11>;
};
};
@@ -0,0 +1,62 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/pmbus/vicor,pli1209bc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Vicor PLI1209BC Power Regulator
maintainers:
- Marcello Sylvester Bauer <sylv@sylv.io>
- Naresh Solanki <naresh.solanki@9elements.com>
description:
The Vicor PLI1209BC is a Digital Supervisor with Isolation for use
with BCM Bus Converter Modules.
properties:
compatible:
enum:
- vicor,pli1209bc
reg:
maxItems: 1
regulators:
type: object
description:
List of regulators provided by this controller.
properties:
vout2:
$ref: /schemas/regulator/regulator.yaml#
type: object
unevaluatedProperties: false
additionalProperties: false
required:
- compatible
- reg
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
regulator@5f {
compatible = "vicor,pli1209bc";
reg = <0x5f>;
regulators {
p12v_d: vout2 {
regulator-name = "bcm3";
regulator-boot-on;
};
};
};
};
@@ -0,0 +1,117 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/pwm-fan.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Fan connected to PWM lines
maintainers:
- Jean Delvare <jdelvare@suse.com>
- Guenter Roeck <linux@roeck-us.net>
properties:
compatible:
const: pwm-fan
cooling-levels:
description: PWM duty cycle values corresponding to thermal cooling states.
$ref: /schemas/types.yaml#/definitions/uint32-array
items:
maximum: 255
fan-supply:
description: Phandle to the regulator that provides power to the fan.
interrupts:
description:
This contains an interrupt specifier for each fan tachometer output
connected to an interrupt source. The output signal must generate a
defined number of interrupts per fan revolution, which require that
it must be self resetting edge interrupts.
maxItems: 1
fan-shutdown-percent:
description:
Fan RPM in percent set during shutdown. This is used to keep the fan
running at fixed RPM after the kernel shut down, which is useful on
hardware that does keep heating itself even after the kernel did shut
down, for example from some sort of management core.
minimum: 0
maximum: 100
fan-stop-to-start-percent:
description:
Minimum fan RPM in percent to start when stopped.
minimum: 0
maximum: 100
fan-stop-to-start-us:
description:
Time to wait in microseconds after start when stopped.
pulses-per-revolution:
description:
Define the number of pulses per fan revolution for each tachometer
input as an integer.
$ref: /schemas/types.yaml#/definitions/uint32
minimum: 1
maximum: 4
default: 2
pwms:
description: The PWM that is used to control the fan.
maxItems: 1
"#cooling-cells":
const: 2
required:
- compatible
- pwms
additionalProperties: false
examples:
- |
pwm-fan {
compatible = "pwm-fan";
cooling-levels = <0 102 170 230>;
pwms = <&pwm 0 10000 0>;
#cooling-cells = <2>;
};
thermal-zones {
cpu_thermal: cpu-thermal {
thermal-sensors = <&tmu 0>;
polling-delay-passive = <0>;
polling-delay = <0>;
trips {
cpu_alert1: cpu-alert1 {
temperature = <100000>; /* millicelsius */
hysteresis = <2000>; /* millicelsius */
type = "passive";
};
};
cooling-maps {
map0 {
trip = <&cpu_alert1>;
cooling-device = <&fan0 0 1>;
};
};
};
};
- |
#include <dt-bindings/interrupt-controller/irq.h>
pwm-fan {
compatible = "pwm-fan";
pwms = <&pwm 0 40000 0>;
fan-supply = <&reg_fan>;
interrupt-parent = <&gpio5>;
interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
pulses-per-revolution = <2>;
};
@@ -0,0 +1,64 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/renesas,isl28022.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Renesas ISL28022 power monitor
maintainers:
- Carsten Spieß <mail@carsten-spiess.de>
description: |
The ISL28022 is a power monitor with I2C interface. The device monitors
voltage, current via shunt resistor and calculated power.
Datasheets:
https://www.renesas.com/us/en/www/doc/datasheet/isl28022.pdf
properties:
compatible:
const: renesas,isl28022
reg:
maxItems: 1
shunt-resistor-micro-ohms:
description:
Shunt resistor value in micro-Ohm
minimum: 800
default: 10000
renesas,shunt-range-microvolt:
description:
Maximal shunt voltage range of +/- 40 mV, 80 mV, 160 mV or 320 mV
default: 320000
enum: [40000, 80000, 160000, 320000]
renesas,average-samples:
description:
Number of samples to be used to report voltage, current and power values.
default: 1
$ref: /schemas/types.yaml#/definitions/uint32
enum: [1, 2, 4, 8, 16, 32, 64, 128]
required:
- compatible
- reg
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
power-monitor@40 {
compatible = "renesas,isl28022";
reg = <0x40>;
shunt-resistor-micro-ohms = <8000>;
renesas,shunt-range-microvolt = <40000>;
renesas,average-samples = <128>;
};
};
@@ -0,0 +1,43 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/sensirion,sht15.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Sensirion SHT15 humidity and temperature sensor
maintainers:
- Krzysztof Kozlowski <krzk@kernel.org>
properties:
compatible:
const: sensirion,sht15
clk-gpios:
maxItems: 1
data-gpios:
maxItems: 1
vcc-supply:
description: regulator that drives the VCC pin
required:
- compatible
- clk-gpios
- data-gpios
- vcc-supply
additionalProperties: false
examples:
- |
sensor {
compatible = "sensirion,sht15";
clk-gpios = <&gpio4 12 0>;
data-gpios = <&gpio4 13 0>;
vcc-supply = <&reg_sht15>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_sensor>;
};
@@ -0,0 +1,61 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/sensirion,shtc1.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Sensirion SHTC1 Humidity and Temperature Sensor IC
maintainers:
- Christopher Ruehl <chris.ruehl@gtsys.com.hk>
description: |
The SHTC1, SHTW1 and SHTC3 are digital humidity and temperature sensors
designed especially for battery-driven high-volume consumer electronics
applications.
For further information refer to Documentation/hwmon/shtc1.rst
This binding document describes the binding for the hardware monitor
portion of the driver.
properties:
compatible:
enum:
- sensirion,shtc1
- sensirion,shtw1
- sensirion,shtc3
reg:
const: 0x70
sensirion,blocking-io:
$ref: /schemas/types.yaml#/definitions/flag
description:
If set, the driver holds the i2c bus until the measurement is finished.
sensirion,low-precision:
$ref: /schemas/types.yaml#/definitions/flag
description:
If set, the sensor acquires data with low precision (not recommended).
The driver acquires data with high precision by default.
required:
- compatible
- reg
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
clock-frequency = <400000>;
shtc3@70 {
compatible = "sensirion,shtc3";
reg = <0x70>;
sensirion,blocking-io;
};
};
...
@@ -0,0 +1,47 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/sophgo,sg2042-hwmon-mcu.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Sophgo SG2042 onboard MCU support
maintainers:
- Inochi Amaoto <inochiama@outlook.com>
properties:
compatible:
oneOf:
- items:
- const: sophgo,sg2044-hwmon-mcu
- const: sophgo,sg2042-hwmon-mcu
- const: sophgo,sg2042-hwmon-mcu
reg:
maxItems: 1
"#thermal-sensor-cells":
const: 1
required:
- compatible
- reg
- "#thermal-sensor-cells"
allOf:
- $ref: /schemas/thermal/thermal-sensor.yaml#
unevaluatedProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
hwmon@17 {
compatible = "sophgo,sg2042-hwmon-mcu";
reg = <0x17>;
#thermal-sensor-cells = <1>;
};
};
@@ -0,0 +1,41 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/st,stts751.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: STTS751 Thermometer
maintainers:
- Javier Carrasco <javier.carrasco.cruz@gmail.com>
properties:
compatible:
const: st,stts751
reg:
maxItems: 1
smbus-timeout-disable:
description:
When set, the smbus timeout function will be disabled.
$ref: /schemas/types.yaml#/definitions/flag
required:
- compatible
- reg
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
thermometer@48 {
compatible = "st,stts751";
reg = <0x48>;
smbus-timeout-disable;
};
};
@@ -0,0 +1,63 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/st,tsc1641.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: ST Microelectronics TSC1641 I2C power monitor
maintainers:
- Igor Reznichenko <igor@reznichenko.net>
description: |
TSC1641 is a 60 V, 16-bit high-precision power monitor with I2C and
MIPI I3C interface
Datasheets:
https://www.st.com/resource/en/datasheet/tsc1641.pdf
properties:
compatible:
const: st,tsc1641
reg:
maxItems: 1
interrupts:
description: Optional alert interrupt.
maxItems: 1
shunt-resistor-micro-ohms:
description: Shunt resistor value in micro-ohms. Since device has internal
16-bit RSHUNT register with 10 uOhm LSB, the maximum value is capped at
655.35 mOhm.
minimum: 100
default: 1000
maximum: 655350
st,alert-polarity-active-high:
$ref: /schemas/types.yaml#/definitions/flag
description: Default value is 0 which configures the normal polarity of the
ALERT pin, being active low open-drain. Setting this to 1 configures the
polarity of the ALERT pin to be inverted and active high open-drain.
Specify this property to set the alert polarity to active-high.
required:
- compatible
- reg
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
power-sensor@40 {
compatible = "st,tsc1641";
reg = <0x40>;
shunt-resistor-micro-ohms = <1000>;
st,alert-polarity-active-high;
};
};
@@ -0,0 +1,70 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/starfive,jh71x0-temp.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: StarFive JH71x0 Temperature Sensor
maintainers:
- Emil Renner Berthing <kernel@esmil.dk>
description: |
StarFive Technology Co. JH71x0 embedded temperature sensor
properties:
compatible:
enum:
- starfive,jh7100-temp
- starfive,jh7110-temp
reg:
maxItems: 1
clocks:
minItems: 2
maxItems: 2
clock-names:
items:
- const: sense
- const: bus
'#thermal-sensor-cells':
const: 0
resets:
minItems: 2
maxItems: 2
reset-names:
items:
- const: sense
- const: bus
required:
- compatible
- reg
- clocks
- clock-names
- resets
- reset-names
additionalProperties: false
examples:
- |
#include <dt-bindings/clock/starfive-jh7100.h>
#include <dt-bindings/reset/starfive-jh7100.h>
temperature-sensor@124a0000 {
compatible = "starfive,jh7100-temp";
reg = <0x124a0000 0x10000>;
clocks = <&clkgen JH7100_CLK_TEMP_SENSE>,
<&clkgen JH7100_CLK_TEMP_APB>;
clock-names = "sense", "bus";
#thermal-sensor-cells = <0>;
resets = <&rstgen JH7100_RSTN_TEMP_SENSE>,
<&rstgen JH7100_RSTN_TEMP_APB>;
reset-names = "sense", "bus";
};
@@ -0,0 +1,32 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/syna,as370.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Synaptics AS370 PVT sensors
maintainers:
- Javier Carrasco <javier.carrasco.cruz@gmail.com>
properties:
compatible:
const: syna,as370-hwmon
reg:
description:
Address and length of the register set.
maxItems: 1
required:
- compatible
- reg
additionalProperties: false
examples:
- |
sensor@ea0810 {
compatible = "syna,as370-hwmon";
reg = <0xea0810 0xc>;
};
@@ -0,0 +1,62 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/ti,adc128d818.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Texas Instruments ADC128D818 ADC System Monitor With Temperature Sensor
maintainers:
- Javier Carrasco <javier.carrasco.cruz@gmail.com>
description: |
The ADC128D818 is a 12-Bit, 8-Channel Analog to Digital Converter (ADC)
with a temperature sensor and an I2C interface.
Datasheets:
https://www.ti.com/product/ADC128D818
properties:
compatible:
const: ti,adc128d818
reg:
maxItems: 1
ti,mode:
$ref: /schemas/types.yaml#/definitions/uint8
description: |
Operation mode.
Mode 0 - 7 single-ended voltage readings (IN0-IN6), 1 temperature
reading (internal).
Mode 1 - 8 single-ended voltage readings (IN0-IN7), no temperature.
Mode 2 - 4 pseudo-differential voltage readings
(IN0-IN1, IN3-IN2, IN4-IN5, IN7-IN6), 1 temperature reading (internal).
Mode 3 - 4 single-ended voltage readings (IN0-IN3), 2 pseudo-differential
voltage readings (IN4-IN5, IN7-IN6), 1 temperature reading (internal).
default: 0
vref-supply:
description:
The regulator to use as an external reference. If it does not exist, the
internal reference will be used.
required:
- compatible
- reg
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
adc@1d {
compatible = "ti,adc128d818";
reg = <0x1d>;
vref-supply = <&vref>;
ti,mode = /bits/ 8 <2>;
};
};
@@ -0,0 +1,56 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/ti,ads7828.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Texas Instruments ADS7828/ADS7830 Analog to Digital Converter (ADC)
maintainers:
- Krzysztof Kozlowski <krzk@kernel.org>
description: |
The ADS7828 is 12-Bit, 8-Channel Sampling Analog to Digital Converter (ADC)
with an I2C interface.
Datasheets:
https://www.ti.com/product/ADS7828
properties:
compatible:
enum:
- ti,ads7828
- ti,ads7830
reg:
maxItems: 1
ti,differential-input:
description:
Set to use the device in differential mode.
type: boolean
vref-supply:
description:
The regulator to use as an external reference. If it does not exists the
internal reference will be used.
required:
- compatible
- reg
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
adc@48 {
compatible = "ti,ads7828";
reg = <0x48>;
vref-supply = <&vref>;
ti,differential-input;
};
};
@@ -0,0 +1,108 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/ti,amc6821.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: AMC6821 Intelligent Temperature Monitor and PWM Fan Controller
maintainers:
- Farouk Bouabid <farouk.bouabid@cherry.de>
- Quentin Schulz <quentin.schulz@cherry.de>
description:
Intelligent temperature monitor and pulse-width modulation (PWM) fan
controller.
properties:
compatible:
oneOf:
- items:
- const: tsd,mule
- const: ti,amc6821
- const: ti,amc6821
reg:
maxItems: 1
i2c-mux:
type: object
fan:
$ref: fan-common.yaml#
unevaluatedProperties: false
properties:
cooling-levels:
description: PWM duty cycle values corresponding to thermal cooling states.
items:
maximum: 255
"#pwm-cells":
const: 2
description: |
Number of cells in a PWM specifier.
- cell 0: PWM period in nanoseconds
- cell 1: PWM polarity: 0 or PWM_POLARITY_INVERTED
required:
- compatible
- reg
if:
properties:
compatible:
contains:
const: tsd,mule
then:
required:
- i2c-mux
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
fan_controller: fan@18 {
compatible = "ti,amc6821";
reg = <0x18>;
#pwm-cells = <2>;
fan {
pwms = <&fan_controller 40000 0>;
};
};
};
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
fan@18 {
compatible = "tsd,mule", "ti,amc6821";
reg = <0x18>;
i2c-mux {
compatible = "tsd,mule-i2c-mux";
#address-cells = <1>;
#size-cells = <0>;
i2c@0 {
reg = <0x0>;
#address-cells = <1>;
#size-cells = <0>;
rtc@6f {
compatible = "isil,isl1208";
reg = <0x6f>;
};
};
};
};
};
...
@@ -0,0 +1,175 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/ti,ina2xx.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Texas Instruments INA209 family of power/voltage monitors
maintainers:
- Krzysztof Kozlowski <krzk@kernel.org>
description: |
The INA209 is a high-side current shunt and power monitor with
an I2C interface.
Datasheets:
https://www.ti.com/product/INA209
properties:
compatible:
enum:
- silergy,sq52206
- silergy,sy24655
- ti,ina209
- ti,ina219
- ti,ina220
- ti,ina226
- ti,ina228
- ti,ina230
- ti,ina231
- ti,ina233
- ti,ina234
- ti,ina237
- ti,ina238
- ti,ina260
- ti,ina700
- ti,ina780
reg:
maxItems: 1
"#io-channel-cells":
const: 1
shunt-resistor:
description:
Shunt resistor value in micro-Ohm.
$ref: /schemas/types.yaml#/definitions/uint32
ti,shunt-gain:
description: |
Programmable gain divisor for the shunt voltage accuracy and range. This
property only applies to devices that have configurable PGA/ADCRANGE. The
gain value is used configure the gain and to convert the shunt voltage,
current and power register values when reading measurements from the
device.
For devices that have a configurable PGA (e.g. INA209, INA219, INA220),
the gain value maps directly with the PG bits of the config register.
For devices that have ADCRANGE configuration (e.g. INA238) a shunt-gain
value of 1 maps to ADCRANGE=1 where no gain divisor is applied to the
shunt voltage, and a value of 4 maps to ADCRANGE=0 such that a wider
voltage range is used.
For SQ52206,the shunt-gain value 1 mapps to ADCRANGE=10/11, the value 2
mapps to ADCRANGE=01, and the value 4 mapps to ADCRANGE=00.
The default value is device dependent, and is defined by the reset value
of PGA/ADCRANGE in the respective configuration registers.
$ref: /schemas/types.yaml#/definitions/uint32
enum: [1, 2, 4, 8]
vs-supply:
description: phandle to the regulator that provides the VS supply typically
in range from 2.7 V to 5.5 V.
ti,alert-polarity-active-high:
description: Alert pin is asserted based on the value of Alert polarity Bit
of Mask/Enable register. Default value is Normal (0 which maps to
active-low open collector). The other value is Inverted
(1 which maps to active-high open collector). Specify this property to set
the alert polarity to active-high.
$ref: /schemas/types.yaml#/definitions/flag
ti,maximum-expected-current-microamp:
description: |
This value indicates the maximum current in microamps that you can
expect to measure with ina233 in your circuit.
This value will be used to calculate the Current_LSB and current/power
coefficient for the pmbus and to calibrate the IC.
minimum: 32768
maximum: 4294967295
default: 32768000
required:
- compatible
- reg
allOf:
- $ref: hwmon-common.yaml#
- if:
properties:
compatible:
contains:
enum:
- silergy,sq52206
- silergy,sy24655
- ti,ina209
- ti,ina219
- ti,ina220
- ti,ina226
- ti,ina228
- ti,ina230
- ti,ina231
- ti,ina234
- ti,ina237
- ti,ina238
- ti,ina260
- ti,ina700
- ti,ina780
then:
properties:
ti,maximum-expected-current-microamp: false
- if:
properties:
compatible:
contains:
enum:
- silergy,sy24655
- ti,ina209
- ti,ina219
- ti,ina220
- ti,ina226
- ti,ina230
- ti,ina231
- ti,ina234
- ti,ina260
- ti,ina700
- ti,ina780
then:
properties:
ti,shunt-gain: false
- if:
properties:
compatible:
contains:
enum:
- ti,ina700
- ti,ina780
then:
properties:
shunt-resistor: false
unevaluatedProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
power-sensor@44 {
compatible = "ti,ina220";
reg = <0x44>;
#io-channel-cells = <1>;
label = "vdd_3v0";
shunt-resistor = <1000>;
vs-supply = <&vdd_3v0>;
ti,alert-polarity-active-high;
};
};
@@ -0,0 +1,121 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/ti,ina3221.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Texas Instruments INA3221 Current and Voltage Monitor
maintainers:
- Jean Delvare <jdelvare@suse.com>
- Guenter Roeck <linux@roeck-us.net>
properties:
compatible:
const: ti,ina3221
reg:
maxItems: 1
ti,single-shot:
description: |
This chip has two power modes: single-shot (chip takes one measurement
and then shuts itself down) and continuous (chip takes continuous
measurements). The continuous mode is more reliable and suitable for
hardware monitor type device, but the single-shot mode is more power-
friendly and useful for battery-powered device which cares power
consumptions while still needs some measurements occasionally.
If this property is present, the single-shot mode will be used, instead
of the default continuous one for monitoring.
$ref: /schemas/types.yaml#/definitions/flag
"#address-cells":
description: Required only if a child node is present.
const: 1
"#size-cells":
description: Required only if a child node is present.
const: 0
patternProperties:
"^input@[0-2]$":
description: The node contains optional child nodes for three channels.
Each child node describes the information of input source. Input channels
default to enabled in the chip. Unless channels are explicitly disabled
in device-tree, input channels will be enabled.
type: object
additionalProperties: false
properties:
reg:
description: Must be 0, 1 and 2, corresponding to the IN1, IN2 or IN3
ports of the INA3221, respectively.
enum: [ 0, 1, 2 ]
label:
description: name of the input source
shunt-resistor-micro-ohms:
description: shunt resistor value in micro-Ohm
ti,summation-disable:
description: |
The INA3221 has a critical alert pin that can be controlled by the
summation control function. This function adds the single
shunt-voltage conversions for the desired channels in order to
compare the combined sum to the programmed limit. The Shunt-Voltage
Sum Limit register contains the programmed value that is compared
to the value in the Shunt-Voltage Sum register in order to
determine if the total summed limit is exceeded. If the
shunt-voltage sum limit value is exceeded, the critical alert pin
is asserted.
For the summation limit to have a meaningful value, it is necessary
to use the same shunt-resistor value on all enabled channels. If
this is not the case or if a channel should not be used for
triggering the critical alert pin, then this property can be used
exclude specific channels from the summation control function.
type: boolean
required:
- reg
required:
- compatible
- reg
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
power-sensor@40 {
compatible = "ti,ina3221";
reg = <0x40>;
#address-cells = <1>;
#size-cells = <0>;
input@0 {
reg = <0x0>;
/*
* Input channels are enabled by default in the device and so
* to disable, must be explicitly disabled in device-tree.
*/
status = "disabled";
};
input@1 {
reg = <0x1>;
shunt-resistor-micro-ohms = <5000>;
};
input@2 {
reg = <0x2>;
label = "VDD_5V";
shunt-resistor-micro-ohms = <5000>;
};
};
};
@@ -0,0 +1,70 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/ti,lm87.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Texas Instruments LM87 Hardware Monitor
maintainers:
- Javier Carrasco <javier.carrasco.cruz@gmail.com>
description: |
The LM87 is a serial interface system hardware monitor
with remote diode temperature sensing.
Datasheets:
https://www.ti.com/product/LM87
properties:
compatible:
enum:
- adi,adm1024
- ti,lm87
reg:
maxItems: 1
has-temp3:
$ref: /schemas/types.yaml#/definitions/flag
description:
This configures pins 18 and 19 to be used as a second
remote temperature sensing channel. By default the pins
are configured as voltage input pins in0 and in5.
has-in6:
$ref: /schemas/types.yaml#/definitions/flag
description:
When set, pin 5 is configured to be used as voltage input
in6. Otherwise the pin is set as FAN1 input.
has-in7:
$ref: /schemas/types.yaml#/definitions/flag
description:
When set, pin 6 is configured to be used as voltage input
in7. Otherwise the pin is set as FAN2 input.
vcc-supply:
description:
Regulator supplying power, can be configured to measure
5.0V power supply. Default is 3.3V.
required:
- compatible
- reg
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
hwmon@2e {
compatible = "ti,lm87";
reg = <0x2e>;
has-temp3;
vcc-supply = <&reg_5v0>;
};
};
@@ -0,0 +1,56 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/ti,tmp102.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: TMP102 temperature sensor
maintainers:
- Krzysztof Kozlowski <krzk@kernel.org>
properties:
compatible:
enum:
- ti,tmp102
interrupts:
maxItems: 1
reg:
maxItems: 1
label:
description:
A descriptive name for this channel, like "ambient" or "psu".
"#thermal-sensor-cells":
const: 1
vcc-supply:
description: Power supply for tmp102
required:
- compatible
- reg
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
sensor@48 {
compatible = "ti,tmp102";
reg = <0x48>;
interrupt-parent = <&gpio7>;
interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
label = "somelabel";
vcc-supply = <&supply>;
#thermal-sensor-cells = <1>;
};
};
@@ -0,0 +1,71 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/ti,tmp108.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: TMP108/P3T1035/P3T1085/P3T2030 temperature sensor
maintainers:
- Krzysztof Kozlowski <krzk@kernel.org>
description: |
The TMP108 or NXP P3T Family (P3T1035, P3T1085 and P3T2030) is a digital-
output temperature sensor with a dynamically-programmable limit window,
and under- and over-temperature alert functions.
NXP P3T Family (P3T1035, P3T1085 and P3T2030) supports I3C.
Datasheets:
https://www.ti.com/product/TMP108
https://www.nxp.com/docs/en/data-sheet/P3T1085UK.pdf
https://www.nxp.com/docs/en/data-sheet/P3T1035XUK_P3T2030XUK.pdf
properties:
compatible:
oneOf:
- items:
- const: nxp,p3t2030
- const: nxp,p3t1035
- const: nxp,p3t1035
- const: nxp,p3t1085
- const: ti,tmp108
interrupts:
items:
- description: alert interrupt
reg:
maxItems: 1
"#thermal-sensor-cells":
const: 0
vcc-supply:
description: phandle to the regulator that provides the V+ supply
required:
- compatible
- reg
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
sensor@48 {
compatible = "ti,tmp108";
reg = <0x48>;
interrupt-parent = <&gpio1>;
interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&tmp_alrt>;
vcc-supply = <&supply>;
#thermal-sensor-cells = <0>;
};
};
@@ -0,0 +1,104 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/ti,tmp401.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: TMP401, TPM411 and TMP43x temperature sensor
maintainers:
- Guenter Roeck <linux@roeck-us.net>
description: |
±1°C Remote and Local temperature sensor
Datasheets:
https://www.ti.com/lit/ds/symlink/tmp401.pdf
https://www.ti.com/lit/ds/symlink/tmp411.pdf
https://www.ti.com/lit/ds/symlink/tmp431.pdf
https://www.ti.com/lit/ds/symlink/tmp435.pdf
properties:
compatible:
enum:
- ti,tmp401
- ti,tmp411
- ti,tmp431
- ti,tmp432
- ti,tmp435
reg:
maxItems: 1
ti,extended-range-enable:
description:
When set, this sensor measures over extended temperature range.
type: boolean
ti,n-factor:
description:
value to be used for converting remote channel measurements to
temperature.
$ref: /schemas/types.yaml#/definitions/int32
minimum: -128
maximum: 127
ti,beta-compensation:
description:
value to select beta correction range.
$ref: /schemas/types.yaml#/definitions/uint32
minimum: 0
maximum: 15
allOf:
- if:
properties:
compatible:
contains:
enum:
- ti,tmp401
then:
properties:
ti,n-factor: false
- if:
properties:
compatible:
contains:
enum:
- ti,tmp401
- ti,tmp411
then:
properties:
ti,beta-compensation: false
required:
- compatible
- reg
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
sensor@4c {
compatible = "ti,tmp401";
reg = <0x4c>;
};
};
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
sensor@4c {
compatible = "ti,tmp431";
reg = <0x4c>;
ti,extended-range-enable;
ti,n-factor = <0x3b>;
ti,beta-compensation = <0x7>;
};
};
@@ -0,0 +1,109 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/ti,tmp421.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: TMP42x/TMP44x temperature sensor
maintainers:
- Guenter Roeck <linux@roeck-us.net>
description: |
±1°C Remote and Local temperature sensor
https://www.ti.com/lit/ds/symlink/tmp422.pdf
properties:
compatible:
enum:
- ti,tmp421
- ti,tmp422
- ti,tmp423
- ti,tmp441
- ti,tmp442
reg:
maxItems: 1
'#address-cells':
const: 1
'#size-cells':
const: 0
required:
- compatible
- reg
additionalProperties: false
patternProperties:
"^channel@([0-3])$":
type: object
description: |
Represents channels of the device and their specific configuration.
properties:
reg:
description: |
The channel number. 0 is local channel, 1-3 are remote channels
items:
minimum: 0
maximum: 3
label:
description: |
A descriptive name for this channel, like "ambient" or "psu".
ti,n-factor:
description: |
The value (two's complement) to be programmed in the channel specific N correction register.
For remote channels only.
$ref: /schemas/types.yaml#/definitions/int32
minimum: -128
maximum: 127
required:
- reg
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
sensor@4c {
compatible = "ti,tmp422";
reg = <0x4c>;
};
};
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
sensor@4c {
compatible = "ti,tmp422";
reg = <0x4c>;
#address-cells = <1>;
#size-cells = <0>;
channel@0 {
reg = <0x0>;
ti,n-factor = <0x1>;
label = "local";
};
channel@1 {
reg = <0x1>;
ti,n-factor = <0x0>;
label = "somelabel";
};
channel@2 {
reg = <0x2>;
status = "disabled";
};
};
};
@@ -0,0 +1,113 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/ti,tmp464.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: TMP464 and TMP468 temperature sensors
maintainers:
- Guenter Roeck <linux@roeck-us.net>
description: |
±0.0625°C Remote and Local temperature sensor
https://www.ti.com/lit/ds/symlink/tmp464.pdf
https://www.ti.com/lit/ds/symlink/tmp468.pdf
properties:
compatible:
enum:
- ti,tmp464
- ti,tmp468
reg:
maxItems: 1
'#address-cells':
const: 1
'#size-cells':
const: 0
required:
- compatible
- reg
additionalProperties: false
patternProperties:
"^channel@([0-8])$":
type: object
description: |
Represents channels of the device and their specific configuration.
properties:
reg:
description: |
The channel number. 0 is local channel, 1-8 are remote channels.
items:
minimum: 0
maximum: 8
label:
description: |
A descriptive name for this channel, like "ambient" or "psu".
ti,n-factor:
description: |
The value (two's complement) to be programmed in the channel specific N correction register.
For remote channels only.
$ref: /schemas/types.yaml#/definitions/int32
minimum: -128
maximum: 127
required:
- reg
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
sensor@4b {
compatible = "ti,tmp464";
reg = <0x4b>;
};
};
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
sensor@4b {
compatible = "ti,tmp464";
reg = <0x4b>;
#address-cells = <1>;
#size-cells = <0>;
channel@0 {
reg = <0x0>;
label = "local";
};
channel@1 {
reg = <0x1>;
ti,n-factor = <(-10)>;
label = "external";
};
channel@2 {
reg = <0x2>;
ti,n-factor = <0x10>;
label = "somelabel";
};
channel@3 {
reg = <0x3>;
status = "disabled";
};
};
};
@@ -0,0 +1,92 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/ti,tmp513.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: TMP513/512 system monitor sensor
maintainers:
- Eric Tremblay <etremblay@distech-controls.com>
description: |
The TMP512 (dual-channel) and TMP513 (triple-channel) are system monitors
that include remote sensors, a local temperature sensor, and a high-side
current shunt monitor. These system monitors have the capability of measuring
remote temperatures, on-chip temperatures, and system voltage/power/current
consumption.
Datasheets:
https://www.ti.com/lit/gpn/tmp513
https://www.ti.com/lit/gpn/tmp512
properties:
compatible:
enum:
- ti,tmp512
- ti,tmp513
reg:
maxItems: 1
shunt-resistor-micro-ohms:
description: |
If 0, the calibration process will be skipped and the current and power
measurement engine will not work. Temperature and voltage measurement
will continue to work. The shunt value also need to respect:
rshunt <= pga-gain * 40 * 1000 * 1000.
If not, it's not possible to compute a valid calibration value.
default: 1000
ti,pga-gain:
description: |
The gain value for the PGA function. This is 8, 4, 2 or 1.
The PGA gain affect the shunt voltage range.
The range will be equal to: pga-gain * 40mV
$ref: /schemas/types.yaml#/definitions/uint32
enum: [1, 2, 4, 8]
default: 8
ti,bus-range-microvolt:
description: |
This is the operating range of the bus voltage in microvolt
enum: [16000000, 32000000]
default: 32000000
ti,nfactor:
description: |
Array of three(TMP513) or two(TMP512) n-Factor value for each remote
temperature channel.
See datasheet Table 11 for n-Factor range list and value interpretation.
$ref: /schemas/types.yaml#/definitions/uint32-array
minItems: 2
maxItems: 3
items:
default: 0x00
minimum: 0x00
maximum: 0xFF
required:
- compatible
- reg
allOf:
- $ref: hwmon-common.yaml#
unevaluatedProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
tmp513@5c {
compatible = "ti,tmp513";
reg = <0x5c>;
shunt-resistor-micro-ohms = <330000>;
ti,bus-range-microvolt = <32000000>;
ti,pga-gain = <8>;
ti,nfactor = <0x1 0xf3 0x00>;
};
};
@@ -0,0 +1,52 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/ti,tps23861.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: TI TPS23861 PoE PSE
maintainers:
- Robert Marko <robert.marko@sartura.hr>
description: |
The TPS23861 is a IEEE 802.3at Quad Port Power-over-Ethernet PSE Controller.
Datasheets:
https://www.ti.com/lit/gpn/tps23861
properties:
compatible:
enum:
- ti,tps23861
reg:
maxItems: 1
shunt-resistor-micro-ohms:
description: The value of current sense resistor in microohms.
default: 255000
minimum: 250000
maximum: 255000
required:
- compatible
- reg
allOf:
- $ref: hwmon-common.yaml#
unevaluatedProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
tps23861@30 {
compatible = "ti,tps23861";
reg = <0x30>;
shunt-resistor-micro-ohms = <255000>;
};
};
@@ -0,0 +1,23 @@
Versatile Express hwmon sensors
-------------------------------
Requires node properties:
- "compatible" value : one of
"arm,vexpress-volt"
"arm,vexpress-amp"
"arm,vexpress-temp"
"arm,vexpress-power"
"arm,vexpress-energy"
- "arm,vexpress-sysreg,func" when controlled via vexpress-sysreg
(see Documentation/devicetree/bindings/arm/vexpress-config.yaml
for more details)
Optional node properties:
- label : string describing the monitored value
Example:
energy@0 {
compatible = "arm,vexpress-energy";
arm,vexpress-sysreg,func = <13 0>;
label = "A15 Jcore";
};
@@ -0,0 +1,40 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/winbond,w83781d.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Winbond W83781 and compatible hardware monitor IC
maintainers:
- Linus Walleij <linusw@kernel.org>
properties:
compatible:
enum:
- winbond,w83781d
- winbond,w83781g
- winbond,w83782d
- winbond,w83783s
- asus,as99127f
reg:
maxItems: 1
required:
- compatible
- reg
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
temperature-sensor@28 {
compatible = "winbond,w83781d";
reg = <0x28>;
};
};
@@ -0,0 +1,54 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/zyxel,nsa320-mcu.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: ZyXEL NSA320 MCU
maintainers:
- Adam Baker <linux@baker-net.org.uk>
- Guenter Roeck <linux@roeck-us.net>
description:
The ZyXEL NSA320 uses a dedicated microcontroller to manage system-critical
functions like fan speed and power monitoring. It is connected to the SoC
via a GPIO-based serial protocol.
properties:
compatible:
const: zyxel,nsa320-mcu
data-gpios:
maxItems: 1
description: GPIO pin connected to the data line on the MCU.
clk-gpios:
maxItems: 1
description: GPIO pin connected to the clock line on the MCU.
act-gpios:
maxItems: 1
description: GPIO pin connected to the active line on the MCU.
required:
- compatible
- data-gpios
- clk-gpios
- act-gpios
additionalProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
hwmon {
compatible = "zyxel,nsa320-mcu";
pinctrl-0 = <&pmx_mcu_data &pmx_mcu_clk &pmx_mcu_act>;
pinctrl-names = "default";
data-gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
clk-gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
act-gpios = <&gpio0 17 GPIO_ACTIVE_LOW>;
};