[PATCH v5 14/16] dt-bindings: iio: adc: adi,ad4695: add SPI offload properties

David Lechner posted 16 patches 6 days, 20 hours ago
[PATCH v5 14/16] dt-bindings: iio: adc: adi,ad4695: add SPI offload properties
Posted by David Lechner 6 days, 20 hours ago
Add a pwms property to the adi,ad4695 binding to specify an optional PWM
output connected to the CNV pin on the ADC.

Also add #trigger-source-cells property to allow the BUSY output to be
used as a SPI offload trigger source to indicate when a sample is ready
to be read.

Macros are added to adi,ad4695.h for the cell values to help with
readability since they are arbitrary values.

The $ref for spi-peripheral-props.yaml is moved to keep similar $refs
grouped together.

Signed-off-by: David Lechner <dlechner@baylibre.com>
---

v5 changes:
* Added macros for cell values

v4 changes: new patch in v4
---
 .../devicetree/bindings/iio/adc/adi,ad4695.yaml          | 16 ++++++++++++++--
 include/dt-bindings/iio/adc/adi,ad4695.h                 |  7 +++++++
 2 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad4695.yaml b/Documentation/devicetree/bindings/iio/adc/adi,ad4695.yaml
index 7d2229dee444..c0d4e4ff62a4 100644
--- a/Documentation/devicetree/bindings/iio/adc/adi,ad4695.yaml
+++ b/Documentation/devicetree/bindings/iio/adc/adi,ad4695.yaml
@@ -18,8 +18,6 @@ description: |
   * https://www.analog.com/en/products/ad4697.html
   * https://www.analog.com/en/products/ad4698.html
 
-$ref: /schemas/spi/spi-peripheral-props.yaml#
-
 properties:
   compatible:
     enum:
@@ -84,6 +82,9 @@ properties:
     description: The Reset Input (RESET). Should be configured GPIO_ACTIVE_LOW.
     maxItems: 1
 
+  pwms:
+    description: PWM signal connected to the CNV pin.
+
   interrupts:
     minItems: 1
     items:
@@ -106,6 +107,15 @@ properties:
       The first cell is the GPn number: 0 to 3.
       The second cell takes standard GPIO flags.
 
+  '#trigger-source-cells':
+    description: |
+      First cell indicates the output signal: 0 = BUSY, 1 = ALERT.
+      Second cell indicates which GPn pin is used: 0, 2 or 3.
+
+      For convenience, macros for these values are available in
+      dt-bindings/iio/adc/adi,ad4695.h.
+    const: 2
+
   "#address-cells":
     const: 1
 
@@ -166,6 +176,8 @@ required:
   - vio-supply
 
 allOf:
+  - $ref: /schemas/spi/spi-peripheral-props.yaml#
+  - $ref: /schemas/spi/trigger-source.yaml#
   - oneOf:
       - required:
           - ldo-in-supply
diff --git a/include/dt-bindings/iio/adc/adi,ad4695.h b/include/dt-bindings/iio/adc/adi,ad4695.h
index 9fbef542bf67..fea4525d2710 100644
--- a/include/dt-bindings/iio/adc/adi,ad4695.h
+++ b/include/dt-bindings/iio/adc/adi,ad4695.h
@@ -6,4 +6,11 @@
 #define AD4695_COMMON_MODE_REFGND	0xFF
 #define AD4695_COMMON_MODE_COM		0xFE
 
+#define AD4695_TRIGGER_EVENT_BUSY	0
+#define AD4695_TRIGGER_EVENT_ALERT	1
+
+#define AD4695_TRIGGER_PIN_GP0		0
+#define AD4695_TRIGGER_PIN_GP2		2
+#define AD4695_TRIGGER_PIN_GP3		3
+
 #endif /* _DT_BINDINGS_ADI_AD4695_H */

-- 
2.43.0
Re: [PATCH v5 14/16] dt-bindings: iio: adc: adi,ad4695: add SPI offload properties
Posted by Rob Herring 3 days ago
On Fri, Nov 15, 2024 at 02:18:53PM -0600, David Lechner wrote:
> Add a pwms property to the adi,ad4695 binding to specify an optional PWM
> output connected to the CNV pin on the ADC.
> 
> Also add #trigger-source-cells property to allow the BUSY output to be
> used as a SPI offload trigger source to indicate when a sample is ready
> to be read.
> 
> Macros are added to adi,ad4695.h for the cell values to help with
> readability since they are arbitrary values.
> 
> The $ref for spi-peripheral-props.yaml is moved to keep similar $refs
> grouped together.
> 
> Signed-off-by: David Lechner <dlechner@baylibre.com>
> ---
> 
> v5 changes:
> * Added macros for cell values
> 
> v4 changes: new patch in v4
> ---
>  .../devicetree/bindings/iio/adc/adi,ad4695.yaml          | 16 ++++++++++++++--
>  include/dt-bindings/iio/adc/adi,ad4695.h                 |  7 +++++++
>  2 files changed, 21 insertions(+), 2 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad4695.yaml b/Documentation/devicetree/bindings/iio/adc/adi,ad4695.yaml
> index 7d2229dee444..c0d4e4ff62a4 100644
> --- a/Documentation/devicetree/bindings/iio/adc/adi,ad4695.yaml
> +++ b/Documentation/devicetree/bindings/iio/adc/adi,ad4695.yaml
> @@ -18,8 +18,6 @@ description: |
>    * https://www.analog.com/en/products/ad4697.html
>    * https://www.analog.com/en/products/ad4698.html
>  
> -$ref: /schemas/spi/spi-peripheral-props.yaml#
> -
>  properties:
>    compatible:
>      enum:
> @@ -84,6 +82,9 @@ properties:
>      description: The Reset Input (RESET). Should be configured GPIO_ACTIVE_LOW.
>      maxItems: 1
>  
> +  pwms:
> +    description: PWM signal connected to the CNV pin.

maxItems: 1

> +
>    interrupts:
>      minItems: 1
>      items:
> @@ -106,6 +107,15 @@ properties:
>        The first cell is the GPn number: 0 to 3.
>        The second cell takes standard GPIO flags.
>  
> +  '#trigger-source-cells':
> +    description: |
> +      First cell indicates the output signal: 0 = BUSY, 1 = ALERT.
> +      Second cell indicates which GPn pin is used: 0, 2 or 3.
> +
> +      For convenience, macros for these values are available in
> +      dt-bindings/iio/adc/adi,ad4695.h.
> +    const: 2
> +
>    "#address-cells":
>      const: 1
>  
> @@ -166,6 +176,8 @@ required:
>    - vio-supply
>  
>  allOf:
> +  - $ref: /schemas/spi/spi-peripheral-props.yaml#
> +  - $ref: /schemas/spi/trigger-source.yaml#

This can be dropped.

>    - oneOf:
>        - required:
>            - ldo-in-supply
> diff --git a/include/dt-bindings/iio/adc/adi,ad4695.h b/include/dt-bindings/iio/adc/adi,ad4695.h
> index 9fbef542bf67..fea4525d2710 100644
> --- a/include/dt-bindings/iio/adc/adi,ad4695.h
> +++ b/include/dt-bindings/iio/adc/adi,ad4695.h
> @@ -6,4 +6,11 @@
>  #define AD4695_COMMON_MODE_REFGND	0xFF
>  #define AD4695_COMMON_MODE_COM		0xFE
>  
> +#define AD4695_TRIGGER_EVENT_BUSY	0
> +#define AD4695_TRIGGER_EVENT_ALERT	1
> +
> +#define AD4695_TRIGGER_PIN_GP0		0
> +#define AD4695_TRIGGER_PIN_GP2		2
> +#define AD4695_TRIGGER_PIN_GP3		3
> +
>  #endif /* _DT_BINDINGS_ADI_AD4695_H */
> 
> -- 
> 2.43.0
>