1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/iio/adc/xlnx,zynqmp-ams.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Xilinx Zynq Ultrascale AMS controller 8 9maintainers: 10 - Anand Ashok Dumbre <anand.ashok.dumbre@xilinx.com> 11 12description: | 13 The AMS (Analog Monitoring System) includes an ADC as well as on-chip sensors 14 that can be used to sample external voltages and monitor on-die operating 15 conditions, such as temperature and supply voltage levels. 16 The AMS has two SYSMON blocks which are PL (Programmable Logic) SYSMON and 17 PS (Processing System) SYSMON. 18 All designs should have AMS registers, but PS and PL are optional. The 19 AMS controller can work with only PS, only PL and both PS and PL 20 configurations. Please specify registers according to your design. Devicetree 21 should always have AMS module property. Providing PS & PL module is optional. 22 23 AMS Channel Details 24 ``````````````````` 25 Sysmon Block |Channel| Details |Measurement 26 |Number | |Type 27 --------------------------------------------------------------------------------------------------------- 28 AMS CTRL |0 |System PLLs voltage measurement, VCC_PSPLL. |Voltage 29 |1 |Battery voltage measurement, VCC_PSBATT. |Voltage 30 |2 |PL Internal voltage measurement, VCCINT. |Voltage 31 |3 |Block RAM voltage measurement, VCCBRAM. |Voltage 32 |4 |PL Aux voltage measurement, VCCAUX. |Voltage 33 |5 |Voltage measurement for six DDR I/O PLLs, VCC_PSDDR_PLL. |Voltage 34 |6 |VCC_PSINTFP_DDR voltage measurement. |Voltage 35 --------------------------------------------------------------------------------------------------------- 36 PS Sysmon |7 |LPD temperature measurement. |Temperature 37 |8 |FPD temperature measurement (REMOTE). |Temperature 38 |9 |VCC PS LPD voltage measurement (supply1). |Voltage 39 |10 |VCC PS FPD voltage measurement (supply2). |Voltage 40 |11 |PS Aux voltage reference (supply3). |Voltage 41 |12 |DDR I/O VCC voltage measurement. |Voltage 42 |13 |PS IO Bank 503 voltage measurement (supply5). |Voltage 43 |14 |PS IO Bank 500 voltage measurement (supply6). |Voltage 44 |15 |VCCO_PSIO1 voltage measurement. |Voltage 45 |16 |VCCO_PSIO2 voltage measurement. |Voltage 46 |17 |VCC_PS_GTR voltage measurement (VPS_MGTRAVCC). |Voltage 47 |18 |VTT_PS_GTR voltage measurement (VPS_MGTRAVTT). |Voltage 48 |19 |VCC_PSADC voltage measurement. |Voltage 49 --------------------------------------------------------------------------------------------------------- 50 PL Sysmon |20 |PL temperature measurement. |Temperature 51 |21 |PL Internal voltage measurement, VCCINT. |Voltage 52 |22 |PL Auxiliary voltage measurement, VCCAUX. |Voltage 53 |23 |ADC Reference P+ voltage measurement. |Voltage 54 |24 |ADC Reference N- voltage measurement. |Voltage 55 |25 |PL Block RAM voltage measurement, VCCBRAM. |Voltage 56 |26 |LPD Internal voltage measurement, VCC_PSINTLP (supply4). |Voltage 57 |27 |FPD Internal voltage measurement, VCC_PSINTFP (supply5). |Voltage 58 |28 |PS Auxiliary voltage measurement (supply6). |Voltage 59 |29 |PL VCCADC voltage measurement (vccams). |Voltage 60 |30 |Differential analog input signal voltage measurment. |Voltage 61 |31 |VUser0 voltage measurement (supply7). |Voltage 62 |32 |VUser1 voltage measurement (supply8). |Voltage 63 |33 |VUser2 voltage measurement (supply9). |Voltage 64 |34 |VUser3 voltage measurement (supply10). |Voltage 65 |35 |Auxiliary ch 0 voltage measurement (VAux0). |Voltage 66 |36 |Auxiliary ch 1 voltage measurement (VAux1). |Voltage 67 |37 |Auxiliary ch 2 voltage measurement (VAux2). |Voltage 68 |38 |Auxiliary ch 3 voltage measurement (VAux3). |Voltage 69 |39 |Auxiliary ch 4 voltage measurement (VAux4). |Voltage 70 |40 |Auxiliary ch 5 voltage measurement (VAux5). |Voltage 71 |41 |Auxiliary ch 6 voltage measurement (VAux6). |Voltage 72 |42 |Auxiliary ch 7 voltage measurement (VAux7). |Voltage 73 |43 |Auxiliary ch 8 voltage measurement (VAux8). |Voltage 74 |44 |Auxiliary ch 9 voltage measurement (VAux9). |Voltage 75 |45 |Auxiliary ch 10 voltage measurement (VAux10). |Voltage 76 |46 |Auxiliary ch 11 voltage measurement (VAux11). |Voltage 77 |47 |Auxiliary ch 12 voltage measurement (VAux12). |Voltage 78 |48 |Auxiliary ch 13 voltage measurement (VAux13). |Voltage 79 |49 |Auxiliary ch 14 voltage measurement (VAux14). |Voltage 80 |50 |Auxiliary ch 15 voltage measurement (VAux15). |Voltage 81 -------------------------------------------------------------------------------------------------------- 82 83properties: 84 compatible: 85 enum: 86 - xlnx,zynqmp-ams 87 88 interrupts: 89 maxItems: 1 90 91 reg: 92 description: AMS Controller register space 93 maxItems: 1 94 95 clocks: 96 items: 97 - description: AMS reference clock 98 99 ranges: 100 description: 101 Maps the child address space for PS and/or PL. 102 maxItems: 1 103 104 '#address-cells': 105 const: 1 106 107 '#size-cells': 108 const: 1 109 110 '#io-channel-cells': 111 const: 1 112 113 ams-ps@0: 114 type: object 115 description: | 116 PS (Processing System) SYSMON is memory mapped to PS. This block has 117 built-in alarm generation logic that is used to interrupt the processor 118 based on condition set. 119 120 properties: 121 compatible: 122 enum: 123 - xlnx,zynqmp-ams-ps 124 125 reg: 126 description: Register Space for PS-SYSMON 127 maxItems: 1 128 129 required: 130 - compatible 131 - reg 132 133 additionalProperties: false 134 135 ams-pl@400: 136 type: object 137 additionalProperties: false 138 description: 139 PL-SYSMON is capable of monitoring off chip voltage and temperature. 140 PL-SYSMON block has DRP, JTAG and I2C interface to enable monitoring 141 from external master. Out of this interface currently only DRP is 142 supported. This block has alarm generation logic that is used to 143 interrupt the processor based on condition set. 144 145 properties: 146 compatible: 147 items: 148 - enum: 149 - xlnx,zynqmp-ams-pl 150 151 reg: 152 description: Register Space for PL-SYSMON. 153 maxItems: 1 154 155 '#address-cells': 156 const: 1 157 158 '#size-cells': 159 const: 0 160 161 patternProperties: 162 "^channel@([2-4][0-9]|50)$": 163 type: object 164 description: 165 Describes the external channels connected. 166 167 properties: 168 reg: 169 description: 170 Pair of pins the channel is connected to. This value is 171 same as Channel Number for a particular channel. 172 minimum: 20 173 maximum: 50 174 175 xlnx,bipolar: 176 $ref: /schemas/types.yaml#/definitions/flag 177 type: boolean 178 description: 179 If the set channel is used in bipolar mode. 180 181 required: 182 - reg 183 184 additionalProperties: false 185 186required: 187 - compatible 188 - reg 189 - clocks 190 - ranges 191 192additionalProperties: false 193 194examples: 195 - | 196 #include <dt-bindings/clock/xlnx-zynqmp-clk.h> 197 198 bus { 199 #address-cells = <2>; 200 #size-cells = <2>; 201 202 xilinx_ams: ams@ffa50000 { 203 compatible = "xlnx,zynqmp-ams"; 204 interrupt-parent = <&gic>; 205 interrupts = <0 56 4>; 206 reg = <0x0 0xffa50000 0x0 0x800>; 207 clocks = <&zynqmp_clk AMS_REF>; 208 #address-cells = <1>; 209 #size-cells = <1>; 210 #io-channel-cells = <1>; 211 ranges = <0 0 0xffa50800 0x800>; 212 213 ams_ps: ams-ps@0 { 214 compatible = "xlnx,zynqmp-ams-ps"; 215 reg = <0 0x400>; 216 }; 217 218 ams_pl: ams-pl@400 { 219 compatible = "xlnx,zynqmp-ams-pl"; 220 reg = <0x400 0x400>; 221 #address-cells = <1>; 222 #size-cells = <0>; 223 channel@30 { 224 reg = <30>; 225 xlnx,bipolar; 226 }; 227 channel@31 { 228 reg = <31>; 229 }; 230 channel@38 { 231 reg = <38>; 232 xlnx,bipolar; 233 }; 234 }; 235 }; 236 }; 237