]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
dt-bindings: clock: qcom: Add SM8150 camera clock controller
authorSatya Priya Kakitapalli <quic_skakitap@quicinc.com>
Wed, 31 Jul 2024 06:29:14 +0000 (11:59 +0530)
committerBjorn Andersson <andersson@kernel.org>
Thu, 1 Aug 2024 02:53:47 +0000 (21:53 -0500)
Add device tree bindings for the camera clock controller on
Qualcomm SM8150 platform.

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Satya Priya Kakitapalli <quic_skakitap@quicinc.com>
Link: https://lore.kernel.org/r/20240731062916.2680823-7-quic_skakitap@quicinc.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Documentation/devicetree/bindings/clock/qcom,sm8150-camcc.yaml [new file with mode: 0644]
include/dt-bindings/clock/qcom,sm8150-camcc.h [new file with mode: 0644]

diff --git a/Documentation/devicetree/bindings/clock/qcom,sm8150-camcc.yaml b/Documentation/devicetree/bindings/clock/qcom,sm8150-camcc.yaml
new file mode 100644 (file)
index 0000000..5e9f62d
--- /dev/null
@@ -0,0 +1,77 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/qcom,sm8150-camcc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Camera Clock & Reset Controller on SM8150
+
+maintainers:
+  - Satya Priya Kakitapalli <quic_skakitap@quicinc.com>
+
+description: |
+  Qualcomm camera clock control module provides the clocks, resets and
+  power domains on SM8150.
+
+  See also:: include/dt-bindings/clock/qcom,sm8150-camcc.h
+
+properties:
+  compatible:
+    const: qcom,sm8150-camcc
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: Board XO source
+      - description: Camera AHB clock from GCC
+
+  power-domains:
+    maxItems: 1
+    description:
+      A phandle and PM domain specifier for the MMCX power domain.
+
+  required-opps:
+    maxItems: 1
+    description:
+      A phandle to an OPP node describing required MMCX performance point.
+
+  '#clock-cells':
+    const: 1
+
+  '#reset-cells':
+    const: 1
+
+  '#power-domain-cells':
+    const: 1
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - power-domains
+  - required-opps
+  - '#clock-cells'
+  - '#reset-cells'
+  - '#power-domain-cells'
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,gcc-sm8150.h>
+    #include <dt-bindings/clock/qcom,rpmh.h>
+    #include <dt-bindings/power/qcom-rpmpd.h>
+    clock-controller@ad00000 {
+      compatible = "qcom,sm8150-camcc";
+      reg = <0x0ad00000 0x10000>;
+      clocks = <&rpmhcc RPMH_CXO_CLK>,
+               <&gcc GCC_CAMERA_AHB_CLK>;
+      power-domains = <&rpmhpd SM8150_MMCX>;
+      required-opps = <&rpmhpd_opp_low_svs>;
+      #clock-cells = <1>;
+      #reset-cells = <1>;
+      #power-domain-cells = <1>;
+    };
+...
diff --git a/include/dt-bindings/clock/qcom,sm8150-camcc.h b/include/dt-bindings/clock/qcom,sm8150-camcc.h
new file mode 100644 (file)
index 0000000..5444035
--- /dev/null
@@ -0,0 +1,135 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) 2024, Qualcomm Innovation Center, Inc. All rights reserved.
+ */
+
+#ifndef _DT_BINDINGS_CLK_QCOM_CAM_CC_SM8150_H
+#define _DT_BINDINGS_CLK_QCOM_CAM_CC_SM8150_H
+
+/* CAM_CC clocks */
+#define CAM_CC_PLL0                                    0
+#define CAM_CC_PLL0_OUT_EVEN                           1
+#define CAM_CC_PLL0_OUT_ODD                            2
+#define CAM_CC_PLL1                                    3
+#define CAM_CC_PLL1_OUT_EVEN                           4
+#define CAM_CC_PLL2                                    5
+#define CAM_CC_PLL2_OUT_MAIN                           6
+#define CAM_CC_PLL3                                    7
+#define CAM_CC_PLL3_OUT_EVEN                           8
+#define CAM_CC_PLL4                                    9
+#define CAM_CC_PLL4_OUT_EVEN                           10
+#define CAM_CC_BPS_AHB_CLK                             11
+#define CAM_CC_BPS_AREG_CLK                            12
+#define CAM_CC_BPS_AXI_CLK                             13
+#define CAM_CC_BPS_CLK                                 14
+#define CAM_CC_BPS_CLK_SRC                             15
+#define CAM_CC_CAMNOC_AXI_CLK                          16
+#define CAM_CC_CAMNOC_AXI_CLK_SRC                      17
+#define CAM_CC_CAMNOC_DCD_XO_CLK                       18
+#define CAM_CC_CCI_0_CLK                               19
+#define CAM_CC_CCI_0_CLK_SRC                           20
+#define CAM_CC_CCI_1_CLK                               21
+#define CAM_CC_CCI_1_CLK_SRC                           22
+#define CAM_CC_CORE_AHB_CLK                            23
+#define CAM_CC_CPAS_AHB_CLK                            24
+#define CAM_CC_CPHY_RX_CLK_SRC                         25
+#define CAM_CC_CSI0PHYTIMER_CLK                                26
+#define CAM_CC_CSI0PHYTIMER_CLK_SRC                    27
+#define CAM_CC_CSI1PHYTIMER_CLK                                28
+#define CAM_CC_CSI1PHYTIMER_CLK_SRC                    29
+#define CAM_CC_CSI2PHYTIMER_CLK                                30
+#define CAM_CC_CSI2PHYTIMER_CLK_SRC                    31
+#define CAM_CC_CSI3PHYTIMER_CLK                                32
+#define CAM_CC_CSI3PHYTIMER_CLK_SRC                    33
+#define CAM_CC_CSIPHY0_CLK                             34
+#define CAM_CC_CSIPHY1_CLK                             35
+#define CAM_CC_CSIPHY2_CLK                             36
+#define CAM_CC_CSIPHY3_CLK                             37
+#define CAM_CC_FAST_AHB_CLK_SRC                                38
+#define CAM_CC_FD_CORE_CLK                             39
+#define CAM_CC_FD_CORE_CLK_SRC                         40
+#define CAM_CC_FD_CORE_UAR_CLK                         41
+#define CAM_CC_GDSC_CLK                                        42
+#define CAM_CC_ICP_AHB_CLK                             43
+#define CAM_CC_ICP_CLK                                 44
+#define CAM_CC_ICP_CLK_SRC                             45
+#define CAM_CC_IFE_0_AXI_CLK                           46
+#define CAM_CC_IFE_0_CLK                               47
+#define CAM_CC_IFE_0_CLK_SRC                           48
+#define CAM_CC_IFE_0_CPHY_RX_CLK                       49
+#define CAM_CC_IFE_0_CSID_CLK                          50
+#define CAM_CC_IFE_0_CSID_CLK_SRC                      51
+#define CAM_CC_IFE_0_DSP_CLK                           52
+#define CAM_CC_IFE_1_AXI_CLK                           53
+#define CAM_CC_IFE_1_CLK                               54
+#define CAM_CC_IFE_1_CLK_SRC                           55
+#define CAM_CC_IFE_1_CPHY_RX_CLK                       56
+#define CAM_CC_IFE_1_CSID_CLK                          57
+#define CAM_CC_IFE_1_CSID_CLK_SRC                      58
+#define CAM_CC_IFE_1_DSP_CLK                           59
+#define CAM_CC_IFE_LITE_0_CLK                          60
+#define CAM_CC_IFE_LITE_0_CLK_SRC                      61
+#define CAM_CC_IFE_LITE_0_CPHY_RX_CLK                  62
+#define CAM_CC_IFE_LITE_0_CSID_CLK                     63
+#define CAM_CC_IFE_LITE_0_CSID_CLK_SRC                 64
+#define CAM_CC_IFE_LITE_1_CLK                          65
+#define CAM_CC_IFE_LITE_1_CLK_SRC                      66
+#define CAM_CC_IFE_LITE_1_CPHY_RX_CLK                  67
+#define CAM_CC_IFE_LITE_1_CSID_CLK                     68
+#define CAM_CC_IFE_LITE_1_CSID_CLK_SRC                 69
+#define CAM_CC_IPE_0_AHB_CLK                           70
+#define CAM_CC_IPE_0_AREG_CLK                          71
+#define CAM_CC_IPE_0_AXI_CLK                           72
+#define CAM_CC_IPE_0_CLK                               73
+#define CAM_CC_IPE_0_CLK_SRC                           74
+#define CAM_CC_IPE_1_AHB_CLK                           75
+#define CAM_CC_IPE_1_AREG_CLK                          76
+#define CAM_CC_IPE_1_AXI_CLK                           77
+#define CAM_CC_IPE_1_CLK                               78
+#define CAM_CC_JPEG_CLK                                        79
+#define CAM_CC_JPEG_CLK_SRC                            80
+#define CAM_CC_LRME_CLK                                        81
+#define CAM_CC_LRME_CLK_SRC                            82
+#define CAM_CC_MCLK0_CLK                               83
+#define CAM_CC_MCLK0_CLK_SRC                           84
+#define CAM_CC_MCLK1_CLK                               85
+#define CAM_CC_MCLK1_CLK_SRC                           86
+#define CAM_CC_MCLK2_CLK                               87
+#define CAM_CC_MCLK2_CLK_SRC                           88
+#define CAM_CC_MCLK3_CLK                               89
+#define CAM_CC_MCLK3_CLK_SRC                           90
+#define CAM_CC_SLOW_AHB_CLK_SRC                                91
+
+/* CAM_CC power domains */
+#define TITAN_TOP_GDSC                                 0
+#define BPS_GDSC                                       1
+#define IFE_0_GDSC                                     2
+#define IFE_1_GDSC                                     3
+#define IPE_0_GDSC                                     4
+#define IPE_1_GDSC                                     5
+
+/* CAM_CC resets */
+#define CAM_CC_BPS_BCR                                 0
+#define CAM_CC_CAMNOC_BCR                              1
+#define CAM_CC_CCI_BCR                                 2
+#define CAM_CC_CPAS_BCR                                        3
+#define CAM_CC_CSI0PHY_BCR                             4
+#define CAM_CC_CSI1PHY_BCR                             5
+#define CAM_CC_CSI2PHY_BCR                             6
+#define CAM_CC_CSI3PHY_BCR                             7
+#define CAM_CC_FD_BCR                                  8
+#define CAM_CC_ICP_BCR                                 9
+#define CAM_CC_IFE_0_BCR                               10
+#define CAM_CC_IFE_1_BCR                               11
+#define CAM_CC_IFE_LITE_0_BCR                          12
+#define CAM_CC_IFE_LITE_1_BCR                          13
+#define CAM_CC_IPE_0_BCR                               14
+#define CAM_CC_IPE_1_BCR                               15
+#define CAM_CC_JPEG_BCR                                        16
+#define CAM_CC_LRME_BCR                                        17
+#define CAM_CC_MCLK0_BCR                               18
+#define CAM_CC_MCLK1_BCR                               19
+#define CAM_CC_MCLK2_BCR                               20
+#define CAM_CC_MCLK3_BCR                               21
+
+#endif