Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/iio/adc/xlnx,zynqmp-ams.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006 
0007 title: Xilinx Zynq Ultrascale AMS controller
0008 
0009 maintainers:
0010   - Anand Ashok Dumbre <anand.ashok.dumbre@xilinx.com>
0011 
0012 description: |
0013   The AMS (Analog Monitoring System) includes an ADC as well as on-chip sensors
0014   that can be used to sample external voltages and monitor on-die operating
0015   conditions, such as temperature and supply voltage levels.
0016   The AMS has two SYSMON blocks which are PL (Programmable Logic) SYSMON and
0017   PS (Processing System) SYSMON.
0018   All designs should have AMS registers, but PS and PL are optional. The
0019   AMS controller can work with only PS, only PL and both PS and PL
0020   configurations. Please specify registers according to your design. Devicetree
0021   should always have AMS module property. Providing PS & PL module is optional.
0022 
0023   AMS Channel Details
0024   ```````````````````
0025   Sysmon Block  |Channel|                       Details                                 |Measurement
0026                 |Number |                                                               |Type
0027   ---------------------------------------------------------------------------------------------------------
0028   AMS CTRL      |0      |System PLLs voltage measurement, VCC_PSPLL.                    |Voltage
0029                 |1      |Battery voltage measurement, VCC_PSBATT.                       |Voltage
0030                 |2      |PL Internal voltage measurement, VCCINT.                       |Voltage
0031                 |3      |Block RAM voltage measurement, VCCBRAM.                        |Voltage
0032                 |4      |PL Aux voltage measurement, VCCAUX.                            |Voltage
0033                 |5      |Voltage measurement for six DDR I/O PLLs, VCC_PSDDR_PLL.       |Voltage
0034                 |6      |VCC_PSINTFP_DDR voltage measurement.                           |Voltage
0035   ---------------------------------------------------------------------------------------------------------
0036   PS Sysmon     |7      |LPD temperature measurement.                                   |Temperature
0037                 |8      |FPD temperature measurement (REMOTE).                          |Temperature
0038                 |9      |VCC PS LPD voltage measurement (supply1).                      |Voltage
0039                 |10     |VCC PS FPD voltage measurement (supply2).                      |Voltage
0040                 |11     |PS Aux voltage reference (supply3).                            |Voltage
0041                 |12     |DDR I/O VCC voltage measurement.                               |Voltage
0042                 |13     |PS IO Bank 503 voltage measurement (supply5).                  |Voltage
0043                 |14     |PS IO Bank 500 voltage measurement (supply6).                  |Voltage
0044                 |15     |VCCO_PSIO1 voltage measurement.                                |Voltage
0045                 |16     |VCCO_PSIO2 voltage measurement.                                |Voltage
0046                 |17     |VCC_PS_GTR voltage measurement (VPS_MGTRAVCC).                 |Voltage
0047                 |18     |VTT_PS_GTR voltage measurement (VPS_MGTRAVTT).                 |Voltage
0048                 |19     |VCC_PSADC voltage measurement.                                 |Voltage
0049   ---------------------------------------------------------------------------------------------------------
0050   PL Sysmon     |20     |PL temperature measurement.                                    |Temperature
0051                 |21     |PL Internal voltage measurement, VCCINT.                       |Voltage
0052                 |22     |PL Auxiliary voltage measurement, VCCAUX.                      |Voltage
0053                 |23     |ADC Reference P+ voltage measurement.                          |Voltage
0054                 |24     |ADC Reference N- voltage measurement.                          |Voltage
0055                 |25     |PL Block RAM voltage measurement, VCCBRAM.                     |Voltage
0056                 |26     |LPD Internal voltage measurement, VCC_PSINTLP (supply4).       |Voltage
0057                 |27     |FPD Internal voltage measurement, VCC_PSINTFP (supply5).       |Voltage
0058                 |28     |PS Auxiliary voltage measurement (supply6).                    |Voltage
0059                 |29     |PL VCCADC voltage measurement (vccams).                        |Voltage
0060                 |30     |Differential analog input signal voltage measurment.           |Voltage
0061                 |31     |VUser0 voltage measurement (supply7).                          |Voltage
0062                 |32     |VUser1 voltage measurement (supply8).                          |Voltage
0063                 |33     |VUser2 voltage measurement (supply9).                          |Voltage
0064                 |34     |VUser3 voltage measurement (supply10).                         |Voltage
0065                 |35     |Auxiliary ch 0 voltage measurement (VAux0).                    |Voltage
0066                 |36     |Auxiliary ch 1 voltage measurement (VAux1).                    |Voltage
0067                 |37     |Auxiliary ch 2 voltage measurement (VAux2).                    |Voltage
0068                 |38     |Auxiliary ch 3 voltage measurement (VAux3).                    |Voltage
0069                 |39     |Auxiliary ch 4 voltage measurement (VAux4).                    |Voltage
0070                 |40     |Auxiliary ch 5 voltage measurement (VAux5).                    |Voltage
0071                 |41     |Auxiliary ch 6 voltage measurement (VAux6).                    |Voltage
0072                 |42     |Auxiliary ch 7 voltage measurement (VAux7).                    |Voltage
0073                 |43     |Auxiliary ch 8 voltage measurement (VAux8).                    |Voltage
0074                 |44     |Auxiliary ch 9 voltage measurement (VAux9).                    |Voltage
0075                 |45     |Auxiliary ch 10 voltage measurement (VAux10).                  |Voltage
0076                 |46     |Auxiliary ch 11 voltage measurement (VAux11).                  |Voltage
0077                 |47     |Auxiliary ch 12 voltage measurement (VAux12).                  |Voltage
0078                 |48     |Auxiliary ch 13 voltage measurement (VAux13).                  |Voltage
0079                 |49     |Auxiliary ch 14 voltage measurement (VAux14).                  |Voltage
0080                 |50     |Auxiliary ch 15 voltage measurement (VAux15).                  |Voltage
0081   --------------------------------------------------------------------------------------------------------
0082 
0083 properties:
0084   compatible:
0085     enum:
0086       - xlnx,zynqmp-ams
0087 
0088   interrupts:
0089     maxItems: 1
0090 
0091   reg:
0092     description: AMS Controller register space
0093     maxItems: 1
0094 
0095   clocks:
0096     items:
0097       - description: AMS reference clock
0098 
0099   ranges:
0100     description:
0101       Maps the child address space for PS and/or PL.
0102     maxItems: 1
0103 
0104   '#address-cells':
0105     const: 1
0106 
0107   '#size-cells':
0108     const: 1
0109 
0110   '#io-channel-cells':
0111     const: 1
0112 
0113   ams-ps@0:
0114     type: object
0115     description: |
0116       PS (Processing System) SYSMON is memory mapped to PS. This block has
0117       built-in alarm generation logic that is used to interrupt the processor
0118       based on condition set.
0119 
0120     properties:
0121       compatible:
0122         enum:
0123           - xlnx,zynqmp-ams-ps
0124 
0125       reg:
0126         description: Register Space for PS-SYSMON
0127         maxItems: 1
0128 
0129     required:
0130       - compatible
0131       - reg
0132 
0133     additionalProperties: false
0134 
0135   ams-pl@400:
0136     type: object
0137     description:
0138       PL-SYSMON is capable of monitoring off chip voltage and temperature.
0139       PL-SYSMON block has DRP, JTAG and I2C interface to enable monitoring
0140       from external master. Out of this interface currently only DRP is
0141       supported. This block has alarm generation logic that is used to
0142       interrupt the processor based on condition set.
0143 
0144     properties:
0145       compatible:
0146         items:
0147           - enum:
0148               - xlnx,zynqmp-ams-pl
0149 
0150       reg:
0151         description: Register Space for PL-SYSMON.
0152         maxItems: 1
0153 
0154       '#address-cells':
0155         const: 1
0156 
0157       '#size-cells':
0158         const: 0
0159 
0160     patternProperties:
0161       "^channel@([2-4][0-9]|50)$":
0162         type: object
0163         description:
0164           Describes the external channels connected.
0165 
0166         properties:
0167           reg:
0168             description:
0169               Pair of pins the channel is connected to. This value is
0170               same as Channel Number for a particular channel.
0171             minimum: 20
0172             maximum: 50
0173 
0174           xlnx,bipolar:
0175             $ref: /schemas/types.yaml#/definitions/flag
0176             type: boolean
0177             description:
0178               If the set channel is used in bipolar mode.
0179 
0180         required:
0181           - reg
0182 
0183         additionalProperties: false
0184 
0185 required:
0186   - compatible
0187   - reg
0188   - clocks
0189   - ranges
0190 
0191 additionalProperties: false
0192 
0193 examples:
0194   - |
0195     #include <dt-bindings/clock/xlnx-zynqmp-clk.h>
0196 
0197     bus {
0198         #address-cells = <2>;
0199         #size-cells = <2>;
0200 
0201         xilinx_ams: ams@ffa50000 {
0202             compatible = "xlnx,zynqmp-ams";
0203             interrupt-parent = <&gic>;
0204             interrupts = <0 56 4>;
0205             reg = <0x0 0xffa50000 0x0 0x800>;
0206             clocks = <&zynqmp_clk AMS_REF>;
0207             #address-cells = <1>;
0208             #size-cells = <1>;
0209             #io-channel-cells = <1>;
0210             ranges = <0 0 0xffa50800 0x800>;
0211 
0212             ams_ps: ams-ps@0 {
0213                 compatible = "xlnx,zynqmp-ams-ps";
0214                 reg = <0 0x400>;
0215             };
0216 
0217             ams_pl: ams-pl@400 {
0218                 compatible = "xlnx,zynqmp-ams-pl";
0219                 reg = <0x400 0x400>;
0220                 #address-cells = <1>;
0221                 #size-cells = <0>;
0222                 channel@30 {
0223                     reg = <30>;
0224                     xlnx,bipolar;
0225                 };
0226                 channel@31 {
0227                     reg = <31>;
0228                 };
0229                 channel@38 {
0230                     reg = <38>;
0231                     xlnx,bipolar;
0232                 };
0233             };
0234         };
0235     };