* [PATCH v4 0/5] Add CCI and imx577 sensor support for Talos evk
@ 2026-01-22 10:40 Wenmeng Liu
2026-01-22 10:40 ` [PATCH v4 1/5] arm64: dts: qcom: talos: Add camss node Wenmeng Liu
` (5 more replies)
0 siblings, 6 replies; 8+ messages in thread
From: Wenmeng Liu @ 2026-01-22 10:40 UTC (permalink / raw)
To: Loic Poulain, Andi Shyti, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Bjorn Andersson, Konrad Dybcio, Robert Foss,
Todor Tomov, Bryan O'Donoghue, Vladimir Zapolskiy, Shawn Guo,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam
Cc: linux-i2c, linux-arm-msm, devicetree, linux-kernel, linux-media,
imx, linux-arm-kernel, Wenmeng Liu, Konrad Dybcio,
Dmitry Baryshkov
Talos EVK is based on the Qualcomm SM6150 SoC.
It lacks a camera sensor in its default configuration.
This series adds CCI support and enables the IMX577 sensor via CSIPHY1
through device tree overlay.
We have tested IMX577 Sensor on CCI1 with following commands:
- media-ctl -d /dev/media0 --reset
- media-ctl -d /dev/media0 -V '"imx577 1-001a":0[fmt:SRGGB10/4056x3040 field:none]'
- media-ctl -d /dev/media0 -V '"msm_csiphy1":0[fmt:SRGGB10/4056x3040]'
- media-ctl -d /dev/media0 -V '"msm_csid0":0[fmt:SRGGB10/4056x3040]'
- media-ctl -d /dev/media0 -V '"msm_vfe0_rdi0":0[fmt:SRGGB10/4056x3040]'
- media-ctl -d /dev/media0 -l '"msm_csiphy1":1->"msm_csid0":0[1]'
- media-ctl -d /dev/media0 -l '"msm_csid0":1->"msm_vfe0_rdi0":0[1]'
- yavta -B capture-mplane -n 5 -f SRGGB10P -s 4056x3040 -F /dev/video0 --capture=5
This patch series depends on patch series:
https://lore.kernel.org/lkml/20260114100043.1310164-1-tessolveupstream@gmail.com/
Changes in v4:
- Add CCI properties to the existing portfolio. -- Loic, Krzysztof
- Modify the incorrect dtb install configuration. -- Vladimir
- Link to v3: https://lore.kernel.org/r/20260115-sm6150_evk-v3-0-81526dd15543@oss.qualcomm.com
Changes in v3:
- Add generic names for the CCI clock. -- Loic, Krzysztof
- Split cci node, removed double space. -- Dmitry
- Rename camera dtso name, add detailed description. -- Dmitry,
Vladimir, Bryan
- Add dtbo-y for dtso. -- Rob
- Interrupts cell change adaptation.
- Delete cci sleep pinctrl state.
- Link to v2: https://lore.kernel.org/r/20260106-sm6150_evk-v2-0-bb112cb83d74@oss.qualcomm.com
Changes in v2:
- Modify the CCI dts style and commit msg. - Konrad
- Split mclk change as a separate patch. - Vladimir
- Remove clock-lanes. - Vladimir
- Add mclk3(GPIO31). - Vladimir
- Link to v1:
https://lore.kernel.org/all/20251222-sm6150_evk-v1-0-4d260a31c00d@oss.qualcomm.com/
---
Wenmeng Liu (5):
arm64: dts: qcom: talos: Add camss node
dt-bindings: i2c: qcom-cci: Document sm6150 compatible
arm64: dts: qcom: talos: Add CCI definitions
arm64: dts: qcom: talos: Add camera MCLK pinctrl
arm64: dts: qcom: talos-evk-camera: Add DT overlay
.../devicetree/bindings/i2c/qcom,i2c-cci.yaml | 2 +
arch/arm64/boot/dts/qcom/Makefile | 3 +
.../boot/dts/qcom/talos-evk-camera-imx577.dtso | 63 +++++
arch/arm64/boot/dts/qcom/talos.dtsi | 279 +++++++++++++++++++++
4 files changed, 347 insertions(+)
---
base-commit: c8a4a774a9b0d2c86593492625874e27e9cbc9a9
change-id: 20251222-sm6150_evk-8ebed9e9f3bc
prerequisite-message-id:20260114100043.1310164-1-tessolveupstream@gmail.com
prerequisite-patch-id: 065fda916d7faca61113e1230fcc0ce3916442fe
prerequisite-patch-id: eddd1b1714715707d386608e4f9b24396f51cd44
prerequisite-patch-id: ae777d7e17e32afc36fd1f741bb57ff0d3556841
Best regards,
--
Wenmeng Liu <wenmeng.liu@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v4 1/5] arm64: dts: qcom: talos: Add camss node
2026-01-22 10:40 [PATCH v4 0/5] Add CCI and imx577 sensor support for Talos evk Wenmeng Liu
@ 2026-01-22 10:40 ` Wenmeng Liu
2026-01-22 10:40 ` [PATCH v4 2/5] dt-bindings: i2c: qcom-cci: Document sm6150 compatible Wenmeng Liu
` (4 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Wenmeng Liu @ 2026-01-22 10:40 UTC (permalink / raw)
To: Loic Poulain, Andi Shyti, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Bjorn Andersson, Konrad Dybcio, Robert Foss,
Todor Tomov, Bryan O'Donoghue, Vladimir Zapolskiy, Shawn Guo,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam
Cc: linux-i2c, linux-arm-msm, devicetree, linux-kernel, linux-media,
imx, linux-arm-kernel, Wenmeng Liu
Add node for the SM6150 camera subsystem.
Reviewed-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Wenmeng Liu <wenmeng.liu@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/talos.dtsi | 200 ++++++++++++++++++++++++++++++++++++
1 file changed, 200 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/talos.dtsi b/arch/arm64/boot/dts/qcom/talos.dtsi
index 8491a6269c32e679faf0e4a40b451432ccd89237..3e1d85b6eacb90b48496ddfee2db27c586f3331e 100644
--- a/arch/arm64/boot/dts/qcom/talos.dtsi
+++ b/arch/arm64/boot/dts/qcom/talos.dtsi
@@ -3789,6 +3789,206 @@ videocc: clock-controller@ab00000 {
#power-domain-cells = <1>;
};
+ camss: isp@acb3000 {
+ compatible = "qcom,sm6150-camss";
+
+ reg = <0x0 0x0acb3000 0x0 0x1000>,
+ <0x0 0x0acba000 0x0 0x1000>,
+ <0x0 0x0acc8000 0x0 0x1000>,
+ <0x0 0x0ac65000 0x0 0x1000>,
+ <0x0 0x0ac66000 0x0 0x1000>,
+ <0x0 0x0ac67000 0x0 0x1000>,
+ <0x0 0x0acaf000 0x0 0x4000>,
+ <0x0 0x0acb6000 0x0 0x4000>,
+ <0x0 0x0acc4000 0x0 0x4000>,
+ <0x0 0x0ac6f000 0x0 0x3000>,
+ <0x0 0x0ac42000 0x0 0x5000>,
+ <0x0 0x0ac48000 0x0 0x1000>,
+ <0x0 0x0ac40000 0x0 0x1000>,
+ <0x0 0x0ac18000 0x0 0x3000>,
+ <0x0 0x0ac00000 0x0 0x6000>,
+ <0x0 0x0ac10000 0x0 0x8000>,
+ <0x0 0x0ac87000 0x0 0x3000>,
+ <0x0 0x0ac52000 0x0 0x4000>,
+ <0x0 0x0ac4e000 0x0 0x4000>,
+ <0x0 0x0ac6b000 0x0 0x0a00>;
+ reg-names = "csid0",
+ "csid1",
+ "csid_lite",
+ "csiphy0",
+ "csiphy1",
+ "csiphy2",
+ "vfe0",
+ "vfe1",
+ "vfe_lite",
+ "bps",
+ "camnoc",
+ "cpas_cdm",
+ "cpas_top",
+ "icp_csr",
+ "icp_qgic",
+ "icp_sierra",
+ "ipe0",
+ "jpeg_dma",
+ "jpeg_enc",
+ "lrme";
+
+ clocks = <&gcc GCC_CAMERA_AHB_CLK>,
+ <&gcc GCC_CAMERA_HF_AXI_CLK>,
+ <&camcc CAM_CC_CAMNOC_AXI_CLK>,
+ <&camcc CAM_CC_CPAS_AHB_CLK>,
+ <&camcc CAM_CC_CSIPHY0_CLK>,
+ <&camcc CAM_CC_CSI0PHYTIMER_CLK>,
+ <&camcc CAM_CC_CSIPHY1_CLK>,
+ <&camcc CAM_CC_CSI1PHYTIMER_CLK>,
+ <&camcc CAM_CC_CSIPHY2_CLK>,
+ <&camcc CAM_CC_CSI2PHYTIMER_CLK>,
+ <&camcc CAM_CC_SOC_AHB_CLK>,
+ <&camcc CAM_CC_IFE_0_CLK>,
+ <&camcc CAM_CC_IFE_0_AXI_CLK>,
+ <&camcc CAM_CC_IFE_0_CPHY_RX_CLK>,
+ <&camcc CAM_CC_IFE_0_CSID_CLK>,
+ <&camcc CAM_CC_IFE_1_CLK>,
+ <&camcc CAM_CC_IFE_1_AXI_CLK>,
+ <&camcc CAM_CC_IFE_1_CPHY_RX_CLK>,
+ <&camcc CAM_CC_IFE_1_CSID_CLK>,
+ <&camcc CAM_CC_IFE_LITE_CLK>,
+ <&camcc CAM_CC_IFE_LITE_CPHY_RX_CLK>,
+ <&camcc CAM_CC_IFE_LITE_CSID_CLK>,
+ <&camcc CAM_CC_BPS_CLK>,
+ <&camcc CAM_CC_BPS_AHB_CLK>,
+ <&camcc CAM_CC_BPS_AXI_CLK>,
+ <&camcc CAM_CC_BPS_AREG_CLK>,
+ <&camcc CAM_CC_ICP_CLK>,
+ <&camcc CAM_CC_IPE_0_CLK>,
+ <&camcc CAM_CC_IPE_0_AHB_CLK>,
+ <&camcc CAM_CC_IPE_0_AREG_CLK>,
+ <&camcc CAM_CC_IPE_0_AXI_CLK>,
+ <&camcc CAM_CC_JPEG_CLK>,
+ <&camcc CAM_CC_LRME_CLK>;
+ clock-names = "gcc_ahb",
+ "gcc_axi_hf",
+ "camnoc_axi",
+ "cpas_ahb",
+ "csiphy0",
+ "csiphy0_timer",
+ "csiphy1",
+ "csiphy1_timer",
+ "csiphy2",
+ "csiphy2_timer",
+ "soc_ahb",
+ "vfe0",
+ "vfe0_axi",
+ "vfe0_cphy_rx",
+ "vfe0_csid",
+ "vfe1",
+ "vfe1_axi",
+ "vfe1_cphy_rx",
+ "vfe1_csid",
+ "vfe_lite",
+ "vfe_lite_cphy_rx",
+ "vfe_lite_csid",
+ "bps",
+ "bps_ahb",
+ "bps_axi",
+ "bps_areg",
+ "icp",
+ "ipe0",
+ "ipe0_ahb",
+ "ipe0_areg",
+ "ipe0_axi",
+ "jpeg",
+ "lrme";
+
+ interconnects = <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
+ &config_noc SLAVE_CAMERA_CFG QCOM_ICC_TAG_ACTIVE_ONLY>,
+ <&mmss_noc MASTER_CAMNOC_HF0 QCOM_ICC_TAG_ALWAYS
+ &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
+ <&mmss_noc MASTER_CAMNOC_HF1 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>;
+ interconnect-names = "ahb",
+ "hf_0",
+ "hf_1",
+ "sf_mnoc";
+
+ interrupts = <GIC_SPI 464 IRQ_TYPE_EDGE_RISING 0>,
+ <GIC_SPI 466 IRQ_TYPE_EDGE_RISING 0>,
+ <GIC_SPI 468 IRQ_TYPE_EDGE_RISING 0>,
+ <GIC_SPI 477 IRQ_TYPE_EDGE_RISING 0>,
+ <GIC_SPI 478 IRQ_TYPE_EDGE_RISING 0>,
+ <GIC_SPI 479 IRQ_TYPE_EDGE_RISING 0>,
+ <GIC_SPI 465 IRQ_TYPE_EDGE_RISING 0>,
+ <GIC_SPI 467 IRQ_TYPE_EDGE_RISING 0>,
+ <GIC_SPI 469 IRQ_TYPE_EDGE_RISING 0>,
+ <GIC_SPI 459 IRQ_TYPE_EDGE_RISING 0>,
+ <GIC_SPI 461 IRQ_TYPE_EDGE_RISING 0>,
+ <GIC_SPI 463 IRQ_TYPE_EDGE_RISING 0>,
+ <GIC_SPI 475 IRQ_TYPE_EDGE_RISING 0>,
+ <GIC_SPI 474 IRQ_TYPE_EDGE_RISING 0>,
+ <GIC_SPI 476 IRQ_TYPE_EDGE_RISING 0>;
+ interrupt-names = "csid0",
+ "csid1",
+ "csid_lite",
+ "csiphy0",
+ "csiphy1",
+ "csiphy2",
+ "vfe0",
+ "vfe1",
+ "vfe_lite",
+ "camnoc",
+ "cdm",
+ "icp",
+ "jpeg_dma",
+ "jpeg_enc",
+ "lrme";
+
+ iommus = <&apps_smmu 0x0820 0x40>,
+ <&apps_smmu 0x0840 0x00>,
+ <&apps_smmu 0x0860 0x40>,
+ <&apps_smmu 0x0c00 0x00>,
+ <&apps_smmu 0x0cc0 0x00>,
+ <&apps_smmu 0x0c80 0x00>,
+ <&apps_smmu 0x0ca0 0x00>,
+ <&apps_smmu 0x0d00 0x00>,
+ <&apps_smmu 0x0d20 0x00>,
+ <&apps_smmu 0x0d40 0x00>,
+ <&apps_smmu 0x0d80 0x20>,
+ <&apps_smmu 0x0da0 0x20>,
+ <&apps_smmu 0x0de2 0x00>;
+
+ power-domains = <&camcc IFE_0_GDSC>,
+ <&camcc IFE_1_GDSC>,
+ <&camcc TITAN_TOP_GDSC>,
+ <&camcc BPS_GDSC>,
+ <&camcc IPE_0_GDSC>;
+ power-domain-names = "ife0",
+ "ife1",
+ "top",
+ "bps",
+ "ipe";
+
+ status = "disabled";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+ };
+
+ port@1 {
+ reg = <1>;
+ };
+
+ port@2 {
+ reg = <2>;
+ };
+ };
+ };
+
camcc: clock-controller@ad00000 {
compatible = "qcom,qcs615-camcc";
reg = <0 0x0ad00000 0 0x10000>;
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v4 2/5] dt-bindings: i2c: qcom-cci: Document sm6150 compatible
2026-01-22 10:40 [PATCH v4 0/5] Add CCI and imx577 sensor support for Talos evk Wenmeng Liu
2026-01-22 10:40 ` [PATCH v4 1/5] arm64: dts: qcom: talos: Add camss node Wenmeng Liu
@ 2026-01-22 10:40 ` Wenmeng Liu
2026-01-23 6:53 ` Loic Poulain
2026-01-22 10:40 ` [PATCH v4 3/5] arm64: dts: qcom: talos: Add CCI definitions Wenmeng Liu
` (3 subsequent siblings)
5 siblings, 1 reply; 8+ messages in thread
From: Wenmeng Liu @ 2026-01-22 10:40 UTC (permalink / raw)
To: Loic Poulain, Andi Shyti, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Bjorn Andersson, Konrad Dybcio, Robert Foss,
Todor Tomov, Bryan O'Donoghue, Vladimir Zapolskiy, Shawn Guo,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam
Cc: linux-i2c, linux-arm-msm, devicetree, linux-kernel, linux-media,
imx, linux-arm-kernel, Wenmeng Liu
Add the sm6150 CCI device string compatible.
SM6150 include three clock:
bus: Bus clock responsible for data transfer.
iface: Interface clock responsible for register read and write.
cci: Clock for CCI core operations.
Reviewed-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
Signed-off-by: Wenmeng Liu <wenmeng.liu@oss.qualcomm.com>
---
Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml b/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml
index a3fe1eea6aece9685674feaa5ec53765c1ce23d8..d3f87da54fcc14a8f808f34c94551583d8deaabc 100644
--- a/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml
+++ b/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml
@@ -33,6 +33,7 @@ properties:
- qcom,sc8280xp-cci
- qcom,sdm670-cci
- qcom,sdm845-cci
+ - qcom,sm6150-cci
- qcom,sm6350-cci
- qcom,sm8250-cci
- qcom,sm8450-cci
@@ -249,6 +250,7 @@ allOf:
contains:
enum:
- qcom,sa8775p-cci
+ - qcom,sm6150-cci
- qcom,sm8550-cci
- qcom,sm8650-cci
- qcom,x1e80100-cci
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v4 3/5] arm64: dts: qcom: talos: Add CCI definitions
2026-01-22 10:40 [PATCH v4 0/5] Add CCI and imx577 sensor support for Talos evk Wenmeng Liu
2026-01-22 10:40 ` [PATCH v4 1/5] arm64: dts: qcom: talos: Add camss node Wenmeng Liu
2026-01-22 10:40 ` [PATCH v4 2/5] dt-bindings: i2c: qcom-cci: Document sm6150 compatible Wenmeng Liu
@ 2026-01-22 10:40 ` Wenmeng Liu
2026-01-22 10:40 ` [PATCH v4 4/5] arm64: dts: qcom: talos: Add camera MCLK pinctrl Wenmeng Liu
` (2 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Wenmeng Liu @ 2026-01-22 10:40 UTC (permalink / raw)
To: Loic Poulain, Andi Shyti, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Bjorn Andersson, Konrad Dybcio, Robert Foss,
Todor Tomov, Bryan O'Donoghue, Vladimir Zapolskiy, Shawn Guo,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam
Cc: linux-i2c, linux-arm-msm, devicetree, linux-kernel, linux-media,
imx, linux-arm-kernel, Wenmeng Liu
Qualcomm Talos SoC contains single controller,
containing 2 I2C hosts.
Reviewed-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
Signed-off-by: Wenmeng Liu <wenmeng.liu@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/talos.dtsi | 51 +++++++++++++++++++++++++++++++++++++
1 file changed, 51 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/talos.dtsi b/arch/arm64/boot/dts/qcom/talos.dtsi
index 3e1d85b6eacb90b48496ddfee2db27c586f3331e..6d28096e50546855bd762e479b66ed6214ec5d65 100644
--- a/arch/arm64/boot/dts/qcom/talos.dtsi
+++ b/arch/arm64/boot/dts/qcom/talos.dtsi
@@ -1553,6 +1553,22 @@ tlmm: pinctrl@3100000 {
#interrupt-cells = <2>;
wakeup-parent = <&pdc>;
+ cci_i2c0_default: cci-i2c0-default-state {
+ /* SDA, SCL */
+ pins = "gpio32", "gpio33";
+ function = "cci_i2c";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ cci_i2c1_default: cci-i2c1-default-state {
+ /* SDA, SCL */
+ pins = "gpio34", "gpio35";
+ function = "cci_i2c";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
qup_i2c1_data_clk: qup-i2c1-data-clk-state {
pins = "gpio4", "gpio5";
function = "qup0";
@@ -3789,6 +3805,41 @@ videocc: clock-controller@ab00000 {
#power-domain-cells = <1>;
};
+ cci: cci@ac4a000 {
+ compatible = "qcom,sm6150-cci", "qcom,msm8996-cci";
+
+ reg = <0x0 0x0ac4a000 0x0 0x4000>;
+ interrupts = <GIC_SPI 460 IRQ_TYPE_EDGE_RISING 0>;
+ power-domains = <&camcc TITAN_TOP_GDSC>;
+ clocks = <&camcc CAM_CC_SOC_AHB_CLK>,
+ <&camcc CAM_CC_CPAS_AHB_CLK>,
+ <&camcc CAM_CC_CCI_CLK>;
+ clock-names = "camnoc_axi",
+ "cpas_ahb",
+ "cci";
+ pinctrl-0 = <&cci_i2c0_default &cci_i2c1_default>;
+ pinctrl-names = "default";
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ status = "disabled";
+
+ cci_i2c0: i2c-bus@0 {
+ reg = <0>;
+ clock-frequency = <1000000>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+
+ cci_i2c1: i2c-bus@1 {
+ reg = <1>;
+ clock-frequency = <1000000>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+ };
+
camss: isp@acb3000 {
compatible = "qcom,sm6150-camss";
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v4 4/5] arm64: dts: qcom: talos: Add camera MCLK pinctrl
2026-01-22 10:40 [PATCH v4 0/5] Add CCI and imx577 sensor support for Talos evk Wenmeng Liu
` (2 preceding siblings ...)
2026-01-22 10:40 ` [PATCH v4 3/5] arm64: dts: qcom: talos: Add CCI definitions Wenmeng Liu
@ 2026-01-22 10:40 ` Wenmeng Liu
2026-01-22 10:40 ` [PATCH v4 5/5] arm64: dts: qcom: talos-evk-camera: Add DT overlay Wenmeng Liu
2026-01-22 10:47 ` [PATCH v4 0/5] Add CCI and imx577 sensor support for Talos evk Wenmeng Liu
5 siblings, 0 replies; 8+ messages in thread
From: Wenmeng Liu @ 2026-01-22 10:40 UTC (permalink / raw)
To: Loic Poulain, Andi Shyti, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Bjorn Andersson, Konrad Dybcio, Robert Foss,
Todor Tomov, Bryan O'Donoghue, Vladimir Zapolskiy, Shawn Guo,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam
Cc: linux-i2c, linux-arm-msm, devicetree, linux-kernel, linux-media,
imx, linux-arm-kernel, Konrad Dybcio, Dmitry Baryshkov,
Wenmeng Liu
Define pinctrl definitions to enable camera master clocks on Talos.
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
Signed-off-by: Wenmeng Liu <wenmeng.liu@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/talos.dtsi | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/talos.dtsi b/arch/arm64/boot/dts/qcom/talos.dtsi
index 6d28096e50546855bd762e479b66ed6214ec5d65..33897994d0ca8a193acfbc94a932551a09c712ce 100644
--- a/arch/arm64/boot/dts/qcom/talos.dtsi
+++ b/arch/arm64/boot/dts/qcom/talos.dtsi
@@ -1553,6 +1553,34 @@ tlmm: pinctrl@3100000 {
#interrupt-cells = <2>;
wakeup-parent = <&pdc>;
+ cam0_default: cam0-default-state {
+ pins = "gpio28";
+ function = "cam_mclk";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ cam1_default: cam1-default-state {
+ pins = "gpio29";
+ function = "cam_mclk";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ cam2_default: cam2-default-state {
+ pins = "gpio30";
+ function = "cam_mclk";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ cam3_default: cam3-default-state {
+ pins = "gpio31";
+ function = "cam_mclk";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
cci_i2c0_default: cci-i2c0-default-state {
/* SDA, SCL */
pins = "gpio32", "gpio33";
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v4 5/5] arm64: dts: qcom: talos-evk-camera: Add DT overlay
2026-01-22 10:40 [PATCH v4 0/5] Add CCI and imx577 sensor support for Talos evk Wenmeng Liu
` (3 preceding siblings ...)
2026-01-22 10:40 ` [PATCH v4 4/5] arm64: dts: qcom: talos: Add camera MCLK pinctrl Wenmeng Liu
@ 2026-01-22 10:40 ` Wenmeng Liu
2026-01-22 10:47 ` [PATCH v4 0/5] Add CCI and imx577 sensor support for Talos evk Wenmeng Liu
5 siblings, 0 replies; 8+ messages in thread
From: Wenmeng Liu @ 2026-01-22 10:40 UTC (permalink / raw)
To: Loic Poulain, Andi Shyti, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Bjorn Andersson, Konrad Dybcio, Robert Foss,
Todor Tomov, Bryan O'Donoghue, Vladimir Zapolskiy, Shawn Guo,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam
Cc: linux-i2c, linux-arm-msm, devicetree, linux-kernel, linux-media,
imx, linux-arm-kernel, Wenmeng Liu
Enable IMX577 via CCI on Taloss EVK Core Kit.
The Talos EVK board does not include a camera sensor
by default, this DTSO has enabled the Arducam 12.3MP
IMX577 Mini Camera Module on the CSI-1 interface.
Reviewed-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
Signed-off-by: Wenmeng Liu <wenmeng.liu@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/Makefile | 3 ++
.../boot/dts/qcom/talos-evk-camera-imx577.dtso | 63 ++++++++++++++++++++++
2 files changed, 66 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index a2e48b58323c10735c8b98996cee6669e4f918e7..b505b5b1aa2feaaae691977b35a2d872751c4a46 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -349,8 +349,11 @@ dtb-$(CONFIG_ARCH_QCOM) += sm8650-qrd.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm8750-mtp.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm8750-qrd.dtb
dtb-$(CONFIG_ARCH_QCOM) += talos-evk.dtb
+dtb-$(CONFIG_ARCH_QCOM) += talos-evk-camera-imx577.dtbo
+talos-evk-camera-imx577-dtbs := talos-evk.dtb talos-evk-camera-imx577.dtbo
talos-evk-lvds-auo,g133han01-dtbs := \
talos-evk.dtb talos-evk-lvds-auo,g133han01.dtbo
+dtb-$(CONFIG_ARCH_QCOM) += talos-evk-camera-imx577.dtb
dtb-$(CONFIG_ARCH_QCOM) += talos-evk-lvds-auo,g133han01.dtb
x1e001de-devkit-el2-dtbs := x1e001de-devkit.dtb x1-el2.dtbo
dtb-$(CONFIG_ARCH_QCOM) += x1e001de-devkit.dtb x1e001de-devkit-el2.dtb
diff --git a/arch/arm64/boot/dts/qcom/talos-evk-camera-imx577.dtso b/arch/arm64/boot/dts/qcom/talos-evk-camera-imx577.dtso
new file mode 100644
index 0000000000000000000000000000000000000000..53006a861878f9112673b9a0ad954bed7a5fdca5
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/talos-evk-camera-imx577.dtso
@@ -0,0 +1,63 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/clock/qcom,qcs615-camcc.h>
+#include <dt-bindings/gpio/gpio.h>
+
+&camss {
+ vdd-csiphy-1p2-supply = <&vreg_l11a>;
+ vdd-csiphy-1p8-supply = <&vreg_l12a>;
+
+ status = "okay";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@1 {
+ reg = <1>;
+
+ csiphy1_ep: endpoint {
+ data-lanes = <0 1 2 3>;
+ remote-endpoint = <&imx577_ep1>;
+ };
+ };
+ };
+};
+
+&cci {
+ status = "okay";
+};
+
+&cci_i2c1 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ camera@1a {
+ compatible = "sony,imx577";
+ reg = <0x1a>;
+
+ reset-gpios = <&tlmm 29 GPIO_ACTIVE_LOW>;
+ pinctrl-0 = <&cam2_default>;
+ pinctrl-names = "default";
+
+ clocks = <&camcc CAM_CC_MCLK2_CLK>;
+ assigned-clocks = <&camcc CAM_CC_MCLK2_CLK>;
+ assigned-clock-rates = <24000000>;
+
+ avdd-supply = <&vreg_s4a>;
+
+ port {
+ imx577_ep1: endpoint {
+ link-frequencies = /bits/ 64 <600000000>;
+ data-lanes = <1 2 3 4>;
+ remote-endpoint = <&csiphy1_ep>;
+ };
+ };
+ };
+};
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v4 0/5] Add CCI and imx577 sensor support for Talos evk
2026-01-22 10:40 [PATCH v4 0/5] Add CCI and imx577 sensor support for Talos evk Wenmeng Liu
` (4 preceding siblings ...)
2026-01-22 10:40 ` [PATCH v4 5/5] arm64: dts: qcom: talos-evk-camera: Add DT overlay Wenmeng Liu
@ 2026-01-22 10:47 ` Wenmeng Liu
5 siblings, 0 replies; 8+ messages in thread
From: Wenmeng Liu @ 2026-01-22 10:47 UTC (permalink / raw)
To: Loic Poulain, Andi Shyti, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Bjorn Andersson, Konrad Dybcio, Robert Foss,
Todor Tomov, Bryan O'Donoghue, Vladimir Zapolskiy, Shawn Guo,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam
Cc: linux-i2c, linux-arm-msm, devicetree, linux-kernel, linux-media,
imx, linux-arm-kernel, Konrad Dybcio, Dmitry Baryshkov
On 1/22/2026 6:40 PM, Wenmeng Liu wrote:
> Talos EVK is based on the Qualcomm SM6150 SoC.
> It lacks a camera sensor in its default configuration.
> This series adds CCI support and enables the IMX577 sensor via CSIPHY1
> through device tree overlay.
>
> We have tested IMX577 Sensor on CCI1 with following commands:
> - media-ctl -d /dev/media0 --reset
> - media-ctl -d /dev/media0 -V '"imx577 1-001a":0[fmt:SRGGB10/4056x3040 field:none]'
> - media-ctl -d /dev/media0 -V '"msm_csiphy1":0[fmt:SRGGB10/4056x3040]'
> - media-ctl -d /dev/media0 -V '"msm_csid0":0[fmt:SRGGB10/4056x3040]'
> - media-ctl -d /dev/media0 -V '"msm_vfe0_rdi0":0[fmt:SRGGB10/4056x3040]'
> - media-ctl -d /dev/media0 -l '"msm_csiphy1":1->"msm_csid0":0[1]'
> - media-ctl -d /dev/media0 -l '"msm_csid0":1->"msm_vfe0_rdi0":0[1]'
> - yavta -B capture-mplane -n 5 -f SRGGB10P -s 4056x3040 -F /dev/video0 --capture=5
>
> This patch series depends on patch series:
> https://lore.kernel.org/lkml/20260114100043.1310164-1-tessolveupstream@gmail.com/
>
> Changes in v4:
> - Add CCI properties to the existing portfolio. -- Loic, Krzysztof
> - Modify the incorrect dtb install configuration. -- Vladimir
> - Link to v3: https://lore.kernel.org/r/20260115-sm6150_evk-v3-0-81526dd15543@oss.qualcomm.com
>
> Changes in v3:
> - Add generic names for the CCI clock. -- Loic, Krzysztof
> - Split cci node, removed double space. -- Dmitry
> - Rename camera dtso name, add detailed description. -- Dmitry,
> Vladimir, Bryan
> - Add dtbo-y for dtso. -- Rob
> - Interrupts cell change adaptation.
> - Delete cci sleep pinctrl state.
> - Link to v2: https://lore.kernel.org/r/20260106-sm6150_evk-v2-0-bb112cb83d74@oss.qualcomm.com
>
> Changes in v2:
> - Modify the CCI dts style and commit msg. - Konrad
> - Split mclk change as a separate patch. - Vladimir
> - Remove clock-lanes. - Vladimir
> - Add mclk3(GPIO31). - Vladimir
> - Link to v1:
> https://lore.kernel.org/all/20251222-sm6150_evk-v1-0-4d260a31c00d@oss.qualcomm.com/
>
> ---
> Wenmeng Liu (5):
> arm64: dts: qcom: talos: Add camss node
> dt-bindings: i2c: qcom-cci: Document sm6150 compatible
> arm64: dts: qcom: talos: Add CCI definitions
> arm64: dts: qcom: talos: Add camera MCLK pinctrl
> arm64: dts: qcom: talos-evk-camera: Add DT overlay
>
> .../devicetree/bindings/i2c/qcom,i2c-cci.yaml | 2 +
> arch/arm64/boot/dts/qcom/Makefile | 3 +
> .../boot/dts/qcom/talos-evk-camera-imx577.dtso | 63 +++++
> arch/arm64/boot/dts/qcom/talos.dtsi | 279 +++++++++++++++++++++
> 4 files changed, 347 insertions(+)
> ---
> base-commit: c8a4a774a9b0d2c86593492625874e27e9cbc9a9
> change-id: 20251222-sm6150_evk-8ebed9e9f3bc
> prerequisite-message-id:20260114100043.1310164-1-tessolveupstream@gmail.com
> prerequisite-patch-id: 065fda916d7faca61113e1230fcc0ce3916442fe
> prerequisite-patch-id: eddd1b1714715707d386608e4f9b24396f51cd44
> prerequisite-patch-id: ae777d7e17e32afc36fd1f741bb57ff0d3556841
>
> Best regards,
Post the version5, abandon the version4.
Thanks,
Wenmeng
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v4 2/5] dt-bindings: i2c: qcom-cci: Document sm6150 compatible
2026-01-22 10:40 ` [PATCH v4 2/5] dt-bindings: i2c: qcom-cci: Document sm6150 compatible Wenmeng Liu
@ 2026-01-23 6:53 ` Loic Poulain
0 siblings, 0 replies; 8+ messages in thread
From: Loic Poulain @ 2026-01-23 6:53 UTC (permalink / raw)
To: Wenmeng Liu
Cc: Andi Shyti, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Bjorn Andersson, Konrad Dybcio, Robert Foss, Todor Tomov,
Bryan O'Donoghue, Vladimir Zapolskiy, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam, linux-i2c, linux-arm-msm,
devicetree, linux-kernel, linux-media, imx, linux-arm-kernel
On Thu, Jan 22, 2026 at 11:41 AM Wenmeng Liu
<wenmeng.liu@oss.qualcomm.com> wrote:
>
> Add the sm6150 CCI device string compatible.
>
> SM6150 include three clock:
> bus: Bus clock responsible for data transfer.
> iface: Interface clock responsible for register read and write.
> cci: Clock for CCI core operations.
>
> Reviewed-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
> Signed-off-by: Wenmeng Liu <wenmeng.liu@oss.qualcomm.com>
Reviewed-by: Loic Poulain <loic.poulain@oss.qualcomm.com>
> ---
> Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml b/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml
> index a3fe1eea6aece9685674feaa5ec53765c1ce23d8..d3f87da54fcc14a8f808f34c94551583d8deaabc 100644
> --- a/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml
> +++ b/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml
> @@ -33,6 +33,7 @@ properties:
> - qcom,sc8280xp-cci
> - qcom,sdm670-cci
> - qcom,sdm845-cci
> + - qcom,sm6150-cci
> - qcom,sm6350-cci
> - qcom,sm8250-cci
> - qcom,sm8450-cci
> @@ -249,6 +250,7 @@ allOf:
> contains:
> enum:
> - qcom,sa8775p-cci
> + - qcom,sm6150-cci
> - qcom,sm8550-cci
> - qcom,sm8650-cci
> - qcom,x1e80100-cci
>
> --
> 2.34.1
>
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2026-01-23 6:53 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-22 10:40 [PATCH v4 0/5] Add CCI and imx577 sensor support for Talos evk Wenmeng Liu
2026-01-22 10:40 ` [PATCH v4 1/5] arm64: dts: qcom: talos: Add camss node Wenmeng Liu
2026-01-22 10:40 ` [PATCH v4 2/5] dt-bindings: i2c: qcom-cci: Document sm6150 compatible Wenmeng Liu
2026-01-23 6:53 ` Loic Poulain
2026-01-22 10:40 ` [PATCH v4 3/5] arm64: dts: qcom: talos: Add CCI definitions Wenmeng Liu
2026-01-22 10:40 ` [PATCH v4 4/5] arm64: dts: qcom: talos: Add camera MCLK pinctrl Wenmeng Liu
2026-01-22 10:40 ` [PATCH v4 5/5] arm64: dts: qcom: talos-evk-camera: Add DT overlay Wenmeng Liu
2026-01-22 10:47 ` [PATCH v4 0/5] Add CCI and imx577 sensor support for Talos evk Wenmeng Liu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox