arm64: dts: qcom: sc7280: Add Camera Control Interface busses
authorLuca Weiss <luca.weiss@fairphone.com>
Mon, 2 Oct 2023 06:55:31 +0000 (08:55 +0200)
committerBjorn Andersson <andersson@kernel.org>
Sat, 21 Oct 2023 20:04:10 +0000 (13:04 -0700)
Add the CCI busses found on sc7280 and their pinctrl states.

Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
Link: https://lore.kernel.org/r/20231002-sc7280-cci-v2-2-9333fda4612a@fairphone.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
arch/arm64/boot/dts/qcom/sc7280.dtsi

index 871beba2ffcc43d7f376dfa4e100c7ee3548d759..04bf85b0399a8fdb132843da3d1ae10ea350f26f 100644 (file)
                        #power-domain-cells = <1>;
                };
 
+               cci0: cci@ac4a000 {
+                       compatible = "qcom,sc7280-cci", "qcom,msm8996-cci";
+                       reg = <0 0x0ac4a000 0 0x1000>;
+                       interrupts = <GIC_SPI 460 IRQ_TYPE_EDGE_RISING>;
+                       power-domains = <&camcc CAM_CC_TITAN_TOP_GDSC>;
+
+                       clocks = <&camcc CAM_CC_CAMNOC_AXI_CLK>,
+                                <&camcc CAM_CC_SLOW_AHB_CLK_SRC>,
+                                <&camcc CAM_CC_CPAS_AHB_CLK>,
+                                <&camcc CAM_CC_CCI_0_CLK>,
+                                <&camcc CAM_CC_CCI_0_CLK_SRC>;
+                       clock-names = "camnoc_axi",
+                                     "slow_ahb_src",
+                                     "cpas_ahb",
+                                     "cci",
+                                     "cci_src";
+                       pinctrl-0 = <&cci0_default &cci1_default>;
+                       pinctrl-1 = <&cci0_sleep &cci1_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@ac4b000 {
+                       compatible = "qcom,sc7280-cci", "qcom,msm8996-cci";
+                       reg = <0 0x0ac4b000 0 0x1000>;
+                       interrupts = <GIC_SPI 271 IRQ_TYPE_EDGE_RISING>;
+                       power-domains = <&camcc CAM_CC_TITAN_TOP_GDSC>;
+
+                       clocks = <&camcc CAM_CC_CAMNOC_AXI_CLK>,
+                                <&camcc CAM_CC_SLOW_AHB_CLK_SRC>,
+                                <&camcc CAM_CC_CPAS_AHB_CLK>,
+                                <&camcc CAM_CC_CCI_1_CLK>,
+                                <&camcc CAM_CC_CCI_1_CLK_SRC>;
+                       clock-names = "camnoc_axi",
+                                     "slow_ahb_src",
+                                     "cpas_ahb",
+                                     "cci",
+                                     "cci_src";
+                       pinctrl-0 = <&cci2_default &cci3_default>;
+                       pinctrl-1 = <&cci2_sleep &cci3_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>;
+                       };
+               };
+
                camcc: clock-controller@ad00000 {
                        compatible = "qcom,sc7280-camcc";
                        reg = <0 0x0ad00000 0 0x10000>;
                        gpio-ranges = <&tlmm 0 0 175>;
                        wakeup-parent = <&pdc>;
 
+                       cci0_default: cci0-default-state {
+                               pins = "gpio69", "gpio70";
+                               function = "cci_i2c";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       cci0_sleep: cci0-sleep-state {
+                               pins = "gpio69", "gpio70";
+                               function = "cci_i2c";
+                               drive-strength = <2>;
+                               bias-pull-down;
+                       };
+
+                       cci1_default: cci1-default-state {
+                               pins = "gpio71", "gpio72";
+                               function = "cci_i2c";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       cci1_sleep: cci1-sleep-state {
+                               pins = "gpio71", "gpio72";
+                               function = "cci_i2c";
+                               drive-strength = <2>;
+                               bias-pull-down;
+                       };
+
+                       cci2_default: cci2-default-state {
+                               pins = "gpio73", "gpio74";
+                               function = "cci_i2c";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       cci2_sleep: cci2-sleep-state {
+                               pins = "gpio73", "gpio74";
+                               function = "cci_i2c";
+                               drive-strength = <2>;
+                               bias-pull-down;
+                       };
+
+                       cci3_default: cci3-default-state {
+                               pins = "gpio75", "gpio76";
+                               function = "cci_i2c";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       cci3_sleep: cci3-sleep-state {
+                               pins = "gpio75", "gpio76";
+                               function = "cci_i2c";
+                               drive-strength = <2>;
+                               bias-pull-down;
+                       };
+
                        dp_hot_plug_det: dp-hot-plug-det-state {
                                pins = "gpio47";
                                function = "dp_hot";