Commit 49703a36 authored by Jonathan Cameron's avatar Jonathan Cameron
Browse files

dt-bindings:iio:adc:fsl,imx25-gcq yaml conversion



This binding has a few corners that would have been done different today
but hopefully the yaml schema captures the constraints correctly.

The child node names are not constrained hence the fairly open regexp.
I've also documented the defaults for the two references that the
driver seems to use and copied the value descriptions from the header
because I think they should be in the dt-binding itself.

This is part of a general effort to convert all the IIO bindings
over to yaml

Unfortunately I don't have a current address for Markus, so
have put myself as the maintainer for this binding until someone else
steps up!

Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Cc: Shawn Guo <shawnguo@kernel.org>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Link: https://lore.kernel.org/r/20200909175946.395313-21-jic23@kernel.org
parent 964adff5
Loading
Loading
Loading
Loading
+0 −57
Original line number Diff line number Diff line
Freescale i.MX25 ADC GCQ device

This is a generic conversion queue device that can convert any of the
analog inputs using the ADC unit of the i.MX25.

Required properties:
 - compatible: Should be "fsl,imx25-gcq".
 - reg: Should be the register range of the module.
 - interrupts: Should be the interrupt number of the module.
   Typically this is <1>.
 - #address-cells: Should be <1> (setting for the subnodes)
 - #size-cells: Should be <0> (setting for the subnodes)

Optional properties:
 - vref-ext-supply: The regulator supplying the ADC reference voltage.
   Required when at least one subnode uses the this reference.
 - vref-xp-supply: The regulator supplying the ADC reference voltage on pin XP.
   Required when at least one subnode uses this reference.
 - vref-yp-supply: The regulator supplying the ADC reference voltage on pin YP.
   Required when at least one subnode uses this reference.

Sub-nodes:
Optionally you can define subnodes which define the reference voltage
for the analog inputs.

Required properties for subnodes:
 - reg: Should be the number of the analog input.
     0: xp
     1: yp
     2: xn
     3: yn
     4: wiper
     5: inaux0
     6: inaux1
     7: inaux2
Optional properties for subnodes:
 - fsl,adc-refp: specifies the positive reference input as defined in
     <dt-bindings/iio/adc/fsl-imx25-gcq.h>
 - fsl,adc-refn: specifies the negative reference input as defined in
     <dt-bindings/iio/adc/fsl-imx25-gcq.h>

Example:

	adc: adc@50030800 {
		compatible = "fsl,imx25-gcq";
		reg = <0x50030800 0x60>;
		interrupt-parent = <&tscadc>;
		interrupts = <1>;
		#address-cells = <1>;
		#size-cells = <0>;

		inaux@5 {
			reg = <5>;
			fsl,adc-refp = <MX25_ADC_REFP_INT>;
			fsl,adc-refn = <MX25_ADC_REFN_NGND>;
		};
	};
+131 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/iio/adc/fsl,imx25-gcq.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Freescale ADC GCQ device

description:
  This is a generic conversion queue device that can convert any of the
  analog inputs using the ADC unit of the i.MX25.

maintainers:
  - Jonathan Cameron <jic23@kernel.org>

properties:
  compatible:
    const: fsl,imx25-gcq

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  vref-ext-supply:
    description:
      The regulator supplying the ADC reference voltage.
      Required when at least one subnode uses the this reference.

  vref-xp-supply:
    description:
      The regulator supplying the ADC reference voltage on pin XP.
      Required when at least one subnode uses this reference.

  vref-yp-supply:
    description:
      The regulator supplying the ADC reference voltage on pin YP.
      Required when at least one subnode uses this reference.

  "#io-channel-cells":
    const: 1

  "#address-cells":
    const: 1

  "#size-cells":
    const: 0

required:
  - compatible
  - reg
  - interrupts
  - "#address-cells"
  - "#size-cells"

patternProperties:
  "[a-z][a-z0-9]+@[0-9a-f]+$":
    type: object
    description:
      Child nodes used to define the reference voltages used for each channel

    properties:
      reg:
        description: |
          Number of the analog input.
          0: xp
          1: yp
          2: xn
          3: yn
          4: wiper
          5: inaux0
          6: inaux1
          7: inaux2
        items:
          - minimum: 0
            maximum: 7

      fsl,adc-refp:
        $ref: /schemas/types.yaml#/definitions/uint32
        description: |
          Specifies the positive reference input as defined in
          <dt-bindings/iio/adc/fsl-imx25-gcq.h>
          0: YP voltage reference
          1: XP voltage reference
          2: External voltage reference
          3: Internal voltage reference (default)
        minimum: 0
        maximum: 3

      fsl,adc-refn:
        $ref: /schemas/types.yaml#/definitions/uint32
        description: |
          Specifies the negative reference input as defined in
          <dt-bindings/iio/adc/fsl-imx25-gcq.h>
          0: XN ground reference
          1: YN ground reference
          2: Internal ground reference
          3: External ground reference (default)
        minimum: 0
        maximum: 3

    required:
      - reg

    additionalProperties: false

additionalProperties: false

examples:
  - |
    #include <dt-bindings/iio/adc/fsl-imx25-gcq.h>
    soc {
        #address-cells = <1>;
        #size-cells = <1>;
        adc@50030800 {
            compatible = "fsl,imx25-gcq";
            reg = <0x50030800 0x60>;
            interrupt-parent = <&tscadc>;
            interrupts = <1>;
            #address-cells = <1>;
            #size-cells = <0>;

            inaux@5 {
                reg = <5>;
                fsl,adc-refp = <MX25_ADC_REFP_INT>;
                fsl,adc-refn = <MX25_ADC_REFN_NGND>;
            };
        };
    };
...