.../bindings/media/qcom,kaanapali-camss.yaml | 433 +++++++++++++++++++++ drivers/media/platform/qcom/camss/Makefile | 2 + drivers/media/platform/qcom/camss/camss-csid-680.c | 1 - .../media/platform/qcom/camss/camss-csid-gen3.c | 1 - .../media/platform/qcom/camss/camss-csid-gen4.c | 376 ++++++++++++++++++ drivers/media/platform/qcom/camss/camss-csid.h | 11 +- .../platform/qcom/camss/camss-csiphy-3ph-1-0.c | 124 ++++++ drivers/media/platform/qcom/camss/camss-vfe-gen4.c | 197 ++++++++++ drivers/media/platform/qcom/camss/camss-vfe.c | 9 +- drivers/media/platform/qcom/camss/camss-vfe.h | 2 + drivers/media/platform/qcom/camss/camss.c | 360 +++++++++++++++++ drivers/media/platform/qcom/camss/camss.h | 1 + 12 files changed, 1512 insertions(+), 5 deletions(-)
Add support for the RDI only CAMSS camera driver on Kaanapali. Enabling
RDI path involves adding the support for a set of CSIPHY, CSID and TFE
modules, with each TFE having multiple RDI ports. This hardware
architecture requires 'qdss_debug_xo' clock for CAMNOC to be functional.
Kaanapali camera subsystem provides:
- 6 x CSIPHY (CSI Physical Layer)
- 3 x TPG (Test Pattern Generator)
- 3 x CSID (CSI Decoder)
- 2 x CSID Lite
- 3 x VFE (Video Front End), 5 RDI per VFE
- 2 x VFE Lite, 4 RDI per VFE Lite
This series has been tested using the following commands with a
downstream driver for S5KJN5 sensor.
- media-ctl --reset
- media-ctl -V '"msm_csiphy2":0[fmt:SGBRG10/4096x3072]'
- media-ctl -V '"msm_csid0":0[fmt:SGBRG10/4096x3072]'
- media-ctl -V '"msm_vfe0_rdi0":0[fmt:SGBRG10/4096x3072]'
- media-ctl -l '"msm_csiphy2":1->"msm_csid0":0[1]'
- media-ctl -l '"msm_csid0":1->"msm_vfe0_rdi0":0[1]'
- yavta --capture=20 -I -n 5 -f SGBRG10P -s 4096x3072 -F /dev/video0
Signed-off-by: Hangxiang Ma <hangxiang.ma@oss.qualcomm.com>
---
Changes in v13:
- Remove prerequisite dependencies that have been merged upstream
- Remove redundant empty 'regulators' initializers in csid and vfe - bod
- Revert binding from full hardware description to CAMSS-only scope for
modular and incremental development - bod
- Rename icc path names and vfe clock names to drop redundancies - Krzysztof
- Separate port index from VC value in csid_configure_stream(). Previously
vc was used as both the loop iterator and the hardware VC, causing
misconfiguration on RDI path starting from 1 - bod
- Link to v12: https://lore.kernel.org/all/20260112-kaanapali-camss-v12-0-15b7af73401e@oss.qualcomm.com/
Changes in v12:
- Add CSIPHY regulator current due to regulator interface changed - bod
- Link to v11: https://lore.kernel.org/r/20260112-kaanapali-camss-v11-0-81e4f59a5d08@oss.qualcomm.com
Changes in v11:
- Rebase this series due to conflict - bod
- Update binding commit message to align with previous generations
- Link to v10: https://lore.kernel.org/r/20251211-add-support-for-camss-on-kaanapali-v10-0-39e8874dcd27@oss.qualcomm.com
Changes in v10:
- Update interconnect and CX domain AXI clock names to be consistent with
previous generations - bod
- Update the struct name for csiphy lane register settings to make it reusable
for other compatible chipsets
- Updated power domain names to IFE for consistency - Krzysztof
- Add description for acronyms listed in binding commit message - Dmitry
- Link to v9: https://lore.kernel.org/r/20251208-add-support-for-camss-on-kaanapali-v9-0-3fcd31258415@oss.qualcomm.com
Changes in v9:
- Updates the names of some of the resources in DT bindings to be consistent
with previous generations and improve the commit its message. The name
changes are also applied to csiphy and vfe camss resource lists - bod
- Link to v8: https://lore.kernel.org/r/20251130-add-support-for-camss-on-kaanapali-v8-0-143a8265e6e8@oss.qualcomm.com
Changes in v8:
- Change csid and vfe driver file names as 'gen4' to reuse for other SOCs - bod
- Add missing register descriptions to binding and cover letter commit log - bod
- Link to v7: https://lore.kernel.org/r/20251120-add-support-for-camss-on-kaanapali-v7-0-de27f9a67ce6@oss.qualcomm.com
Changes in v7:
- Add ICP SYS registers to camss binding - bod
- Rename 'is_deferred' to 'reg_update_after_csid_config' to do rup/aup
after csid config to make it clearer and simplify its call path - bod
- Remove unnecessary bitwise AND while configuring image address to bus- bod
- Tidy up a comment and a couple of hex values and csid/vfe - bod
- Link to v6: https://lore.kernel.org/r/20251113-add-support-for-camss-on-kaanapali-v6-0-1e6038785a8e@oss.qualcomm.com
Changes in v6:
- Modified the bindings to represent the whole of the camera hardware on
KNP than just what is exercised by the CAMSS driver by extending the
descriptions and the properties, the regs, clocks, interrupts, power
domains, iommus etc. In addition, use the word 'vfe' everywhere in the
bindings to be clear that all of those resources are referring to the
same front end modules. - Krzysztof/bod
- Change camss vfe power domain names to align with the binding file
- Link to v5: https://lore.kernel.org/r/20251030-add-support-for-camss-on-kaanapali-v5-0-f8e12bea3d02@oss.qualcomm.com
Changes in v5:
- Refine v4 change log - Krzysztof
- Fix typo by removing redundant numerical version in kaanapali camss binding
comment description - Krzysztof
- Add missing tags that should be posted with v4 revision - Krzysztof/Andi
- Link to v4: https://lore.kernel.org/r/20251028-add-support-for-camss-on-kaanapali-v4-0-7eb484c89585@oss.qualcomm.com
Changes in v4:
- Add detailed hardware descriptions and revise message title to follow the
standard comment format for kaanapali camss binding file - Krzysztof
- Format kaanapali camss binding file to keep style consistency, by reverting
power domain name from TFE to IFE and keeping clocks name order as last
generation - Krzysztof
- Separate the 1.2 and 0.9 voltage supply DT flags for each CSIPHY to allow
for arbitrary board design with common or unique supplies to each of the PHYs
in kaanapali camss binding example, based on v2 comments - bod/Vladimir
- Link to v3: https://lore.kernel.org/r/20251023-add-support-for-camss-on-kaanapali-v3-0-02abc9a107bf@oss.qualcomm.com
Changes in v3:
- Use the name 'ahb' for 'cam_top_ahb' clock in cci binding file - Vladimir
- Reduce and simplify CSIPHY supply, port properties in camss bindings - Vladimir
- Resolve the dependency issues in the camss bindings file using ephemeral
DT nodes - Vladimir/Dmitry
- Update hf mnoc name and bandwidth values for icc module - bod
- Split CSIPHY status macro changes into a separate patch series - bod
- Add clear functions for AUP/RUP update in csid and vfe for consistency - bod
- Clarify why the RUP and AUP register update process is deferred - bod
- Clarify the necessity to keep NRT clocks for vfe - Vijay
- Link to v2: https://lore.kernel.org/r/20251014-add-support-for-camss-on-kaanapali-v2-0-f5745ba2dff9@oss.qualcomm.com
Changes in v2:
- Aggregate CSI2_RX_CFG0_PHY_SEL_BASE_IDX definition into 'camss-csid.h' - bod
- Remove 'camss-csid-1080.h' and use 'camss-csid-gen3.h' header instead - bod
- Remove redundant code in 'camss-csid-1080.c' and align the namespaces - bod
- Slipt 'camnoc_rt_axi' clock in vfe matching list into a single patch - bod
- Add whole vfe write engine client mappings in comment - bod
- Remove hardcoded image buffer number but use 'CAMSS_INIT_BUF_COUNT' - bod
- Remove SoC specific logic for vfe ops->reg_update and add a new variable
to determine whether ops->reg_update is deferred or not - bod
- Add description to explain why 'qdss_debug_xo' should be retained - bod
- Add the procss node in csiphy register list comment - bod
- Rename the variable 'cmn_status_offset' to 'common_status_offset' and
align this with macro in csiphy register structure to avoid ambiguity - bod
- Aggregate Kaanapali items into the definition that introduced by
'qcom,qcm2290-cci' in cci binding file - Loic
- Format 'kaanpali-camss.yaml' binding file
- Link to v1: https://lore.kernel.org/r/20250924-knp-cam-v1-0-b72d6deea054@oss.qualcomm.com
---
Hangxiang Ma (5):
media: dt-bindings: Add CAMSS device for Kaanapali
media: qcom: camss: Add Kaanapali compatible camss driver
media: qcom: camss: csiphy: Add support for v2.4.0 two-phase CSIPHY
media: qcom: camss: csid: Add support for CSID gen4
media: qcom: camss: vfe: Add support for VFE gen4
.../bindings/media/qcom,kaanapali-camss.yaml | 433 +++++++++++++++++++++
drivers/media/platform/qcom/camss/Makefile | 2 +
drivers/media/platform/qcom/camss/camss-csid-680.c | 1 -
.../media/platform/qcom/camss/camss-csid-gen3.c | 1 -
.../media/platform/qcom/camss/camss-csid-gen4.c | 376 ++++++++++++++++++
drivers/media/platform/qcom/camss/camss-csid.h | 11 +-
.../platform/qcom/camss/camss-csiphy-3ph-1-0.c | 124 ++++++
drivers/media/platform/qcom/camss/camss-vfe-gen4.c | 197 ++++++++++
drivers/media/platform/qcom/camss/camss-vfe.c | 9 +-
drivers/media/platform/qcom/camss/camss-vfe.h | 2 +
drivers/media/platform/qcom/camss/camss.c | 360 +++++++++++++++++
drivers/media/platform/qcom/camss/camss.h | 1 +
12 files changed, 1512 insertions(+), 5 deletions(-)
---
base-commit: b25f15a8600145233c948b40cab6d7d57bac3076
change-id: 20260112-kaanapali-camss-73772d44eff7
Best regards,
--
Hangxiang Ma <hangxiang.ma@oss.qualcomm.com>
On 08/05/2026 09:05, Hangxiang Ma wrote: > Add support for the RDI only CAMSS camera driver on Kaanapali. Enabling > RDI path involves adding the support for a set of CSIPHY, CSID and TFE > modules, with each TFE having multiple RDI ports. This hardware > architecture requires 'qdss_debug_xo' clock for CAMNOC to be functional. > > Kaanapali camera subsystem provides: > - 6 x CSIPHY (CSI Physical Layer) > - 3 x TPG (Test Pattern Generator) > - 3 x CSID (CSI Decoder) > - 2 x CSID Lite > - 3 x VFE (Video Front End), 5 RDI per VFE > - 2 x VFE Lite, 4 RDI per VFE Lite > > This series has been tested using the following commands with a > downstream driver for S5KJN5 sensor. > - media-ctl --reset > - media-ctl -V '"msm_csiphy2":0[fmt:SGBRG10/4096x3072]' > - media-ctl -V '"msm_csid0":0[fmt:SGBRG10/4096x3072]' > - media-ctl -V '"msm_vfe0_rdi0":0[fmt:SGBRG10/4096x3072]' > - media-ctl -l '"msm_csiphy2":1->"msm_csid0":0[1]' > - media-ctl -l '"msm_csid0":1->"msm_vfe0_rdi0":0[1]' > - yavta --capture=20 -I -n 5 -f SGBRG10P -s 4096x3072 -F /dev/video0 > > Signed-off-by: Hangxiang Ma <hangxiang.ma@oss.qualcomm.com> > --- > Changes in v13: > - Remove prerequisite dependencies that have been merged upstream > - Remove redundant empty 'regulators' initializers in csid and vfe - bod > - Revert binding from full hardware description to CAMSS-only scope for > modular and incremental development - bod > - Rename icc path names and vfe clock names to drop redundancies - Krzysztof > - Separate port index from VC value in csid_configure_stream(). Previously > vc was used as both the loop iterator and the hardware VC, causing > misconfiguration on RDI path starting from 1 - bod > - Link to v12: https://lore.kernel.org/all/20260112-kaanapali-camss-v12-0-15b7af73401e@oss.qualcomm.com/ > > Changes in v12: > - Add CSIPHY regulator current due to regulator interface changed - bod > - Link to v11: https://lore.kernel.org/r/20260112-kaanapali-camss-v11-0-81e4f59a5d08@oss.qualcomm.com > > Changes in v11: > - Rebase this series due to conflict - bod > - Update binding commit message to align with previous generations > - Link to v10: https://lore.kernel.org/r/20251211-add-support-for-camss-on-kaanapali-v10-0-39e8874dcd27@oss.qualcomm.com > > Changes in v10: > - Update interconnect and CX domain AXI clock names to be consistent with > previous generations - bod > - Update the struct name for csiphy lane register settings to make it reusable > for other compatible chipsets > - Updated power domain names to IFE for consistency - Krzysztof > - Add description for acronyms listed in binding commit message - Dmitry > - Link to v9: https://lore.kernel.org/r/20251208-add-support-for-camss-on-kaanapali-v9-0-3fcd31258415@oss.qualcomm.com > > Changes in v9: > - Updates the names of some of the resources in DT bindings to be consistent > with previous generations and improve the commit its message. The name > changes are also applied to csiphy and vfe camss resource lists - bod > - Link to v8: https://lore.kernel.org/r/20251130-add-support-for-camss-on-kaanapali-v8-0-143a8265e6e8@oss.qualcomm.com > > Changes in v8: > - Change csid and vfe driver file names as 'gen4' to reuse for other SOCs - bod > - Add missing register descriptions to binding and cover letter commit log - bod > - Link to v7: https://lore.kernel.org/r/20251120-add-support-for-camss-on-kaanapali-v7-0-de27f9a67ce6@oss.qualcomm.com > > Changes in v7: > - Add ICP SYS registers to camss binding - bod > - Rename 'is_deferred' to 'reg_update_after_csid_config' to do rup/aup > after csid config to make it clearer and simplify its call path - bod > - Remove unnecessary bitwise AND while configuring image address to bus- bod > - Tidy up a comment and a couple of hex values and csid/vfe - bod > - Link to v6: https://lore.kernel.org/r/20251113-add-support-for-camss-on-kaanapali-v6-0-1e6038785a8e@oss.qualcomm.com > > Changes in v6: > - Modified the bindings to represent the whole of the camera hardware on > KNP than just what is exercised by the CAMSS driver by extending the > descriptions and the properties, the regs, clocks, interrupts, power > domains, iommus etc. In addition, use the word 'vfe' everywhere in the > bindings to be clear that all of those resources are referring to the > same front end modules. - Krzysztof/bod > - Change camss vfe power domain names to align with the binding file > - Link to v5: https://lore.kernel.org/r/20251030-add-support-for-camss-on-kaanapali-v5-0-f8e12bea3d02@oss.qualcomm.com > > Changes in v5: > - Refine v4 change log - Krzysztof > - Fix typo by removing redundant numerical version in kaanapali camss binding > comment description - Krzysztof > - Add missing tags that should be posted with v4 revision - Krzysztof/Andi > - Link to v4: https://lore.kernel.org/r/20251028-add-support-for-camss-on-kaanapali-v4-0-7eb484c89585@oss.qualcomm.com > > Changes in v4: > - Add detailed hardware descriptions and revise message title to follow the > standard comment format for kaanapali camss binding file - Krzysztof > - Format kaanapali camss binding file to keep style consistency, by reverting > power domain name from TFE to IFE and keeping clocks name order as last > generation - Krzysztof > - Separate the 1.2 and 0.9 voltage supply DT flags for each CSIPHY to allow > for arbitrary board design with common or unique supplies to each of the PHYs > in kaanapali camss binding example, based on v2 comments - bod/Vladimir > - Link to v3: https://lore.kernel.org/r/20251023-add-support-for-camss-on-kaanapali-v3-0-02abc9a107bf@oss.qualcomm.com > > Changes in v3: > - Use the name 'ahb' for 'cam_top_ahb' clock in cci binding file - Vladimir > - Reduce and simplify CSIPHY supply, port properties in camss bindings - Vladimir > - Resolve the dependency issues in the camss bindings file using ephemeral > DT nodes - Vladimir/Dmitry > - Update hf mnoc name and bandwidth values for icc module - bod > - Split CSIPHY status macro changes into a separate patch series - bod > - Add clear functions for AUP/RUP update in csid and vfe for consistency - bod > - Clarify why the RUP and AUP register update process is deferred - bod > - Clarify the necessity to keep NRT clocks for vfe - Vijay > - Link to v2: https://lore.kernel.org/r/20251014-add-support-for-camss-on-kaanapali-v2-0-f5745ba2dff9@oss.qualcomm.com > > Changes in v2: > - Aggregate CSI2_RX_CFG0_PHY_SEL_BASE_IDX definition into 'camss-csid.h' - bod > - Remove 'camss-csid-1080.h' and use 'camss-csid-gen3.h' header instead - bod > - Remove redundant code in 'camss-csid-1080.c' and align the namespaces - bod > - Slipt 'camnoc_rt_axi' clock in vfe matching list into a single patch - bod > - Add whole vfe write engine client mappings in comment - bod > - Remove hardcoded image buffer number but use 'CAMSS_INIT_BUF_COUNT' - bod > - Remove SoC specific logic for vfe ops->reg_update and add a new variable > to determine whether ops->reg_update is deferred or not - bod > - Add description to explain why 'qdss_debug_xo' should be retained - bod > - Add the procss node in csiphy register list comment - bod > - Rename the variable 'cmn_status_offset' to 'common_status_offset' and > align this with macro in csiphy register structure to avoid ambiguity - bod > - Aggregate Kaanapali items into the definition that introduced by > 'qcom,qcm2290-cci' in cci binding file - Loic > - Format 'kaanpali-camss.yaml' binding file > - Link to v1: https://lore.kernel.org/r/20250924-knp-cam-v1-0-b72d6deea054@oss.qualcomm.com > > --- > Hangxiang Ma (5): > media: dt-bindings: Add CAMSS device for Kaanapali > media: qcom: camss: Add Kaanapali compatible camss driver > media: qcom: camss: csiphy: Add support for v2.4.0 two-phase CSIPHY > media: qcom: camss: csid: Add support for CSID gen4 > media: qcom: camss: vfe: Add support for VFE gen4 > > .../bindings/media/qcom,kaanapali-camss.yaml | 433 +++++++++++++++++++++ > drivers/media/platform/qcom/camss/Makefile | 2 + > drivers/media/platform/qcom/camss/camss-csid-680.c | 1 - > .../media/platform/qcom/camss/camss-csid-gen3.c | 1 - > .../media/platform/qcom/camss/camss-csid-gen4.c | 376 ++++++++++++++++++ > drivers/media/platform/qcom/camss/camss-csid.h | 11 +- > .../platform/qcom/camss/camss-csiphy-3ph-1-0.c | 124 ++++++ > drivers/media/platform/qcom/camss/camss-vfe-gen4.c | 197 ++++++++++ > drivers/media/platform/qcom/camss/camss-vfe.c | 9 +- > drivers/media/platform/qcom/camss/camss-vfe.h | 2 + > drivers/media/platform/qcom/camss/camss.c | 360 +++++++++++++++++ > drivers/media/platform/qcom/camss/camss.h | 1 + > 12 files changed, 1512 insertions(+), 5 deletions(-) > --- > base-commit: b25f15a8600145233c948b40cab6d7d57bac3076 > change-id: 20260112-kaanapali-camss-73772d44eff7 > > Best regards, > -- > Hangxiang Ma <hangxiang.ma@oss.qualcomm.com> > > This series doesn't apply. Please resend when fixed. --- bod
© 2016 - 2026 Red Hat, Inc.