Documentation / devicetree / bindings / iio / adc / xlnx,versal-sysmon.yaml


Based on kernel version 7.3. Page generated on 2026-10-19 13:17 EDT.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 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";
            };
        };
    };