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 ranges: 96 description: 97 Maps the child address space for PS and/or PL. 98 maxItems: 1 99 100 '#address-cells': 101 const: 1 102 103 '#size-cells': 104 const: 1 105 106 '#io-channel-cells': 107 const: 1 108 109 ams-ps@0: 110 type: object 111 description: | 112 PS (Processing System) SYSMON is memory mapped to PS. This block has 113 built-in alarm generation logic that is used to interrupt the processor 114 based on condition set. 115 116 properties: 117 compatible: 118 enum: 119 - xlnx,zynqmp-ams-ps 120 121 reg: 122 description: Register Space for PS-SYSMON 123 maxItems: 1 124 125 required: 126 - compatible 127 - reg 128 129 additionalProperties: false 130 131 ams-pl@400: 132 type: object 133 description: 134 PL-SYSMON is capable of monitoring off chip voltage and temperature. 135 PL-SYSMON block has DRP, JTAG and I2C interface to enable monitoring 136 from external master. Out of this interface currently only DRP is 137 supported. This block has alarm generation logic that is used to 138 interrupt the processor based on condition set. 139 140 properties: 141 compatible: 142 items: 143 - enum: 144 - xlnx,zynqmp-ams-pl 145 146 reg: 147 description: Register Space for PL-SYSMON. 148 maxItems: 1 149 150 '#address-cells': 151 const: 1 152 153 '#size-cells': 154 const: 0 155 156 patternProperties: 157 "^channel@([2-4][0-9]|50)$": 158 type: object 159 description: 160 Describes the external channels connected. 161 162 properties: 163 reg: 164 description: 165 Pair of pins the channel is connected to. This value is 166 same as Channel Number for a particular channel. 167 minimum: 20 168 maximum: 50 169 170 xlnx,bipolar: 171 $ref: /schemas/types.yaml#/definitions/flag 172 type: boolean 173 description: 174 If the set channel is used in bipolar mode. 175 176 required: 177 - reg 178 179 additionalProperties: false 180 181required: 182 - compatible 183 - reg 184 - ranges 185 186additionalProperties: false 187 188examples: 189 - | 190 bus { 191 #address-cells = <2>; 192 #size-cells = <2>; 193 194 xilinx_ams: ams@ffa50000 { 195 compatible = "xlnx,zynqmp-ams"; 196 interrupt-parent = <&gic>; 197 interrupts = <0 56 4>; 198 reg = <0x0 0xffa50000 0x0 0x800>; 199 #address-cells = <1>; 200 #size-cells = <1>; 201 #io-channel-cells = <1>; 202 ranges = <0 0 0xffa50800 0x800>; 203 204 ams_ps: ams-ps@0 { 205 compatible = "xlnx,zynqmp-ams-ps"; 206 reg = <0 0x400>; 207 }; 208 209 ams_pl: ams-pl@400 { 210 compatible = "xlnx,zynqmp-ams-pl"; 211 reg = <0x400 0x400>; 212 #address-cells = <1>; 213 #size-cells = <0>; 214 channel@30 { 215 reg = <30>; 216 xlnx,bipolar; 217 }; 218 channel@31 { 219 reg = <31>; 220 }; 221 channel@38 { 222 reg = <38>; 223 xlnx,bipolar; 224 }; 225 }; 226 }; 227 }; 228