All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 1/2] dt-bindings: i2c: qcom-cci: Document QCM2290 compatible
@ 2025-04-02 12:36 Loic Poulain
  2025-04-02 12:36 ` [PATCH v2 2/2] arm64: dts: qcom: qcm2290: Add CCI node Loic Poulain
  2025-04-02 18:39 ` [PATCH v2 1/2] dt-bindings: i2c: qcom-cci: Document QCM2290 compatible Krzysztof Kozlowski
  0 siblings, 2 replies; 3+ messages in thread
From: Loic Poulain @ 2025-04-02 12:36 UTC (permalink / raw)
  To: andersson, konradybcio, robh, krzk+dt
  Cc: linux-arm-msm, devicetree, Loic Poulain

The CCI on QCM2290 is the interface for controlling camera sensor over I2C.
It requires only two clocks.

Signed-off-by: Loic Poulain <loic.poulain@oss.qualcomm.com>
---
 v2: Reorder commits and Fix binding testing syntax

 .../devicetree/bindings/i2c/qcom,i2c-cci.yaml | 21 +++++++++++++++++--
 1 file changed, 19 insertions(+), 2 deletions(-)

diff --git a/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml b/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml
index 73144473b9b2..55ec65df4f7a 100644
--- a/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml
+++ b/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml
@@ -25,6 +25,7 @@ properties:
 
       - items:
           - enum:
+              - qcom,qcm2290-cci
               - qcom,sc7280-cci
               - qcom,sc8280xp-cci
               - qcom,sdm670-cci
@@ -44,11 +45,11 @@ properties:
     const: 0
 
   clocks:
-    minItems: 3
+    minItems: 2
     maxItems: 6
 
   clock-names:
-    minItems: 3
+    minItems: 2
     maxItems: 6
 
   interrupts:
@@ -120,6 +121,22 @@ allOf:
             - const: cci_ahb
             - const: cci
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - qcom,qcm2290-cci
+    then:
+      properties:
+        clocks:
+          minItems: 2
+          maxItems: 2
+        clock-names:
+          items:
+            - const: camss_top_ahb
+            - const: cci
+
   - if:
       properties:
         compatible:
-- 
2.34.1


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

* [PATCH v2 2/2] arm64: dts: qcom: qcm2290: Add CCI node
  2025-04-02 12:36 [PATCH v2 1/2] dt-bindings: i2c: qcom-cci: Document QCM2290 compatible Loic Poulain
@ 2025-04-02 12:36 ` Loic Poulain
  2025-04-02 18:39 ` [PATCH v2 1/2] dt-bindings: i2c: qcom-cci: Document QCM2290 compatible Krzysztof Kozlowski
  1 sibling, 0 replies; 3+ messages in thread
From: Loic Poulain @ 2025-04-02 12:36 UTC (permalink / raw)
  To: andersson, konradybcio, robh, krzk+dt
  Cc: linux-arm-msm, devicetree, Loic Poulain

Add Camera Control Interface (CCI), supporting two I2C masters.

Signed-off-by: Loic Poulain <loic.poulain@oss.qualcomm.com>
---
 v2: Reorder commits; Update dts properties order and style

 arch/arm64/boot/dts/qcom/qcm2290.dtsi | 50 +++++++++++++++++++++++++++
 1 file changed, 50 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/qcm2290.dtsi b/arch/arm64/boot/dts/qcom/qcm2290.dtsi
index 7fb5de92bc4c..43fcb4f40a8c 100644
--- a/arch/arm64/boot/dts/qcom/qcm2290.dtsi
+++ b/arch/arm64/boot/dts/qcom/qcm2290.dtsi
@@ -557,6 +557,20 @@ qup_uart4_default: qup-uart4-default-state {
 				bias-disable;
 			};
 
+			cci0_default: cci0-default-state {
+				pins = "gpio22", "gpio23";
+				function = "cci_i2c";
+				drive-strength = <2>;
+				bias-disable;
+			};
+
+			cci1_default: cci1-default-state {
+				pins = "gpio29", "gpio30";
+				function = "cci_i2c";
+				drive-strength = <2>;
+				bias-disable;
+			};
+
 			sdc1_state_on: sdc1-on-state {
 				clk-pins {
 					pins = "sdc1_clk";
@@ -1603,6 +1617,42 @@ adreno_smmu: iommu@59a0000 {
 			#iommu-cells = <2>;
 		};
 
+		cci: cci@5c1b000 {
+			compatible = "qcom,qcm2290-cci", "qcom,msm8996-cci";
+			reg = <0x0 0x5c1b000 0x0 0x1000>;
+
+			interrupts = <GIC_SPI 206 IRQ_TYPE_EDGE_RISING>;
+
+			clocks = <&gcc GCC_CAMSS_TOP_AHB_CLK>, <&gcc GCC_CAMSS_CCI_0_CLK>;
+			clock-names = "camss_top_ahb", "cci";
+			assigned-clocks = <&gcc GCC_CAMSS_CCI_0_CLK>;
+			assigned-clock-rates = <37500000>;
+
+			power-domains = <&gcc GCC_CAMSS_TOP_GDSC>;
+
+			pinctrl-0 = <&cci0_default &cci1_default>;
+			pinctrl-names = "default";
+
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			status = "disabled";
+
+			cci_i2c0: i2c-bus@0 {
+				reg = <0>;
+				clock-frequency = <400000>;
+				#address-cells = <1>;
+				#size-cells = <0>;
+			};
+
+			cci_i2c1: i2c-bus@1 {
+				reg = <1>;
+				clock-frequency = <400000>;
+				#address-cells = <1>;
+				#size-cells = <0>;
+			};
+		};
+
 		mdss: display-subsystem@5e00000 {
 			compatible = "qcom,qcm2290-mdss";
 			reg = <0x0 0x05e00000 0x0 0x1000>;
-- 
2.34.1


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

* Re: [PATCH v2 1/2] dt-bindings: i2c: qcom-cci: Document QCM2290 compatible
  2025-04-02 12:36 [PATCH v2 1/2] dt-bindings: i2c: qcom-cci: Document QCM2290 compatible Loic Poulain
  2025-04-02 12:36 ` [PATCH v2 2/2] arm64: dts: qcom: qcm2290: Add CCI node Loic Poulain
@ 2025-04-02 18:39 ` Krzysztof Kozlowski
  1 sibling, 0 replies; 3+ messages in thread
From: Krzysztof Kozlowski @ 2025-04-02 18:39 UTC (permalink / raw)
  To: Loic Poulain, andersson, konradybcio, robh, krzk+dt
  Cc: linux-arm-msm, devicetree

On 02/04/2025 14:36, Loic Poulain wrote:
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            enum:
> +              - qcom,qcm2290-cci
> +    then:
> +      properties:
> +        clocks:
> +          minItems: 2
> +          maxItems: 2
> +        clock-names:
> +          items:
> +            - const: camss_top_ahb
> +            - const: cci
This looks good, but I do not see updates for
qcom,msm8974-cci/qcom,msm8226-cci constraints. You lowered minItems in
top level, so you need to add minItems: 3 there.

With that fixed:

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

Best regards,
Krzysztof

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

end of thread, other threads:[~2025-04-02 18:39 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-02 12:36 [PATCH v2 1/2] dt-bindings: i2c: qcom-cci: Document QCM2290 compatible Loic Poulain
2025-04-02 12:36 ` [PATCH v2 2/2] arm64: dts: qcom: qcm2290: Add CCI node Loic Poulain
2025-04-02 18:39 ` [PATCH v2 1/2] dt-bindings: i2c: qcom-cci: Document QCM2290 compatible Krzysztof Kozlowski

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.