diff mbox series

[v5,1/3] dt-bindings: clk: vc5: Add properties for configuring the SD/OE pin

Message ID 20210722190918.95737-1-sean.anderson@seco.com
State Changes Requested, archived
Headers show
Series [v5,1/3] dt-bindings: clk: vc5: Add properties for configuring the SD/OE pin | expand

Checks

Context Check Description
robh/checkpatch success
robh/dt-meta-schema success
robh/dtbs-check fail build log

Commit Message

Sean Anderson July 22, 2021, 7:09 p.m. UTC
These properties allow configuring the SD/OE pin as described in the
datasheet.

Signed-off-by: Sean Anderson <sean.anderson@seco.com>
---
This patch requires the dt-schema commit 25b1b49 ("meta-schemas: Drop
restrictions on top level 'allOf'") to pass dt_binding_check.

Changes in v5:
- Don't use dummy if's for oneOfs under allOfs

Changes in v4:
- Specify that bindings should specify these properties, but don't make
  any guarantees about the driver's behavior when they are not present.
- Clarify description of idt,(en|dis)able-shutdown properties.
- Make opposing properties mutually exclusive.
- Add these properties to the example.

Changes in v3:
- Add idt,disable-shutdown and idt,output-enable-active-low to allow for
  a default of not changing the SP/SH bits at all.

Changes in v2:
- Rename idt,sd-active-high to idt,output-enable-active-high
- Add idt,enable-shutdown

 .../bindings/clock/idt,versaclock5.yaml       | 57 +++++++++++++++++++
 1 file changed, 57 insertions(+)

Comments

Rob Herring (Arm) July 23, 2021, 9:13 p.m. UTC | #1
On Thu, Jul 22, 2021 at 03:09:16PM -0400, Sean Anderson wrote:
> These properties allow configuring the SD/OE pin as described in the
> datasheet.
> 
> Signed-off-by: Sean Anderson <sean.anderson@seco.com>
> ---
> This patch requires the dt-schema commit 25b1b49 ("meta-schemas: Drop
> restrictions on top level 'allOf'") to pass dt_binding_check.
> 
> Changes in v5:
> - Don't use dummy if's for oneOfs under allOfs
> 
> Changes in v4:
> - Specify that bindings should specify these properties, but don't make
>   any guarantees about the driver's behavior when they are not present.
> - Clarify description of idt,(en|dis)able-shutdown properties.
> - Make opposing properties mutually exclusive.
> - Add these properties to the example.
> 
> Changes in v3:
> - Add idt,disable-shutdown and idt,output-enable-active-low to allow for
>   a default of not changing the SP/SH bits at all.
> 
> Changes in v2:
> - Rename idt,sd-active-high to idt,output-enable-active-high
> - Add idt,enable-shutdown
> 
>  .../bindings/clock/idt,versaclock5.yaml       | 57 +++++++++++++++++++
>  1 file changed, 57 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/clock/idt,versaclock5.yaml b/Documentation/devicetree/bindings/clock/idt,versaclock5.yaml
> index 28675b0b80f1..1abf69e6b8e9 100644
> --- a/Documentation/devicetree/bindings/clock/idt,versaclock5.yaml
> +++ b/Documentation/devicetree/bindings/clock/idt,versaclock5.yaml
> @@ -30,6 +30,21 @@ description: |
>      3 -- OUT3
>      4 -- OUT4
>  
> +  The idt,(en|dis)able-shutdown and idt,output-enable-active-(high|low)
> +  properties control the SH (en_global_shutdown) and SP bits of the
> +  Primary Source and Shutdown Register, respectively. Their behavior is
> +  summarized by the following table:
> +
> +  SH SP Output when the SD/OE pin is Low/High
> +  == == =====================================
> +   0  0 Active/Inactive
> +   0  1 Inactive/Active
> +   1  0 Active/Shutdown
> +   1  1 Inactive/Shutdown
> +
> +  One of idt,(en|dis)able-shutdown and one of
> +  idt,output-enable-active-(high|low) should be specified.
> +
>  maintainers:
>    - Luca Ceresoli <luca@lucaceresoli.net>
>  
> @@ -64,6 +79,34 @@ properties:
>      maximum: 22760
>      description: Optional load capacitor for XTAL1 and XTAL2
>  
> +  idt,enable-shutdown:
> +    $ref: /schemas/types.yaml#/definitions/flag
> +    description: |
> +      Enable the shutdown functionality. The chip will be shut down if
> +      the SD/OE pin is driven high. This corresponds to setting the SH
> +      bit of the Primary Source and Shutdown Register.
> +
> +  idt,disable-shutdown:
> +    $ref: /schemas/types.yaml#/definitions/flag
> +    description: |
> +      Disable the shutdown functionality. The chip will never be shut
> +      down based on the value of the SD/OE pin. This corresponds to
> +      clearing the SH bit of the Primary Source and Shutdown Register.

If these are mutually exclusive, better to do tristate. So 'idt,shutdown 
= 0|1' for disable/enable. Not present means use the default.

> +
> +  idt,output-enable-active-high:
> +    $ref: /schemas/types.yaml#/definitions/flag
> +    description: |
> +      This enables output when the SD/OE pin is high, and disables
> +      output when the SD/OE pin is low. This corresponds to setting the
> +      SP bit of the Primary Source and Shutdown Register.
> +
> +  idt,output-enable-active-low:
> +    $ref: /schemas/types.yaml#/definitions/flag
> +    description: |
> +      This disables output when the SD/OE pin is high, and enables
> +      output when the SD/OE pin is low. This corresponds to clearing the
> +      SP bit of the Primary Source and Shutdown Register.

And here 'idt,output-enable-active = 0|1'.

> +
>  patternProperties:
>    "^OUT[1-4]$":
>      type: object
> @@ -109,6 +152,16 @@ allOf:
>        required:
>          - clock-names
>          - clocks
> +  - oneOf:
> +      - required:
> +          - idt,enable-shutdown
> +      - required:
> +          - idt,disable-shutdown
> +  - oneOf:
> +      - required:
> +          - idt,output-enable-active-high
> +      - required:
> +          - idt,output-enable-active-low

Then you can drop all this.

>  
>  additionalProperties: false
>  
> @@ -138,6 +191,10 @@ examples:
>              clocks = <&ref25m>;
>              clock-names = "xin";
>  
> +            /* Set the SD/OE pin's settings */
> +            idt,disable-shutdown;
> +            idt,output-enable-active-low;
> +
>              OUT1 {
>                  idt,drive-mode = <VC5_CMOSD>;
>                  idt,voltage-microvolts = <1800000>;
> -- 
> 2.25.1
> 
>
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/clock/idt,versaclock5.yaml b/Documentation/devicetree/bindings/clock/idt,versaclock5.yaml
index 28675b0b80f1..1abf69e6b8e9 100644
--- a/Documentation/devicetree/bindings/clock/idt,versaclock5.yaml
+++ b/Documentation/devicetree/bindings/clock/idt,versaclock5.yaml
@@ -30,6 +30,21 @@  description: |
     3 -- OUT3
     4 -- OUT4
 
+  The idt,(en|dis)able-shutdown and idt,output-enable-active-(high|low)
+  properties control the SH (en_global_shutdown) and SP bits of the
+  Primary Source and Shutdown Register, respectively. Their behavior is
+  summarized by the following table:
+
+  SH SP Output when the SD/OE pin is Low/High
+  == == =====================================
+   0  0 Active/Inactive
+   0  1 Inactive/Active
+   1  0 Active/Shutdown
+   1  1 Inactive/Shutdown
+
+  One of idt,(en|dis)able-shutdown and one of
+  idt,output-enable-active-(high|low) should be specified.
+
 maintainers:
   - Luca Ceresoli <luca@lucaceresoli.net>
 
@@ -64,6 +79,34 @@  properties:
     maximum: 22760
     description: Optional load capacitor for XTAL1 and XTAL2
 
+  idt,enable-shutdown:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description: |
+      Enable the shutdown functionality. The chip will be shut down if
+      the SD/OE pin is driven high. This corresponds to setting the SH
+      bit of the Primary Source and Shutdown Register.
+
+  idt,disable-shutdown:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description: |
+      Disable the shutdown functionality. The chip will never be shut
+      down based on the value of the SD/OE pin. This corresponds to
+      clearing the SH bit of the Primary Source and Shutdown Register.
+
+  idt,output-enable-active-high:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description: |
+      This enables output when the SD/OE pin is high, and disables
+      output when the SD/OE pin is low. This corresponds to setting the
+      SP bit of the Primary Source and Shutdown Register.
+
+  idt,output-enable-active-low:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description: |
+      This disables output when the SD/OE pin is high, and enables
+      output when the SD/OE pin is low. This corresponds to clearing the
+      SP bit of the Primary Source and Shutdown Register.
+
 patternProperties:
   "^OUT[1-4]$":
     type: object
@@ -109,6 +152,16 @@  allOf:
       required:
         - clock-names
         - clocks
+  - oneOf:
+      - required:
+          - idt,enable-shutdown
+      - required:
+          - idt,disable-shutdown
+  - oneOf:
+      - required:
+          - idt,output-enable-active-high
+      - required:
+          - idt,output-enable-active-low
 
 additionalProperties: false
 
@@ -138,6 +191,10 @@  examples:
             clocks = <&ref25m>;
             clock-names = "xin";
 
+            /* Set the SD/OE pin's settings */
+            idt,disable-shutdown;
+            idt,output-enable-active-low;
+
             OUT1 {
                 idt,drive-mode = <VC5_CMOSD>;
                 idt,voltage-microvolts = <1800000>;