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