RE: [PATCH v5 3/4] dt-bindings: iio: adc: Add Xilinx AMS binding documentation
From: Anand Ashok Dumbre <hidden>
Date: 2021-06-02 07:51:32
Also in:
linux-devicetree, lkml
-----Original Message----- From: Rob Herring <robh@kernel.org> Sent: Tuesday 1 June 2021 9:24 PM To: Anand Ashok Dumbre <redacted> Cc: jic23@kernel.org; lars@metafoo.de; linux-iio@vger.kernel.org; git-dev [off-list ref]; Michal Simek [off-list ref]; pmeerw@pmeerw.net; devicetree@vger.kernel.org; linux- kernel@vger.kernel.org Subject: Re: [PATCH v5 3/4] dt-bindings: iio: adc: Add Xilinx AMS binding documentation On Fri, May 28, 2021 at 06:29:58PM +0100, Anand Ashok Dumbre wrote:quoted
Xilinx AMS have several ADC channels that can be used for measurement of different voltages and temperatures. Document the same in thebindings.quoted
Signed-off-by: Anand Ashok Dumbre <redacted> --- .../bindings/iio/adc/xlnx,zynqmp-ams.yaml | 265 ++++++++++++++++++ 1 file changed, 265 insertions(+) create mode 100644 Documentation/devicetree/bindings/iio/adc/xlnx,zynqmp-ams.yaml diff --git a/Documentation/devicetree/bindings/iio/adc/xlnx,zynqmp-ams.yaml b/Documentation/devicetree/bindings/iio/adc/xlnx,zynqmp-ams.yaml new file mode 100644 index 000000000000..df3cfca69e2d--- /dev/null +++ b/Documentation/devicetree/bindings/iio/adc/xlnx,zynqmp-ams.yaml@@ -0,0 +1,265 @@ +# 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 isoptional.quoted
+ + AMS Channel Details + ``````````````````` + Sysmon Block |Channel| Details|Measurementquoted
+ |Number ||Type Use spaces rather than tabs
Will amend in the next series.
quoted
+ ---------------------------------------------------------------------------------------------------------quoted
+ AMS CTRL |0 |System PLLs voltage measurement, VCC_PSPLL.|Voltagequoted
+ |1 |Battery voltage measurement, VCC_PSBATT.|Voltagequoted
+ |2 |PL Internal voltage measurement, VCCINT.|Voltagequoted
+ |3 |Block RAM voltage measurement, VCCBRAM.|Voltagequoted
+ |4 |PL Aux voltage measurement, VCCAUX.|Voltagequoted
+ |5 |Voltage measurement for six DDR I/O PLLs,VCC_PSDDR_PLL. |Voltagequoted
+ |6 |VCC_PSINTFP_DDR voltage measurement.|Voltagequoted
+ ---------------------------------------------------------------------------------------------------------quoted
+ PS Sysmon |7 |LPD temperature measurement.|Temperaturequoted
+ |8 |FPD temperature measurement (REMOTE).|Temperaturequoted
+ |9 |VCC PS LPD voltage measurement (supply1).|Voltagequoted
+ |10 |VCC PS FPD voltage measurement (supply2).|Voltagequoted
+ |11 |PS Aux voltage reference (supply3).|Voltagequoted
+ |12 |DDR I/O VCC voltage measurement.|Voltagequoted
+ |13 |PS IO Bank 503 voltage measurement (supply5).|Voltagequoted
+ |14 |PS IO Bank 500 voltage measurement (supply6).|Voltagequoted
+ |15 |VCCO_PSIO1 voltage measurement.|Voltagequoted
+ |16 |VCCO_PSIO2 voltage measurement.|Voltagequoted
+ |17 |VCC_PS_GTR voltage measurement(VPS_MGTRAVCC). |Voltagequoted
+ |18 |VTT_PS_GTR voltage measurement(VPS_MGTRAVTT). |Voltagequoted
+ |19 |VCC_PSADC voltage measurement.|Voltagequoted
+ ---------------------------------------------------------------------------------------------------------quoted
+ PL Sysmon |20 |PL temperature measurement.|Temperaturequoted
+ |21 |PL Internal voltage measurement, VCCINT.|Voltagequoted
+ |22 |PL Auxiliary voltage measurement, VCCAUX.|Voltagequoted
+ |23 |ADC Reference P+ voltage measurement.|Voltagequoted
+ |24 |ADC Reference N- voltage measurement.|Voltagequoted
+ |25 |PL Block RAM voltage measurement, VCCBRAM.|Voltagequoted
+ |26 |LPD Internal voltage measurement, VCC_PSINTLP(supply4). |Voltagequoted
+ |27 |FPD Internal voltage measurement, VCC_PSINTFP(supply5). |Voltagequoted
+ |28 |PS Auxiliary voltage measurement (supply6).|Voltagequoted
+ |29 |PL VCCADC voltage measurement (vccams).|Voltagequoted
+ |30 |Differential analog input signal voltage measurment.|Voltagequoted
+ |31 |VUser0 voltage measurement (supply7).|Voltagequoted
+ |32 |VUser1 voltage measurement (supply8).|Voltagequoted
+ |33 |VUser2 voltage measurement (supply9).|Voltagequoted
+ |34 |VUser3 voltage measurement (supply10).|Voltagequoted
+ |35 |Auxiliary ch 0 voltage measurement (VAux0).|Voltagequoted
+ |36 |Auxiliary ch 1 voltage measurement (VAux1).|Voltagequoted
+ |37 |Auxiliary ch 2 voltage measurement (VAux2).|Voltagequoted
+ |38 |Auxiliary ch 3 voltage measurement (VAux3).|Voltagequoted
+ |39 |Auxiliary ch 4 voltage measurement (VAux4).|Voltagequoted
+ |40 |Auxiliary ch 5 voltage measurement (VAux5).|Voltagequoted
+ |41 |Auxiliary ch 6 voltage measurement (VAux6).|Voltagequoted
+ |42 |Auxiliary ch 7 voltage measurement (VAux7).|Voltagequoted
+ |43 |Auxiliary ch 8 voltage measurement (VAux8).|Voltagequoted
+ |44 |Auxiliary ch 9 voltage measurement (VAux9).|Voltagequoted
+ |45 |Auxiliary ch 10 voltage measurement (VAux10).|Voltagequoted
+ |46 |Auxiliary ch 11 voltage measurement (VAux11).|Voltagequoted
+ |47 |Auxiliary ch 12 voltage measurement (VAux12).|Voltagequoted
+ |48 |Auxiliary ch 13 voltage measurement (VAux13).|Voltagequoted
+ |49 |Auxiliary ch 14 voltage measurement (VAux14).|Voltagequoted
+ |50 |Auxiliary ch 15 voltage measurement (VAux15).|Voltagequoted
+ + -------------------------------------------------------------------- + ------------------------------------ + +properties: + compatible: + enum: + - xlnx,zynqmp-ams + + interrupts: + description: IRQ line for AMSDrop.quoted
+ maxItems: 1 + + interrupt-names: + items: + - const: ams-irqKind of a pointless name. You don't need *-names unless you have more than one.
Agreed, will drop
quoted
+ + reg: + description: AMS Controller register space + maxItems: 1 + + reg-names: + items: + - const: ams-base + + ranges: + description: + Keep the property empty to map child address space + (for PS and/or PL) nodes 1:1 onto the parent address space. + maxItems: 1This contradicts 'empty'.
Accepted.
quoted
+ + '#address-cells': + const: 1 + + '#size-cells': + const: 1 + + '#io-channel-cells': + const: 1 + +patternProperties: + "^ams-ps@0,0$":If you have a non standard unit-address, you need to define the fields.
Will do.
quoted
+ type: object + description: | + PS (Processing System) SYSMON is memory mapped to PS. This blockhasquoted
+ 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@1,0$":What does the '1' correspond to?
I have updated this in other places, but this got left out. 1 is supposed to be 400 which is the offset at which this node.
quoted
+ type: object + description: + PL-SYSMON is capable of monitoring off chip voltage and temperature. + PL-SYSMON block has DRP, JTAG and I2C interface to enablemonitoringquoted
+ 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 + + required: + - compatible + - reg + + additionalProperties: false + + patternProperties: + "^xlnx,ext-channels$":Not a pattern. Put under 'properties'.
quoted
+ + type: object + + description: + List of external channels that are connected to the AMS PL module. + If this property is not present, no external channels will be + assumed to be connected. + + properties: + '#address-cells': + const: 1 + + '#size-cells': + const: 0 + + additionalProperties: false + + patternProperties: + "^channel@([0-9]{1,2}|1[0-5][0-9])$": + type: object + description: + Describes the external channels connected. + + properties: + reg: + $ref: /schemas/types.yaml#/definitions/uint32'reg' already has a type.
Will remove it.
quoted
+ description: + Pair of pins the channel is connected to. This value is + same as Channel Number for a particular channel. + minimum: 20 + maximum: 50Based on the unit-address, the max is 159.
Will fix it.
quoted
+ + 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 + - interrupts + - interrupt-names + - reg + - reg-names + - ranges + +additionalProperties: false + +examples: + - | + bus { + #address-cells = <2>; + #size-cells = <2>; + + xilinx_ams: ams@ffa50000 { + compatible = "xlnx,zynqmp-ams"; + interrupt-parent = <&gic>; + interrupts = <0 56 4>; + interrupt-names = "ams-irq"; + reg = <0x0 0xffa50000 0x0 0x800>; + reg-names = "ams-base"; + #address-cells = <1>; + #size-cells = <1>; + #io-channel-cells = <1>; + ranges = <0 0 0xffa50800 0x800>; + + ams_ps: ams-ps@0,0 { + compatible = "xlnx,zynqmp-ams-ps"; + reg = <0 0x400>; + }; + + ams_pl: ams-pl@1,0 { + compatible = "xlnx,zynqmp-ams-pl"; + reg = <0x400 0x400>; + xlnx,ext-channels { + #address-cells = <1>; + #size-cells = <0>; + channel@30 { + reg = <30>; + xlnx,bipolar; + }; + channel@31 { + reg = <31>; + }; + channel@38 { + reg = <38>; + xlnx,bipolar; + }; + }; + }; + }; + }; -- 2.17.1
Thanks, Anand