[PATCH 1/2] dt-bindings: phy: Document Renesas Multi-Protocol PHY driver for R-Car X5H

From: Marek Vasut

Date: Fri Aug 28 2026 - 15:23:07 EST


Document Renesas Multi-Protocol PHY present in R-Car X5H (R8A78000) SoC.
This is a multiplexing PHY block with inputs from five IPs, and outputs
to four separate IO blocks. The five inputs are two PCIe4, two USB 3.2,
and ethernet PCS, each connected into the PHY with up to 4 times 2 lanes.
The inputs can be multiplexed to the four IO blocks as needed.

Signed-off-by: Marek Vasut <marek.vasut+renesas@xxxxxxxxxxx>
---
Cc: Arnd Bergmann <arnd@xxxxxxxx>
Cc: Biju Das <biju.das.jz@xxxxxxxxxxxxxx>
Cc: Conor Dooley <conor+dt@xxxxxxxxxx>
Cc: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
Cc: Hai Pham <hai.pham.ud@xxxxxxxxxxx>
Cc: Krzysztof Kozlowski <krzk+dt@xxxxxxxxxx>
Cc: Magnus Damm <magnus.damm@xxxxxxxxx>
Cc: Manivannan Sadhasivam <mani@xxxxxxxxxx>
Cc: Neil Armstrong <neil.armstrong@xxxxxxxxxx>
Cc: Phong Hoang <phong.hoang.wz@xxxxxxxxxxx>
Cc: Rob Herring <robh@xxxxxxxxxx>
Cc: Tam Nguyen <tam.nguyen.xa@xxxxxxxxxxx>
Cc: Thanh Quan <thanh.quan.xn@xxxxxxxxxxx>
Cc: Tommaso Merciai <tommaso.merciai.xr@xxxxxxxxxxxxxx>
Cc: Vinh Nguyen <vinh.nguyen.xz@xxxxxxxxxxx>
Cc: Vinod Koul <vkoul@xxxxxxxxxx>
Cc: Yoshihiro Shimoda <yoshihiro.shimoda.uh@xxxxxxxxxxx>
Cc: devicetree@xxxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: linux-phy@xxxxxxxxxxxxxxxxxxx
Cc: linux-renesas-soc@xxxxxxxxxxxxxxx
---
.../bindings/phy/renesas,rcar-gen5-mpphy.yaml | 125 ++++++++++++++++++
1 file changed, 125 insertions(+)
create mode 100644 Documentation/devicetree/bindings/phy/renesas,rcar-gen5-mpphy.yaml

diff --git a/Documentation/devicetree/bindings/phy/renesas,rcar-gen5-mpphy.yaml b/Documentation/devicetree/bindings/phy/renesas,rcar-gen5-mpphy.yaml
new file mode 100644
index 0000000000000..2da8be2d3de82
--- /dev/null
+++ b/Documentation/devicetree/bindings/phy/renesas,rcar-gen5-mpphy.yaml
@@ -0,0 +1,125 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/phy/renesas,rcar-gen5-mpphy.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Renesas R-Car Generation 5 Multi-Protocol PHY
+
+maintainers:
+ - Marek Vasut <marek.vasut+renesas@xxxxxxxxxxx>
+ - Yoshihiro Shimoda <yoshihiro.shimoda.uh@xxxxxxxxxxx>
+
+properties:
+ compatible:
+ items:
+ - const: renesas,r8a78000-mpphy # R-Car X5H MPPHY
+ - const: renesas,rcar-gen5-mpphy # R-Car Gen5 MPPHY
+
+ reg:
+ maxItems: 1
+
+ clocks:
+ minItems: 5
+ maxItems: 5
+
+ clock-names:
+ items:
+ - const: mpphy01
+ - const: mpphy11
+ - const: mpphy21
+ - const: mpphy31
+ - const: mpphy02
+
+ power-domains:
+ minItems: 4
+ maxItems: 4
+
+ power-domain-names:
+ items:
+ - const: mpp0
+ - const: mpp1
+ - const: mpp2
+ - const: mpp3
+
+ resets:
+ minItems: 5
+ maxItems: 5
+
+ reset-names:
+ items:
+ - const: mpphy01
+ - const: mpphy11
+ - const: mpphy21
+ - const: mpphy31
+ - const: mpphy02
+
+ '#phy-cells':
+ const: 1
+
+ renesas,num-lanes:
+ description: PCIe lane count for each PHY input.
+ $ref: /schemas/types.yaml#/definitions/uint32-array
+ minItems: 4
+ maxItems: 4
+
+ renesas,phy-type:
+ description: PHY multiplexing configuration for each output.
+ $ref: /schemas/types.yaml#/definitions/uint32-array
+ minItems: 8
+ maxItems: 8
+
+ renesas,external-ref-clock:
+ description: PHY external reference clock select for each output.
+ $ref: /schemas/types.yaml#/definitions/uint32-array
+ minItems: 4
+ maxItems: 4
+
+ renesas,output-repeat-ref-clock:
+ description: PHY repeat reference clock select for each output.
+ $ref: /schemas/types.yaml#/definitions/uint32-array
+ minItems: 4
+ maxItems: 4
+
+required:
+ - compatible
+ - reg
+ - clocks
+ - clock-names
+ - power-domains
+ - power-domain-names
+ - resets
+ - reset-names
+ - '#phy-cells'
+ - renesas,num-lanes
+ - renesas,phy-type
+ - renesas,external-ref-clock
+ - renesas,output-repeat-ref-clock
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/phy/phy.h>
+
+ phy@c9a00000 {
+ compatible = "renesas,r8a78000-mpphy", "renesas,rcar-gen5-mpphy";
+ reg = <0xc9a00000 0x100000>;
+ #phy-cells = <1>;
+
+ clocks = <&scmi_clk 340>, <&scmi_clk 341>, <&scmi_clk 342>,
+ <&scmi_clk 343>, <&scmi_clk 344>;
+ clock-names = "mpphy01", "mpphy11", "mpphy21", "mpphy31", "mpphy02";
+ power-domains = <&scmi_devpd 17>, <&scmi_devpd 18>,
+ <&scmi_devpd 19>, <&scmi_devpd 20>;
+ power-domain-names = "mpp0", "mpp1", "mpp2", "mpp3";
+ resets = <&scmi_reset 340>, <&scmi_reset 341>, <&scmi_reset 342>,
+ <&scmi_reset 343>, <&scmi_reset 344>;
+ reset-names = "mpphy01", "mpphy11", "mpphy21", "mpphy31", "mpphy02";
+
+ renesas,num-lanes = <4 4 0 0>;
+ renesas,phy-type = <PHY_TYPE_PCIE 0>, <PHY_TYPE_PCIE 0>,
+ <PHY_TYPE_XPCS 2>, <PHY_TYPE_USB3 1>;
+ renesas,external-ref-clock = <1 1 1 1>;
+ renesas,output-repeat-ref-clock = <0 0 0 0>;
+ };
--
2.53.0