From: Yang Xiwen <forbidden405@outlook.com>
For some on-soc buses, it is also needed to deassert the resets before
access. Document it in the binding.
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Yang Xiwen <forbidden405@outlook.com>
---
Documentation/devicetree/bindings/bus/simple-pm-bus.yaml | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/Documentation/devicetree/bindings/bus/simple-pm-bus.yaml b/Documentation/devicetree/bindings/bus/simple-pm-bus.yaml
index 182134d7a6a3..430638104980 100644
--- a/Documentation/devicetree/bindings/bus/simple-pm-bus.yaml
+++ b/Documentation/devicetree/bindings/bus/simple-pm-bus.yaml
@@ -14,8 +14,9 @@ description: |
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
+ of a functional clock, and it might have a reset control signal. Hence,
+ the bus controller's PM domain and/or clock must be enabled, reset control
+ signal must be deasserted for child devices connected to the bus (either
on-SoC or externally) to function.
While "simple-pm-bus" follows the "simple-bus" set of properties, as
@@ -49,6 +50,8 @@ properties:
# Required if clocks is absent, optional otherwise
minItems: 1
+ resets: true
+
required:
- compatible
- '#address-cells'
--
2.43.0
On 23/02/2024 11:10, Yang Xiwen via B4 Relay wrote: > From: Yang Xiwen <forbidden405@outlook.com> > > For some on-soc buses, it is also needed to deassert the resets before > access. Document it in the binding. > > Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> > Signed-off-by: Yang Xiwen <forbidden405@outlook.com> > --- > Documentation/devicetree/bindings/bus/simple-pm-bus.yaml | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/Documentation/devicetree/bindings/bus/simple-pm-bus.yaml b/Documentation/devicetree/bindings/bus/simple-pm-bus.yaml > index 182134d7a6a3..430638104980 100644 > --- a/Documentation/devicetree/bindings/bus/simple-pm-bus.yaml > +++ b/Documentation/devicetree/bindings/bus/simple-pm-bus.yaml > @@ -14,8 +14,9 @@ description: | > 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 > + of a functional clock, and it might have a reset control signal. Hence, > + the bus controller's PM domain and/or clock must be enabled, reset control > + signal must be deasserted for child devices connected to the bus (either > on-SoC or externally) to function. > > While "simple-pm-bus" follows the "simple-bus" set of properties, as > @@ -49,6 +50,8 @@ properties: > # Required if clocks is absent, optional otherwise > minItems: 1 > > + resets: true If you have to toggle some resets (and often actually in some order), then it is not a simple-bus anymore. This looks more and more like a one-binding-to-rule-them-all. Especially that description clearly states: "does not need real driver" and "typically initialized by the boot loader", but here I see more and more of a driver, and more and more of doing things by Linux. Best regards, Krzysztof
© 2016 - 2026 Red Hat, Inc.