diff mbox series

[1/2] dt-bindings: powerpc: Add a schema for the 'sleep' property

Message ID 20201008142420.2083861-1-robh@kernel.org
State New
Headers show
Series [1/2] dt-bindings: powerpc: Add a schema for the 'sleep' property | expand

Commit Message

Rob Herring (Arm) Oct. 8, 2020, 2:24 p.m. UTC
Document the PowerPC specific 'sleep' property as a schema. It is
currently only documented in booting-without-of.rst which is getting
removed.

Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: linuxppc-dev@lists.ozlabs.org
Signed-off-by: Rob Herring <robh@kernel.org>

---
 .../devicetree/bindings/powerpc/sleep.yaml    | 47 +++++++++++++++++++
 1 file changed, 47 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/powerpc/sleep.yaml

-- 
2.25.1

Comments

Johan Jonker Jan. 17, 2021, 4:10 p.m. UTC | #1
Hi Rob,

This patch generates notifications in the Rockchip ARM and arm64 tree.
Could you limit the scope to PowerPC only.

Kind regards,

Johan Jonker

make ARCH=arm dtbs_check
DT_SCHEMA_FILES=Documentation/devicetree/bindings/powerpc/sleep.yaml

make ARCH=arm64 dtbs_check
DT_SCHEMA_FILES=Documentation/devicetree/bindings/powerpc/sleep.yaml

Example:

/arch/arm64/boot/dts/rockchip/rk3399pro-rock-pi-n10.dt.yaml: pinctrl:
sleep: {'ddrio-pwroff': {'rockchip,pins': [[0, 1, 1, 168]]},
'ap-pwroff': {'rockchip,pins': [[1, 5, 1, 168]]}} is not of type 'array'
	From schema: /Documentation/devicetree/bindings/powerpc/sleep.yaml

On 10/8/20 4:24 PM, Rob Herring wrote:
> Document the PowerPC specific 'sleep' property as a schema. It is

> currently only documented in booting-without-of.rst which is getting

> removed.

> 

> Cc: Michael Ellerman <mpe@ellerman.id.au>

> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>

> Cc: Paul Mackerras <paulus@samba.org>

> Cc: linuxppc-dev@lists.ozlabs.org

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

> ---

>  .../devicetree/bindings/powerpc/sleep.yaml    | 47 +++++++++++++++++++

>  1 file changed, 47 insertions(+)

>  create mode 100644 Documentation/devicetree/bindings/powerpc/sleep.yaml

> 

> diff --git a/Documentation/devicetree/bindings/powerpc/sleep.yaml b/Documentation/devicetree/bindings/powerpc/sleep.yaml

> new file mode 100644

> index 000000000000..6494c7d08b93

> --- /dev/null

> +++ b/Documentation/devicetree/bindings/powerpc/sleep.yaml

> @@ -0,0 +1,47 @@

> +# SPDX-License-Identifier: GPL-2.0-only

> +%YAML 1.2

> +---

> +$id: http://devicetree.org/schemas/powerpc/sleep.yaml#

> +$schema: http://devicetree.org/meta-schemas/core.yaml#

> +

> +title: PowerPC sleep property

> +

> +maintainers:

> +  - Rob Herring <robh@kernel.org>

> +

> +description: |

> +  Devices on SOCs often have mechanisms for placing devices into low-power

> +  states that are decoupled from the devices' own register blocks.  Sometimes,

> +  this information is more complicated than a cell-index property can

> +  reasonably describe.  Thus, each device controlled in such a manner

> +  may contain a "sleep" property which describes these connections.

> +

> +  The sleep property consists of one or more sleep resources, each of

> +  which consists of a phandle to a sleep controller, followed by a

> +  controller-specific sleep specifier of zero or more cells.

> +

> +  The semantics of what type of low power modes are possible are defined

> +  by the sleep controller.  Some examples of the types of low power modes

> +  that may be supported are:

> +

> +   - Dynamic: The device may be disabled or enabled at any time.

> +   - System Suspend: The device may request to be disabled or remain

> +     awake during system suspend, but will not be disabled until then.

> +   - Permanent: The device is disabled permanently (until the next hard

> +     reset).

> +

> +  Some devices may share a clock domain with each other, such that they should

> +  only be suspended when none of the devices are in use.  Where reasonable,

> +  such nodes should be placed on a virtual bus, where the bus has the sleep

> +  property.  If the clock domain is shared among devices that cannot be

> +  reasonably grouped in this manner, then create a virtual sleep controller

> +  (similar to an interrupt nexus, except that defining a standardized

> +  sleep-map should wait until its necessity is demonstrated).

> +

> +select: true

> +

> +properties:

> +  sleep:

> +    $ref: /schemas/types.yaml#definitions/phandle-array

> +

> +additionalProperties: true

>
Rob Herring (Arm) Jan. 20, 2021, 1:44 a.m. UTC | #2
On Sun, Jan 17, 2021 at 05:10:03PM +0100, Johan Jonker wrote:
> Hi Rob,

> 

> This patch generates notifications in the Rockchip ARM and arm64 tree.

> Could you limit the scope to PowerPC only.

> 

> Kind regards,

> 

> Johan Jonker

> 

> make ARCH=arm dtbs_check

> DT_SCHEMA_FILES=Documentation/devicetree/bindings/powerpc/sleep.yaml

> 

> make ARCH=arm64 dtbs_check

> DT_SCHEMA_FILES=Documentation/devicetree/bindings/powerpc/sleep.yaml

> 

> Example:

> 

> /arch/arm64/boot/dts/rockchip/rk3399pro-rock-pi-n10.dt.yaml: pinctrl:

> sleep: {'ddrio-pwroff': {'rockchip,pins': [[0, 1, 1, 168]]},

> 'ap-pwroff': {'rockchip,pins': [[1, 5, 1, 168]]}} is not of type 'array'

> 	From schema: /Documentation/devicetree/bindings/powerpc/sleep.yaml


IMO, the node name should be changed or just removed. The grouping 
doesn't serve any purpose and changing wouldn't break the ABI.

Rob
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/powerpc/sleep.yaml b/Documentation/devicetree/bindings/powerpc/sleep.yaml
new file mode 100644
index 000000000000..6494c7d08b93
--- /dev/null
+++ b/Documentation/devicetree/bindings/powerpc/sleep.yaml
@@ -0,0 +1,47 @@ 
+# SPDX-License-Identifier: GPL-2.0-only
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/powerpc/sleep.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: PowerPC sleep property
+
+maintainers:
+  - Rob Herring <robh@kernel.org>
+
+description: |
+  Devices on SOCs often have mechanisms for placing devices into low-power
+  states that are decoupled from the devices' own register blocks.  Sometimes,
+  this information is more complicated than a cell-index property can
+  reasonably describe.  Thus, each device controlled in such a manner
+  may contain a "sleep" property which describes these connections.
+
+  The sleep property consists of one or more sleep resources, each of
+  which consists of a phandle to a sleep controller, followed by a
+  controller-specific sleep specifier of zero or more cells.
+
+  The semantics of what type of low power modes are possible are defined
+  by the sleep controller.  Some examples of the types of low power modes
+  that may be supported are:
+
+   - Dynamic: The device may be disabled or enabled at any time.
+   - System Suspend: The device may request to be disabled or remain
+     awake during system suspend, but will not be disabled until then.
+   - Permanent: The device is disabled permanently (until the next hard
+     reset).
+
+  Some devices may share a clock domain with each other, such that they should
+  only be suspended when none of the devices are in use.  Where reasonable,
+  such nodes should be placed on a virtual bus, where the bus has the sleep
+  property.  If the clock domain is shared among devices that cannot be
+  reasonably grouped in this manner, then create a virtual sleep controller
+  (similar to an interrupt nexus, except that defining a standardized
+  sleep-map should wait until its necessity is demonstrated).
+
+select: true
+
+properties:
+  sleep:
+    $ref: /schemas/types.yaml#definitions/phandle-array
+
+additionalProperties: true