* [PATCH v10 0/5] Add CCI and imx577 sensor support for monaco evk
@ 2026-02-13 13:20 Nihal Kumar Gupta
2026-02-13 13:20 ` [PATCH v10 1/5] dt-bindings: i2c: qcom-cci: Document qcs8300 compatible Nihal Kumar Gupta
` (5 more replies)
0 siblings, 6 replies; 9+ messages in thread
From: Nihal Kumar Gupta @ 2026-02-13 13:20 UTC (permalink / raw)
To: bryan.odonoghue, robh, krzk+dt, conor+dt, andersson, konradybcio,
hverkuil-cisco, loic.poulain, rfoss, andi.shyti, linux-i2c,
cros-qcom-dts-watchers
Cc: quic_svankada, quic_vikramsa, linux-media, linux-arm-msm,
devicetree, linux-kernel
From: Nihal Kumar Gupta <nihalkum@qti.qualcomm.com>
Monaco EVK is a single-board computer based on the Qualcomm QCS8300 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 --reset
- media-ctl -V '"imx577 3-001a":0[fmt:SRGGB10/4056x3040 field:none]'
- media-ctl -V '"msm_csiphy1":0[fmt:SRGGB10/4056x3040]'
- media-ctl -V '"msm_csid0":0[fmt:SRGGB10/4056x3040]'
- media-ctl -V '"msm_vfe0_rdi0":0[fmt:SRGGB10/4056x3040]'
- media-ctl -l '"msm_csiphy1":1->"msm_csid0":0[1]'
- media-ctl -l '"msm_csid0":1->"msm_vfe0_rdi0":0[1]'
- yavta -B capture-mplane -c -I -n 5 -f SRGGB10P -s 4056x3040 -F /dev/video1
---
Changes in v10:
- Fix DCO chain - Krzysztof
- Fixed build-process warnings reported by Rob - Krzysztof
Rename "cpas_ahb" to "ahb" to align the DTS with the existing binding.
- Added regulator-min-microvolt and regulator-max-microvolt properties to all
three regulators - Vladimir
- Link to v9:
https://lore.kernel.org/all/20260121183142.1867199-1-quic_nihalkum@quicinc.com
Changes in v9:
- Added i2c maintainers and linux-i2c mailing list for the qcom,i2c-cci.yaml
dt-bindings patch - Bryan
- Rebased onto the latest master.
- Link to v8:
https://lore.kernel.org/all/20251222095914.1995041-1-quic_nihalkum@quicinc.com
Changes in v8:
- Removed clock-lanes property from CAMSS node - Vladimir
- Changed data-lanes property to <1 2 3 4> on sensor node - Vladimir
- Sorted regulator entries with respect to the pin index - Konrad
- Link to v7:
https://lore.kernel.org/all/20251216062223.2474216-1-quic_nihalkum@quicinc.com
Changes in v7:
- Define MCLK pinctrl definitions in monaco.dtsi - Konrad and Vladimir
- Define fixed regulators for camera AVDD rails in monaco-evk.dts - Konrad
- Link to v6:
https://lore.kernel.org/all/20251126081057.4191122-1-quic_vikramsa@quicinc.com
Changes in v6:
- Fixed ordering of property-n and property-names in vreg_cam1_2p8 - Konrad
- Moved vreg_cam1_2p8 defintion to monaco-evk.dts - Konrad
- Removed description of pins with MCLK and Regulators function - Konrad
- Added pin hardware description for MCLK, regulators in monaco.dtsi - Konrad
- Link to v5:
https://lore.kernel.org/all/20251114064541.446276-1-quic_vikramsa@quicinc.com
Changes in v5:
- Rename cciX_i2cY_* to cciX_Y_* to shorten the labels - Vladimir
- Added description of pins with MCLK function - Vladimir
- Link to v4:
https://lore.kernel.org/all/20251015131303.2797800-1-quic_vikramsa@quicinc.com
Changes in v4:
- Remove the AXI source clock from the CCI node - Konrad
- Updated the qcs8300-camss device tree binding.
- Link to v3:
https://lore.kernel.org/all/20250917130647.1701883-1-quic_vikramsa@quicinc.com
Changes in v3:
- Updated and Wrapped commit messages for [PATCH v2 1/3] and [PATCH v2 2/3] - Rob
- Link to v2:
https://lore.kernel.org/all/20250912141134.2799078-1-quic_vikramsa@quicinc.com
Changes in v2:
- Remove the patch that adds PHY supply documentation in the qcs8300 CAMSS.
bindings. This change should be submitted together with the qcs8300 bindings patch.
- Fix indentation and regulator node name - Krzysztof.
- Update commit message as suggested - Dmitry.
- Link to v1:
https://lore.kernel.org/lkml/20250909114241.840842-1-quic_vikramsa@quicinc.com
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 W=1 DT_SCHEMA_FILES=media/qcom,qcs8300-camss.yaml dt_binding_check
- make CHECK_DTBS=y W=1 dtbs
- make CHECK_DTBS=y W=1 qcom/monaco-evk-camera-imx577.dtb
Signed-off-by: Nihal Kumar Gupta <quic_nihalkum@quicinc.com>
Nihal Kumar Gupta (5):
dt-bindings: i2c: qcom-cci: Document qcs8300 compatible
arm64: dts: qcom: monaco: Add CCI definitions
arm64: dts: qcom: monaco: Add camera MCLK pinctrl
arm64: dts: qcom: monaco-evk: Add camera AVDD regulators
arm64: dts: qcom: monaco-evk-camera: Add DT overlay
.../devicetree/bindings/i2c/qcom,i2c-cci.yaml | 2 +
arch/arm64/boot/dts/qcom/Makefile | 4 +
.../dts/qcom/monaco-evk-camera-imx577.dtso | 66 ++++
arch/arm64/boot/dts/qcom/monaco-evk.dts | 63 ++++
arch/arm64/boot/dts/qcom/monaco.dtsi | 324 ++++++++++++++++++
5 files changed, 459 insertions(+)
create mode 100644 arch/arm64/boot/dts/qcom/monaco-evk-camera-imx577.dtso
base-commit: 132737e360b4c0daa7f473faf0f55cb04ee3e15c
--
2.34.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v10 1/5] dt-bindings: i2c: qcom-cci: Document qcs8300 compatible
2026-02-13 13:20 [PATCH v10 0/5] Add CCI and imx577 sensor support for monaco evk Nihal Kumar Gupta
@ 2026-02-13 13:20 ` Nihal Kumar Gupta
2026-02-17 16:34 ` Loic Poulain
2026-02-13 13:20 ` [PATCH v10 2/5] arm64: dts: qcom: monaco: Add CCI definitions Nihal Kumar Gupta
` (4 subsequent siblings)
5 siblings, 1 reply; 9+ messages in thread
From: Nihal Kumar Gupta @ 2026-02-13 13:20 UTC (permalink / raw)
To: bryan.odonoghue, robh, krzk+dt, conor+dt, andersson, konradybcio,
hverkuil-cisco, loic.poulain, rfoss, andi.shyti, linux-i2c,
cros-qcom-dts-watchers
Cc: quic_svankada, quic_vikramsa, linux-media, linux-arm-msm,
devicetree, linux-kernel, Vladimir Zapolskiy
The three instances of CCI found on the QCS8300 are functionally the same
as on a number of existing Qualcomm SoCs.
Introduce a new SoC-specific compatible string "qcom,qcs8300-cci" with a
common fallback.
Signed-off-by: Nihal Kumar Gupta <quic_nihalkum@quicinc.com>
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Acked-by: Rob Herring (Arm) <robh@kernel.org>
Reviewed-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
---
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 a3fe1eea6aec..399a09409e07 100644
--- a/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml
+++ b/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml
@@ -28,6 +28,7 @@ properties:
- enum:
- qcom,kaanapali-cci
- qcom,qcm2290-cci
+ - qcom,qcs8300-cci
- qcom,sa8775p-cci
- qcom,sc7280-cci
- qcom,sc8280xp-cci
@@ -133,6 +134,7 @@ allOf:
enum:
- qcom,kaanapali-cci
- qcom,qcm2290-cci
+ - qcom,qcs8300-cci
- qcom,sm8750-cci
then:
properties:
--
2.34.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v10 2/5] arm64: dts: qcom: monaco: Add CCI definitions
2026-02-13 13:20 [PATCH v10 0/5] Add CCI and imx577 sensor support for monaco evk Nihal Kumar Gupta
2026-02-13 13:20 ` [PATCH v10 1/5] dt-bindings: i2c: qcom-cci: Document qcs8300 compatible Nihal Kumar Gupta
@ 2026-02-13 13:20 ` Nihal Kumar Gupta
2026-02-13 13:20 ` [PATCH v10 3/5] arm64: dts: qcom: monaco: Add camera MCLK pinctrl Nihal Kumar Gupta
` (3 subsequent siblings)
5 siblings, 0 replies; 9+ messages in thread
From: Nihal Kumar Gupta @ 2026-02-13 13:20 UTC (permalink / raw)
To: bryan.odonoghue, robh, krzk+dt, conor+dt, andersson, konradybcio,
hverkuil-cisco, loic.poulain, rfoss, andi.shyti, linux-i2c,
cros-qcom-dts-watchers
Cc: quic_svankada, quic_vikramsa, linux-media, linux-arm-msm,
devicetree, linux-kernel, Ravi Shankar, Vishal Verma,
Vladimir Zapolskiy, Konrad Dybcio
Qualcomm QCS8300 SoC contains three Camera Control Interface (CCI).
Compared to Lemans, the key difference is in SDA/SCL GPIO assignments
and number of CCIs.
Co-developed-by: Ravi Shankar <quic_rshankar@quicinc.com>
Signed-off-by: Ravi Shankar <quic_rshankar@quicinc.com>
Co-developed-by: Vishal Verma <quic_vishverm@quicinc.com>
Signed-off-by: Vishal Verma <quic_vishverm@quicinc.com>
Co-developed-by: Suresh Vankadara <quic_svankada@quicinc.com>
Signed-off-by: Suresh Vankadara <quic_svankada@quicinc.com>
Signed-off-by: Nihal Kumar Gupta <quic_nihalkum@quicinc.com>
Reviewed-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/monaco.dtsi | 303 +++++++++++++++++++++++++++
1 file changed, 303 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/monaco.dtsi b/arch/arm64/boot/dts/qcom/monaco.dtsi
index 5d2df4305d1c..405812db8fed 100644
--- a/arch/arm64/boot/dts/qcom/monaco.dtsi
+++ b/arch/arm64/boot/dts/qcom/monaco.dtsi
@@ -5319,6 +5319,117 @@ videocc: clock-controller@abf0000 {
#power-domain-cells = <1>;
};
+ cci0: cci@ac13000 {
+ compatible = "qcom,qcs8300-cci", "qcom,msm8996-cci";
+ reg = <0x0 0x0ac13000 0x0 0x1000>;
+
+ interrupts = <GIC_SPI 460 IRQ_TYPE_EDGE_RISING>;
+
+ clocks = <&camcc CAM_CC_CPAS_AHB_CLK>,
+ <&camcc CAM_CC_CCI_0_CLK>;
+ clock-names = "ahb",
+ "cci";
+
+ power-domains = <&camcc CAM_CC_TITAN_TOP_GDSC>;
+
+ pinctrl-0 = <&cci0_0_default &cci0_1_default>;
+ pinctrl-1 = <&cci0_0_sleep &cci0_1_sleep>;
+ pinctrl-names = "default", "sleep";
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ status = "disabled";
+
+ cci0_i2c0: i2c-bus@0 {
+ reg = <0>;
+ clock-frequency = <1000000>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+
+ cci0_i2c1: i2c-bus@1 {
+ reg = <1>;
+ clock-frequency = <1000000>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+ };
+
+ cci1: cci@ac14000 {
+ compatible = "qcom,qcs8300-cci", "qcom,msm8996-cci";
+ reg = <0x0 0x0ac14000 0x0 0x1000>;
+
+ interrupts = <GIC_SPI 271 IRQ_TYPE_EDGE_RISING>;
+
+ clocks = <&camcc CAM_CC_CPAS_AHB_CLK>,
+ <&camcc CAM_CC_CCI_1_CLK>;
+ clock-names = "ahb",
+ "cci";
+
+ power-domains = <&camcc CAM_CC_TITAN_TOP_GDSC>;
+
+ pinctrl-0 = <&cci1_0_default &cci1_1_default>;
+ pinctrl-1 = <&cci1_0_sleep &cci1_1_sleep>;
+ pinctrl-names = "default", "sleep";
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ status = "disabled";
+
+ cci1_i2c0: i2c-bus@0 {
+ reg = <0>;
+ clock-frequency = <1000000>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+
+ cci1_i2c1: i2c-bus@1 {
+ reg = <1>;
+ clock-frequency = <1000000>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+ };
+
+ cci2: cci@ac15000 {
+ compatible = "qcom,qcs8300-cci", "qcom,msm8996-cci";
+ reg = <0x0 0x0ac15000 0x0 0x1000>;
+
+ interrupts = <GIC_SPI 651 IRQ_TYPE_EDGE_RISING>;
+
+ clocks = <&camcc CAM_CC_CPAS_AHB_CLK>,
+ <&camcc CAM_CC_CCI_2_CLK>;
+ clock-names = "ahb",
+ "cci";
+
+ power-domains = <&camcc CAM_CC_TITAN_TOP_GDSC>;
+
+ pinctrl-0 = <&cci2_0_default &cci2_1_default>;
+ pinctrl-1 = <&cci2_0_sleep &cci2_1_sleep>;
+ pinctrl-names = "default", "sleep";
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ status = "disabled";
+
+ cci2_i2c0: i2c-bus@0 {
+ reg = <0>;
+ clock-frequency = <1000000>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+
+ cci2_i2c1: i2c-bus@1 {
+ reg = <1>;
+ clock-frequency = <1000000>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+ };
+
camss: isp@ac78000 {
compatible = "qcom,qcs8300-camss";
@@ -5876,6 +5987,198 @@ tlmm: pinctrl@f100000 {
#interrupt-cells = <2>;
wakeup-parent = <&pdc>;
+ cci0_0_default: cci0-0-default-state {
+ sda-pins {
+ pins = "gpio57";
+ function = "cci_i2c_sda";
+ drive-strength = <2>;
+ bias-pull-up = <2200>;
+ };
+
+ scl-pins {
+ pins = "gpio58";
+ function = "cci_i2c_scl";
+ drive-strength = <2>;
+ bias-pull-up = <2200>;
+ };
+ };
+
+ cci0_0_sleep: cci0-0-sleep-state {
+ sda-pins {
+ pins = "gpio57";
+ function = "cci_i2c_sda";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ scl-pins {
+ pins = "gpio58";
+ function = "cci_i2c_scl";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+ };
+
+ cci0_1_default: cci0-1-default-state {
+ sda-pins {
+ pins = "gpio29";
+ function = "cci_i2c_sda";
+ drive-strength = <2>;
+ bias-pull-up = <2200>;
+ };
+
+ scl-pins {
+ pins = "gpio30";
+ function = "cci_i2c_scl";
+ drive-strength = <2>;
+ bias-pull-up = <2200>;
+ };
+ };
+
+ cci0_1_sleep: cci0-1-sleep-state {
+ sda-pins {
+ pins = "gpio29";
+ function = "cci_i2c_sda";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ scl-pins {
+ pins = "gpio30";
+ function = "cci_i2c_scl";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+ };
+
+ cci1_0_default: cci1-0-default-state {
+ sda-pins {
+ pins = "gpio59";
+ function = "cci_i2c_sda";
+ drive-strength = <2>;
+ bias-pull-up = <2200>;
+ };
+
+ scl-pins {
+ pins = "gpio60";
+ function = "cci_i2c_scl";
+ drive-strength = <2>;
+ bias-pull-up = <2200>;
+ };
+ };
+
+ cci1_0_sleep: cci1-0-sleep-state {
+ sda-pins {
+ pins = "gpio59";
+ function = "cci_i2c_sda";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ scl-pins {
+ pins = "gpio60";
+ function = "cci_i2c_scl";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+ };
+
+ cci1_1_default: cci1-1-default-state {
+ sda-pins {
+ pins = "gpio31";
+ function = "cci_i2c_sda";
+ drive-strength = <2>;
+ bias-pull-up = <2200>;
+ };
+
+ scl-pins {
+ pins = "gpio32";
+ function = "cci_i2c_scl";
+ drive-strength = <2>;
+ bias-pull-up = <2200>;
+ };
+ };
+
+ cci1_1_sleep: cci1-1-sleep-state {
+ sda-pins {
+ pins = "gpio31";
+ function = "cci_i2c_sda";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ scl-pins {
+ pins = "gpio32";
+ function = "cci_i2c_scl";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+ };
+
+ cci2_0_default: cci2-0-default-state {
+ sda-pins {
+ pins = "gpio61";
+ function = "cci_i2c_sda";
+ drive-strength = <2>;
+ bias-pull-up = <2200>;
+ };
+
+ scl-pins {
+ pins = "gpio62";
+ function = "cci_i2c_scl";
+ drive-strength = <2>;
+ bias-pull-up = <2200>;
+ };
+ };
+
+ cci2_0_sleep: cci2-0-sleep-state {
+ sda-pins {
+ pins = "gpio61";
+ function = "cci_i2c_sda";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ scl-pins {
+ pins = "gpio62";
+ function = "cci_i2c_scl";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+ };
+
+ cci2_1_default: cci2-1-default-state {
+ sda-pins {
+ pins = "gpio54";
+ function = "cci_i2c_sda";
+ drive-strength = <2>;
+ bias-pull-up = <2200>;
+ };
+
+ scl-pins {
+ pins = "gpio55";
+ function = "cci_i2c_scl";
+ drive-strength = <2>;
+ bias-pull-up = <2200>;
+ };
+ };
+
+ cci2_1_sleep: cci2-1-sleep-state {
+ sda-pins {
+ pins = "gpio54";
+ function = "cci_i2c_sda";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ scl-pins {
+ pins = "gpio55";
+ function = "cci_i2c_scl";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+ };
+
hs0_mi2s_active: hs0-mi2s-active-state {
pins = "gpio106", "gpio107", "gpio108", "gpio109";
function = "hs0_mi2s";
--
2.34.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v10 3/5] arm64: dts: qcom: monaco: Add camera MCLK pinctrl
2026-02-13 13:20 [PATCH v10 0/5] Add CCI and imx577 sensor support for monaco evk Nihal Kumar Gupta
2026-02-13 13:20 ` [PATCH v10 1/5] dt-bindings: i2c: qcom-cci: Document qcs8300 compatible Nihal Kumar Gupta
2026-02-13 13:20 ` [PATCH v10 2/5] arm64: dts: qcom: monaco: Add CCI definitions Nihal Kumar Gupta
@ 2026-02-13 13:20 ` Nihal Kumar Gupta
2026-02-13 13:20 ` [PATCH v10 4/5] arm64: dts: qcom: monaco-evk: Add camera AVDD regulators Nihal Kumar Gupta
` (2 subsequent siblings)
5 siblings, 0 replies; 9+ messages in thread
From: Nihal Kumar Gupta @ 2026-02-13 13:20 UTC (permalink / raw)
To: bryan.odonoghue, robh, krzk+dt, conor+dt, andersson, konradybcio,
hverkuil-cisco, loic.poulain, rfoss, andi.shyti, linux-i2c,
cros-qcom-dts-watchers
Cc: quic_svankada, quic_vikramsa, linux-media, linux-arm-msm,
devicetree, linux-kernel, Konrad Dybcio, Vladimir Zapolskiy
Define pinctrl definitions to enable camera master clocks on Monaco.
Signed-off-by: Nihal Kumar Gupta <quic_nihalkum@quicinc.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
---
arch/arm64/boot/dts/qcom/monaco.dtsi | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/monaco.dtsi b/arch/arm64/boot/dts/qcom/monaco.dtsi
index 405812db8fed..379e752f1953 100644
--- a/arch/arm64/boot/dts/qcom/monaco.dtsi
+++ b/arch/arm64/boot/dts/qcom/monaco.dtsi
@@ -5987,6 +5987,27 @@ tlmm: pinctrl@f100000 {
#interrupt-cells = <2>;
wakeup-parent = <&pdc>;
+ cam0_default: cam0-default-state {
+ pins = "gpio67";
+ function = "cam_mclk";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ cam1_default: cam1-default-state {
+ pins = "gpio68";
+ function = "cam_mclk";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ cam2_default: cam2-default-state {
+ pins = "gpio69";
+ function = "cam_mclk";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
cci0_0_default: cci0-0-default-state {
sda-pins {
pins = "gpio57";
--
2.34.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v10 4/5] arm64: dts: qcom: monaco-evk: Add camera AVDD regulators
2026-02-13 13:20 [PATCH v10 0/5] Add CCI and imx577 sensor support for monaco evk Nihal Kumar Gupta
` (2 preceding siblings ...)
2026-02-13 13:20 ` [PATCH v10 3/5] arm64: dts: qcom: monaco: Add camera MCLK pinctrl Nihal Kumar Gupta
@ 2026-02-13 13:20 ` Nihal Kumar Gupta
2026-02-13 13:31 ` Vladimir Zapolskiy
2026-02-13 13:20 ` [PATCH v10 5/5] arm64: dts: qcom: monaco-evk-camera: Add DT overlay Nihal Kumar Gupta
2026-03-18 13:50 ` (subset) [PATCH v10 0/5] Add CCI and imx577 sensor support for monaco evk Bjorn Andersson
5 siblings, 1 reply; 9+ messages in thread
From: Nihal Kumar Gupta @ 2026-02-13 13:20 UTC (permalink / raw)
To: bryan.odonoghue, robh, krzk+dt, conor+dt, andersson, konradybcio,
hverkuil-cisco, loic.poulain, rfoss, andi.shyti, linux-i2c,
cros-qcom-dts-watchers
Cc: quic_svankada, quic_vikramsa, linux-media, linux-arm-msm,
devicetree, linux-kernel, Konrad Dybcio
Define three fixed regulators for camera AVDD rails, each gpio-controlled
with corresponding pinctrl definitions.
Signed-off-by: Nihal Kumar Gupta <quic_nihalkum@quicinc.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/monaco-evk.dts | 63 +++++++++++++++++++++++++
1 file changed, 63 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/monaco-evk.dts b/arch/arm64/boot/dts/qcom/monaco-evk.dts
index 565418b86b2a..bfd727c745c6 100644
--- a/arch/arm64/boot/dts/qcom/monaco-evk.dts
+++ b/arch/arm64/boot/dts/qcom/monaco-evk.dts
@@ -77,6 +77,48 @@ platform {
};
};
};
+
+ vreg_cam0_2p8: vreg-cam0-2p8 {
+ compatible = "regulator-fixed";
+ regulator-name = "vreg_cam0_2p8";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ startup-delay-us = <10000>;
+
+ gpio = <&tlmm 73 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&cam0_avdd_2v8_en_default>;
+ pinctrl-names = "default";
+ };
+
+ vreg_cam1_2p8: vreg-cam1-2p8 {
+ compatible = "regulator-fixed";
+ regulator-name = "vreg_cam1_2p8";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ startup-delay-us = <10000>;
+
+ gpio = <&tlmm 74 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&cam1_avdd_2v8_en_default>;
+ pinctrl-names = "default";
+ };
+
+ vreg_cam2_2p8: vreg-cam2-2p8 {
+ compatible = "regulator-fixed";
+ regulator-name = "vreg_cam2_2p8";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ startup-delay-us = <10000>;
+
+ gpio = <&tlmm 75 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&cam2_avdd_2v8_en_default>;
+ pinctrl-names = "default";
+ };
};
&apps_rsc {
@@ -564,6 +606,27 @@ perst-pins {
};
};
+ cam0_avdd_2v8_en_default: cam0-avdd-2v8-en-state {
+ pins = "gpio73";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ cam1_avdd_2v8_en_default: cam1-avdd-2v8-en-state {
+ pins = "gpio74";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ cam2_avdd_2v8_en_default: cam2-avdd-2v8-en-state {
+ pins = "gpio75";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
qup_i2c15_default: qup-i2c15-state {
pins = "gpio91", "gpio92";
function = "qup1_se7";
--
2.34.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v10 5/5] arm64: dts: qcom: monaco-evk-camera: Add DT overlay
2026-02-13 13:20 [PATCH v10 0/5] Add CCI and imx577 sensor support for monaco evk Nihal Kumar Gupta
` (3 preceding siblings ...)
2026-02-13 13:20 ` [PATCH v10 4/5] arm64: dts: qcom: monaco-evk: Add camera AVDD regulators Nihal Kumar Gupta
@ 2026-02-13 13:20 ` Nihal Kumar Gupta
2026-03-18 13:50 ` (subset) [PATCH v10 0/5] Add CCI and imx577 sensor support for monaco evk Bjorn Andersson
5 siblings, 0 replies; 9+ messages in thread
From: Nihal Kumar Gupta @ 2026-02-13 13:20 UTC (permalink / raw)
To: bryan.odonoghue, robh, krzk+dt, conor+dt, andersson, konradybcio,
hverkuil-cisco, loic.poulain, rfoss, andi.shyti, linux-i2c,
cros-qcom-dts-watchers
Cc: quic_svankada, quic_vikramsa, linux-media, linux-arm-msm,
devicetree, linux-kernel, Ravi Shankar, Vishal Verma,
Vladimir Zapolskiy, Konrad Dybcio
Monaco EVK board does not include a camera sensor in its default hardware
configuration. Introducing a device tree overlay to support optional
integration of the IMX577 sensor via CSIPHY1.
Camera reset is handled through an I2C expander, and power is enabled
via TLMM GPIO74.
An example media-ctl pipeline for the imx577 is:
media-ctl --reset
media-ctl -V '"imx577 3-001a":0[fmt:SRGGB10/4056x3040 field:none]'
media-ctl -V '"msm_csiphy1":0[fmt:SRGGB10/4056x3040]'
media-ctl -V '"msm_csid0":0[fmt:SRGGB10/4056x3040]'
media-ctl -V '"msm_vfe0_rdi0":0[fmt:SRGGB10/4056x3040]'
media-ctl -l '"msm_csiphy1":1->"msm_csid0":0[1]'
media-ctl -l '"msm_csid0":1->"msm_vfe0_rdi0":0[1]'
yavta -B capture-mplane -c -I -n 5 -f SRGGB10P -s 4056x3040 -F /dev/video1
Co-developed-by: Ravi Shankar <quic_rshankar@quicinc.com>
Signed-off-by: Ravi Shankar <quic_rshankar@quicinc.com>
Co-developed-by: Vishal Verma <quic_vishverm@quicinc.com>
Signed-off-by: Vishal Verma <quic_vishverm@quicinc.com>
Signed-off-by: Nihal Kumar Gupta <quic_nihalkum@quicinc.com>
Reviewed-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/Makefile | 4 ++
.../dts/qcom/monaco-evk-camera-imx577.dtso | 66 +++++++++++++++++++
2 files changed, 70 insertions(+)
create mode 100644 arch/arm64/boot/dts/qcom/monaco-evk-camera-imx577.dtso
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index f80b5d9cf1e8..4c348cf62d59 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -45,6 +45,10 @@ lemans-evk-el2-dtbs := lemans-evk.dtb lemans-el2.dtbo
dtb-$(CONFIG_ARCH_QCOM) += lemans-evk-el2.dtb
dtb-$(CONFIG_ARCH_QCOM) += milos-fairphone-fp6.dtb
dtb-$(CONFIG_ARCH_QCOM) += monaco-evk.dtb
+
+monaco-evk-camera-imx577-dtbs := monaco-evk.dtb monaco-evk-camera-imx577.dtbo
+dtb-$(CONFIG_ARCH_QCOM) += monaco-evk-camera-imx577.dtb
+
dtb-$(CONFIG_ARCH_QCOM) += msm8216-samsung-fortuna3g.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8916-acer-a1-724.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8916-alcatel-idol347.dtb
diff --git a/arch/arm64/boot/dts/qcom/monaco-evk-camera-imx577.dtso b/arch/arm64/boot/dts/qcom/monaco-evk-camera-imx577.dtso
new file mode 100644
index 000000000000..0d5ccd020e6e
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/monaco-evk-camera-imx577.dtso
@@ -0,0 +1,66 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/clock/qcom,sa8775p-camcc.h>
+#include <dt-bindings/gpio/gpio.h>
+
+&camss {
+ vdda-phy-supply = <&vreg_l4a>;
+ vdda-pll-supply = <&vreg_l5a>;
+
+ 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>;
+ };
+ };
+ };
+};
+
+&cci1 {
+ pinctrl-0 = <&cci1_0_default>;
+ pinctrl-1 = <&cci1_0_sleep>;
+
+ status = "okay";
+};
+
+&cci1_i2c0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ camera@1a {
+ compatible = "sony,imx577";
+ reg = <0x1a>;
+
+ reset-gpios = <&expander2 1 GPIO_ACTIVE_LOW>;
+ pinctrl-0 = <&cam1_default>;
+ pinctrl-names = "default";
+
+ clocks = <&camcc CAM_CC_MCLK1_CLK>;
+ assigned-clocks = <&camcc CAM_CC_MCLK1_CLK>;
+ assigned-clock-rates = <24000000>;
+
+ avdd-supply = <&vreg_cam1_2p8>;
+
+ 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] 9+ messages in thread
* Re: [PATCH v10 4/5] arm64: dts: qcom: monaco-evk: Add camera AVDD regulators
2026-02-13 13:20 ` [PATCH v10 4/5] arm64: dts: qcom: monaco-evk: Add camera AVDD regulators Nihal Kumar Gupta
@ 2026-02-13 13:31 ` Vladimir Zapolskiy
0 siblings, 0 replies; 9+ messages in thread
From: Vladimir Zapolskiy @ 2026-02-13 13:31 UTC (permalink / raw)
To: Nihal Kumar Gupta, bryan.odonoghue, robh, krzk+dt, conor+dt,
andersson, konradybcio, hverkuil-cisco, loic.poulain, rfoss,
andi.shyti, linux-i2c, cros-qcom-dts-watchers
Cc: quic_svankada, quic_vikramsa, linux-media, linux-arm-msm,
devicetree, linux-kernel, Konrad Dybcio
On 2/13/26 15:20, Nihal Kumar Gupta wrote:
> Define three fixed regulators for camera AVDD rails, each gpio-controlled
> with corresponding pinctrl definitions.
>
> Signed-off-by: Nihal Kumar Gupta <quic_nihalkum@quicinc.com>
> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> ---
> arch/arm64/boot/dts/qcom/monaco-evk.dts | 63 +++++++++++++++++++++++++
> 1 file changed, 63 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/monaco-evk.dts b/arch/arm64/boot/dts/qcom/monaco-evk.dts
> index 565418b86b2a..bfd727c745c6 100644
> --- a/arch/arm64/boot/dts/qcom/monaco-evk.dts
> +++ b/arch/arm64/boot/dts/qcom/monaco-evk.dts
> @@ -77,6 +77,48 @@ platform {
> };
> };
> };
> +
> + vreg_cam0_2p8: vreg-cam0-2p8 {
> + compatible = "regulator-fixed";
> + regulator-name = "vreg_cam0_2p8";
> + regulator-min-microvolt = <2800000>;
> + regulator-max-microvolt = <2800000>;
> + startup-delay-us = <10000>;
> +
> + gpio = <&tlmm 73 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> +
> + pinctrl-0 = <&cam0_avdd_2v8_en_default>;
> + pinctrl-names = "default";
> + };
> +
> + vreg_cam1_2p8: vreg-cam1-2p8 {
> + compatible = "regulator-fixed";
> + regulator-name = "vreg_cam1_2p8";
> + regulator-min-microvolt = <2800000>;
> + regulator-max-microvolt = <2800000>;
> + startup-delay-us = <10000>;
> +
> + gpio = <&tlmm 74 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> +
> + pinctrl-0 = <&cam1_avdd_2v8_en_default>;
> + pinctrl-names = "default";
> + };
> +
> + vreg_cam2_2p8: vreg-cam2-2p8 {
> + compatible = "regulator-fixed";
> + regulator-name = "vreg_cam2_2p8";
> + regulator-min-microvolt = <2800000>;
> + regulator-max-microvolt = <2800000>;
> + startup-delay-us = <10000>;
> +
> + gpio = <&tlmm 75 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> +
> + pinctrl-0 = <&cam2_avdd_2v8_en_default>;
> + pinctrl-names = "default";
> + };
> };
>
> &apps_rsc {
> @@ -564,6 +606,27 @@ perst-pins {
> };
> };
>
> + cam0_avdd_2v8_en_default: cam0-avdd-2v8-en-state {
> + pins = "gpio73";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-disable;
> + };
> +
> + cam1_avdd_2v8_en_default: cam1-avdd-2v8-en-state {
> + pins = "gpio74";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-disable;
> + };
> +
> + cam2_avdd_2v8_en_default: cam2-avdd-2v8-en-state {
> + pins = "gpio75";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-disable;
> + };
> +
> qup_i2c15_default: qup-i2c15-state {
> pins = "gpio91", "gpio92";
> function = "qup1_se7";
Reviewed-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
--
Best wishes,
Vladimir
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v10 1/5] dt-bindings: i2c: qcom-cci: Document qcs8300 compatible
2026-02-13 13:20 ` [PATCH v10 1/5] dt-bindings: i2c: qcom-cci: Document qcs8300 compatible Nihal Kumar Gupta
@ 2026-02-17 16:34 ` Loic Poulain
0 siblings, 0 replies; 9+ messages in thread
From: Loic Poulain @ 2026-02-17 16:34 UTC (permalink / raw)
To: Nihal Kumar Gupta
Cc: bryan.odonoghue, robh, krzk+dt, conor+dt, andersson, konradybcio,
hverkuil-cisco, rfoss, andi.shyti, linux-i2c,
cros-qcom-dts-watchers, quic_svankada, quic_vikramsa, linux-media,
linux-arm-msm, devicetree, linux-kernel, Vladimir Zapolskiy
On Fri, Feb 13, 2026 at 2:21 PM Nihal Kumar Gupta
<quic_nihalkum@quicinc.com> wrote:
>
> The three instances of CCI found on the QCS8300 are functionally the same
> as on a number of existing Qualcomm SoCs.
>
> Introduce a new SoC-specific compatible string "qcom,qcs8300-cci" with a
> common fallback.
>
> Signed-off-by: Nihal Kumar Gupta <quic_nihalkum@quicinc.com>
> Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
> Acked-by: Rob Herring (Arm) <robh@kernel.org>
> Reviewed-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
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 a3fe1eea6aec..399a09409e07 100644
> --- a/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml
> +++ b/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml
> @@ -28,6 +28,7 @@ properties:
> - enum:
> - qcom,kaanapali-cci
> - qcom,qcm2290-cci
> + - qcom,qcs8300-cci
> - qcom,sa8775p-cci
> - qcom,sc7280-cci
> - qcom,sc8280xp-cci
> @@ -133,6 +134,7 @@ allOf:
> enum:
> - qcom,kaanapali-cci
> - qcom,qcm2290-cci
> + - qcom,qcs8300-cci
> - qcom,sm8750-cci
> then:
> properties:
> --
> 2.34.1
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: (subset) [PATCH v10 0/5] Add CCI and imx577 sensor support for monaco evk
2026-02-13 13:20 [PATCH v10 0/5] Add CCI and imx577 sensor support for monaco evk Nihal Kumar Gupta
` (4 preceding siblings ...)
2026-02-13 13:20 ` [PATCH v10 5/5] arm64: dts: qcom: monaco-evk-camera: Add DT overlay Nihal Kumar Gupta
@ 2026-03-18 13:50 ` Bjorn Andersson
5 siblings, 0 replies; 9+ messages in thread
From: Bjorn Andersson @ 2026-03-18 13:50 UTC (permalink / raw)
To: bryan.odonoghue, robh, krzk+dt, conor+dt, konradybcio,
loic.poulain, rfoss, andi.shyti, linux-i2c,
cros-qcom-dts-watchers, Hans Verkuil, Nihal Kumar Gupta
Cc: quic_svankada, quic_vikramsa, linux-media, linux-arm-msm,
devicetree, linux-kernel
On Fri, 13 Feb 2026 18:50:53 +0530, Nihal Kumar Gupta wrote:
> From: Nihal Kumar Gupta <nihalkum@qti.qualcomm.com>
>
> Monaco EVK is a single-board computer based on the Qualcomm QCS8300 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.
>
> [...]
Applied, thanks!
[2/5] arm64: dts: qcom: monaco: Add CCI definitions
commit: ff1dbc3c093120cfea2bde95f406dad951c5ea83
[3/5] arm64: dts: qcom: monaco: Add camera MCLK pinctrl
commit: 6754e6b5d69745513c254139368cf765bd15c6a3
[4/5] arm64: dts: qcom: monaco-evk: Add camera AVDD regulators
commit: e9f95530ce1298e2b3e2770d441857df4592adad
[5/5] arm64: dts: qcom: monaco-evk-camera: Add DT overlay
commit: cb473de813004512c8cdf3ef0fb882723a47f33c
Best regards,
--
Bjorn Andersson <andersson@kernel.org>
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2026-03-18 13:51 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-13 13:20 [PATCH v10 0/5] Add CCI and imx577 sensor support for monaco evk Nihal Kumar Gupta
2026-02-13 13:20 ` [PATCH v10 1/5] dt-bindings: i2c: qcom-cci: Document qcs8300 compatible Nihal Kumar Gupta
2026-02-17 16:34 ` Loic Poulain
2026-02-13 13:20 ` [PATCH v10 2/5] arm64: dts: qcom: monaco: Add CCI definitions Nihal Kumar Gupta
2026-02-13 13:20 ` [PATCH v10 3/5] arm64: dts: qcom: monaco: Add camera MCLK pinctrl Nihal Kumar Gupta
2026-02-13 13:20 ` [PATCH v10 4/5] arm64: dts: qcom: monaco-evk: Add camera AVDD regulators Nihal Kumar Gupta
2026-02-13 13:31 ` Vladimir Zapolskiy
2026-02-13 13:20 ` [PATCH v10 5/5] arm64: dts: qcom: monaco-evk-camera: Add DT overlay Nihal Kumar Gupta
2026-03-18 13:50 ` (subset) [PATCH v10 0/5] Add CCI and imx577 sensor support for monaco evk Bjorn Andersson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox