linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] dt-bindings: mfd: Convert ti-tsc-adc bindings to YAML schema
@ 2021-07-26 10:49 Vignesh Raghavendra
  2021-07-29 23:35 ` Rob Herring
  0 siblings, 1 reply; 2+ messages in thread
From: Vignesh Raghavendra @ 2021-07-26 10:49 UTC (permalink / raw)
  To: Jonathan Cameron, Rob Herring, Dmitry Torokhov, Lee Jones
  Cc: Lars-Peter Clausen, Vignesh Raghavendra, linux-iio, devicetree,
	linux-kernel, linux-omap, Linux ARM Mailing List, linux-input

Convert ti-tsc-adc binding to YAML schema. This is MFD device with
support for resistive touchscreen and ADC. But the txt binding file for
MFD and ADC has been incorrectly been under input/touchscreen directory,
so split the bindings across subsystems as appropriate.

Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
---
 .../bindings/iio/adc/ti,am3359-adc.yaml       | 74 +++++++++++++++
 .../input/touchscreen/ti,am3359-tsc.yaml      | 79 ++++++++++++++++
 .../bindings/input/touchscreen/ti-tsc-adc.txt | 91 ------------------
 .../bindings/mfd/ti,am3359-tscadc.yaml        | 92 +++++++++++++++++++
 4 files changed, 245 insertions(+), 91 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/iio/adc/ti,am3359-adc.yaml
 create mode 100644 Documentation/devicetree/bindings/input/touchscreen/ti,am3359-tsc.yaml
 delete mode 100644 Documentation/devicetree/bindings/input/touchscreen/ti-tsc-adc.txt
 create mode 100644 Documentation/devicetree/bindings/mfd/ti,am3359-tscadc.yaml

diff --git a/Documentation/devicetree/bindings/iio/adc/ti,am3359-adc.yaml b/Documentation/devicetree/bindings/iio/adc/ti,am3359-adc.yaml
new file mode 100644
index 000000000000..b7884be5d378
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/adc/ti,am3359-adc.yaml
@@ -0,0 +1,74 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/adc/ti,am3359-adc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Bindings for ADC part of TSCADC MFDs on TI SoCs
+
+maintainers:
+  - Vignesh Raghavendra <vigneshr@ti.com>
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - enum:
+              - ti,am654-adc
+          - const: ti,am3359-adc
+      - const: ti,am3359-adc
+
+  ti,adc-channels:
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    description:
+      List of analog inputs available for ADC.
+      AIN0 = 0, AIN1 = 1 and so on till AIN7 = 7.
+    minItems: 1
+    maxItems: 8
+    items:
+      maximum: 7
+
+  ti,chan-step-opendelay:
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    description:
+      List of open delays for each channel of list of analog inputs
+      available for ADC. ADC in the order of ti,adc-channels. The
+      value corresponds to the number of ADC clock cycles to wait
+      after applying the step configuration registers and before
+      sending the start of ADC conversion.
+    minItems: 1
+    maxItems: 8
+    items:
+      maximum: 0x3FFFF
+
+  ti,chan-step-sampledelay:
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    description:
+      List of sample delays for each channel of ADC in the order of
+      ti,adc-channels. The value corresponds to the number of
+      ADC clock cycles to sample (to hold start of conversion high).
+    minItems: 1
+    maxItems: 8
+    items:
+      maximum: 0xFF
+
+  ti,chan-step-avg:
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    description:
+      Number of averages to be performed for each channel of ADC. If
+      average is 16 then input is sampled 16 times and averaged to
+      get more accurate value. This increases the time taken by ADC
+      to generate a sample.
+    minItems: 1
+    maxItems: 8
+    items:
+      maximum: 16
+
+  "#io-channel-cells":
+    const: 1
+
+required:
+  - compatible
+  - "#io-channel-cells"
+
+additionalProperties: false
diff --git a/Documentation/devicetree/bindings/input/touchscreen/ti,am3359-tsc.yaml b/Documentation/devicetree/bindings/input/touchscreen/ti,am3359-tsc.yaml
new file mode 100644
index 000000000000..288f8d73b653
--- /dev/null
+++ b/Documentation/devicetree/bindings/input/touchscreen/ti,am3359-tsc.yaml
@@ -0,0 +1,79 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/input/touchscreen/ti,am3359-tsc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Bindings for TSC part of TSCADC MFDs on TI SoCs
+
+maintainers:
+  - Vignesh Raghavendra <vigneshr@ti.com>
+
+properties:
+  compatible:
+    const: ti,am3359-tsc
+
+  ti,wires:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum: [4, 5, 8]
+    description:
+      Number of wires used by touchscreen
+
+  ti,x-plate-resistance:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      X plate resistance
+
+  ti,coordinate-readouts:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    minimum: 1
+    maximum: 5
+    description:
+      The sequencer supports a total of 16 programmable steps
+      each step is used to read a single coordinate. A single
+      readout is enough but multiple reads can increase the quality.
+      A value of 5 means, 5 reads for X, 5 for Y and 2 for Z (always).
+      This utilises 12 of the 16 software steps available.
+      The remaining 4 can be used by the ADC.
+
+  ti,wire-config:
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    description: |
+      Different boards could have a different order for
+      connecting wires on touchscreen. We need to provide an
+      8 bit number where in the 1st four bits represent the
+      analog lines and the next 4 bits represent positive/
+      negative terminal on that input line. Notations to
+      represent the input lines and terminals respectively
+      is as follows:
+      AIN0 = 0, AIN1 = 1 and so on till AIN7 = 7.
+      XP  = 0, XN = 1, YP = 2, YN = 3.
+      minItems: 4
+    items:
+      maximum: 0x73
+
+  ti,charge-delay:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Length of touch screen charge delay step in terms of
+      List of analog inputs available for ADC.
+      ADC clock cycles. Charge delay value should be large
+      in order to avoid false pen-up events. This value
+      effects the overall sampling speed, hence need to be
+      kept as low as possible, while avoiding false pen-up
+      event. Start from a lower value, say 0x400, and
+      increase value until false pen-up events are avoided.
+      The pen-up detection happens immediately after the
+      charge step, so this does in fact function as a
+      hardware knob for adjusting the amount of "settling time".
+    minimum: 0x1
+    maximum: 0xFFFF
+
+required:
+  - compatible
+  - ti,wires
+  - ti,coordinate-readouts
+  - ti,wire-config
+  - ti,x-plate-resistance
+
+additionalProperties: false
diff --git a/Documentation/devicetree/bindings/input/touchscreen/ti-tsc-adc.txt b/Documentation/devicetree/bindings/input/touchscreen/ti-tsc-adc.txt
deleted file mode 100644
index aad5e34965eb..000000000000
--- a/Documentation/devicetree/bindings/input/touchscreen/ti-tsc-adc.txt
+++ /dev/null
@@ -1,91 +0,0 @@
-* TI - TSC ADC (Touschscreen and analog digital converter)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Required properties:
-- mfd
-	compatible: Should be
-		"ti,am3359-tscadc" for AM335x/AM437x SoCs
-		"ti,am654-tscadc", "ti,am3359-tscadc" for AM654 SoCs
-- child "tsc"
-	compatible: Should be "ti,am3359-tsc".
-	ti,wires: Wires refer to application modes i.e. 4/5/8 wire touchscreen
-		  support on the platform.
-	ti,x-plate-resistance: X plate resistance
-	ti,coordinate-readouts: The sequencer supports a total of 16
-				programmable steps each step is used to
-				read a single coordinate. A single
-                                readout is enough but multiple reads can
-				increase the quality.
-				A value of 5 means, 5 reads for X, 5 for
-				Y and 2 for Z (always). This utilises 12
-				of the 16 software steps available. The
-				remaining 4 can be used by the ADC.
-	ti,wire-config: Different boards could have a different order for
-			connecting wires on touchscreen. We need to provide an
-			8 bit number where in the 1st four bits represent the
-			analog lines and the next 4 bits represent positive/
-			negative terminal on that input line. Notations to
-			represent the input lines and terminals resoectively
-			is as follows:
-			AIN0 = 0, AIN1 = 1 and so on till AIN7 = 7.
-			XP  = 0, XN = 1, YP = 2, YN = 3.
-- child "adc"
-	compatible: Should be
-		    "ti,am3359-adc" for AM335x/AM437x SoCs
-		    "ti,am654-adc", "ti,am3359-adc" for AM654 SoCs
-	ti,adc-channels: List of analog inputs available for ADC.
-			 AIN0 = 0, AIN1 = 1 and so on till AIN7 = 7.
-
-Optional properties:
-- child "tsc"
-	ti,charge-delay: Length of touch screen charge delay step in terms of
-			 ADC clock cycles. Charge delay value should be large
-			 in order to avoid false pen-up events. This value
-			 effects the overall sampling speed, hence need to be
-			 kept as low as possible, while avoiding false pen-up
-			 event. Start from a lower value, say 0x400, and
-			 increase value until false pen-up events are avoided.
-			 The pen-up detection happens immediately after the
-			 charge step, so this does in fact function as a
-			 hardware knob for adjusting the amount of "settling
-			 time".
-
-- child "adc"
-	ti,chan-step-opendelay: List of open delays for each channel of
-				ADC in the order of ti,adc-channels. The
-				value corresponds to the number of ADC
-				clock cycles to wait after applying the
-				step configuration registers and before
-				sending the start of ADC conversion.
-				Maximum value is 0x3FFFF.
-       ti,chan-step-sampledelay: List of sample delays for each channel
-				  of ADC in the order of ti,adc-channels.
-				  The value corresponds to the number of
-				  ADC clock cycles to sample (to hold
-				  start of conversion high).
-				  Maximum value is 0xFF.
-       ti,chan-step-avg: Number of averages to be performed for each
-			  channel of ADC. If average is 16 then input
-			  is sampled 16 times and averaged to get more
-			  accurate value. This increases the time taken
-			  by ADC to generate a sample. Valid range is 0
-			  average to 16 averages. Maximum value is 16.
-
-Example:
-	tscadc: tscadc@44e0d000 {
-		compatible = "ti,am3359-tscadc";
-		tsc {
-			ti,wires = <4>;
-			ti,x-plate-resistance = <200>;
-			ti,coordiante-readouts = <5>;
-			ti,wire-config = <0x00 0x11 0x22 0x33>;
-			ti,charge-delay = <0x400>;
-		};
-
-		adc {
-			ti,adc-channels = <4 5 6 7>;
-			ti,chan-step-opendelay = <0x098 0x3ffff 0x098 0x0>;
-			ti,chan-step-sampledelay = <0xff 0x0 0xf 0x0>;
-			ti,chan-step-avg = <16 2 4 8>;
-		};
-	}
diff --git a/Documentation/devicetree/bindings/mfd/ti,am3359-tscadc.yaml b/Documentation/devicetree/bindings/mfd/ti,am3359-tscadc.yaml
new file mode 100644
index 000000000000..61854b61e378
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/ti,am3359-tscadc.yaml
@@ -0,0 +1,92 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mfd/ti,am3359-tscadc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Bindings for Touchscreen + ADC MFD IPs on TI SoCs
+
+maintainers:
+  - Vignesh Raghavendra <vigneshr@ti.com>
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - enum:
+              - ti,am654-tscadc
+          - const: ti,am3359-tscadc
+      - const: ti,am3359-tscadc
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    const: "adc_tsc_fck"
+
+  dmas:
+    maxItems: 2
+
+  dma-names:
+    items:
+      - const: fifo0
+      - const: fifo1
+
+  power-domains: true
+
+  tsc:
+    $ref: ../input/touchscreen/ti,am3359-tsc.yaml
+    description:
+      Bindings for Touchscreen part of the MFD
+
+  adc:
+    $ref: ../iio/adc/ti,am3359-adc.yaml
+    description:
+      Bindings for ADC part of the MFD
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+additionalProperties: false
+
+if:
+  properties:
+    compatible:
+      contains:
+        const: ti,am654-tscadc
+then:
+  properties:
+    tsc: false
+
+examples:
+  - |
+    tscadc@44e0d000 {
+      compatible = "ti,am3359-tscadc";
+      reg = <0x44e0d000 0x1000>;
+      interrupts = <16>;
+        tsc {
+          compatible = "ti,am3359-tsc";
+          ti,wires = <4>;
+          ti,x-plate-resistance = <200>;
+          ti,coordinate-readouts = <5>;
+          ti,wire-config = <0x00 0x11 0x22 0x33>;
+          ti,charge-delay = <0x400>;
+        };
+
+      adc {
+        compatible = "ti,am3359-adc";
+        ti,adc-channels = <4 5 6 7>;
+        ti,chan-step-opendelay = <0x098 0x3ffff 0x098 0x0>;
+        ti,chan-step-sampledelay = <0xff 0x0 0xf 0x0>;
+        ti,chan-step-avg = <16 2 4 8>;
+        #io-channel-cells = <1>;
+      };
+    };
-- 
2.32.0


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] dt-bindings: mfd: Convert ti-tsc-adc bindings to YAML schema
  2021-07-26 10:49 [PATCH] dt-bindings: mfd: Convert ti-tsc-adc bindings to YAML schema Vignesh Raghavendra
@ 2021-07-29 23:35 ` Rob Herring
  0 siblings, 0 replies; 2+ messages in thread
From: Rob Herring @ 2021-07-29 23:35 UTC (permalink / raw)
  To: Vignesh Raghavendra
  Cc: Jonathan Cameron, Dmitry Torokhov, Lee Jones, Lars-Peter Clausen,
	linux-iio, devicetree, linux-kernel, linux-omap,
	Linux ARM Mailing List, linux-input

On Mon, Jul 26, 2021 at 04:19:58PM +0530, Vignesh Raghavendra wrote:
> Convert ti-tsc-adc binding to YAML schema. This is MFD device with
> support for resistive touchscreen and ADC. But the txt binding file for
> MFD and ADC has been incorrectly been under input/touchscreen directory,
> so split the bindings across subsystems as appropriate.
> 
> Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
> ---
>  .../bindings/iio/adc/ti,am3359-adc.yaml       | 74 +++++++++++++++
>  .../input/touchscreen/ti,am3359-tsc.yaml      | 79 ++++++++++++++++
>  .../bindings/input/touchscreen/ti-tsc-adc.txt | 91 ------------------
>  .../bindings/mfd/ti,am3359-tscadc.yaml        | 92 +++++++++++++++++++
>  4 files changed, 245 insertions(+), 91 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/iio/adc/ti,am3359-adc.yaml
>  create mode 100644 Documentation/devicetree/bindings/input/touchscreen/ti,am3359-tsc.yaml
>  delete mode 100644 Documentation/devicetree/bindings/input/touchscreen/ti-tsc-adc.txt
>  create mode 100644 Documentation/devicetree/bindings/mfd/ti,am3359-tscadc.yaml
> 
> diff --git a/Documentation/devicetree/bindings/iio/adc/ti,am3359-adc.yaml b/Documentation/devicetree/bindings/iio/adc/ti,am3359-adc.yaml
> new file mode 100644
> index 000000000000..b7884be5d378
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/iio/adc/ti,am3359-adc.yaml
> @@ -0,0 +1,74 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/iio/adc/ti,am3359-adc.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Bindings for ADC part of TSCADC MFDs on TI SoCs
> +
> +maintainers:
> +  - Vignesh Raghavendra <vigneshr@ti.com>
> +
> +properties:
> +  compatible:
> +    oneOf:
> +      - items:
> +          - enum:
> +              - ti,am654-adc
> +          - const: ti,am3359-adc
> +      - const: ti,am3359-adc
> +
> +  ti,adc-channels:
> +    $ref: /schemas/types.yaml#/definitions/uint32-array
> +    description:
> +      List of analog inputs available for ADC.
> +      AIN0 = 0, AIN1 = 1 and so on till AIN7 = 7.
> +    minItems: 1
> +    maxItems: 8
> +    items:
> +      maximum: 7
> +
> +  ti,chan-step-opendelay:
> +    $ref: /schemas/types.yaml#/definitions/uint32-array
> +    description:
> +      List of open delays for each channel of list of analog inputs
> +      available for ADC. ADC in the order of ti,adc-channels. The
> +      value corresponds to the number of ADC clock cycles to wait
> +      after applying the step configuration registers and before
> +      sending the start of ADC conversion.
> +    minItems: 1
> +    maxItems: 8
> +    items:
> +      maximum: 0x3FFFF
> +
> +  ti,chan-step-sampledelay:
> +    $ref: /schemas/types.yaml#/definitions/uint32-array
> +    description:
> +      List of sample delays for each channel of ADC in the order of
> +      ti,adc-channels. The value corresponds to the number of
> +      ADC clock cycles to sample (to hold start of conversion high).
> +    minItems: 1
> +    maxItems: 8
> +    items:
> +      maximum: 0xFF
> +
> +  ti,chan-step-avg:
> +    $ref: /schemas/types.yaml#/definitions/uint32-array
> +    description:
> +      Number of averages to be performed for each channel of ADC. If
> +      average is 16 then input is sampled 16 times and averaged to
> +      get more accurate value. This increases the time taken by ADC
> +      to generate a sample.
> +    minItems: 1
> +    maxItems: 8
> +    items:
> +      maximum: 16
> +
> +  "#io-channel-cells":
> +    const: 1
> +
> +required:
> +  - compatible
> +  - "#io-channel-cells"
> +
> +additionalProperties: false
> diff --git a/Documentation/devicetree/bindings/input/touchscreen/ti,am3359-tsc.yaml b/Documentation/devicetree/bindings/input/touchscreen/ti,am3359-tsc.yaml
> new file mode 100644
> index 000000000000..288f8d73b653
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/input/touchscreen/ti,am3359-tsc.yaml
> @@ -0,0 +1,79 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/input/touchscreen/ti,am3359-tsc.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Bindings for TSC part of TSCADC MFDs on TI SoCs
> +
> +maintainers:
> +  - Vignesh Raghavendra <vigneshr@ti.com>
> +
> +properties:
> +  compatible:
> +    const: ti,am3359-tsc
> +
> +  ti,wires:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    enum: [4, 5, 8]
> +    description:
> +      Number of wires used by touchscreen
> +
> +  ti,x-plate-resistance:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      X plate resistance
> +
> +  ti,coordinate-readouts:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    minimum: 1
> +    maximum: 5
> +    description:
> +      The sequencer supports a total of 16 programmable steps
> +      each step is used to read a single coordinate. A single
> +      readout is enough but multiple reads can increase the quality.
> +      A value of 5 means, 5 reads for X, 5 for Y and 2 for Z (always).
> +      This utilises 12 of the 16 software steps available.
> +      The remaining 4 can be used by the ADC.
> +
> +  ti,wire-config:
> +    $ref: /schemas/types.yaml#/definitions/uint32-array
> +    description: |
> +      Different boards could have a different order for
> +      connecting wires on touchscreen. We need to provide an
> +      8 bit number where in the 1st four bits represent the
> +      analog lines and the next 4 bits represent positive/
> +      negative terminal on that input line. Notations to
> +      represent the input lines and terminals respectively
> +      is as follows:
> +      AIN0 = 0, AIN1 = 1 and so on till AIN7 = 7.
> +      XP  = 0, XN = 1, YP = 2, YN = 3.
> +      minItems: 4
> +    items:
> +      maximum: 0x73
> +
> +  ti,charge-delay:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Length of touch screen charge delay step in terms of
> +      List of analog inputs available for ADC.
> +      ADC clock cycles. Charge delay value should be large
> +      in order to avoid false pen-up events. This value
> +      effects the overall sampling speed, hence need to be
> +      kept as low as possible, while avoiding false pen-up
> +      event. Start from a lower value, say 0x400, and
> +      increase value until false pen-up events are avoided.
> +      The pen-up detection happens immediately after the
> +      charge step, so this does in fact function as a
> +      hardware knob for adjusting the amount of "settling time".
> +    minimum: 0x1
> +    maximum: 0xFFFF
> +
> +required:
> +  - compatible
> +  - ti,wires
> +  - ti,coordinate-readouts
> +  - ti,wire-config
> +  - ti,x-plate-resistance
> +
> +additionalProperties: false
> diff --git a/Documentation/devicetree/bindings/input/touchscreen/ti-tsc-adc.txt b/Documentation/devicetree/bindings/input/touchscreen/ti-tsc-adc.txt
> deleted file mode 100644
> index aad5e34965eb..000000000000
> --- a/Documentation/devicetree/bindings/input/touchscreen/ti-tsc-adc.txt
> +++ /dev/null
> @@ -1,91 +0,0 @@
> -* TI - TSC ADC (Touschscreen and analog digital converter)
> -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> -
> -Required properties:
> -- mfd
> -	compatible: Should be
> -		"ti,am3359-tscadc" for AM335x/AM437x SoCs
> -		"ti,am654-tscadc", "ti,am3359-tscadc" for AM654 SoCs
> -- child "tsc"
> -	compatible: Should be "ti,am3359-tsc".
> -	ti,wires: Wires refer to application modes i.e. 4/5/8 wire touchscreen
> -		  support on the platform.
> -	ti,x-plate-resistance: X plate resistance
> -	ti,coordinate-readouts: The sequencer supports a total of 16
> -				programmable steps each step is used to
> -				read a single coordinate. A single
> -                                readout is enough but multiple reads can
> -				increase the quality.
> -				A value of 5 means, 5 reads for X, 5 for
> -				Y and 2 for Z (always). This utilises 12
> -				of the 16 software steps available. The
> -				remaining 4 can be used by the ADC.
> -	ti,wire-config: Different boards could have a different order for
> -			connecting wires on touchscreen. We need to provide an
> -			8 bit number where in the 1st four bits represent the
> -			analog lines and the next 4 bits represent positive/
> -			negative terminal on that input line. Notations to
> -			represent the input lines and terminals resoectively
> -			is as follows:
> -			AIN0 = 0, AIN1 = 1 and so on till AIN7 = 7.
> -			XP  = 0, XN = 1, YP = 2, YN = 3.
> -- child "adc"
> -	compatible: Should be
> -		    "ti,am3359-adc" for AM335x/AM437x SoCs
> -		    "ti,am654-adc", "ti,am3359-adc" for AM654 SoCs
> -	ti,adc-channels: List of analog inputs available for ADC.
> -			 AIN0 = 0, AIN1 = 1 and so on till AIN7 = 7.
> -
> -Optional properties:
> -- child "tsc"
> -	ti,charge-delay: Length of touch screen charge delay step in terms of
> -			 ADC clock cycles. Charge delay value should be large
> -			 in order to avoid false pen-up events. This value
> -			 effects the overall sampling speed, hence need to be
> -			 kept as low as possible, while avoiding false pen-up
> -			 event. Start from a lower value, say 0x400, and
> -			 increase value until false pen-up events are avoided.
> -			 The pen-up detection happens immediately after the
> -			 charge step, so this does in fact function as a
> -			 hardware knob for adjusting the amount of "settling
> -			 time".
> -
> -- child "adc"
> -	ti,chan-step-opendelay: List of open delays for each channel of
> -				ADC in the order of ti,adc-channels. The
> -				value corresponds to the number of ADC
> -				clock cycles to wait after applying the
> -				step configuration registers and before
> -				sending the start of ADC conversion.
> -				Maximum value is 0x3FFFF.
> -       ti,chan-step-sampledelay: List of sample delays for each channel
> -				  of ADC in the order of ti,adc-channels.
> -				  The value corresponds to the number of
> -				  ADC clock cycles to sample (to hold
> -				  start of conversion high).
> -				  Maximum value is 0xFF.
> -       ti,chan-step-avg: Number of averages to be performed for each
> -			  channel of ADC. If average is 16 then input
> -			  is sampled 16 times and averaged to get more
> -			  accurate value. This increases the time taken
> -			  by ADC to generate a sample. Valid range is 0
> -			  average to 16 averages. Maximum value is 16.
> -
> -Example:
> -	tscadc: tscadc@44e0d000 {
> -		compatible = "ti,am3359-tscadc";
> -		tsc {
> -			ti,wires = <4>;
> -			ti,x-plate-resistance = <200>;
> -			ti,coordiante-readouts = <5>;
> -			ti,wire-config = <0x00 0x11 0x22 0x33>;
> -			ti,charge-delay = <0x400>;
> -		};
> -
> -		adc {
> -			ti,adc-channels = <4 5 6 7>;
> -			ti,chan-step-opendelay = <0x098 0x3ffff 0x098 0x0>;
> -			ti,chan-step-sampledelay = <0xff 0x0 0xf 0x0>;
> -			ti,chan-step-avg = <16 2 4 8>;
> -		};
> -	}
> diff --git a/Documentation/devicetree/bindings/mfd/ti,am3359-tscadc.yaml b/Documentation/devicetree/bindings/mfd/ti,am3359-tscadc.yaml
> new file mode 100644
> index 000000000000..61854b61e378
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/mfd/ti,am3359-tscadc.yaml
> @@ -0,0 +1,92 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/mfd/ti,am3359-tscadc.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Bindings for Touchscreen + ADC MFD IPs on TI SoCs
> +
> +maintainers:
> +  - Vignesh Raghavendra <vigneshr@ti.com>
> +
> +properties:
> +  compatible:
> +    oneOf:
> +      - items:
> +          - enum:
> +              - ti,am654-tscadc
> +          - const: ti,am3359-tscadc
> +      - const: ti,am3359-tscadc
> +
> +  reg:
> +    maxItems: 1
> +
> +  interrupts:
> +    maxItems: 1
> +
> +  clocks:
> +    maxItems: 1
> +
> +  clock-names:
> +    const: "adc_tsc_fck"

Don't need quotes

> +
> +  dmas:
> +    maxItems: 2
> +
> +  dma-names:
> +    items:
> +      - const: fifo0
> +      - const: fifo1
> +
> +  power-domains: true
> +
> +  tsc:
> +    $ref: ../input/touchscreen/ti,am3359-tsc.yaml

/schemas/input/...

> +    description:
> +      Bindings for Touchscreen part of the MFD
> +
> +  adc:
> +    $ref: ../iio/adc/ti,am3359-adc.yaml

/schemas/iio/...

> +    description:
> +      Bindings for ADC part of the MFD
> +
> +required:
> +  - compatible
> +  - reg
> +  - interrupts
> +
> +additionalProperties: false
> +
> +if:
> +  properties:
> +    compatible:
> +      contains:
> +        const: ti,am654-tscadc
> +then:
> +  properties:
> +    tsc: false
> +
> +examples:
> +  - |
> +    tscadc@44e0d000 {
> +      compatible = "ti,am3359-tscadc";
> +      reg = <0x44e0d000 0x1000>;
> +      interrupts = <16>;
> +        tsc {

indentation is off

> +          compatible = "ti,am3359-tsc";
> +          ti,wires = <4>;
> +          ti,x-plate-resistance = <200>;
> +          ti,coordinate-readouts = <5>;
> +          ti,wire-config = <0x00 0x11 0x22 0x33>;
> +          ti,charge-delay = <0x400>;
> +        };
> +
> +      adc {
> +        compatible = "ti,am3359-adc";
> +        ti,adc-channels = <4 5 6 7>;
> +        ti,chan-step-opendelay = <0x098 0x3ffff 0x098 0x0>;
> +        ti,chan-step-sampledelay = <0xff 0x0 0xf 0x0>;
> +        ti,chan-step-avg = <16 2 4 8>;
> +        #io-channel-cells = <1>;
> +      };
> +    };

With those few nits fixed,

Reviewed-by: Rob Herring <robh@kernel.org>

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-07-29 23:35 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-26 10:49 [PATCH] dt-bindings: mfd: Convert ti-tsc-adc bindings to YAML schema Vignesh Raghavendra
2021-07-29 23:35 ` Rob Herring

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).