xref: /freebsd/sys/contrib/device-tree/Bindings/iio/adc/xlnx,zynqmp-ams.yaml (revision e67e85659c0de33e617e5fbf1028c6e8b49eee53)
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