All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vladimir Zapolskiy <vz@kernel.org>
To: Loic Poulain <loic.poulain@oss.qualcomm.com>
Cc: Bjorn Andersson <andersson@kernel.org>,
	Konrad Dybcio <konradybcio@kernel.org>,
	Abel Vesa <abelvesa@kernel.org>,
	Bryan O'Donoghue <bod@kernel.org>, Vinod Koul <vkoul@kernel.org>,
	Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	linux-arm-msm@vger.kernel.org,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	linux-media@vger.kernel.org,
	Neil Armstrong <neil.armstrong@linaro.org>,
	Manivannan Sadhasivam <mani@kernel.org>,
	linux-phy@lists.infradead.org, Conor Dooley <conor+dt@kernel.org>,
	devicetree@vger.kernel.org
Subject: Re: [PATCH 4/7] arm64: dts: qcom: sm8450: Add CAMSS device tree node
Date: Tue, 27 Oct 2026 11:54:36 +0200	[thread overview]
Message-ID: <0d25a732-ccd5-4a7b-9809-93e67899b4e7@kernel.org> (raw)
In-Reply-To: <CAFEp6-3XTotgkOKRACGLT91wUw30CgFB=44RtHnXfA6cOF7bVA@mail.gmail.com>

On 10/27/26 11:07, Loic Poulain wrote:
> On Mon, Oct 26, 2026 at 11:39 PM Vladimir Zapolskiy <vz@kernel.org> wrote:
>>
>> Hi Loic.
>>
>> On 10/26/26 18:32, Loic Poulain wrote:
>>> On Fri, Oct 23, 2026 at 6:31 PM Vladimir Zapolskiy <vz@kernel.org> wrote:
>>>>
>>>> Add Qualcomm Waipio CAMSS device tree node to the platform dtsi file,
>>>> the CAMSS input ports are connected to output ports of CSIPHY devices.
>>>>
>>>> Signed-off-by: Vladimir Zapolskiy <vz@kernel.org>
>>>> ---
>>>>    arch/arm64/boot/dts/qcom/sm8450.dtsi | 167 +++++++++++++++++++++++++++
>>>>    1 file changed, 167 insertions(+)
>>>>
>>>> diff --git a/arch/arm64/boot/dts/qcom/sm8450.dtsi b/arch/arm64/boot/dts/qcom/sm8450.dtsi
>>>> index babf1a4196a1..7f5b0501a23e 100644
>>>> --- a/arch/arm64/boot/dts/qcom/sm8450.dtsi
>>>> +++ b/arch/arm64/boot/dts/qcom/sm8450.dtsi
>>>> @@ -3310,6 +3310,167 @@ cci1_i2c1: i2c-bus@1 {
>>>>                           };
>>>>                   };
>>>>
>>>> +               camss: isp@acb6000 {
>>>> +                       compatible = "qcom,waipio-camss";
>>>> +                       reg = <0 0xacb6000 0 0x1000>,
>>>> +                             <0 0xacb7000 0 0x1000>,
>>>> +                             <0 0xacb9000 0 0x1000>,
>>>> +                             <0 0xacbb000 0 0x1000>,
>>>> +                             <0 0xacc6000 0 0x1000>,
>>>> +                             <0 0xacca000 0 0x1000>,
>>>> +                             <0 0xacf6000 0 0x1000>,
>>>> +                             <0 0xacf7000 0 0x1000>,
>>>> +                             <0 0xacf8000 0 0x1000>,
>>>> +                             <0 0xac62000 0 0x3000>,
>>>> +                             <0 0xac71000 0 0x3000>,
>>>> +                             <0 0xac80000 0 0x3000>,
>>>> +                             <0 0xacc7000 0 0x2000>,
>>>> +                             <0 0xaccb000 0 0x2000>;
>>>> +                       reg-names = "csid_wrapper",
>>>> +                                   "csid0",
>>>> +                                   "csid1",
>>>> +                                   "csid2",
>>>> +                                   "csid_lite0",
>>>> +                                   "csid_lite1",
>>>> +                                   "tpg0",
>>>> +                                   "tpg1",
>>>> +                                   "tpg2",
>>>> +                                   "vfe0",
>>>> +                                   "vfe1",
>>>> +                                   "vfe2",
>>>> +                                   "vfe_lite0",
>>>> +                                   "vfe_lite1";
>>>
>>> Is there a camss "top" register to describe here? e.g. to retrieve the
>>> CAMSS hardware version.
>>
>> I'm not aware of anything like that. What is "CAMSS hardware version"?
>>
>> CAMSS embraces various blocks, there are CSID and VFE, full and lite
>> IPs, and all these components do export their versions individually.
> 
> I mean, CAMSS usually has a top-level register block (often top or
> cpas_top) that contains the Titan/Spectra version information, along
> with various global configuration and mux registers.

On SM8450 there is "cpas_top" register <0xac13000 0x1000> (not in the
series), I believe you reference to it.

Is CPAS a natural part of CAMSS? Can it be modelled differently, e.g.
as a separate device/driver, like it was done with JPEG or CSIPHY?

I see that there are only SM6150 and SM6350 platforms mention this
register, to capture and process frames on SM8450 there is no need
to program CPAS.

Note, that even SM6150 and SM6350 platforms do not use this register,
it makes it redundant.

> In particular, exposing this block could be useful for reporting the
> Spectra version to userspace, for example through libcamera.

It could be so, but adding dead code is an anti-pattern in software design.

> Moreover, if the goal is to describe the CAMSS hardware exhaustively
> in DT, this block should probably be represented as well. Whether it

Here I oppose such a goal as impractical, the set goal is to get working
camera on the platform with the minimum of irreversible changes. It was
proven multiple times in the past, that "an exhaustive description"
equals to "the totally broken description", and brings nothing valuable
but irrecoverable ethernal problems to overcome.

> belongs in this specific binding is open for discussion, but my
> inclination is that it does.

This register is not needed to get CAMSS up to the functionally
working stage, which is represented by the series.

I believe someone may create a new fancy CPAS device driver or so, and
the new device driver will utilize the "cpas_top" register and other
CPAS resources in a better way, the register shall not be nailed to
the CAMSS preliminarly.

-- 
Best wishes,
Vladimir

WARNING: multiple messages have this Message-ID (diff)
From: Vladimir Zapolskiy <vz@kernel.org>
To: Loic Poulain <loic.poulain@oss.qualcomm.com>
Cc: Bjorn Andersson <andersson@kernel.org>,
	Konrad Dybcio <konradybcio@kernel.org>,
	Abel Vesa <abelvesa@kernel.org>,
	Bryan O'Donoghue <bod@kernel.org>, Vinod Koul <vkoul@kernel.org>,
	Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	linux-arm-msm@vger.kernel.org,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	linux-media@vger.kernel.org,
	Neil Armstrong <neil.armstrong@linaro.org>,
	Manivannan Sadhasivam <mani@kernel.org>,
	linux-phy@lists.infradead.org, Conor Dooley <conor+dt@kernel.org>,
	devicetree@vger.kernel.org
Subject: Re: [PATCH 4/7] arm64: dts: qcom: sm8450: Add CAMSS device tree node
Date: Tue, 27 Oct 2026 11:54:36 +0200	[thread overview]
Message-ID: <0d25a732-ccd5-4a7b-9809-93e67899b4e7@kernel.org> (raw)
In-Reply-To: <CAFEp6-3XTotgkOKRACGLT91wUw30CgFB=44RtHnXfA6cOF7bVA@mail.gmail.com>

On 10/27/26 11:07, Loic Poulain wrote:
> On Mon, Oct 26, 2026 at 11:39 PM Vladimir Zapolskiy <vz@kernel.org> wrote:
>>
>> Hi Loic.
>>
>> On 10/26/26 18:32, Loic Poulain wrote:
>>> On Fri, Oct 23, 2026 at 6:31 PM Vladimir Zapolskiy <vz@kernel.org> wrote:
>>>>
>>>> Add Qualcomm Waipio CAMSS device tree node to the platform dtsi file,
>>>> the CAMSS input ports are connected to output ports of CSIPHY devices.
>>>>
>>>> Signed-off-by: Vladimir Zapolskiy <vz@kernel.org>
>>>> ---
>>>>    arch/arm64/boot/dts/qcom/sm8450.dtsi | 167 +++++++++++++++++++++++++++
>>>>    1 file changed, 167 insertions(+)
>>>>
>>>> diff --git a/arch/arm64/boot/dts/qcom/sm8450.dtsi b/arch/arm64/boot/dts/qcom/sm8450.dtsi
>>>> index babf1a4196a1..7f5b0501a23e 100644
>>>> --- a/arch/arm64/boot/dts/qcom/sm8450.dtsi
>>>> +++ b/arch/arm64/boot/dts/qcom/sm8450.dtsi
>>>> @@ -3310,6 +3310,167 @@ cci1_i2c1: i2c-bus@1 {
>>>>                           };
>>>>                   };
>>>>
>>>> +               camss: isp@acb6000 {
>>>> +                       compatible = "qcom,waipio-camss";
>>>> +                       reg = <0 0xacb6000 0 0x1000>,
>>>> +                             <0 0xacb7000 0 0x1000>,
>>>> +                             <0 0xacb9000 0 0x1000>,
>>>> +                             <0 0xacbb000 0 0x1000>,
>>>> +                             <0 0xacc6000 0 0x1000>,
>>>> +                             <0 0xacca000 0 0x1000>,
>>>> +                             <0 0xacf6000 0 0x1000>,
>>>> +                             <0 0xacf7000 0 0x1000>,
>>>> +                             <0 0xacf8000 0 0x1000>,
>>>> +                             <0 0xac62000 0 0x3000>,
>>>> +                             <0 0xac71000 0 0x3000>,
>>>> +                             <0 0xac80000 0 0x3000>,
>>>> +                             <0 0xacc7000 0 0x2000>,
>>>> +                             <0 0xaccb000 0 0x2000>;
>>>> +                       reg-names = "csid_wrapper",
>>>> +                                   "csid0",
>>>> +                                   "csid1",
>>>> +                                   "csid2",
>>>> +                                   "csid_lite0",
>>>> +                                   "csid_lite1",
>>>> +                                   "tpg0",
>>>> +                                   "tpg1",
>>>> +                                   "tpg2",
>>>> +                                   "vfe0",
>>>> +                                   "vfe1",
>>>> +                                   "vfe2",
>>>> +                                   "vfe_lite0",
>>>> +                                   "vfe_lite1";
>>>
>>> Is there a camss "top" register to describe here? e.g. to retrieve the
>>> CAMSS hardware version.
>>
>> I'm not aware of anything like that. What is "CAMSS hardware version"?
>>
>> CAMSS embraces various blocks, there are CSID and VFE, full and lite
>> IPs, and all these components do export their versions individually.
> 
> I mean, CAMSS usually has a top-level register block (often top or
> cpas_top) that contains the Titan/Spectra version information, along
> with various global configuration and mux registers.

On SM8450 there is "cpas_top" register <0xac13000 0x1000> (not in the
series), I believe you reference to it.

Is CPAS a natural part of CAMSS? Can it be modelled differently, e.g.
as a separate device/driver, like it was done with JPEG or CSIPHY?

I see that there are only SM6150 and SM6350 platforms mention this
register, to capture and process frames on SM8450 there is no need
to program CPAS.

Note, that even SM6150 and SM6350 platforms do not use this register,
it makes it redundant.

> In particular, exposing this block could be useful for reporting the
> Spectra version to userspace, for example through libcamera.

It could be so, but adding dead code is an anti-pattern in software design.

> Moreover, if the goal is to describe the CAMSS hardware exhaustively
> in DT, this block should probably be represented as well. Whether it

Here I oppose such a goal as impractical, the set goal is to get working
camera on the platform with the minimum of irreversible changes. It was
proven multiple times in the past, that "an exhaustive description"
equals to "the totally broken description", and brings nothing valuable
but irrecoverable ethernal problems to overcome.

> belongs in this specific binding is open for discussion, but my
> inclination is that it does.

This register is not needed to get CAMSS up to the functionally
working stage, which is represented by the series.

I believe someone may create a new fancy CPAS device driver or so, and
the new device driver will utilize the "cpas_top" register and other
CPAS resources in a better way, the register shall not be nailed to
the CAMSS preliminarly.

-- 
Best wishes,
Vladimir

-- 
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy

  reply	other threads:[~2026-10-27  9:54 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-23 16:30 [PATCH 0/7] media: qcom: camss: Add Waipio CAMSS support Vladimir Zapolskiy
2026-10-23 16:30 ` Vladimir Zapolskiy
2026-10-23 16:30 ` [PATCH 1/7] dt-bindings: phy: qcom,x1e80100-csi2-phy: Add Waipio compatible Vladimir Zapolskiy
2026-10-23 16:30   ` Vladimir Zapolskiy
2026-10-23 16:44   ` sashiko-bot
2026-10-23 16:44     ` sashiko-bot
2026-10-23 22:43   ` Bryan O'Donoghue
2026-10-23 22:43     ` Bryan O'Donoghue
2026-10-26 10:04     ` Krzysztof Kozlowski
2026-10-26 10:04       ` Krzysztof Kozlowski
2026-10-23 16:30 ` [PATCH 2/7] arm64: dts: qcom: sm8450: Add CSI2 PHY device tree nodes Vladimir Zapolskiy
2026-10-23 16:30   ` Vladimir Zapolskiy
2026-10-23 16:57   ` sashiko-bot
2026-10-23 16:57     ` sashiko-bot
2026-10-23 22:44   ` Bryan O'Donoghue
2026-10-23 22:44     ` Bryan O'Donoghue
2026-10-26 10:05   ` Krzysztof Kozlowski
2026-10-26 10:05     ` Krzysztof Kozlowski
2026-10-23 16:30 ` [PATCH 3/7] dt-bindings: media: Add description of Qualcomm Waipio CAMSS IP Vladimir Zapolskiy
2026-10-23 16:30   ` Vladimir Zapolskiy
2026-10-23 16:58   ` sashiko-bot
2026-10-23 16:58     ` sashiko-bot
2026-10-26 10:03   ` Krzysztof Kozlowski
2026-10-26 10:03     ` Krzysztof Kozlowski
2026-10-23 16:30 ` [PATCH 4/7] arm64: dts: qcom: sm8450: Add CAMSS device tree node Vladimir Zapolskiy
2026-10-23 16:30   ` Vladimir Zapolskiy
2026-10-26 10:04   ` Krzysztof Kozlowski
2026-10-26 10:04     ` Krzysztof Kozlowski
2026-10-26 16:32   ` Loic Poulain
2026-10-26 16:32     ` Loic Poulain
2026-10-26 22:38     ` Vladimir Zapolskiy
2026-10-26 22:38       ` Vladimir Zapolskiy
2026-10-27  9:07       ` Loic Poulain
2026-10-27  9:07         ` Loic Poulain
2026-10-27  9:54         ` Vladimir Zapolskiy [this message]
2026-10-27  9:54           ` Vladimir Zapolskiy
2026-10-27 10:31           ` Loic Poulain
2026-10-27 10:31             ` Loic Poulain
2026-10-27 12:57             ` Vladimir Zapolskiy
2026-10-27 12:57               ` Vladimir Zapolskiy
2026-10-27 11:14           ` Konrad Dybcio
2026-10-27 11:14             ` Konrad Dybcio
2026-10-23 16:30 ` [PATCH 5/7] arm64: dts: qcom: sm8450: Add description of pins with MCLK function Vladimir Zapolskiy
2026-10-23 16:30   ` Vladimir Zapolskiy
2026-10-26 14:09   ` Konrad Dybcio
2026-10-26 14:09     ` Konrad Dybcio
2026-10-23 16:30 ` [PATCH 6/7] media: qcom: camss: Allow CSI2 PHY devices without CSIPHY resources Vladimir Zapolskiy
2026-10-23 16:30   ` Vladimir Zapolskiy
2026-10-23 16:30 ` [PATCH 7/7] media: qcom: camss: Add Waipio CAMSS support Vladimir Zapolskiy
2026-10-23 16:30   ` Vladimir Zapolskiy

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=0d25a732-ccd5-4a7b-9809-93e67899b4e7@kernel.org \
    --to=vz@kernel.org \
    --cc=abelvesa@kernel.org \
    --cc=andersson@kernel.org \
    --cc=bod@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=konradybcio@kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-phy@lists.infradead.org \
    --cc=loic.poulain@oss.qualcomm.com \
    --cc=mani@kernel.org \
    --cc=mchehab@kernel.org \
    --cc=neil.armstrong@linaro.org \
    --cc=robh@kernel.org \
    --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 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.