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