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 description: 138 PL-SYSMON is capable of monitoring off chip voltage and temperature. 139 PL-SYSMON block has DRP, JTAG and I2C interface to enable monitoring 140 from external master. Out of this interface currently only DRP is 141 supported. This block has alarm generation logic that is used to 142 interrupt the processor based on condition set. 143 144 properties: 145 compatible: 146 items: 147 - enum: 148 - xlnx,zynqmp-ams-pl 149 150 reg: 151 description: Register Space for PL-SYSMON. 152 maxItems: 1 153 154 '#address-cells': 155 const: 1 156 157 '#size-cells': 158 const: 0 159 160 patternProperties: 161 "^channel@([2-4][0-9]|50)$": 162 type: object 163 description: 164 Describes the external channels connected. 165 166 properties: 167 reg: 168 description: 169 Pair of pins the channel is connected to. This value is 170 same as Channel Number for a particular channel. 171 minimum: 20 172 maximum: 50 173 174 xlnx,bipolar: 175 $ref: /schemas/types.yaml#/definitions/flag 176 type: boolean 177 description: 178 If the set channel is used in bipolar mode. 179 180 required: 181 - reg 182 183 additionalProperties: false 184 185required: 186 - compatible 187 - reg 188 - clocks 189 - ranges 190 191additionalProperties: false 192 193examples: 194 - | 195 #include <dt-bindings/clock/xlnx-zynqmp-clk.h> 196 197 bus { 198 #address-cells = <2>; 199 #size-cells = <2>; 200 201 xilinx_ams: ams@ffa50000 { 202 compatible = "xlnx,zynqmp-ams"; 203 interrupt-parent = <&gic>; 204 interrupts = <0 56 4>; 205 reg = <0x0 0xffa50000 0x0 0x800>; 206 clocks = <&zynqmp_clk AMS_REF>; 207 #address-cells = <1>; 208 #size-cells = <1>; 209 #io-channel-cells = <1>; 210 ranges = <0 0 0xffa50800 0x800>; 211 212 ams_ps: ams-ps@0 { 213 compatible = "xlnx,zynqmp-ams-ps"; 214 reg = <0 0x400>; 215 }; 216 217 ams_pl: ams-pl@400 { 218 compatible = "xlnx,zynqmp-ams-pl"; 219 reg = <0x400 0x400>; 220 #address-cells = <1>; 221 #size-cells = <0>; 222 channel@30 { 223 reg = <30>; 224 xlnx,bipolar; 225 }; 226 channel@31 { 227 reg = <31>; 228 }; 229 channel@38 { 230 reg = <38>; 231 xlnx,bipolar; 232 }; 233 }; 234 }; 235 }; 236