Re: [PATCH 1/3] dt-bindings: bus: simple-pm-bus: Make clocks and power-domains optional
From: Geert Uytterhoeven <geert@linux-m68k.org>
Date: 2021-10-07 13:26:59
Also in:
linux-arm-kernel, linux-omap, lkml
Hi Tony, Thanks for your patch! On Thu, Oct 7, 2021 at 2:49 PM Tony Lindgren [off-list ref] wrote:
Clocks and power domains are not required by the simple-pm-bus driver. There are buses with read-only registers for clocks and power domains that are always on.
The presence of clocks or power-domains properties is the only distinguishing factor between simple-pm-bus and simple-bus, from a DT point of view. So if there has to be a distinguishment, the properties should be required If you don't have clocks and power-domains, you should use simple-bus.
Even without clocks and power domains configured, simple-pm-bus is still different from simple-bus as simple-pm-bus enables runtime PM for the bus driver.
Which you need to have working Runtime PM for child devices, right? ;-) This is not specific to DT, but to Linux. One more reason to let Linux treat simple-pm-bus and simple-bus exactly the same. Linux handles the clocks and power-domains (if present) transparently anyway, through PM Domains
Let's update the binding accordingly as this remove the related warnings for dt_binding_check for omaps. Cc: Geert Uytterhoeven <geert+renesas@glider.be> Cc: Rob Herring <robh@kernel.org> Cc: Simon Horman <redacted> Cc: Suman Anna <redacted> Signed-off-by: Tony Lindgren <tony@atomide.com>
quoted hunk ↗ jump to hunk
--- a/Documentation/devicetree/bindings/bus/simple-pm-bus.yaml +++ b/Documentation/devicetree/bindings/bus/simple-pm-bus.yaml@@ -13,10 +13,9 @@ description: | A Simple Power-Managed Bus is a transparent bus that doesn't need a real driver, as it's typically initialized by the boot loader. - However, its bus controller is part of a PM domain, or under the control - of a functional clock. Hence, the bus controller's PM domain and/or - clock must be enabled for child devices connected to the bus (either - on-SoC or externally) to function. + However, its bus controller is typically part of a PM domain, or under + the control of a functional clock. Without PM domain or functional clock, + it still enables runtime PM for the bus driver unlike "simple-bus". While "simple-pm-bus" follows the "simple-bus" set of properties, as specified in the Devicetree Specification, it is not an extension of@@ -43,10 +42,10 @@ properties: clocks: true # Functional clocks - # Required if power-domains is absent, optional otherwise + # Typically used if power-domains is absent power-domains: - # Required if clocks is absent, optional otherwise + # Typically used if clocks is absent minItems: 1 required:@@ -55,12 +54,6 @@ required: - '#size-cells' - ranges -anyOf: - - required: - - clocks - - required: - - power-domains - additionalProperties: true examples:
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds