| # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/iio/adc/xlnx,zynqmp-ams.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: Xilinx Zynq Ultrascale AMS controller |
| |
| maintainers: |
| - Anand Ashok Dumbre <anand.ashok.dumbre@xilinx.com> |
| |
| description: | |
| The AMS (Analog Monitoring System) includes an ADC as well as on-chip sensors |
| that can be used to sample external voltages and monitor on-die operating |
| conditions, such as temperature and supply voltage levels. |
| The AMS has two SYSMON blocks which are PL (Programmable Logic) SYSMON and |
| PS (Processing System) SYSMON. |
| All designs should have AMS registers, but PS and PL are optional. The |
| AMS controller can work with only PS, only PL and both PS and PL |
| configurations. Please specify registers according to your design. Devicetree |
| should always have AMS module property. Providing PS & PL module is optional. |
| |
| AMS Channel Details |
| ``````````````````` |
| Sysmon Block |Channel| Details |Measurement |
| |Number | |Type |
| --------------------------------------------------------------------------------------------------------- |
| AMS CTRL |0 |System PLLs voltage measurement, VCC_PSPLL. |Voltage |
| |1 |Battery voltage measurement, VCC_PSBATT. |Voltage |
| |2 |PL Internal voltage measurement, VCCINT. |Voltage |
| |3 |Block RAM voltage measurement, VCCBRAM. |Voltage |
| |4 |PL Aux voltage measurement, VCCAUX. |Voltage |
| |5 |Voltage measurement for six DDR I/O PLLs, VCC_PSDDR_PLL. |Voltage |
| |6 |VCC_PSINTFP_DDR voltage measurement. |Voltage |
| --------------------------------------------------------------------------------------------------------- |
| PS Sysmon |7 |LPD temperature measurement. |Temperature |
| |8 |FPD temperature measurement (REMOTE). |Temperature |
| |9 |VCC PS LPD voltage measurement (supply1). |Voltage |
| |10 |VCC PS FPD voltage measurement (supply2). |Voltage |
| |11 |PS Aux voltage reference (supply3). |Voltage |
| |12 |DDR I/O VCC voltage measurement. |Voltage |
| |13 |PS IO Bank 503 voltage measurement (supply5). |Voltage |
| |14 |PS IO Bank 500 voltage measurement (supply6). |Voltage |
| |15 |VCCO_PSIO1 voltage measurement. |Voltage |
| |16 |VCCO_PSIO2 voltage measurement. |Voltage |
| |17 |VCC_PS_GTR voltage measurement (VPS_MGTRAVCC). |Voltage |
| |18 |VTT_PS_GTR voltage measurement (VPS_MGTRAVTT). |Voltage |
| |19 |VCC_PSADC voltage measurement. |Voltage |
| --------------------------------------------------------------------------------------------------------- |
| PL Sysmon |20 |PL temperature measurement. |Temperature |
| |21 |PL Internal voltage measurement, VCCINT. |Voltage |
| |22 |PL Auxiliary voltage measurement, VCCAUX. |Voltage |
| |23 |ADC Reference P+ voltage measurement. |Voltage |
| |24 |ADC Reference N- voltage measurement. |Voltage |
| |25 |PL Block RAM voltage measurement, VCCBRAM. |Voltage |
| |26 |LPD Internal voltage measurement, VCC_PSINTLP (supply4). |Voltage |
| |27 |FPD Internal voltage measurement, VCC_PSINTFP (supply5). |Voltage |
| |28 |PS Auxiliary voltage measurement (supply6). |Voltage |
| |29 |PL VCCADC voltage measurement (vccams). |Voltage |
| |30 |Differential analog input signal voltage measurment. |Voltage |
| |31 |VUser0 voltage measurement (supply7). |Voltage |
| |32 |VUser1 voltage measurement (supply8). |Voltage |
| |33 |VUser2 voltage measurement (supply9). |Voltage |
| |34 |VUser3 voltage measurement (supply10). |Voltage |
| |35 |Auxiliary ch 0 voltage measurement (VAux0). |Voltage |
| |36 |Auxiliary ch 1 voltage measurement (VAux1). |Voltage |
| |37 |Auxiliary ch 2 voltage measurement (VAux2). |Voltage |
| |38 |Auxiliary ch 3 voltage measurement (VAux3). |Voltage |
| |39 |Auxiliary ch 4 voltage measurement (VAux4). |Voltage |
| |40 |Auxiliary ch 5 voltage measurement (VAux5). |Voltage |
| |41 |Auxiliary ch 6 voltage measurement (VAux6). |Voltage |
| |42 |Auxiliary ch 7 voltage measurement (VAux7). |Voltage |
| |43 |Auxiliary ch 8 voltage measurement (VAux8). |Voltage |
| |44 |Auxiliary ch 9 voltage measurement (VAux9). |Voltage |
| |45 |Auxiliary ch 10 voltage measurement (VAux10). |Voltage |
| |46 |Auxiliary ch 11 voltage measurement (VAux11). |Voltage |
| |47 |Auxiliary ch 12 voltage measurement (VAux12). |Voltage |
| |48 |Auxiliary ch 13 voltage measurement (VAux13). |Voltage |
| |49 |Auxiliary ch 14 voltage measurement (VAux14). |Voltage |
| |50 |Auxiliary ch 15 voltage measurement (VAux15). |Voltage |
| -------------------------------------------------------------------------------------------------------- |
| |
| properties: |
| compatible: |
| enum: |
| - xlnx,zynqmp-ams |
| |
| interrupts: |
| maxItems: 1 |
| |
| reg: |
| description: AMS Controller register space |
| maxItems: 1 |
| |
| clocks: |
| items: |
| - description: AMS reference clock |
| |
| ranges: |
| description: |
| Maps the child address space for PS and/or PL. |
| maxItems: 1 |
| |
| '#address-cells': |
| const: 1 |
| |
| '#size-cells': |
| const: 1 |
| |
| '#io-channel-cells': |
| const: 1 |
| |
| ams-ps@0: |
| type: object |
| description: | |
| PS (Processing System) SYSMON is memory mapped to PS. This block has |
| built-in alarm generation logic that is used to interrupt the processor |
| based on condition set. |
| |
| properties: |
| compatible: |
| enum: |
| - xlnx,zynqmp-ams-ps |
| |
| reg: |
| description: Register Space for PS-SYSMON |
| maxItems: 1 |
| |
| required: |
| - compatible |
| - reg |
| |
| additionalProperties: false |
| |
| ams-pl@400: |
| type: object |
| additionalProperties: false |
| description: |
| PL-SYSMON is capable of monitoring off chip voltage and temperature. |
| PL-SYSMON block has DRP, JTAG and I2C interface to enable monitoring |
| from external master. Out of this interface currently only DRP is |
| supported. This block has alarm generation logic that is used to |
| interrupt the processor based on condition set. |
| |
| properties: |
| compatible: |
| items: |
| - enum: |
| - xlnx,zynqmp-ams-pl |
| |
| reg: |
| description: Register Space for PL-SYSMON. |
| maxItems: 1 |
| |
| '#address-cells': |
| const: 1 |
| |
| '#size-cells': |
| const: 0 |
| |
| patternProperties: |
| "^channel@([2-4][0-9]|50)$": |
| type: object |
| description: |
| Describes the external channels connected. |
| |
| properties: |
| reg: |
| description: |
| Pair of pins the channel is connected to. This value is |
| same as Channel Number for a particular channel. |
| minimum: 20 |
| maximum: 50 |
| |
| xlnx,bipolar: |
| $ref: /schemas/types.yaml#/definitions/flag |
| type: boolean |
| description: |
| If the set channel is used in bipolar mode. |
| |
| required: |
| - reg |
| |
| additionalProperties: false |
| |
| required: |
| - compatible |
| - reg |
| - clocks |
| - ranges |
| |
| additionalProperties: false |
| |
| examples: |
| - | |
| #include <dt-bindings/clock/xlnx-zynqmp-clk.h> |
| |
| bus { |
| #address-cells = <2>; |
| #size-cells = <2>; |
| |
| xilinx_ams: ams@ffa50000 { |
| compatible = "xlnx,zynqmp-ams"; |
| interrupt-parent = <&gic>; |
| interrupts = <0 56 4>; |
| reg = <0x0 0xffa50000 0x0 0x800>; |
| clocks = <&zynqmp_clk AMS_REF>; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| #io-channel-cells = <1>; |
| ranges = <0 0 0xffa50800 0x800>; |
| |
| ams_ps: ams-ps@0 { |
| compatible = "xlnx,zynqmp-ams-ps"; |
| reg = <0 0x400>; |
| }; |
| |
| ams_pl: ams-pl@400 { |
| compatible = "xlnx,zynqmp-ams-pl"; |
| reg = <0x400 0x400>; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| channel@30 { |
| reg = <30>; |
| xlnx,bipolar; |
| }; |
| channel@31 { |
| reg = <31>; |
| }; |
| channel@38 { |
| reg = <38>; |
| xlnx,bipolar; |
| }; |
| }; |
| }; |
| }; |