All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rob Herring <robh@kernel.org>
To: Maxime Ripard <maxime@cerno.tech>
Cc: Mark Rutland <mark.rutland@arm.com>,
	devicetree@vger.kernel.org, Frank Rowand <frowand.list@gmail.com>,
	Maxime Ripard <mripard@kernel.org>, Chen-Yu Tsai <wens@csie.org>,
	lee.jones@linaro.org, linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH] dt-bindings: Add syscon YAML description
Date: Tue, 5 Nov 2019 22:30:53 -0600	[thread overview]
Message-ID: <20191106043053.GA4568@bogus> (raw)
In-Reply-To: <20191101141034.259906-1-maxime@cerno.tech>

On Fri, Nov 01, 2019 at 03:10:34PM +0100, Maxime Ripard wrote:
> The syscon binding is a pretty loose one, with everyone having a bunch of
> vendor specific compatibles.
> 
> In order to start the effort to describe them using YAML, let's create a
> binding that tolerates additional, not listed, compatibles.
> 
> Signed-off-by: Maxime Ripard <maxime@cerno.tech>
> ---
>  .../devicetree/bindings/mfd/syscon.txt        | 32 --------
>  .../bindings/misc/allwinner,syscon.txt        | 20 -----
>  .../devicetree/bindings/misc/syscon.yaml      | 74 +++++++++++++++++++
>  3 files changed, 74 insertions(+), 52 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/mfd/syscon.txt
>  delete mode 100644 Documentation/devicetree/bindings/misc/allwinner,syscon.txt
>  create mode 100644 Documentation/devicetree/bindings/misc/syscon.yaml
> 
> diff --git a/Documentation/devicetree/bindings/mfd/syscon.txt b/Documentation/devicetree/bindings/mfd/syscon.txt
> deleted file mode 100644
> index 25d9e9c2fd53..000000000000
> --- a/Documentation/devicetree/bindings/mfd/syscon.txt
> +++ /dev/null
> @@ -1,32 +0,0 @@
> -* System Controller Registers R/W driver
> -
> -System controller node represents a register region containing a set
> -of miscellaneous registers. The registers are not cohesive enough to
> -represent as any specific type of device. The typical use-case is for
> -some other node's driver, or platform-specific code, to acquire a
> -reference to the syscon node (e.g. by phandle, node path, or search
> -using a specific compatible value), interrogate the node (or associated
> -OS driver) to determine the location of the registers, and access the
> -registers directly.
> -
> -Required properties:
> -- compatible: Should contain "syscon".
> -- reg: the register region can be accessed from syscon
> -
> -Optional property:
> -- reg-io-width: the size (in bytes) of the IO accesses that should be
> -  performed on the device.
> -- hwlocks: reference to a phandle of a hardware spinlock provider node.
> -
> -Examples:
> -gpr: iomuxc-gpr@20e0000 {
> -	compatible = "fsl,imx6q-iomuxc-gpr", "syscon";
> -	reg = <0x020e0000 0x38>;
> -	hwlocks = <&hwlock1 1>;
> -};
> -
> -hwlock1: hwspinlock@40500000 {
> -	...
> -	reg = <0x40500000 0x1000>;
> -	#hwlock-cells = <1>;
> -};
> diff --git a/Documentation/devicetree/bindings/misc/allwinner,syscon.txt b/Documentation/devicetree/bindings/misc/allwinner,syscon.txt
> deleted file mode 100644
> index 31494a24fe69..000000000000
> --- a/Documentation/devicetree/bindings/misc/allwinner,syscon.txt
> +++ /dev/null
> @@ -1,20 +0,0 @@
> -* Allwinner sun8i system controller
> -
> -This file describes the bindings for the system controller present in
> -Allwinner SoC H3, A83T and A64.
> -The principal function of this syscon is to control EMAC PHY choice and
> -config.
> -
> -Required properties for the system controller:
> -- reg: address and length of the register for the device.
> -- compatible: should be "syscon" and one of the following string:
> -		"allwinner,sun8i-h3-system-controller"
> -		"allwinner,sun8i-v3s-system-controller"
> -		"allwinner,sun50i-a64-system-controller"
> -		"allwinner,sun8i-a83t-system-controller"
> -
> -Example:
> -syscon: syscon@1c00000 {
> -	compatible = "allwinner,sun8i-h3-system-controller", "syscon";
> -	reg = <0x01c00000 0x1000>;
> -};
> diff --git a/Documentation/devicetree/bindings/misc/syscon.yaml b/Documentation/devicetree/bindings/misc/syscon.yaml
> new file mode 100644
> index 000000000000..f2d81bed612f
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/misc/syscon.yaml
> @@ -0,0 +1,74 @@
> +# SPDX-License-Identifier: GPL-2.0
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/misc/syscon.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: System Controller Registers R/W Device Tree Bindings
> +
> +description: |
> +  System controller node represents a register region containing a set
> +  of miscellaneous registers. The registers are not cohesive enough to
> +  represent as any specific type of device. The typical use-case is
> +  for some other node's driver, or platform-specific code, to acquire
> +  a reference to the syscon node (e.g. by phandle, node path, or
> +  search using a specific compatible value), interrogate the node (or
> +  associated OS driver) to determine the location of the registers,
> +  and access the registers directly.
> +
> +maintainers:
> +  - Lee Jones <lee.jones@linaro.org>
> +
> +properties:
> +  compatible:
> +    anyOf:
> +      - items:
> +        - enum:
> +          - allwinner,sun8i-a83t-system-controller
> +          - allwinner,sun8i-h3-system-controller
> +          - allwinner,sun8i-v3s-system-controller
> +          - allwinner,sun50i-a64-system-controller
> +
> +        - const: syscon
> +
> +      - contains:
> +          const: syscon
> +        additionalItems: true

If you want to match on all syscon nodes, you'll need a 'select' because 
'syscon' is now filtered out of the generated select.

> +
> +  reg:
> +    maxItems: 1
> +
> +  reg-io-width:
> +    description: |
> +      The size (in bytes) of the IO accesses that should be performed
> +      on the device.
> +    allOf:
> +      - $ref: /schemas/types.yaml#/definitions/uint32
> +      - enum: [ 1, 2, 4, 8 ]
> +
> +  hwlocks:
> +    maxItems: 1
> +    description:
> +      Reference to a phandle of a hardware spinlock provider node.
> +
> +required:
> +  - compatible
> +  - reg
> +
> +unevaluatedProperties: false
> +
> +examples:
> +  - |
> +    syscon: syscon@1c00000 {
> +        compatible = "allwinner,sun8i-h3-system-controller", "syscon";
> +        reg = <0x01c00000 0x1000>;
> +    };
> +
> +  - |
> +    gpr: iomuxc-gpr@20e0000 {
> +        compatible = "fsl,imx6q-iomuxc-gpr", "syscon";
> +        reg = <0x020e0000 0x38>;
> +        hwlocks = <&hwlock1 1>;
> +    };
> +
> +...
> -- 
> 2.23.0
> 

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

WARNING: multiple messages have this Message-ID (diff)
From: Rob Herring <robh@kernel.org>
To: Maxime Ripard <maxime@cerno.tech>
Cc: Mark Rutland <mark.rutland@arm.com>,
	Frank Rowand <frowand.list@gmail.com>,
	lee.jones@linaro.org, Chen-Yu Tsai <wens@csie.org>,
	Maxime Ripard <mripard@kernel.org>,
	linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org
Subject: Re: [PATCH] dt-bindings: Add syscon YAML description
Date: Tue, 5 Nov 2019 22:30:53 -0600	[thread overview]
Message-ID: <20191106043053.GA4568@bogus> (raw)
In-Reply-To: <20191101141034.259906-1-maxime@cerno.tech>

On Fri, Nov 01, 2019 at 03:10:34PM +0100, Maxime Ripard wrote:
> The syscon binding is a pretty loose one, with everyone having a bunch of
> vendor specific compatibles.
> 
> In order to start the effort to describe them using YAML, let's create a
> binding that tolerates additional, not listed, compatibles.
> 
> Signed-off-by: Maxime Ripard <maxime@cerno.tech>
> ---
>  .../devicetree/bindings/mfd/syscon.txt        | 32 --------
>  .../bindings/misc/allwinner,syscon.txt        | 20 -----
>  .../devicetree/bindings/misc/syscon.yaml      | 74 +++++++++++++++++++
>  3 files changed, 74 insertions(+), 52 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/mfd/syscon.txt
>  delete mode 100644 Documentation/devicetree/bindings/misc/allwinner,syscon.txt
>  create mode 100644 Documentation/devicetree/bindings/misc/syscon.yaml
> 
> diff --git a/Documentation/devicetree/bindings/mfd/syscon.txt b/Documentation/devicetree/bindings/mfd/syscon.txt
> deleted file mode 100644
> index 25d9e9c2fd53..000000000000
> --- a/Documentation/devicetree/bindings/mfd/syscon.txt
> +++ /dev/null
> @@ -1,32 +0,0 @@
> -* System Controller Registers R/W driver
> -
> -System controller node represents a register region containing a set
> -of miscellaneous registers. The registers are not cohesive enough to
> -represent as any specific type of device. The typical use-case is for
> -some other node's driver, or platform-specific code, to acquire a
> -reference to the syscon node (e.g. by phandle, node path, or search
> -using a specific compatible value), interrogate the node (or associated
> -OS driver) to determine the location of the registers, and access the
> -registers directly.
> -
> -Required properties:
> -- compatible: Should contain "syscon".
> -- reg: the register region can be accessed from syscon
> -
> -Optional property:
> -- reg-io-width: the size (in bytes) of the IO accesses that should be
> -  performed on the device.
> -- hwlocks: reference to a phandle of a hardware spinlock provider node.
> -
> -Examples:
> -gpr: iomuxc-gpr@20e0000 {
> -	compatible = "fsl,imx6q-iomuxc-gpr", "syscon";
> -	reg = <0x020e0000 0x38>;
> -	hwlocks = <&hwlock1 1>;
> -};
> -
> -hwlock1: hwspinlock@40500000 {
> -	...
> -	reg = <0x40500000 0x1000>;
> -	#hwlock-cells = <1>;
> -};
> diff --git a/Documentation/devicetree/bindings/misc/allwinner,syscon.txt b/Documentation/devicetree/bindings/misc/allwinner,syscon.txt
> deleted file mode 100644
> index 31494a24fe69..000000000000
> --- a/Documentation/devicetree/bindings/misc/allwinner,syscon.txt
> +++ /dev/null
> @@ -1,20 +0,0 @@
> -* Allwinner sun8i system controller
> -
> -This file describes the bindings for the system controller present in
> -Allwinner SoC H3, A83T and A64.
> -The principal function of this syscon is to control EMAC PHY choice and
> -config.
> -
> -Required properties for the system controller:
> -- reg: address and length of the register for the device.
> -- compatible: should be "syscon" and one of the following string:
> -		"allwinner,sun8i-h3-system-controller"
> -		"allwinner,sun8i-v3s-system-controller"
> -		"allwinner,sun50i-a64-system-controller"
> -		"allwinner,sun8i-a83t-system-controller"
> -
> -Example:
> -syscon: syscon@1c00000 {
> -	compatible = "allwinner,sun8i-h3-system-controller", "syscon";
> -	reg = <0x01c00000 0x1000>;
> -};
> diff --git a/Documentation/devicetree/bindings/misc/syscon.yaml b/Documentation/devicetree/bindings/misc/syscon.yaml
> new file mode 100644
> index 000000000000..f2d81bed612f
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/misc/syscon.yaml
> @@ -0,0 +1,74 @@
> +# SPDX-License-Identifier: GPL-2.0
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/misc/syscon.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: System Controller Registers R/W Device Tree Bindings
> +
> +description: |
> +  System controller node represents a register region containing a set
> +  of miscellaneous registers. The registers are not cohesive enough to
> +  represent as any specific type of device. The typical use-case is
> +  for some other node's driver, or platform-specific code, to acquire
> +  a reference to the syscon node (e.g. by phandle, node path, or
> +  search using a specific compatible value), interrogate the node (or
> +  associated OS driver) to determine the location of the registers,
> +  and access the registers directly.
> +
> +maintainers:
> +  - Lee Jones <lee.jones@linaro.org>
> +
> +properties:
> +  compatible:
> +    anyOf:
> +      - items:
> +        - enum:
> +          - allwinner,sun8i-a83t-system-controller
> +          - allwinner,sun8i-h3-system-controller
> +          - allwinner,sun8i-v3s-system-controller
> +          - allwinner,sun50i-a64-system-controller
> +
> +        - const: syscon
> +
> +      - contains:
> +          const: syscon
> +        additionalItems: true

If you want to match on all syscon nodes, you'll need a 'select' because 
'syscon' is now filtered out of the generated select.

> +
> +  reg:
> +    maxItems: 1
> +
> +  reg-io-width:
> +    description: |
> +      The size (in bytes) of the IO accesses that should be performed
> +      on the device.
> +    allOf:
> +      - $ref: /schemas/types.yaml#/definitions/uint32
> +      - enum: [ 1, 2, 4, 8 ]
> +
> +  hwlocks:
> +    maxItems: 1
> +    description:
> +      Reference to a phandle of a hardware spinlock provider node.
> +
> +required:
> +  - compatible
> +  - reg
> +
> +unevaluatedProperties: false
> +
> +examples:
> +  - |
> +    syscon: syscon@1c00000 {
> +        compatible = "allwinner,sun8i-h3-system-controller", "syscon";
> +        reg = <0x01c00000 0x1000>;
> +    };
> +
> +  - |
> +    gpr: iomuxc-gpr@20e0000 {
> +        compatible = "fsl,imx6q-iomuxc-gpr", "syscon";
> +        reg = <0x020e0000 0x38>;
> +        hwlocks = <&hwlock1 1>;
> +    };
> +
> +...
> -- 
> 2.23.0
> 

  parent reply	other threads:[~2019-11-06  4:31 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-01 14:10 [PATCH] dt-bindings: Add syscon YAML description Maxime Ripard
2019-11-01 14:10 ` Maxime Ripard
2019-11-04  7:15 ` Lee Jones
2019-11-04  7:15   ` Lee Jones
2019-11-07 21:31   ` Lee Jones
2019-11-07 21:31     ` Lee Jones
2019-11-06  4:30 ` Rob Herring [this message]
2019-11-06  4:30   ` Rob Herring

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191106043053.GA4568@bogus \
    --to=robh@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=frowand.list@gmail.com \
    --cc=lee.jones@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=mark.rutland@arm.com \
    --cc=maxime@cerno.tech \
    --cc=mripard@kernel.org \
    --cc=wens@csie.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.