# SPDX-License-Identifier: GPL-2.0-only
%YAML 1.2
---
$id: http://devicetree.org/schemas/clock/qcom,gcc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm Global Clock & Reset Controller Binding

maintainers:
  - Stephen Boyd <sboyd@kernel.org>
  - Taniya Das <tdas@codeaurora.org>

description: |
  Qualcomm global clock control module which supports the clocks, resets and
  power domains.

properties:
  compatible :
    enum:
       - qcom,gcc-apq8064
       - qcom,gcc-apq8084
       - qcom,gcc-ipq4019
       - qcom,gcc-ipq6018
       - qcom,gcc-ipq8064
       - qcom,gcc-ipq8074
       - qcom,gcc-msm8660
       - qcom,gcc-msm8916
       - qcom,gcc-msm8960
       - qcom,gcc-msm8974
       - qcom,gcc-msm8974pro
       - qcom,gcc-msm8974pro-ac
       - qcom,gcc-msm8994
       - qcom,gcc-msm8996
       - qcom,gcc-msm8998
       - qcom,gcc-mdm9615
       - qcom,gcc-qcs404
       - qcom,gcc-sc7180
       - qcom,gcc-sdm630
       - qcom,gcc-sdm660
       - qcom,gcc-sdm845
       - qcom,gcc-sm8150

  clocks:
    oneOf:
      #qcom,gcc-sm8150
      #qcom,gcc-sc7180
      - items:
        - description: Board XO source
        - description: Board active XO source
        - description: Sleep clock source
      #qcom,gcc-msm8996
      - items:
        - description: XO source
        - description: Second XO source
        - description: Sleep clock source
      #qcom,gcc-msm8998
      - items:
        - description: Board XO source
        - description: Sleep clock source
        - description: USB 3.0 phy pipe clock
        - description: UFS phy rx symbol clock for pipe 0
        - description: UFS phy rx symbol clock for pipe 1
        - description: UFS phy tx symbol clock
        - description: PCIE phy pipe clock

  clock-names:
    oneOf:
      #qcom,gcc-sm8150
      #qcom,gcc-sc7180
      - items:
        - const: bi_tcxo
        - const: bi_tcxo_ao
        - const: sleep_clk
      #qcom,gcc-msm8996
      - items:
        - const: cxo
        - const: cxo2
        - const: sleep_clk
      #qcom,gcc-msm8998
      - items:
        - const: xo
        - const: sleep_clk
        - const: usb3_pipe
        - const: ufs_rx_symbol0
        - const: ufs_rx_symbol1
        - const: ufs_tx_symbol0
        - const: pcie0_pipe

  '#clock-cells':
    const: 1

  '#reset-cells':
    const: 1

  '#power-domain-cells':
    const: 1

  reg:
    maxItems: 1

  nvmem-cells:
    minItems: 1
    maxItems: 2
    description:
      Qualcomm TSENS (thermal sensor device) on some devices can
      be part of GCC and hence the TSENS properties can also be part
      of the GCC/clock-controller node.
      For more details on the TSENS properties please refer
      Documentation/devicetree/bindings/thermal/qcom-tsens.txt

  nvmem-cell-names:
    minItems: 1
    maxItems: 2
    description:
      Names for each nvmem-cells specified.
    items:
      - const: calib
      - const: calib_backup

  'thermal-sensor-cells':
    const: 1

  protected-clocks:
    description:
       Protected clock specifier list as per common clock binding

required:
  - compatible
  - reg
  - '#clock-cells'
  - '#reset-cells'
  - '#power-domain-cells'

if:
  properties:
    compatible:
      contains:
        const: qcom,gcc-apq8064

then:
  required:
    - nvmem-cells
    - nvmem-cell-names
    - '#thermal-sensor-cells'

else:
  if:
    properties:
      compatible:
        contains:
          enum:
            - qcom,gcc-msm8998
            - qcom,gcc-sm8150
            - qcom,gcc-sc7180
  then:
    required:
       - clocks
       - clock-names


examples:
  # Example for GCC for MSM8960:
  - |
    clock-controller@900000 {
      compatible = "qcom,gcc-msm8960";
      reg = <0x900000 0x4000>;
      #clock-cells = <1>;
      #reset-cells = <1>;
      #power-domain-cells = <1>;
    };


  # Example of GCC with TSENS properties:
  - |
    clock-controller@900000 {
      compatible = "qcom,gcc-apq8064";
      reg = <0x00900000 0x4000>;
      nvmem-cells = <&tsens_calib>, <&tsens_backup>;
      nvmem-cell-names = "calib", "calib_backup";
      #clock-cells = <1>;
      #reset-cells = <1>;
      #power-domain-cells = <1>;
      #thermal-sensor-cells = <1>;
    };

  # Example of GCC with protected-clocks properties:
  - |
    clock-controller@100000 {
      compatible = "qcom,gcc-sdm845";
      reg = <0x100000 0x1f0000>;
      protected-clocks = <187>, <188>, <189>, <190>, <191>;
      #clock-cells = <1>;
      #reset-cells = <1>;
      #power-domain-cells = <1>;
    };

  # Example of GCC with clock node properties for SM8150:
  - |
    clock-controller@100000 {
      compatible = "qcom,gcc-sm8150";
      reg = <0x00100000 0x1f0000>;
      clocks = <&rpmhcc 0>, <&rpmhcc 1>, <&sleep_clk>;
      clock-names = "bi_tcxo", "bi_tcxo_ao", "sleep_clk";
      #clock-cells = <1>;
      #reset-cells = <1>;
      #power-domain-cells = <1>;
     };

  # Example of GCC with clock nodes properties for SC7180:
  - |
    clock-controller@100000 {
      compatible = "qcom,gcc-sc7180";
      reg = <0x100000 0x1f0000>;
      clocks = <&rpmhcc 0>, <&rpmhcc 1>, <0>;
      clock-names = "bi_tcxo", "bi_tcxo_ao", "sleep_clk";
      #clock-cells = <1>;
      #reset-cells = <1>;
      #power-domain-cells = <1>;
    };

  # Example of MSM8998 GCC:
  - |
    #include <dt-bindings/clock/qcom,rpmcc.h>
    clock-controller@100000 {
      compatible = "qcom,gcc-msm8998";
      #clock-cells = <1>;
      #reset-cells = <1>;
      #power-domain-cells = <1>;
      reg = <0x00100000 0xb0000>;
      clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>,
               <&sleep>,
               <0>,
               <0>,
               <0>,
               <0>,
               <0>;
      clock-names = "xo",
                    "sleep_clk",
                    "usb3_pipe",
                    "ufs_rx_symbol0",
                    "ufs_rx_symbol1",
                    "ufs_tx_symbol0",
                    "pcie0_pipe";
    };
...
