mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-08-31 15:22:21 -04:00
dt-bindings: iio: adc: add xlnx,versal-sysmon binding
Add devicetree binding for the AMD/Xilinx Versal System Monitor (SysMon). The Versal SysMon is the successor to the Zynq UltraScale+ AMS block, providing on-chip voltage and temperature monitoring. The hardware supports up to 160 supply voltage measurement points and up to 64 temperature satellites distributed across the SoC, with configurable threshold alarms and oversampling. The device can be accessed via memory-mapped I/O or via an I2C interface. Supply and temperature channels are described as child nodes under container nodes, referencing the standard adc.yaml binding for channel properties. Co-developed-by: Michal Simek <michal.simek@amd.com> Signed-off-by: Michal Simek <michal.simek@amd.com> Signed-off-by: Salih Erim <salih.erim@amd.com> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
This commit is contained in:
committed by
Jonathan Cameron
parent
e6026ff7e6
commit
bb6ea868b8
@@ -0,0 +1,154 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
# Copyright (C) 2022 - 2026, Advanced Micro Devices, Inc.
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/adc/xlnx,versal-sysmon.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: AMD/Xilinx Versal System Monitor
|
||||
|
||||
maintainers:
|
||||
- Salih Erim <salih.erim@amd.com>
|
||||
|
||||
description:
|
||||
The AMD/Xilinx Versal System Monitor (SysMon) is the successor to the
|
||||
Zynq UltraScale+ AMS block. It provides on-chip voltage and temperature
|
||||
monitoring with up to 160 voltage measurement points and up to
|
||||
64 temperature satellites distributed across the SoC. The hardware
|
||||
supports configurable threshold alarms and oversampling. The device
|
||||
can be accessed via memory-mapped I/O or via an I2C interface.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: xlnx,versal-sysmon
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
'#io-channel-cells':
|
||||
const: 1
|
||||
|
||||
voltage-channels:
|
||||
type: object
|
||||
description:
|
||||
Container for voltage measurement channels.
|
||||
|
||||
properties:
|
||||
'#address-cells':
|
||||
const: 1
|
||||
|
||||
'#size-cells':
|
||||
const: 0
|
||||
|
||||
patternProperties:
|
||||
'^channel@([0-9a-f]|[1-9][0-9a-f])$':
|
||||
$ref: adc.yaml
|
||||
|
||||
description:
|
||||
Measures a voltage rail. The register index and rail
|
||||
name are assigned by the hardware design tool (Vivado).
|
||||
|
||||
properties:
|
||||
reg:
|
||||
minimum: 0
|
||||
maximum: 159
|
||||
description:
|
||||
Voltage measurement register index assigned by the hardware
|
||||
design tool.
|
||||
|
||||
required:
|
||||
- reg
|
||||
- label
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
required:
|
||||
- '#address-cells'
|
||||
- '#size-cells'
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
temperature-channels:
|
||||
type: object
|
||||
description:
|
||||
Container for temperature satellite measurement channels.
|
||||
|
||||
properties:
|
||||
'#address-cells':
|
||||
const: 1
|
||||
|
||||
'#size-cells':
|
||||
const: 0
|
||||
|
||||
patternProperties:
|
||||
'^channel@([1-9a-f]|[1-3][0-9a-f]|40)$':
|
||||
$ref: adc.yaml
|
||||
|
||||
description:
|
||||
Reads a temperature satellite sensor. Each satellite monitors
|
||||
a specific region of the SoC die.
|
||||
|
||||
properties:
|
||||
reg:
|
||||
minimum: 1
|
||||
maximum: 64
|
||||
description:
|
||||
Temperature satellite number (1-based hardware index).
|
||||
|
||||
required:
|
||||
- reg
|
||||
- label
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
required:
|
||||
- '#address-cells'
|
||||
- '#size-cells'
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
sysmon@f1270000 {
|
||||
compatible = "xlnx,versal-sysmon";
|
||||
reg = <0xf1270000 0x4000>;
|
||||
interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>;
|
||||
#io-channel-cells = <1>;
|
||||
|
||||
voltage-channels {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
channel@0 {
|
||||
reg = <0>;
|
||||
label = "vccaux";
|
||||
};
|
||||
|
||||
channel@3 {
|
||||
reg = <3>;
|
||||
label = "vcc_ram";
|
||||
bipolar;
|
||||
};
|
||||
};
|
||||
|
||||
temperature-channels {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
channel@a {
|
||||
reg = <10>;
|
||||
label = "aie-temp-ch1";
|
||||
};
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user