xref: /linux/Documentation/devicetree/bindings/iio/adc/xlnx,versal-sysmon.yaml (revision 93e4b3076b5f2d853462b9777d083c77fc0b7b23)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2# Copyright (C) 2022 - 2026, Advanced Micro Devices, Inc.
3%YAML 1.2
4---
5$id: http://devicetree.org/schemas/iio/adc/xlnx,versal-sysmon.yaml#
6$schema: http://devicetree.org/meta-schemas/core.yaml#
7
8title: AMD/Xilinx Versal System Monitor
9
10maintainers:
11  - Salih Erim <salih.erim@amd.com>
12
13description:
14  The AMD/Xilinx Versal System Monitor (SysMon) is the successor to the
15  Zynq UltraScale+ AMS block. It provides on-chip voltage and temperature
16  monitoring with up to 160 voltage measurement points and up to
17  64 temperature satellites distributed across the SoC. The hardware
18  supports configurable threshold alarms and oversampling. The device
19  can be accessed via memory-mapped I/O or via an I2C interface.
20
21properties:
22  compatible:
23    const: xlnx,versal-sysmon
24
25  reg:
26    maxItems: 1
27
28  interrupts:
29    maxItems: 1
30
31  '#io-channel-cells':
32    const: 1
33
34  voltage-channels:
35    type: object
36    description:
37      Container for voltage measurement channels.
38
39    properties:
40      '#address-cells':
41        const: 1
42
43      '#size-cells':
44        const: 0
45
46    patternProperties:
47      '^channel@([0-9a-f]|[1-9][0-9a-f])$':
48        $ref: adc.yaml
49
50        description:
51          Measures a voltage rail. The register index and rail
52          name are assigned by the hardware design tool (Vivado).
53
54        properties:
55          reg:
56            minimum: 0
57            maximum: 159
58            description:
59              Voltage measurement register index assigned by the hardware
60              design tool.
61
62        required:
63          - reg
64          - label
65
66        unevaluatedProperties: false
67
68    required:
69      - '#address-cells'
70      - '#size-cells'
71
72    additionalProperties: false
73
74  temperature-channels:
75    type: object
76    description:
77      Container for temperature satellite measurement channels.
78
79    properties:
80      '#address-cells':
81        const: 1
82
83      '#size-cells':
84        const: 0
85
86    patternProperties:
87      '^channel@([1-9a-f]|[1-3][0-9a-f]|40)$':
88        $ref: adc.yaml
89
90        description:
91          Reads a temperature satellite sensor. Each satellite monitors
92          a specific region of the SoC die.
93
94        properties:
95          reg:
96            minimum: 1
97            maximum: 64
98            description:
99              Temperature satellite number (1-based hardware index).
100
101        required:
102          - reg
103          - label
104
105        unevaluatedProperties: false
106
107    required:
108      - '#address-cells'
109      - '#size-cells'
110
111    additionalProperties: false
112
113required:
114  - compatible
115  - reg
116
117additionalProperties: false
118
119examples:
120  - |
121    #include <dt-bindings/interrupt-controller/arm-gic.h>
122
123    sysmon@f1270000 {
124        compatible = "xlnx,versal-sysmon";
125        reg = <0xf1270000 0x4000>;
126        interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>;
127        #io-channel-cells = <1>;
128
129        voltage-channels {
130            #address-cells = <1>;
131            #size-cells = <0>;
132
133            channel@0 {
134                reg = <0>;
135                label = "vccaux";
136            };
137
138            channel@3 {
139                reg = <3>;
140                label = "vcc_ram";
141                bipolar;
142            };
143        };
144
145        temperature-channels {
146            #address-cells = <1>;
147            #size-cells = <0>;
148
149            channel@a {
150                reg = <10>;
151                label = "aie-temp-ch1";
152            };
153        };
154    };
155