From: Michael Riesch <michael.riesch@collabora.com>
To: Krzysztof Kozlowski <krzk@kernel.org>, Jason Yang <jason98166@gmail.com>
Cc: 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>,
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
Subject: Re: [PATCH v4 1/7] dt-bindings: phy: Add PHY_TYPE_DSI and PHY_TYPE_CSI definitions
Date: Thu, 3 Sep 2026 16:37:08 +0200 [thread overview]
Message-ID: <824de124-7690-4b51-bd26-71b39ff94f8d@collabora.com> (raw)
In-Reply-To: <39101571-58f2-43c5-b76d-62f8ab57d551@kernel.org>
Hi Krzysztof,
On 9/3/26 11:53, Krzysztof Kozlowski wrote:
> On 31/08/2026 13:32, Michael Riesch wrote:
>> Hi Krzysztof,
>>
>> On 8/27/26 13:45, Krzysztof Kozlowski wrote:
>>> On Fri, Aug 21, 2026 at 08:02:29PM +0800, Jason Yang wrote:
>>>> A MIPI D-PHY or C-PHY can be a transmitter (DSI) or a receiver (CSI),
>>>> and in some PHY blocks both work at the same time. The existing
>>>> PHY_TYPE_DPHY and PHY_TYPE_CPHY cannot tell whether a consumer wants
>>>> the transmitter or the receiver.
>>>
>>> The consumer knows this already, no? Imagine consumer of the phy is some
>>> ISP receiving data over CSI for given port, thus consumer cannot
>>> transmit over that link.
>>>
>>> All this seems redundant.
>>
>> Indeed the consumer should know what to request. For example, the MIPI
>> CSI receivers should request the PHY_TYPE_CSI PHY. But I am not sure why
>> this should be redundant?! Can you elaborate? TBH I don't really
>> understand your remark.
>
> It is redundant, because consumer CANNOT put there anything else than
> CSI type and the topology already defines that. It is basically
> duplicating existing information.
We might not be on same page here, so please let me write down my view
on this.
For the CSI PHY in this combo block, the consumer on the RK3588 is a
MIPI CSI receiver, that roughly looks like this:
csi0: csi@fdd10000 {
compatible = "rockchip,rk3588-mipi-csi2", "rockchip,rk3568-mipi-csi2";
[...]
phys = <&mipidcphy0 PHY_TYPE_DPHY PHY_DIRECTION_RX>;
ports {
csi0_in: port@0 { /* from image sensor */ }
csi0_out: port@1 { /* to RK3588 VICAP */ }
}
}
For the DSI PHY in this combo block, on the other hand:
dsi0: dsi@fde20000 {
compatible = "rockchip,rk3588-mipi-dsi2";
[...]
phys = <&mipidcphy0 PHY_TYPE_DPHY>;
// or alternatively:
phys = <&mipidcphy0 PHY_TYPE_DPHY PHY_DIRECTION_TX>;
ports {
dsi0_in: port@0 { /* from VOP2 port*/ }
dsi0_out: port@1 { /* to display */ }
}
That is assuming the DPHY case, of course.
With that in mind, yes, the consumer CAN put something different in
there as CSI (or RX). The argument can be omitted for backward
compatibility, in which case DSI (or TX) is selected.
And yes, the topology should make the selection of the PHY obvious, but
I can't see how the PHY driver should obtain this information if it
wasn't for an extra PHY_DIRECTION_* argument.
What am I missing here?
>>>> Add PHY_TYPE_DSI and PHY_TYPE_CSI, so that a binding can select both
>>>> D-PHY or C-PHY and transmitter or receiver. They do not replace
>>>> PHY_TYPE_DPHY/PHY_TYPE_CPHY, which remain the right choice where a cell
>>>> selects the mode. The first user is the Rockchip RK3588 MIPI DC-PHY
>>>> binding.
>>>>
>>>> Suggested-by: Michael Riesch <michael.riesch@collabora.com>
>>>> Link: https://lore.kernel.org/r/82da3622-9c3a-454c-87bc-fb4ec7adb68d@collabora.com
>>>> Signed-off-by: Jason Yang <jason98166@gmail.com>
>>>
>>> Where is any DTS using it? I did a search and no results of upstream
>>> posting.
>>>
>>>> ---
>>>> include/dt-bindings/phy/phy.h | 2 ++
>>>> 1 file changed, 2 insertions(+)
>>>>
>>>> diff --git a/include/dt-bindings/phy/phy.h b/include/dt-bindings/phy/phy.h
>>>> index 979b5dfd8353..8ee3f88e6d80 100644
>>>> --- a/include/dt-bindings/phy/phy.h
>>>> +++ b/include/dt-bindings/phy/phy.h
>>>> @@ -24,6 +24,8 @@
>>>> #define PHY_TYPE_CPHY 11
>>>> #define PHY_TYPE_USXGMII 12
>>>> #define PHY_TYPE_XAUI 13
>>>> +#define PHY_TYPE_DSI 14
>>>> +#define PHY_TYPE_CSI 15
>>>
>>> DSI and CSI does not look like types of PHY...
>>
>> Fair point. AFAIK both CSI and DSI are protocols on top of the physical
>> CPHY and DPHY communication. Maybe we should stick to
>> transmitter/receiver/RX/TX direction/.../something. Would work for me
>> too, my simple request is to *NOT* introduce the same magic for each
>> combo PHY block over and over again, but create something generic.
>>
>> What about
>>
>> #define PHY_DIRECTION_RX 0
>> #define PHY_DIRECTION_TX 1
>>
>> or so?
>
> Well, I asked for any DTS user of it and I did not get it except
> pointing to irrelevant and completely different 15 year old Samsung chip
> and to some "future" work, so no clue. I still claim that direction is
> obvious from the graph between producer and consumer, thus is redundant,
> but I am happy to be corrected by showing me the code.
>
> Talk is cheap.
:-)
I agree that having DTS patches showing how this is used in the RK3588
would tell more than thousand words. I hope the sketch above helped at
least a little in that regard.
@Jason: can you include the DTS additions in your series?
Best regards,
Michael
>
>
> Best regards,
> Krzysztof
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
next prev parent reply other threads:[~2026-09-03 14:37 UTC|newest]
Thread overview: 17+ 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-27 11:45 ` Krzysztof Kozlowski
2026-08-28 9:35 ` 楊智成
2026-09-03 9:50 ` Krzysztof Kozlowski
2026-09-04 7:55 ` [RFC PATCH] arm64: dts: rockchip: add mipi csi-2 receiver nodes for the dcphys on rk3588 Jason Yang
2026-09-04 8:06 ` sashiko-bot
2026-08-31 11:32 ` [PATCH v4 1/7] dt-bindings: phy: Add PHY_TYPE_DSI and PHY_TYPE_CSI definitions Michael Riesch
2026-09-03 9:53 ` Krzysztof Kozlowski
2026-09-03 14:37 ` Michael Riesch [this message]
2026-08-21 12:02 ` [PATCH v4 2/7] dt-bindings: phy: rockchip,rk3588-mipi-dcphy: Allow DSI and CSI consumers Jason Yang via B4 Relay
2026-08-27 11:47 ` Krzysztof Kozlowski
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=824de124-7690-4b51-bd26-71b39ff94f8d@collabora.com \
--to=michael.riesch@collabora.com \
--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=krzk@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=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