[PATCH/RFC 10/14] dt-bindings: power: Document Renesas R-Car X5H Module Controller

Geert Uytterhoeven
2026-04-21T18:12:48Z

Document support for Renesas R-Car X5H Module Controllers, and
add definitions for power domains not backed by registers.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
.../bindings/power/renesas,r8a78000-mdlc.yaml | 63 +++++++++++++++++++
.../dt-bindings/power/renesas,r8a78000-mdlc.h | 16 +++++
2 files changed, 79 insertions(+)
create mode 100644 Documentation/devicetree/bindings/power/renesas,r8a78000-mdlc.yaml
create mode 100644 include/dt-bindings/power/renesas,r8a78000-mdlc.h

diff --git a/Documentation/devicetree/bindings/power/renesas,r8a78000-mdlc.yaml b/Documentation/devicetree/bindings/power/renesas,r8a78000-mdlc.yaml
new file mode 100644
index 0000000000000000..c3075bb308962f59
--- /dev/null
+++ b/Documentation/devicetree/bindings/power/renesas,r8a78000-mdlc.yaml
@@ -0,0 +1,63 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/power/renesas,r8a78000-mdlc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Renesas R-Car X5H Module Controller
+
+maintainers:
+ - Geert Uytterhoeven <geert+renesas@glider.be>
+
+description:
+ Each instance of the R-Car X5H Module Controller (MODULE CONTROL) provides
+ Power Gating for up to 64 Power Domains, and Module Standby and Reset for up
+ to 256 modules in the Power Domain of each Module hierarchy.
+
+properties:
+ compatible:
+ const: renesas,r8a78000-mdlc
+
+ reg:
+ maxItems: 1
+
+ '#power-domain-cells':
+ description: |
+ - The first power domain specifier cell must be either the Module
+ Power Domain Gating (MPDG) register index (0x00-0x3f) from the
+ datasheet, or a Power Domain number, as defined in
+ <dt-bindings/power/renesas,r8a78000-mdlc.h>,
+ - The second power domain specifier cell must be the module number
+ (0x00-0xff), composed of the Module System Reset (MSRES) register index
+ in the high nibble, and the Module Reset Destination bitfield index in
+ the low nibble.
+ const: 2
+
+ '#reset-cells':
+ description:
+ The single reset specifier cell must be the module number (0x00-0xff).
+ const: 1
+
+ firmware:
+ $ref: /schemas/types.yaml#/definitions/phandle
+ description:
+ Reference to the SCMI firmware device node on systems where SCMI must be
+ used instead of direct hardware access.
+
+required:
+ - compatible
+ - reg
+ - '#power-domain-cells'
+ - '#reset-cells'
+
+additionalProperties: false
+
+examples:
+ - |
+ system-controller@c3060000 {
+ compatible = "renesas,r8a78000-mdlc";
+ reg = <0xc3060000 0x1000>;
+ #power-domain-cells = <2>;
+ #reset-cells = <1>;
+ firmware = <&scmi>;
+ };
diff --git a/include/dt-bindings/power/renesas,r8a78000-mdlc.h b/include/dt-bindings/power/renesas,r8a78000-mdlc.h
new file mode 100644
index 0000000000000000..31aa4935a7c5cf94
--- /dev/null
+++ b/include/dt-bindings/power/renesas,r8a78000-mdlc.h
@@ -0,0 +1,16 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (C) 2026 Glider bv
+ */
+#ifndef __DT_BINDINGS_POWER_RENESAS_R8A78000_MDLC_H__
+#define __DT_BINDINGS_POWER_RENESAS_R8A78000_MDLC_H__
+
+/* R-Car X5H MDLC Power Domains */
+
+#define R8A78000_MDLC_PD_AON 0x40
+#define R8A78000_MDLC_PD_SCP 0x41
+#define R8A78000_MDLC_PD_APL 0x42
+#define R8A78000_MDLC_PD_CMN 0x43
+#define R8A78000_MDLC_PD_ACL 0x44
+
+#endif /* __DT_BINDINGS_POWER_RENESAS_R8A78000_MDLC_H__ */
--
2.43.0