* [PATCH v4 0/3] Add CAMSS support for Qualcomm Glymur
@ 2026-09-25 5:48 Nihal Kumar Gupta
2026-09-25 5:48 ` [PATCH v4 1/3] dt-bindings: phy: qcom,x1e80100-csi2-phy: Add Glymur compatible Nihal Kumar Gupta
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Nihal Kumar Gupta @ 2026-09-25 5:48 UTC (permalink / raw)
To: Bryan O'Donoghue, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Bryan O'Donoghue, Vladimir Zapolskiy,
Loic Poulain, Nihal Kumar Gupta, Vinod Koul, Neil Armstrong,
Manivannan Sadhasivam, Mauro Carvalho Chehab
Cc: linux-arm-msm, linux-media, devicetree, linux-kernel, linux-phy,
Suresh Vankadara, Vikram Sharma, Krzysztof Kozlowski
This series adds Camera Subsystem (CAMSS) support for the Qualcomm
Glymur SoC.
Glymur's camera hardware topology:
- 3x CSIPHY (CSI Physical Layer)
- 3x CSID + 2x CSID Lite (CSI Decoder)
- 3x TPG (Test Pattern Generator)
- 2x VFE + 2x VFE Lite (Video Front End)
The CSIPHY block is the same hardware version as x1e80100 (3ph-1-0),
differing only in instance count (3 vs 4). TPG, CSID, VFE, CSID wrapper,
and ICC resources are fully shared with x1e80100.
Used following tools for the sanity check of these changes.
- make -j32 W=1
- checkpatch.pl
- make DT_CHECKER_FLAGS=-m W=1 DT_SCHEMA_FILES=i2c/qcom,i2c-cci.yaml dt_binding_check
- make DT_CHECKER_FLAGS=-m DT_SCHEMA_FILES=media/qcom,glymur-camss.yaml dt_binding_check W=1
---
Changes in v4:
- Rebase on top of linux-next (20260924)
- Drop dependency merged in linux-next
- Collected Krzysztof Reviewed-By
- Link to v3: https://lore.kernel.org/r/20260917-glymur_camss-v3-0-1d0e2d47ad2e@oss.qualcomm.com
Changes in v3:
- Dropped PMIC changes; will be submitted as a separate series
- Dropped Hamoa from commit log - Bryan
- Collected Bryan Reviewed-By
- Link to v2: https://lore.kernel.org/r/20260907-glymur_camss-v2-0-75f7982dc983@oss.qualcomm.com
Changes in v2:
- Glymur is now defined exclusively with the new PHY API architecture.
CSIPHYs are standalone qcom,glymur-csi2-phy nodes falling back to
qcom,x1e80100-csi2-phy. The CSIPHY supplies and register regions are
removed from the CAMSS binding; they live in the PHY nodes.
- CAMSS_GLYMUR enum is dropped. Glymur wires directly to
x1e80100_resources in the OF match table. The CSIPHY instance
difference (3 vs 4) is expressed entirely in DT - Bryan
- The incomplete compatible + resource enumeration from v1 are collapsed
into a single self-contained patch. The pointless VFE enum patch is
dropped - Krzysztof, Bryan
- Add dt-bindings, MFD and regulator support for PM8010 I2C PMIC with
qcom,pm8010-i2c compatible; qcom,pm8008 is not equivalent - Konrad
- Drop dt-bindings: i2c: qcom-cci: Document Glymur compatible; already picked
by Andi Shyti into her i2c tree (now in linux-next as 7c9474bd4a8d)
- Link to v1: https://lore.kernel.org/all/20260529-glymur_camss-v1-0-bee535396d22@oss.qualcomm.com/
Signed-off-by: Nihal Kumar Gupta <nihal.gupta@oss.qualcomm.com>
---
Nihal Kumar Gupta (3):
dt-bindings: phy: qcom,x1e80100-csi2-phy: Add Glymur compatible
dt-bindings: media: qcom,glymur-camss: Add Glymur CAMSS
media: qcom: camss: Add Glymur compatible
.../bindings/media/qcom,glymur-camss.yaml | 300 +++++++++++++++++++++
.../bindings/phy/qcom,x1e80100-csi2-phy.yaml | 6 +-
drivers/media/platform/qcom/camss/camss.c | 1 +
3 files changed, 306 insertions(+), 1 deletion(-)
---
base-commit: 4c253ac4b29b8c6cc6fdef8f92d4facde62e63b9
change-id: 20260529-glymur_camss-27af71b1d3d3
Best regards,
--
Nihal Kumar Gupta <nihal.gupta@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v4 1/3] dt-bindings: phy: qcom,x1e80100-csi2-phy: Add Glymur compatible
2026-09-25 5:48 [PATCH v4 0/3] Add CAMSS support for Qualcomm Glymur Nihal Kumar Gupta
@ 2026-09-25 5:48 ` Nihal Kumar Gupta
2026-09-25 5:48 ` [PATCH v4 2/3] dt-bindings: media: qcom,glymur-camss: Add Glymur CAMSS Nihal Kumar Gupta
2026-09-25 5:48 ` [PATCH v4 3/3] media: qcom: camss: Add Glymur compatible Nihal Kumar Gupta
2 siblings, 0 replies; 8+ messages in thread
From: Nihal Kumar Gupta @ 2026-09-25 5:48 UTC (permalink / raw)
To: Bryan O'Donoghue, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Bryan O'Donoghue, Vladimir Zapolskiy,
Loic Poulain, Nihal Kumar Gupta, Vinod Koul, Neil Armstrong,
Manivannan Sadhasivam, Mauro Carvalho Chehab
Cc: linux-arm-msm, linux-media, devicetree, linux-kernel, linux-phy,
Suresh Vankadara, Vikram Sharma, Krzysztof Kozlowski
Glymur integrates the same CSI2 PHY IP as X1E80100. Add
qcom,glymur-csi2-phy falling back to qcom,x1e80100-csi2-phy.
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Signed-off-by: Nihal Kumar Gupta <nihal.gupta@oss.qualcomm.com>
---
Documentation/devicetree/bindings/phy/qcom,x1e80100-csi2-phy.yaml | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/phy/qcom,x1e80100-csi2-phy.yaml b/Documentation/devicetree/bindings/phy/qcom,x1e80100-csi2-phy.yaml
index dc64af97da6c659628729a758316353798aa98db..1f1e2a4993b2aff9a1519640bc4e04ca98fa4baa 100644
--- a/Documentation/devicetree/bindings/phy/qcom,x1e80100-csi2-phy.yaml
+++ b/Documentation/devicetree/bindings/phy/qcom,x1e80100-csi2-phy.yaml
@@ -16,7 +16,11 @@ description:
properties:
compatible:
- const: qcom,x1e80100-csi2-phy
+ oneOf:
+ - const: qcom,x1e80100-csi2-phy
+ - items:
+ - const: qcom,glymur-csi2-phy
+ - const: qcom,x1e80100-csi2-phy
reg:
maxItems: 1
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v4 2/3] dt-bindings: media: qcom,glymur-camss: Add Glymur CAMSS
2026-09-25 5:48 [PATCH v4 0/3] Add CAMSS support for Qualcomm Glymur Nihal Kumar Gupta
2026-09-25 5:48 ` [PATCH v4 1/3] dt-bindings: phy: qcom,x1e80100-csi2-phy: Add Glymur compatible Nihal Kumar Gupta
@ 2026-09-25 5:48 ` Nihal Kumar Gupta
2026-09-25 5:58 ` sashiko-bot
2026-09-25 5:48 ` [PATCH v4 3/3] media: qcom: camss: Add Glymur compatible Nihal Kumar Gupta
2 siblings, 1 reply; 8+ messages in thread
From: Nihal Kumar Gupta @ 2026-09-25 5:48 UTC (permalink / raw)
To: Bryan O'Donoghue, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Bryan O'Donoghue, Vladimir Zapolskiy,
Loic Poulain, Nihal Kumar Gupta, Vinod Koul, Neil Armstrong,
Manivannan Sadhasivam, Mauro Carvalho Chehab
Cc: linux-arm-msm, linux-media, devicetree, linux-kernel, linux-phy,
Suresh Vankadara, Vikram Sharma, Krzysztof Kozlowski
Glymur uses only the new PHY API via standalone phy@ child nodes,
so per-CSIPHY clocks, interrupts and supplies are absent here.
X1E80100 has four CSIPHY instances while Glymur has three
(CSIPHY0, CSIPHY1, CSIPHY4).
Co-developed-by: Vikram Sharma <vikram.sharma@oss.qualcomm.com>
Signed-off-by: Vikram Sharma <vikram.sharma@oss.qualcomm.com>
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Signed-off-by: Nihal Kumar Gupta <nihal.gupta@oss.qualcomm.com>
---
.../bindings/media/qcom,glymur-camss.yaml | 300 +++++++++++++++++++++
1 file changed, 300 insertions(+)
diff --git a/Documentation/devicetree/bindings/media/qcom,glymur-camss.yaml b/Documentation/devicetree/bindings/media/qcom,glymur-camss.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..a0b77edc212319fad69113f3d55ca24f184d4b23
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/qcom,glymur-camss.yaml
@@ -0,0 +1,300 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/qcom,glymur-camss.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Glymur Camera Subsystem (CAMSS)
+
+maintainers:
+ - Nihal Kumar Gupta <nihal.gupta@oss.qualcomm.com>
+
+description:
+ The CAMSS IP is a CSI decoder and ISP present on Qualcomm platforms.
+
+properties:
+ compatible:
+ const: qcom,glymur-camss
+
+ reg:
+ maxItems: 13
+
+ reg-names:
+ items:
+ - const: csid_wrapper
+ - const: csid0
+ - const: csid1
+ - const: csid2
+ - const: csid_lite0
+ - const: csid_lite1
+ - const: csitpg0
+ - const: csitpg1
+ - const: csitpg2
+ - const: vfe0
+ - const: vfe1
+ - const: vfe_lite0
+ - const: vfe_lite1
+
+ clocks:
+ maxItems: 20
+
+ clock-names:
+ items:
+ - const: camnoc_nrt_axi
+ - const: camnoc_rt_axi
+ - const: core_ahb
+ - const: cpas_ahb
+ - const: cpas_fast_ahb
+ - const: cpas_vfe0
+ - const: cpas_vfe1
+ - const: cpas_vfe_lite
+ - const: csid
+ - const: csid_csiphy_rx
+ - const: gcc_axi_hf
+ - const: gcc_axi_sf
+ - const: vfe0
+ - const: vfe0_fast_ahb
+ - const: vfe1
+ - const: vfe1_fast_ahb
+ - const: vfe_lite
+ - const: vfe_lite_ahb
+ - const: vfe_lite_cphy_rx
+ - const: vfe_lite_csid
+
+ interrupts:
+ maxItems: 9
+
+ interrupt-names:
+ items:
+ - const: csid0
+ - const: csid1
+ - const: csid2
+ - const: csid_lite0
+ - const: csid_lite1
+ - const: vfe0
+ - const: vfe1
+ - const: vfe_lite0
+ - const: vfe_lite1
+
+ interconnects:
+ maxItems: 4
+
+ interconnect-names:
+ items:
+ - const: ahb
+ - const: hf_mnoc
+ - const: sf_mnoc
+ - const: sf_icp_mnoc
+
+ iommus:
+ items:
+ - description: S1 HLOS IFE and IFE_LITE non-protected
+
+ power-domains:
+ items:
+ - description: IFE0 GDSC - Image Front End, Global Distributed Switch Controller.
+ - description: IFE1 GDSC - Image Front End, Global Distributed Switch Controller.
+ - description: Titan Top GDSC - Titan ISP Block, Global Distributed Switch Controller.
+
+ power-domain-names:
+ items:
+ - const: ife0
+ - const: ife1
+ - const: top
+
+ ports:
+ $ref: /schemas/graph.yaml#/properties/ports
+
+ description:
+ CSI input ports.
+
+ patternProperties:
+ "^port@[0-3]$":
+ $ref: /schemas/graph.yaml#/$defs/port-base
+ unevaluatedProperties: false
+
+ description:
+ Input port for receiving CSI data.
+
+ properties:
+ endpoint:
+ $ref: video-interfaces.yaml#
+ unevaluatedProperties: false
+
+ properties:
+ data-lanes:
+ minItems: 1
+ maxItems: 4
+
+required:
+ - compatible
+ - reg
+ - reg-names
+ - clocks
+ - clock-names
+ - interrupts
+ - interrupt-names
+ - interconnects
+ - interconnect-names
+ - iommus
+ - power-domains
+ - power-domain-names
+ - ports
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/clock/qcom,glymur-gcc.h>
+ #include <dt-bindings/clock/qcom,glymur-camcc.h>
+ #include <dt-bindings/interconnect/qcom,glymur-rpmh.h>
+ #include <dt-bindings/interconnect/qcom,icc.h>
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+ #include <dt-bindings/power/qcom-rpmpd.h>
+
+ soc {
+ #address-cells = <2>;
+ #size-cells = <2>;
+
+ camss: isp@acb6000 {
+ compatible = "qcom,glymur-camss";
+
+ reg = <0x0 0x0acb6000 0x0 0x1000>,
+ <0x0 0x0acb7000 0x0 0x2000>,
+ <0x0 0x0acb9000 0x0 0x2000>,
+ <0x0 0x0acbb000 0x0 0x2000>,
+ <0x0 0x0acc6000 0x0 0x1000>,
+ <0x0 0x0acca000 0x0 0x1000>,
+ <0x0 0x0acf6000 0x0 0x1000>,
+ <0x0 0x0acf7000 0x0 0x1000>,
+ <0x0 0x0acf8000 0x0 0x1000>,
+ <0x0 0x0ac62000 0x0 0xf000>,
+ <0x0 0x0ac71000 0x0 0xf000>,
+ <0x0 0x0acc7000 0x0 0x2000>,
+ <0x0 0x0accb000 0x0 0x2000>;
+ reg-names = "csid_wrapper",
+ "csid0",
+ "csid1",
+ "csid2",
+ "csid_lite0",
+ "csid_lite1",
+ "csitpg0",
+ "csitpg1",
+ "csitpg2",
+ "vfe0",
+ "vfe1",
+ "vfe_lite0",
+ "vfe_lite1";
+
+ clocks = <&camcc CAM_CC_CAMNOC_AXI_NRT_CLK>,
+ <&camcc CAM_CC_CAMNOC_AXI_RT_CLK>,
+ <&camcc CAM_CC_CORE_AHB_CLK>,
+ <&camcc CAM_CC_CPAS_AHB_CLK>,
+ <&camcc CAM_CC_CPAS_FAST_AHB_CLK>,
+ <&camcc CAM_CC_CPAS_IFE_0_CLK>,
+ <&camcc CAM_CC_CPAS_IFE_1_CLK>,
+ <&camcc CAM_CC_CPAS_IFE_LITE_CLK>,
+ <&camcc CAM_CC_CSID_CLK>,
+ <&camcc CAM_CC_CSID_CSIPHY_RX_CLK>,
+ <&gcc GCC_CAMERA_HF_AXI_CLK>,
+ <&gcc GCC_CAMERA_SF_AXI_CLK>,
+ <&camcc CAM_CC_IFE_0_CLK>,
+ <&camcc CAM_CC_IFE_0_FAST_AHB_CLK>,
+ <&camcc CAM_CC_IFE_1_CLK>,
+ <&camcc CAM_CC_IFE_1_FAST_AHB_CLK>,
+ <&camcc CAM_CC_IFE_LITE_CLK>,
+ <&camcc CAM_CC_IFE_LITE_AHB_CLK>,
+ <&camcc CAM_CC_IFE_LITE_CPHY_RX_CLK>,
+ <&camcc CAM_CC_IFE_LITE_CSID_CLK>;
+ clock-names = "camnoc_nrt_axi",
+ "camnoc_rt_axi",
+ "core_ahb",
+ "cpas_ahb",
+ "cpas_fast_ahb",
+ "cpas_vfe0",
+ "cpas_vfe1",
+ "cpas_vfe_lite",
+ "csid",
+ "csid_csiphy_rx",
+ "gcc_axi_hf",
+ "gcc_axi_sf",
+ "vfe0",
+ "vfe0_fast_ahb",
+ "vfe1",
+ "vfe1_fast_ahb",
+ "vfe_lite",
+ "vfe_lite_ahb",
+ "vfe_lite_cphy_rx",
+ "vfe_lite_csid";
+
+ interrupts = <GIC_SPI 601 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 603 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 431 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 457 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 436 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 270 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 271 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 458 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 860 IRQ_TYPE_EDGE_RISING>;
+ interrupt-names = "csid0",
+ "csid1",
+ "csid2",
+ "csid_lite0",
+ "csid_lite1",
+ "vfe0",
+ "vfe1",
+ "vfe_lite0",
+ "vfe_lite1";
+
+ interconnects = <&hsc_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
+ &config_noc SLAVE_CAMERA_CFG QCOM_ICC_TAG_ACTIVE_ONLY>,
+ <&mmss_noc MASTER_CAMNOC_HF QCOM_ICC_TAG_ALWAYS
+ &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
+ <&mmss_noc MASTER_CAMNOC_SF QCOM_ICC_TAG_ALWAYS
+ &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
+ <&mmss_noc MASTER_CAMNOC_ICP QCOM_ICC_TAG_ALWAYS
+ &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+ interconnect-names = "ahb",
+ "hf_mnoc",
+ "sf_mnoc",
+ "sf_icp_mnoc";
+
+ iommus = <&apps_smmu 0x800 0x20>;
+
+ power-domains = <&camcc CAM_CC_IFE_0_GDSC>,
+ <&camcc CAM_CC_IFE_1_GDSC>,
+ <&camcc CAM_CC_TITAN_TOP_GDSC>;
+ power-domain-names = "ife0",
+ "ife1",
+ "top";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+ camss_csiphy0_ep: endpoint {
+ data-lanes = <1 2 3 4>;
+ remote-endpoint = <&csiphy0_out>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+ camss_csiphy1_ep: endpoint {
+ data-lanes = <1 2 3 4>;
+ remote-endpoint = <&csiphy1_out>;
+ };
+ };
+
+ port@3 {
+ reg = <3>;
+ camss_csiphy4_ep: endpoint {
+ data-lanes = <1 2 3 4>;
+ remote-endpoint = <&csiphy4_out>;
+ };
+ };
+ };
+ };
+ };
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v4 3/3] media: qcom: camss: Add Glymur compatible
2026-09-25 5:48 [PATCH v4 0/3] Add CAMSS support for Qualcomm Glymur Nihal Kumar Gupta
2026-09-25 5:48 ` [PATCH v4 1/3] dt-bindings: phy: qcom,x1e80100-csi2-phy: Add Glymur compatible Nihal Kumar Gupta
2026-09-25 5:48 ` [PATCH v4 2/3] dt-bindings: media: qcom,glymur-camss: Add Glymur CAMSS Nihal Kumar Gupta
@ 2026-09-25 5:48 ` Nihal Kumar Gupta
2026-09-25 6:01 ` sashiko-bot
2 siblings, 1 reply; 8+ messages in thread
From: Nihal Kumar Gupta @ 2026-09-25 5:48 UTC (permalink / raw)
To: Bryan O'Donoghue, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Bryan O'Donoghue, Vladimir Zapolskiy,
Loic Poulain, Nihal Kumar Gupta, Vinod Koul, Neil Armstrong,
Manivannan Sadhasivam, Mauro Carvalho Chehab
Cc: linux-arm-msm, linux-media, devicetree, linux-kernel, linux-phy,
Suresh Vankadara, Vikram Sharma
Glymur's camera subsystem hardware is a functional subset of X1E80100.
TPG, CSID, VFE, CSID wrapper and ICC resources are shared; Glymur has
three CSIPHY instances versus X1E80100's four.
qcom,x1e80100-camss is not used as a fallback compatible since it is
already claimed by its own binding schema, causing a duplicate
compatible warning in the DT schema checker.
Signed-off-by: Nihal Kumar Gupta <nihal.gupta@oss.qualcomm.com>
---
drivers/media/platform/qcom/camss/camss.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/platform/qcom/camss/camss.c
index 23f3cc30a15a5e098162bea98ba69fa636abdefb..9954a99981004590d34c722337bb6510fe759699 100644
--- a/drivers/media/platform/qcom/camss/camss.c
+++ b/drivers/media/platform/qcom/camss/camss.c
@@ -5751,6 +5751,7 @@ static const struct of_device_id camss_dt_match[] = {
{ .compatible = "qcom,sm8550-camss", .data = &sm8550_resources },
{ .compatible = "qcom,sm8650-camss", .data = &sm8650_resources },
{ .compatible = "qcom,x1e80100-camss", .data = &x1e80100_resources },
+ { .compatible = "qcom,glymur-camss", .data = &x1e80100_resources },
{ }
};
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v4 2/3] dt-bindings: media: qcom,glymur-camss: Add Glymur CAMSS
2026-09-25 5:48 ` [PATCH v4 2/3] dt-bindings: media: qcom,glymur-camss: Add Glymur CAMSS Nihal Kumar Gupta
@ 2026-09-25 5:58 ` sashiko-bot
2026-09-25 6:12 ` Nihal Kumar Gupta
0 siblings, 1 reply; 8+ messages in thread
From: sashiko-bot @ 2026-09-25 5:58 UTC (permalink / raw)
To: Nihal Kumar Gupta
Cc: vkoul, neil.armstrong, olteanv, devicetree, linux-phy, conor+dt,
media-ci, robh
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] dt-bindings: validation failure due to missing phy@ child nodes and cell properties
--
commit 2c100de42ea1bb8c2267da0512e16ed0f56b5334
Author: Nihal Kumar Gupta <nihal.gupta@oss.qualcomm.com>
dt-bindings: media: qcom,glymur-camss: Add Glymur CAMSS
This commit introduces the device tree binding for the Qualcomm Glymur Camera
Subsystem (CAMSS). It specifies the required resources and ports. The commit
message indicates that Glymur uses the new PHY API via standalone phy@ child
nodes.
> diff --git a/Documentation/devicetree/bindings/media/qcom,glymur-camss.yaml b/Documentation/devicetree/bindings/media/qcom,glymur-camss.yaml
> new file mode 100644
> index 0000000000000..a0b77edc21231
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/media/qcom,glymur-camss.yaml
[ ... ]
> +required:
> + - compatible
> + - reg
> + - reg-names
> + - clocks
> + - clock-names
> + - interrupts
> + - interrupt-names
> + - interconnects
> + - interconnect-names
> + - iommus
> + - power-domains
> + - power-domain-names
> + - ports
> +
> +additionalProperties: false
[Severity: Medium]
The commit message mentions that Glymur uses the new PHY API via standalone
phy@ child nodes. Since additionalProperties is set to false here, and there
are no definitions for phy@ child nodes or their associated properties like
#address-cells, #size-cells, or ranges, will this cause dt-validate to reject
device trees that implement these child nodes?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260925-glymur_camss-v4-0-d7c2983d6d7b@oss.qualcomm.com?part=2
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v4 3/3] media: qcom: camss: Add Glymur compatible
2026-09-25 5:48 ` [PATCH v4 3/3] media: qcom: camss: Add Glymur compatible Nihal Kumar Gupta
@ 2026-09-25 6:01 ` sashiko-bot
2026-09-25 6:16 ` Nihal Kumar Gupta
0 siblings, 1 reply; 8+ messages in thread
From: sashiko-bot @ 2026-09-25 6:01 UTC (permalink / raw)
To: Nihal Kumar Gupta
Cc: conor+dt, linux-phy, olteanv, media-ci, vkoul, robh, devicetree,
neil.armstrong
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] media: qcom: camss: probe failure on Glymur due to hardcoded CSIPHY resources
--
commit 739b00bed07b519e1dc22bfdfaf2147620cb9dde
Author: Nihal Kumar Gupta <nihal.gupta@oss.qualcomm.com>
media: qcom: camss: Add Glymur compatible
This commit adds a new compatible string "qcom,glymur-camss" for the Glymur
platform. It maps this compatible to x1e80100_resources, since Glymur's
camera subsystem is a functional subset of X1E80100.
> diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/platform/qcom/camss/camss.c
> index 23f3cc30a15a5..9954a99981004 100644
> --- a/drivers/media/platform/qcom/camss/camss.c
> +++ b/drivers/media/platform/qcom/camss/camss.c
> @@ -5751,6 +5751,7 @@ static const struct of_device_id camss_dt_match[] = {
> { .compatible = "qcom,sm8550-camss", .data = &sm8550_resources },
> { .compatible = "qcom,sm8650-camss", .data = &sm8650_resources },
> { .compatible = "qcom,x1e80100-camss", .data = &x1e80100_resources },
> + { .compatible = "qcom,glymur-camss", .data = &x1e80100_resources },
[Severity: High]
Does this hardcoded resource mapping cause the probe to fail on Glymur hardware?
The commit message notes that Glymur only has three CSIPHY instances,
while X1E80100 has four. Because x1e80100_resources specifies 4 CSIPHY
instances, camss_probe() -> camss_init_subdevices() will unconditionally
execute its initialization loop 4 times:
camss_init_subdevices() {
...
for (i = 0; i < camss->res->csiphy_num; i++) {
ret = msm_csiphy_subdev_init(camss, &camss->csiphy[i],
...
}
During the iteration for the missing instance, msm_csiphy_subdev_init() will
attempt to acquire memory and interrupt resources via
devm_platform_ioremap_resource_byname():
msm_csiphy_subdev_init() {
...
csiphy->base = devm_platform_ioremap_resource_byname(pdev, res->reg[0]);
if (IS_ERR(csiphy->base))
return PTR_ERR(csiphy->base);
...
}
When this lookup fails on Glymur due to the missing "csiphy2" instance,
won't it propagate an -EINVAL error back to camss_probe(), causing the
entire driver initialization to abort?
> { }
> };
>
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260925-glymur_camss-v4-0-d7c2983d6d7b@oss.qualcomm.com?part=3
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v4 2/3] dt-bindings: media: qcom,glymur-camss: Add Glymur CAMSS
2026-09-25 5:58 ` sashiko-bot
@ 2026-09-25 6:12 ` Nihal Kumar Gupta
0 siblings, 0 replies; 8+ messages in thread
From: Nihal Kumar Gupta @ 2026-09-25 6:12 UTC (permalink / raw)
To: sashiko-reviews
Cc: vkoul, neil.armstrong, olteanv, devicetree, linux-phy, conor+dt,
media-ci, robh
On 25-09-2026 11:28, sashiko-bot@kernel.org wrote:
>> +
>> +additionalProperties: false
> [Severity: Medium]
> The commit message mentions that Glymur uses the new PHY API via standalone
> phy@ child nodes. Since additionalProperties is set to false here, and there
> are no definitions for phy@ child nodes or their associated properties like
> #address-cells, #size-cells, or ranges, will this cause dt-validate to reject
> device trees that implement these child nodes?
The phy@ nodes are standalone nodes— not children of the CAMSS node.
CAMSS connects to them via the graph framework (ports/endpoints/remote-endpoint).
The ports property is defined via $ref:/schemas/graph.yaml#/properties/ports,
so additionalProperties: false is correct and won't cause dt-validate failures.
--
Regards,
Nihal Kumar Gupta
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v4 3/3] media: qcom: camss: Add Glymur compatible
2026-09-25 6:01 ` sashiko-bot
@ 2026-09-25 6:16 ` Nihal Kumar Gupta
0 siblings, 0 replies; 8+ messages in thread
From: Nihal Kumar Gupta @ 2026-09-25 6:16 UTC (permalink / raw)
To: sashiko-reviews
Cc: conor+dt, linux-phy, olteanv, media-ci, vkoul, robh, devicetree,
neil.armstrong
On 25-09-2026 11:31, sashiko-bot@kernel.org wrote:
> Does this hardcoded resource mapping cause the probe to fail on Glymur hardware?
>
> The commit message notes that Glymur only has three CSIPHY instances,
> while X1E80100 has four. Because x1e80100_resources specifies 4 CSIPHY
> instances, camss_probe() -> camss_init_subdevices() will unconditionally
> execute its initialization loop 4 times:
This is addressed in below driver patches 5 and 6 and can be picked separately:
https://lore.kernel.org/all/20260918-b4-linux-next-25-03-13-dtsi-x1e80100-camss-v20-0-dc244e124e71@linaro.org/
---
Regards,
Nihal Kumar Gupta
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2026-09-25 6:16 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-25 5:48 [PATCH v4 0/3] Add CAMSS support for Qualcomm Glymur Nihal Kumar Gupta
2026-09-25 5:48 ` [PATCH v4 1/3] dt-bindings: phy: qcom,x1e80100-csi2-phy: Add Glymur compatible Nihal Kumar Gupta
2026-09-25 5:48 ` [PATCH v4 2/3] dt-bindings: media: qcom,glymur-camss: Add Glymur CAMSS Nihal Kumar Gupta
2026-09-25 5:58 ` sashiko-bot
2026-09-25 6:12 ` Nihal Kumar Gupta
2026-09-25 5:48 ` [PATCH v4 3/3] media: qcom: camss: Add Glymur compatible Nihal Kumar Gupta
2026-09-25 6:01 ` sashiko-bot
2026-09-25 6:16 ` Nihal Kumar Gupta
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox