Re: [PATCH v5 2/8] dt-bindings: phy: rockchip,rk3588-mipi-dcphy: Add a cell to select TX or RX
From: Bryan O'Donoghue
Date: Fri Oct 16 2026 - 06:46:18 EST
On 16/10/2026 09:56, Jason Yang wrote:
The Samsung MIPI D-/C-PHY block on RK3588 and RK3576 has a transmitter
for DSI and a receiver for CSI-2, and two consumers can use them at the
same time.
Two consumers use them - which them ? Two consumers use the receivers at the same time ?
Its minor but instead of "them" define what the them is.
The single cell of this binding selects the mode and refers
to the transmitter, so the receiver cannot be described.
Allow a second cell that selects the transmitter or the receiver. With
D-PHY:
/* the MIPI DSI host, driving the transmitter */
phys = <&mipidcphy0 PHY_TYPE_DPHY PHY_DIRECTION_TX>;
/* the MIPI CSI-2 host, driving the receiver */
phys = <&mipidcphy0 PHY_TYPE_DPHY PHY_DIRECTION_RX>;
and with C-PHY:
phys = <&mipidcphy0 PHY_TYPE_CPHY PHY_DIRECTION_TX>;
phys = <&mipidcphy0 PHY_TYPE_CPHY PHY_DIRECTION_RX>;
The transmitter and the receiver cannot operate in different modes [1],
so the first cell must match in both consumers.
Two cells describe the receiver as well. A single cell keeps referring
to the transmitter, so existing device trees are unaffected.
[1] RK3588 TRM: section 22.1 (overview): "The TX and RX only support
operate in the same PHY mode."
Signed-off-by: Jason Yang <jason98166@xxxxxxxxx>
---
.../bindings/phy/rockchip,rk3588-mipi-dcphy.yaml | 20 +++++++++++++++++---
1 file changed, 17 insertions(+), 3 deletions(-)
diff --git a/Documentation/devicetree/bindings/phy/rockchip,rk3588-mipi-dcphy.yaml b/Documentation/devicetree/bindings/phy/rockchip,rk3588-mipi-dcphy.yaml
index c8ff5ba22a86..6e8cc56e4986 100644
--- a/Documentation/devicetree/bindings/phy/rockchip,rk3588-mipi-dcphy.yaml
+++ b/Documentation/devicetree/bindings/phy/rockchip,rk3588-mipi-dcphy.yaml
@@ -20,11 +20,25 @@ properties:
maxItems: 1
"#phy-cells":
- const: 1
+ enum: [1, 2]
description: |
- Argument is mode to operate in. Supported modes are:
+ The first cell selects the mode to operate in:
- PHY_TYPE_DPHY
- PHY_TYPE_CPHY
+
+ A single cell refers to the transmitter and is kept for existing
+ device trees.
+
+ The second cell selects the transmitter or the receiver, so that a
The second cell, if present
-> you want to make clear it is optional.
+ MIPI DSI host and a MIPI CSI-2 host can be described as independent
+ consumers of the same PHY node:
+ - PHY_DIRECTION_TX
+ - PHY_DIRECTION_RX
+
+ The transmitter and the receiver cannot operate in different modes,
+ so when both are described, the first cell must match in both
+ consumers.
+
Not really related to this patch but how do you envision that requirement being enforced, per driver ?
See include/dt-bindings/phy/phy.h for constants.
clocks:
@@ -82,6 +96,6 @@ examples:
<&cru SRST_S_MIPI_DCPHY0>;
reset-names = "m_phy", "apb", "grf", "s_phy";
rockchip,grf = <&mipidcphy0_grf>;
- #phy-cells = <1>;
+ #phy-cells = <2>;
};
};
Looks pretty good to me I'm interested in adding an RB here - please include me in CC for next versions so I may do so.
---
bod