From: Bryan O'Donoghue <bod@kernel.org>
To: Neil Armstrong <neil.armstrong@linaro.org>,
Bryan O'Donoghue <bryan.odonoghue@linaro.org>,
Vinod Koul <vkoul@kernel.org>,
Kishon Vijay Abraham I <kishon@kernel.org>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>
Cc: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>,
linux-arm-msm@vger.kernel.org, linux-phy@lists.infradead.org,
linux-media@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v4 2/2] phy: qcom-mipi-csi2: Add a CSI2 MIPI DPHY driver
Date: Wed, 18 Mar 2026 15:47:53 +0000 [thread overview]
Message-ID: <baa40d8c-cd0e-4661-b951-fe992c8e96bd@kernel.org> (raw)
In-Reply-To: <16b10f17-ecd3-4cdd-ac3f-f64127d60ace@linaro.org>
On 18/03/2026 15:07, Neil Armstrong wrote:
> On 3/18/26 14:17, Bryan O'Donoghue wrote:
>> On 18/03/2026 10:15, Neil Armstrong wrote:
>>>> + /*
>>>> + * phy_configure_opts_mipi_dphy.lanes starts from zero to
>>>> + * the maximum number of enabled lanes.
>>>> + *
>>>> + * TODO: add support for bitmask of enabled lanes and polarities
>>>> + * of those lanes to the phy_configure_opts_mipi_dphy struct.
>>>> + * For now take the polarities as zero and the position as fixed
>>>> + * this is fine as no current upstream implementation maps otherwise.
>>>> + */
>>>
>>> This is wrong since you loose the lanes mapping defined in DT, which is still in CAMSS
>>> but is a PHY property. The lanes layout is not a property of the CSI controller,
>>> CSI controller only need to know the lanes count, and not the layout.
>>
>> Lane layout is a PHY concern but, the PHY API gives us phy_configure_opts_mipi_dphy which should be extended to provide layout and polarity. This would then be of benefit to more than just qcom/camss.
>
> Why ? the only concern between a controller and a PHY is the lane count to calculate the bandwidth, the actual pin layout is certainly not a controller concern.
Controllers already get the lane count by way of data-lanes = <x y z q>
or <x y> or <x> if we didn't do that we would need to specify the
data-lanes in the controller and again in the PHY.
>>
>> Right now none of the CAMSS users for this driver depend on any other mapping and I propose a separate series to fix phy_configure_opts_mipi_dphy rather than introduce data-lanes to DPHY.
>
> None of the upstream users of camss.
No, we are establishing from x1 use of standard drivers/phy. New users
will do it this way. The posted dtsi for the laptops can use the linear
lane layout and default polarities.
In a follow on series we can extend phy_configure_opts_mipi_dphy to
parse data-lanes = <> into count and mask, to the benefit of any user of
phy_configure_opts_mipi_dphy.
Since that will touch more then qcom specific stuff and will touch at
least two subsystems, that should be its own separate series.
> The problem is even larger, as you replied in [1], the csiphy is still exposed as a media element from the CAMSS driver, this means this driver is not complete,
> it should be a media driver entirely with eventually an internal PHY aux driver, but this would be entirely implementation specific.
>
> Either the PHY is standalone and the PHY consumer only calls phy_open/init/configure/power_on/power_off/exit, otherwise it's not a fully standaline PHY but a composite device like here.
This is not a composite device any more than the existing upstream
implementations which follow the same model:
- Cadence CSI2RX + Cadence DPHY (TI J721E/AM62A)
- Rockchip rkisp1 + phy-rockchip-inno-csidphy
Both use phys = <&phandle>, the media driver manages V4L2 endpoints
and lane counts, the PHY driver handles the electrical layer via
phy_configure().
To this list we will add qcom camss, there's nothing exotic being proposed.
> I propose that you write a proper media driver for the qcom csiphy, which eventually spins a PHY driver as an aux device.
None of these SoC D-PHYs are written as V4L2 media drivers that spawn
auxiliary devices. They all use the phys = <&phandle> model. The media
driver manages the V4L2 endpoints and lane counts, passing the
configuration down via phy_configure_opts_mipi_dphy.
I just don't see what is so special about CAMSS that it needs to have
its own special PHY implementation. drivers/phy the standard API and
specification of data-lanes etc in the controller seems pretty "bog
standard".
---
bod
WARNING: multiple messages have this Message-ID (diff)
From: Bryan O'Donoghue <bod@kernel.org>
To: Neil Armstrong <neil.armstrong@linaro.org>,
Bryan O'Donoghue <bryan.odonoghue@linaro.org>,
Vinod Koul <vkoul@kernel.org>,
Kishon Vijay Abraham I <kishon@kernel.org>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>
Cc: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>,
linux-arm-msm@vger.kernel.org, linux-phy@lists.infradead.org,
linux-media@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v4 2/2] phy: qcom-mipi-csi2: Add a CSI2 MIPI DPHY driver
Date: Wed, 18 Mar 2026 15:47:53 +0000 [thread overview]
Message-ID: <baa40d8c-cd0e-4661-b951-fe992c8e96bd@kernel.org> (raw)
In-Reply-To: <16b10f17-ecd3-4cdd-ac3f-f64127d60ace@linaro.org>
On 18/03/2026 15:07, Neil Armstrong wrote:
> On 3/18/26 14:17, Bryan O'Donoghue wrote:
>> On 18/03/2026 10:15, Neil Armstrong wrote:
>>>> + /*
>>>> + * phy_configure_opts_mipi_dphy.lanes starts from zero to
>>>> + * the maximum number of enabled lanes.
>>>> + *
>>>> + * TODO: add support for bitmask of enabled lanes and polarities
>>>> + * of those lanes to the phy_configure_opts_mipi_dphy struct.
>>>> + * For now take the polarities as zero and the position as fixed
>>>> + * this is fine as no current upstream implementation maps otherwise.
>>>> + */
>>>
>>> This is wrong since you loose the lanes mapping defined in DT, which is still in CAMSS
>>> but is a PHY property. The lanes layout is not a property of the CSI controller,
>>> CSI controller only need to know the lanes count, and not the layout.
>>
>> Lane layout is a PHY concern but, the PHY API gives us phy_configure_opts_mipi_dphy which should be extended to provide layout and polarity. This would then be of benefit to more than just qcom/camss.
>
> Why ? the only concern between a controller and a PHY is the lane count to calculate the bandwidth, the actual pin layout is certainly not a controller concern.
Controllers already get the lane count by way of data-lanes = <x y z q>
or <x y> or <x> if we didn't do that we would need to specify the
data-lanes in the controller and again in the PHY.
>>
>> Right now none of the CAMSS users for this driver depend on any other mapping and I propose a separate series to fix phy_configure_opts_mipi_dphy rather than introduce data-lanes to DPHY.
>
> None of the upstream users of camss.
No, we are establishing from x1 use of standard drivers/phy. New users
will do it this way. The posted dtsi for the laptops can use the linear
lane layout and default polarities.
In a follow on series we can extend phy_configure_opts_mipi_dphy to
parse data-lanes = <> into count and mask, to the benefit of any user of
phy_configure_opts_mipi_dphy.
Since that will touch more then qcom specific stuff and will touch at
least two subsystems, that should be its own separate series.
> The problem is even larger, as you replied in [1], the csiphy is still exposed as a media element from the CAMSS driver, this means this driver is not complete,
> it should be a media driver entirely with eventually an internal PHY aux driver, but this would be entirely implementation specific.
>
> Either the PHY is standalone and the PHY consumer only calls phy_open/init/configure/power_on/power_off/exit, otherwise it's not a fully standaline PHY but a composite device like here.
This is not a composite device any more than the existing upstream
implementations which follow the same model:
- Cadence CSI2RX + Cadence DPHY (TI J721E/AM62A)
- Rockchip rkisp1 + phy-rockchip-inno-csidphy
Both use phys = <&phandle>, the media driver manages V4L2 endpoints
and lane counts, the PHY driver handles the electrical layer via
phy_configure().
To this list we will add qcom camss, there's nothing exotic being proposed.
> I propose that you write a proper media driver for the qcom csiphy, which eventually spins a PHY driver as an aux device.
None of these SoC D-PHYs are written as V4L2 media drivers that spawn
auxiliary devices. They all use the phys = <&phandle> model. The media
driver manages the V4L2 endpoints and lane counts, passing the
configuration down via phy_configure_opts_mipi_dphy.
I just don't see what is so special about CAMSS that it needs to have
its own special PHY implementation. drivers/phy the standard API and
specification of data-lanes etc in the controller seems pretty "bog
standard".
---
bod
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
next prev parent reply other threads:[~2026-03-18 15:47 UTC|newest]
Thread overview: 68+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-15 23:52 [PATCH v4 0/2] phy: qcom-mipi-csi2: Add a CSI2 MIPI DPHY driver Bryan O'Donoghue
2026-03-15 23:52 ` Bryan O'Donoghue
2026-03-15 23:52 ` [PATCH v4 1/2] dt-bindings: phy: qcom: Add CSI2 C-PHY/DPHY schema Bryan O'Donoghue
2026-03-15 23:52 ` Bryan O'Donoghue
2026-03-16 1:58 ` Vladimir Zapolskiy
2026-03-16 1:58 ` Vladimir Zapolskiy
2026-03-16 2:45 ` Dmitry Baryshkov
2026-03-16 2:45 ` Dmitry Baryshkov
2026-03-16 10:49 ` Konrad Dybcio
2026-03-16 10:49 ` Konrad Dybcio
2026-03-16 12:09 ` Bryan O'Donoghue
2026-03-16 12:09 ` Bryan O'Donoghue
2026-03-16 7:42 ` Krzysztof Kozlowski
2026-03-16 7:42 ` Krzysztof Kozlowski
2026-03-16 21:31 ` Vijay Kumar Tumati
2026-03-16 21:31 ` Vijay Kumar Tumati
2026-03-17 5:26 ` Bryan O'Donoghue
2026-03-17 5:26 ` Bryan O'Donoghue
2026-03-17 20:25 ` Vijay Kumar Tumati
2026-03-17 20:25 ` Vijay Kumar Tumati
2026-03-23 14:22 ` Konrad Dybcio
2026-03-23 14:22 ` Konrad Dybcio
2026-03-23 14:29 ` Bryan O'Donoghue
2026-03-23 14:29 ` Bryan O'Donoghue
2026-03-15 23:52 ` [PATCH v4 2/2] phy: qcom-mipi-csi2: Add a CSI2 MIPI DPHY driver Bryan O'Donoghue
2026-03-15 23:52 ` Bryan O'Donoghue
2026-03-16 10:12 ` Krzysztof Kozlowski
2026-03-16 10:12 ` Krzysztof Kozlowski
2026-03-16 12:04 ` Bryan O'Donoghue
2026-03-16 12:04 ` Bryan O'Donoghue
2026-03-18 10:15 ` Neil Armstrong
2026-03-18 10:15 ` Neil Armstrong
2026-03-18 13:17 ` Bryan O'Donoghue
2026-03-18 13:17 ` Bryan O'Donoghue
2026-03-18 15:07 ` Neil Armstrong
2026-03-18 15:07 ` Neil Armstrong
2026-03-18 15:27 ` Dmitry Baryshkov
2026-03-18 15:27 ` Dmitry Baryshkov
2026-03-19 13:08 ` Vladimir Zapolskiy
2026-03-19 13:08 ` Vladimir Zapolskiy
2026-03-19 13:17 ` Bryan O'Donoghue
2026-03-19 13:17 ` Bryan O'Donoghue
2026-03-19 14:05 ` Neil Armstrong
2026-03-19 14:05 ` Neil Armstrong
2026-03-19 15:06 ` Bryan O'Donoghue
2026-03-19 15:06 ` Bryan O'Donoghue
2026-03-19 14:56 ` Vladimir Zapolskiy
2026-03-19 14:56 ` Vladimir Zapolskiy
2026-03-19 15:18 ` Bryan O'Donoghue
2026-03-19 15:18 ` Bryan O'Donoghue
2026-03-19 16:08 ` Neil Armstrong
2026-03-19 16:08 ` Neil Armstrong
2026-03-19 16:56 ` Bryan O'Donoghue
2026-03-19 16:56 ` Bryan O'Donoghue
2026-03-19 17:39 ` Neil Armstrong
2026-03-19 17:39 ` Neil Armstrong
2026-03-27 10:19 ` Konrad Dybcio
2026-03-27 10:19 ` Konrad Dybcio
2026-03-20 0:37 ` Vladimir Zapolskiy
2026-03-20 0:37 ` Vladimir Zapolskiy
2026-03-20 9:56 ` Bryan O'Donoghue
2026-03-20 9:56 ` Bryan O'Donoghue
2026-03-18 15:47 ` Bryan O'Donoghue [this message]
2026-03-18 15:47 ` Bryan O'Donoghue
2026-03-22 16:44 ` kernel test robot
2026-03-22 16:44 ` kernel test robot
2026-03-22 23:31 ` kernel test robot
2026-03-22 23:31 ` kernel test robot
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=baa40d8c-cd0e-4661-b951-fe992c8e96bd@kernel.org \
--to=bod@kernel.org \
--cc=bryan.odonoghue@linaro.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=kishon@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-phy@lists.infradead.org \
--cc=neil.armstrong@linaro.org \
--cc=robh@kernel.org \
--cc=vkoul@kernel.org \
--cc=vladimir.zapolskiy@linaro.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.