[v2,1/2] dt-bindings: simple-pm-bus: Add optional resets

Message ID 20240223-b4-bus-v2-1-da8ba83c1a5f@outlook.com
State New
Headers
Series simple-pm-bus: deassert resets if possible |

Commit Message

Yang Xiwen via B4 Relay Feb. 23, 2024, 10:10 a.m. UTC
  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(-)
  

Comments

Krzysztof Kozlowski Feb. 26, 2024, 8:01 a.m. UTC | #1
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
  

Patch

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'