From: Jason Yang via B4 Relay <devnull+jason98166.gmail.com@kernel.org>
To: Vinod Koul <vkoul@kernel.org>,
Neil Armstrong <neil.armstrong@linaro.org>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Heiko Stuebner <heiko@sntech.de>,
Guochun Huang <hero.huang@rock-chips.com>,
Philipp Zabel <p.zabel@pengutronix.de>
Cc: Michael Riesch <michael.riesch@collabora.com>,
Sebastian Reichel <sebastian.reichel@collabora.com>,
Bryan O'Donoghue <bryan.odonoghue@linaro.org>,
linux-phy@lists.infradead.org, devicetree@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-rockchip@lists.infradead.org,
linux-kernel@vger.kernel.org, Jason Yang <jason98166@gmail.com>
Subject: [PATCH v4 2/7] dt-bindings: phy: rockchip,rk3588-mipi-dcphy: Allow DSI and CSI consumers
Date: Fri, 21 Aug 2026 20:02:30 +0800 [thread overview]
Message-ID: <20260821-dcphy-rx-v1-v4-2-f1797634233d@gmail.com> (raw)
In-Reply-To: <20260821-dcphy-rx-v1-v4-0-f1797634233d@gmail.com>
From: Jason Yang <jason98166@gmail.com>
The Samsung MIPI D-/C-PHY block on RK3588 and RK3576 has a transmitter
(DSI) and a receiver (CSI) on the same PHY, and two drivers can use them
at the same time. The single cell this binding has selects the mode, so
it cannot tell whether a consumer wants the transmitter or the receiver.
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_TYPE_DSI>;
/* the MIPI CSI-2 host, driving the receiver */
phys = <&mipidcphy0 PHY_TYPE_DPHY PHY_TYPE_CSI>;
and with C-PHY:
phys = <&mipidcphy0 PHY_TYPE_CPHY PHY_TYPE_DSI>;
phys = <&mipidcphy0 PHY_TYPE_CPHY PHY_TYPE_CSI>;
The transmitter and the receiver cannot operate in different modes [1],
so the first cell must match in both consumers.
A board that wires up both sets '#phy-cells = <2>'. A board that only
wires up the transmitter keeps '#phy-cells = <1>', 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@gmail.com>
---
.../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..595a71a51ee6 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:
+ A single cell selects the mode to operate in and refers to the
+ transmitter:
- PHY_TYPE_DPHY
- PHY_TYPE_CPHY
+
+ Two cells select the mode and then the transmitter (DSI) or the
+ receiver (CSI), so that both can be described as independent
+ consumers of the same PHY:
+ - PHY_TYPE_DPHY PHY_TYPE_DSI
+ - PHY_TYPE_DPHY PHY_TYPE_CSI
+ - PHY_TYPE_CPHY PHY_TYPE_DSI
+ - PHY_TYPE_CPHY PHY_TYPE_CSI
+
+ The transmitter (DSI) and the receiver (CSI) cannot operate in
+ different modes, so when both are described, the first cell must
+ match in both consumers.
+
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>;
};
};
--
2.43.0
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
next prev parent reply other threads:[~2026-08-21 12:02 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-21 12:02 [PATCH v4 0/7] phy: rockchip-samsung-dcphy: Add the MIPI D-PHY receiver Jason Yang via B4 Relay
2026-08-21 12:02 ` [PATCH v4 1/7] dt-bindings: phy: Add PHY_TYPE_DSI and PHY_TYPE_CSI definitions Jason Yang via B4 Relay
2026-08-21 12:02 ` Jason Yang via B4 Relay [this message]
2026-08-21 12:02 ` [PATCH v4 3/7] phy: rockchip-samsung-dcphy: Move block-level setup to runtime resume Jason Yang via B4 Relay
2026-08-21 12:02 ` [PATCH v4 4/7] phy: rockchip-samsung-dcphy: Name the transmitter helpers and ops Jason Yang via B4 Relay
2026-08-21 12:02 ` [PATCH v4 5/7] phy: rockchip-samsung-dcphy: Factor the transmitter teardown into a helper Jason Yang via B4 Relay
2026-08-21 12:02 ` [PATCH v4 6/7] phy: rockchip-samsung-dcphy: Add a second PHY for the receiver Jason Yang via B4 Relay
2026-08-21 12:02 ` [PATCH v4 7/7] phy: rockchip-samsung-dcphy: Add MIPI D-PHY receiver support Jason Yang via B4 Relay
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260821-dcphy-rx-v1-v4-2-f1797634233d@gmail.com \
--to=devnull+jason98166.gmail.com@kernel.org \
--cc=bryan.odonoghue@linaro.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=heiko@sntech.de \
--cc=hero.huang@rock-chips.com \
--cc=jason98166@gmail.com \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-phy@lists.infradead.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=michael.riesch@collabora.com \
--cc=neil.armstrong@linaro.org \
--cc=p.zabel@pengutronix.de \
--cc=robh@kernel.org \
--cc=sebastian.reichel@collabora.com \
--cc=vkoul@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox