public inbox for linux-media@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v8 00/18] Add dt-bindings and dtsi changes for CAMSS on x1e80100 silicon
@ 2026-02-25 15:11 Bryan O'Donoghue
  2026-02-25 15:11 ` [PATCH v8 01/18] dt-bindings: media: qcom,x1e80100-camss: Assign correct main register bank to first address Bryan O'Donoghue
                   ` (17 more replies)
  0 siblings, 18 replies; 62+ messages in thread
From: Bryan O'Donoghue @ 2026-02-25 15:11 UTC (permalink / raw)
  To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Robert Foss, Todor Tomov,
	Mauro Carvalho Chehab, Konrad Dybcio, Vladimir Zapolskiy,
	Bryan O'Donoghue
  Cc: linux-arm-msm, linux-clk, devicetree, linux-kernel, linux-media,
	Bryan O'Donoghue, Krzysztof Kozlowski, Konrad Dybcio

v8:

- This version rebases on latest media-committers/next - bod
- Adds support for "combo-mode" PHYs in the YAML.
  It will be possible to build out the code to support this later - Vlad
- Maintains the upstream model of connecting sensors to CSI decoders.
  Every other upstream implementation does it this way so
  CAMSS will do it this way too.
- Reduces the number of IOMMU entires in CAMSS to those required for
  CSID, VFE/RDI/PIX respectively.
  Including all of the IOMMUs implies we will also "stuff" CAMSS
  with ever increasing lists of registers but a better approach
  is to have individual nodes for functional blocks.
  For example this series supports CSIPHy as a separate block
  CCI is already a separate block - and we will add ICP, BPS, IPE
  etc as additional standalone nodes.
  camss@someaddr {
        //existing bindings vfe, csid, csiphy go here
        iommus = <just what's needed for this>;
  };
  bps@some_other_address {
        iommus = <bps specific iommus>;
  }
  In particular this model will save us from going down the same
  path as the vpu which has ended up tripping over the total size
  an iommu entry may span.

  Nobody really likes the legacy binding much so instead of
  continuing to bludgeon more entries into it, I've conciously
  not included BPS, IPE, ICP etc.

Depends-on: https://lore.kernel.org/r/20260225-x1e-csi2-phy-v2-0-7756edb67ea9@linaro.org
Link to v7: https://lore.kernel.org/r/20250711-b4-linux-next-25-03-13-dtsi-x1e80100-camss-v7-0-0bc5da82f526@linaro.org
Working tree: https://gitlab.com/Linaro/arm64-laptops/linux/-/tree/qcom-laptops-v6.19-rc8-camss?ref_type=heads

v7:

- Reimagine the PHYs as individual nodes.
  A v1 of the schmea and driver for the CSI PHY has been published with
  some review feedback from Rob Herring and Konrad Dybcio

  https://lore.kernel.org/r/20250710-x1e-csi2-phy-v1-0-74acbb5b162b@linaro.org

  Both the clock name changes from Rob and OPP changes suggested by Konrad
  are _not_ yet present in this submission however stipulating to those
  changes, I think publishing this v7 of the CAMSS/DT changes is warranted.

  Its important to publish a whole view of changes for reviewers without
  necessarily munging everything together in one sprawling series.

  TL;DR I moved the PHY driver to its own series review comments there
  are not reflected here yet but "shouldn't" have a big impact here.

- Having separate nodes in the DT for the PHYS allows for switching on PHYs
  as we do for just about every other PHYs.
  &csiphyX {
      status = "okay";
  };

  We just list phys = <> in the core dtsi and enable the PHYs we want in
  the platform dts.

- The level of code change in CAMSS itself turns out to be quite small.
  Adding the PHY structure to the CSIPHY device
  Differentiating the existing camss.c -> camss-csiphy.c init functions
  A few new function pointers to facilitate parallel support of legacy
  and new PHY interfaces.

- A key goal of this updated series is both to introduce a new PHY method
  to CAMSS but to do it _only_ for a new SoC while taking care to ensure
  that legacy CAMSS-PHY and legacy DT ABI continues to work.

  This is a key point coming from the DT people which I've slowly imbibed
  and hopefully succeeded in implementing.

- In addition to the CRD both T14s and Slim7x are supported.
  I have the Inspirion14 working and the XPS but since we haven't landed
  the Inspirion upstream yet, I've chosen to hold off on the XPS too.

- There is another proposal on the list to make PHY devices as sub-devices

  I believe having those separate like most of our other PHYs
  is the more appropriate way to go.

  Similarly there is less code change to the CAMSS driver with this change.

  Finally I believe we should contine to have endpoints go from the sensor
  to CAMSS not the PHY as CAMSS' CSI decoder is the consumer of the data
  not the PHY.

- Working tree: https://git.codelinaro.org/bryan.odonoghue/kernel/-/tree/x1e80100-6.16-rcX-dell-inspiron14-camss-ov02c10-ov02e10-audio-iris-phy-v3
- Link to v6: https://lore.kernel.org/r/20250314-b4-linux-next-25-03-13-dtsi-x1e80100-camss-v6-0-edcb2cfc3122@linaro.org

v6:
- Removes 'A phandle to an OPP node describing' per Krzysztof's comment
  on patch #1
- Drops Fixes: from patch #1 - Krzysztof
- The ordering of opp description MXC and MMXC is kept as it matches the
  power-domain ordering - Krzysztof/bod
- Link to v5: https://lore.kernel.org/r/20250313-b4-linux-next-25-03-13-dtsi-x1e80100-camss-v5-0-846c9a6493a8@linaro.org

v5:
- Picks up a Fixes: that is a valid precursor for this series - Vlad
- Applies RB from Vlad
- Drops "cam" prefix in interconnect names - Krzysztof/Vlad
- Amends sorting of regs, clocks consistent with recent 8550 - Depeng/Vlad
- Link to v4: https://lore.kernel.org/r/20250119-b4-linux-next-24-11-18-dtsi-x1e80100-camss-v4-0-c2964504131c@linaro.org

v4:
- Applies RB from Konrad
- Adds the second CCI I2C bus to CCI commit log description.
  I previously considered leaving out the always on pins but, decided
  to include them in the end and forgot to align the commit log.
- Alphabetises the camcc.h included in the dtsi. - Vlad
- Link to v3: https://lore.kernel.org/r/20250102-b4-linux-next-24-11-18-dtsi-x1e80100-camss-v3-0-cb66d55d20cc@linaro.org

v3:
- Fixes ordering of headers in dtsi - Vlad
- Changes camcc to always on - Vlad
- Applies RB as indicated - Krzysztof, Konrad
- Link to v2: https://lore.kernel.org/r/20241227-b4-linux-next-24-11-18-dtsi-x1e80100-camss-v2-0-06fdd5a7d5bb@linaro.org

v2:

I've gone through each comment and implemented each suggestion since IMO
they were all good/correct comments.

Detail:

- Moves x1e80100 camcc to its own yaml - Krzysztof
- csid_wrapper comes first because it is the most relevant
  register set - configuring all CSID blocks subordinate to it - bod, Krzysztof
- Fixes missing commit log - Krz
- Updates to latest format established @ sc7280 - bod
- Includes CSID lite which I forgot to add @ v1 - Konrad, bod
- Replaces static ICC parameters with defines - Konrad
- Drops newlines between x and x-name - Konrad
- Drops redundant iommu extents - Konrad
- Leaves CAMERA_AHB_CLK as-is - Kronrad, Dmitry
  Link: https://lore.kernel.org/r/3f1a960f-062e-4c29-ae7d-126192f35a8b@oss.qualcomm.com
- Interrupt EDGE_RISING - Vladimir
- Implements suggested regulator names pending refactor to PHY API - Vladimir
- Drop slow_ahb_src clock - Vladimir

Link to v1:
https://lore.kernel.org/r/20241119-b4-linux-next-24-11-18-dtsi-x1e80100-camss-v1-0-54075d75f654@linaro.org

Working tree:
https://git.codelinaro.org/bryan.odonoghue/kernel/-/tree/arm-laptop/wip/x1e80100-6.13-rc3

v1:

This series adds dt-bindings and dtsi for CAMSS on x1e80100.

The primary difference between x1e80100 and other platforms is a new VFE
and CSID pair at version 680.

Some minor driver churn will be required to support outside of the new VFE
and CSID blocks but nothing too major.

The CAMCC in this silicon requires two, not one power-domain requiring
either this fix I've proposed here or something similar:

https://lore.kernel.org/linux-arm-msm/bad60452-41b3-42fb-acba-5b7226226d2d@linaro.org/T/#t

That doesn't gate adoption of the binding description though.

A working tree in progress can be found here:
https://git.codelinaro.org/bryan.odonoghue/kernel/-/tree/x1e80100-6.12-rc7+camss?ref_type=heads

Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
---
Bryan O'Donoghue (18):
      dt-bindings: media: qcom,x1e80100-camss: Assign correct main register bank to first address
      dt-bindings: media: qcom,x1e80100-camss: Convert from inline PHY definitions to PHY handles
      dt-bindings: media: qcom,x1e80100-camss: Add support for combo-mode endpoints
      dt-bindings: media: qcom,x1e80100-camss: Reduce iommus to five
      media: qcom: camss: Add legacy_phy flag to SoC definition structures
      media: qcom: camss: Add support for PHY API devices
      media: qcom: camss: Drop legacy PHY descriptions from x1e
      arm64: dts: qcom: x1e80100: Add CAMCC block definition
      arm64: dts: qcom: x1e80100: Add CCI definitions
      arm64: dts: qcom: x1e80100: Add MIPI CSI PHY nodes
      arm64: dts: qcom: x1e80100: Add CAMSS block definition
      arm64: dts: qcom: x1e80100-crd: Add pm8010 CRD pmic,id=m regulators
      arm64: dts: qcom: x1e80100-crd: Add ov08x40 RGB sensor on CSIPHY4
      arm64: dts: qcom: x1e80100-t14s: Add pm8010 camera PMIC with voltage levels for IR and RGB camera
      arm64: dts: qcom: x1e80100-t14s: Add on ov02c10 RGB sensor on CSIPHY4
      arm64: dts: qcom: x1e80100-lenovo-yoga-slim7x: Add pm8010 camera PMIC with voltage levels for IR and RGB camera
      arm64: dts: qcom: x1e80100-lenovo-yoga-slim7x: Add ov02c10 RGB sensor on CSIPHY4
      arm64: dts: qcom: x1e80100-dell-inspiron14-7441: Switch on CAMSS RGB sensor

 .../bindings/media/qcom,x1e80100-camss.yaml        | 170 ++++----
 arch/arm64/boot/dts/qcom/hamoa.dtsi                | 453 +++++++++++++++++++++
 arch/arm64/boot/dts/qcom/x1-crd.dtsi               | 106 +++++
 arch/arm64/boot/dts/qcom/x1-dell-thena.dtsi        |  61 +++
 .../dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi    | 136 +++++++
 .../boot/dts/qcom/x1e80100-lenovo-yoga-slim7x.dts  | 128 ++++++
 drivers/media/platform/qcom/camss/Kconfig          |   1 +
 drivers/media/platform/qcom/camss/camss-csiphy.c   | 185 ++++++++-
 drivers/media/platform/qcom/camss/camss-csiphy.h   |   7 +
 drivers/media/platform/qcom/camss/camss.c          | 124 +++---
 drivers/media/platform/qcom/camss/camss.h          |   1 +
 11 files changed, 1228 insertions(+), 144 deletions(-)
---
base-commit: f69743819496c1b9ff12960dfd67e7093b4f5ee9
change-id: 20250313-b4-linux-next-25-03-13-dtsi-x1e80100-camss-1506f74bbd3a

Best regards,
-- 
Bryan O'Donoghue <bryan.odonoghue@linaro.org>


^ permalink raw reply	[flat|nested] 62+ messages in thread

end of thread, other threads:[~2026-03-04  4:38 UTC | newest]

Thread overview: 62+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-25 15:11 [PATCH v8 00/18] Add dt-bindings and dtsi changes for CAMSS on x1e80100 silicon Bryan O'Donoghue
2026-02-25 15:11 ` [PATCH v8 01/18] dt-bindings: media: qcom,x1e80100-camss: Assign correct main register bank to first address Bryan O'Donoghue
2026-02-26  7:04   ` Krzysztof Kozlowski
2026-02-26  9:25     ` Bryan O'Donoghue
2026-02-26  9:32       ` Krzysztof Kozlowski
2026-02-26  9:35         ` Bryan O'Donoghue
2026-02-26  9:38           ` Krzysztof Kozlowski
2026-02-26  9:49             ` Bryan O'Donoghue
2026-02-27 22:01   ` Christopher Obbard
2026-02-25 15:11 ` [PATCH v8 02/18] dt-bindings: media: qcom,x1e80100-camss: Convert from inline PHY definitions to PHY handles Bryan O'Donoghue
2026-02-26  7:07   ` Krzysztof Kozlowski
2026-02-26  9:27     ` Bryan O'Donoghue
2026-02-26  9:33       ` Krzysztof Kozlowski
2026-02-26  9:40         ` Bryan O'Donoghue
2026-02-26  9:50           ` Krzysztof Kozlowski
2026-02-26 10:06             ` Bryan O'Donoghue
2026-02-27  7:24               ` Krzysztof Kozlowski
2026-02-27  8:48                 ` Bryan O'Donoghue
2026-02-27 20:10                   ` Dmitry Baryshkov
2026-02-27 21:49                     ` Bryan O'Donoghue
2026-02-27 22:01   ` Christopher Obbard
2026-02-28 13:28     ` Krzysztof Kozlowski
2026-02-25 15:11 ` [PATCH v8 03/18] dt-bindings: media: qcom,x1e80100-camss: Add support for combo-mode endpoints Bryan O'Donoghue
2026-02-27 22:01   ` Christopher Obbard
2026-02-28  7:17     ` Dmitry Baryshkov
2026-03-04  4:38       ` Christopher Obbard
2026-02-25 15:11 ` [PATCH v8 04/18] dt-bindings: media: qcom,x1e80100-camss: Reduce iommus to five Bryan O'Donoghue
2026-02-26  7:08   ` Krzysztof Kozlowski
2026-02-27 22:02   ` Christopher Obbard
2026-02-25 15:11 ` [PATCH v8 05/18] media: qcom: camss: Add legacy_phy flag to SoC definition structures Bryan O'Donoghue
2026-02-27 22:02   ` Christopher Obbard
2026-02-25 15:11 ` [PATCH v8 06/18] media: qcom: camss: Add support for PHY API devices Bryan O'Donoghue
2026-02-27 22:03   ` Christopher Obbard
2026-02-25 15:11 ` [PATCH v8 07/18] media: qcom: camss: Drop legacy PHY descriptions from x1e Bryan O'Donoghue
2026-02-27 22:03   ` Christopher Obbard
2026-02-25 15:11 ` [PATCH v8 08/18] arm64: dts: qcom: x1e80100: Add CAMCC block definition Bryan O'Donoghue
2026-02-27 22:03   ` Christopher Obbard
2026-03-02 16:19   ` Konrad Dybcio
2026-03-03  5:56     ` Taniya Das
2026-03-03 10:05       ` Konrad Dybcio
2026-02-25 15:11 ` [PATCH v8 09/18] arm64: dts: qcom: x1e80100: Add CCI definitions Bryan O'Donoghue
2026-02-27 22:04   ` Christopher Obbard
2026-02-25 15:11 ` [PATCH v8 10/18] arm64: dts: qcom: x1e80100: Add MIPI CSI PHY nodes Bryan O'Donoghue
2026-02-26  7:11   ` Krzysztof Kozlowski
2026-02-26  9:30     ` Bryan O'Donoghue
2026-02-26  9:35       ` Krzysztof Kozlowski
2026-02-27 22:04   ` Christopher Obbard
2026-02-25 15:11 ` [PATCH v8 11/18] arm64: dts: qcom: x1e80100: Add CAMSS block definition Bryan O'Donoghue
2026-02-27 22:05   ` Christopher Obbard
2026-02-25 15:11 ` [PATCH v8 12/18] arm64: dts: qcom: x1e80100-crd: Add pm8010 CRD pmic,id=m regulators Bryan O'Donoghue
2026-02-27 22:05   ` Christopher Obbard
2026-02-25 15:11 ` [PATCH v8 13/18] arm64: dts: qcom: x1e80100-crd: Add ov08x40 RGB sensor on CSIPHY4 Bryan O'Donoghue
2026-02-27 22:06   ` Christopher Obbard
2026-02-25 15:11 ` [PATCH v8 14/18] arm64: dts: qcom: x1e80100-t14s: Add pm8010 camera PMIC with voltage levels for IR and RGB camera Bryan O'Donoghue
2026-02-25 15:11 ` [PATCH v8 15/18] arm64: dts: qcom: x1e80100-t14s: Add on ov02c10 RGB sensor on CSIPHY4 Bryan O'Donoghue
2026-02-27 22:08   ` Christopher Obbard
2026-02-25 15:11 ` [PATCH v8 16/18] arm64: dts: qcom: x1e80100-lenovo-yoga-slim7x: Add pm8010 camera PMIC with voltage levels for IR and RGB camera Bryan O'Donoghue
2026-02-27 22:08   ` Christopher Obbard
2026-02-25 15:11 ` [PATCH v8 17/18] arm64: dts: qcom: x1e80100-lenovo-yoga-slim7x: Add ov02c10 RGB sensor on CSIPHY4 Bryan O'Donoghue
2026-02-27 22:08   ` Christopher Obbard
2026-02-25 15:11 ` [PATCH v8 18/18] arm64: dts: qcom: x1e80100-dell-inspiron14-7441: Switch on CAMSS RGB sensor Bryan O'Donoghue
2026-02-27 22:09   ` Christopher Obbard

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox