Commit 4c2fdfc4 authored by Stephen Boyd's avatar Stephen Boyd
Browse files

Merge tag 'qcom-clk-for-5.20' of...

Merge tag 'qcom-clk-for-5.20' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into clk-qcom

Pull Qualcomm clk driver updates from Bjorn Andersson:

 - Introduces support for the camera clock controller in SM8450 and
   the display and gpu clock controllers in SM8350.
 - Various fixes, new clocks and USB GDSCs are introduced for IPQ8074
   and for MSM8939 a series of fixes for issues introduced by inheriting
   the MSM8916 GCC driver is introduced.
 - Support for a new type of voteable GDSCs are introduced and put in
   use for the SC8280XP PCIe GDSCs. SC8280XP pipe clocks transitioned to
   the new phy-mux implementation.
 - MSM8996 GCC, the RPM clock driver and some clocks in MSM8994 GCC are
   transitioned to use parent_data.
 - The topology for Titan (camera) GDSCs on SDM845 and SM8250 are corrected
   and MSM8916 gains more possible frequencies for its GP clocks.
 - The GCC and tsens handling on MSM8960 is reworked to mimic the design in
   IPQ8074 and allow the GCC driver to probe earlier.
 - The regulator based mmcx supply for dispcc and videocc is dropped, as
   the only upstream target that adapted this interface was transitioned
   several kernel versions ago.
 - GDSCs found to be enabled at boot will now reflect in the enable
   count of the supply, as was done with the regulator supplies
   previously.

* tag 'qcom-clk-for-5.20' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux: (62 commits)
  clk: qcom: gcc-msm8994: use parent_hws for gpll0/4
  clk: qcom: clk-rpm: convert to parent_data API
  dt-bindings: clock: fix wrong clock documentation for qcom,rpmcc
  clk: qcom: gcc-msm8939: Add missing USB HS system clock frequencies
  clk: qcom: gcc-msm8939: Add missing MDSS MDP clock frequencies
  clk: qcom: gcc-msm8939: Add missing CAMSS CPP clock frequencies
  clk: qcom: gcc-msm8939: Fix venus0_vcodec0_clk frequency definitions
  clk: qcom: gcc-msm8939: Add missing CAMSS CCI bus clock
  clk: qcom: gcc-msm8939: Fix weird field spacing in ftbl_gcc_camss_cci_clk
  clk: qcom: gdsc: Bump parent usage count when GDSC is found enabled
  clk: qcom: Drop mmcx gdsc supply for dispcc and videocc
  clk: qcom: fix build error initializer element is not constant
  dt-bindings: clock: qcom,gcc-msm8996: add more GCC clock sources
  clk: qcom: add support for SM8350 DISPCC
  clk: qcom: add support for SM8350 GPUCC
  clk: qcom: add camera clock controller driver for SM8450 SoC
  clk: qcom: clk-alpha-pll: add Rivian EVO PLL configuration interfaces
  clk: qcom: clk-alpha-pll: add Lucid EVO PLL configuration interfaces
  clk: qcom: clk-alpha-pll: limit exported symbols to GPL licensed code
  clk: qcom: clk-alpha-pll: fix clk_trion_pll_configure description
  ...
parents f2906aa8 5e1e12d2
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -4,18 +4,19 @@
$id: http://devicetree.org/schemas/clock/qcom,dispcc-sm8x50.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm Display Clock & Reset Controller Binding for SM8150/SM8250
title: Qualcomm Display Clock & Reset Controller Binding for SM8150/SM8250/SM8350

maintainers:
  - Jonathan Marek <jonathan@marek.ca>

description: |
  Qualcomm display clock control module which supports the clocks, resets and
  power domains on SM8150 and SM8250.
  power domains on SM8150/SM8250/SM8350.

  See also:
    dt-bindings/clock/qcom,dispcc-sm8150.h
    dt-bindings/clock/qcom,dispcc-sm8250.h
    dt-bindings/clock/qcom,dispcc-sm8350.h

properties:
  compatible:
@@ -23,6 +24,7 @@ properties:
      - qcom,sc8180x-dispcc
      - qcom,sm8150-dispcc
      - qcom,sm8250-dispcc
      - qcom,sm8350-dispcc

  clocks:
    items:
+31 −9
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@
$id: http://devicetree.org/schemas/clock/qcom,gcc-apq8064.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm Global Clock & Reset Controller Binding for APQ8064
title: Qualcomm Global Clock & Reset Controller Binding for APQ8064/MSM8960

allOf:
  - $ref: qcom,gcc.yaml#
@@ -23,11 +23,25 @@ description: |

properties:
  compatible:
    const: qcom,gcc-apq8064
    oneOf:
      - items:
          - enum:
              - qcom,gcc-apq8064
              - qcom,gcc-msm8960
          - const: syscon
      - enum:
          - qcom,gcc-apq8064
          - qcom,gcc-msm8960
        deprecated: true

  thermal-sensor:
    description: child tsens device
    $ref: /schemas/thermal/qcom-tsens.yaml#

  nvmem-cells:
    minItems: 1
    maxItems: 2
    deprecated: true
    description:
      Qualcomm TSENS (thermal sensor device) on some devices can
      be part of GCC and hence the TSENS properties can also be part
@@ -37,31 +51,39 @@ properties:

  nvmem-cell-names:
    minItems: 1
    deprecated: true
    items:
      - const: calib
      - const: calib_backup

  '#thermal-sensor-cells':
    const: 1
    deprecated: true

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

unevaluatedProperties: false

examples:
  - |
    clock-controller@900000 {
      compatible = "qcom,gcc-apq8064";
      compatible = "qcom,gcc-apq8064", "syscon";
      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 {
        compatible = "qcom,msm8960-tsens";

        nvmem-cells = <&tsens_calib>, <&tsens_backup>;
        nvmem-cell-names = "calib", "calib_backup";
        interrupts = <0 178 4>;
        interrupt-names = "uplow";

        #qcom,sensors = <11>;
        #thermal-sensor-cells = <1>;
      };
    };
...
+5 −0
Original line number Diff line number Diff line
@@ -24,6 +24,9 @@ properties:
  '#clock-cells':
    const: 1

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

  '#reset-cells':
    const: 1

@@ -38,6 +41,7 @@ required:
  - compatible
  - reg
  - '#clock-cells'
  - '#power-domain-cells'
  - '#reset-cells'

additionalProperties: false
@@ -48,6 +52,7 @@ examples:
      compatible = "qcom,gcc-ipq8074";
      reg = <0x01800000 0x80000>;
      #clock-cells = <1>;
      #power-domain-cells = <1>;
      #reset-cells = <1>;
    };
...
+16 −0
Original line number Diff line number Diff line
@@ -22,16 +22,32 @@ properties:
    const: qcom,gcc-msm8996

  clocks:
    minItems: 3
    items:
      - description: XO source
      - description: Second XO source
      - description: Sleep clock source
      - description: PCIe 0 PIPE clock (optional)
      - description: PCIe 1 PIPE clock (optional)
      - description: PCIe 2 PIPE clock (optional)
      - description: USB3 PIPE clock (optional)
      - description: UFS RX symbol 0 clock (optional)
      - description: UFS RX symbol 1 clock (optional)
      - description: UFS TX symbol 0 clock (optional)

  clock-names:
    minItems: 3
    items:
      - const: cxo
      - const: cxo2
      - const: sleep_clk
      - const: pcie_0_pipe_clk_src
      - const: pcie_1_pipe_clk_src
      - const: pcie_2_pipe_clk_src
      - const: usb3_phy_pipe_clk_src
      - const: ufs_rx_symbol_0_clk_src
      - const: ufs_rx_symbol_1_clk_src
      - const: ufs_tx_symbol_0_clk_src

  '#clock-cells':
    const: 1
+2 −3
Original line number Diff line number Diff line
@@ -44,7 +44,6 @@ properties:
      - qcom,gcc-msm8916
      - qcom,gcc-msm8939
      - qcom,gcc-msm8953
      - qcom,gcc-msm8960
      - qcom,gcc-msm8974
      - qcom,gcc-msm8974pro
      - qcom,gcc-msm8974pro-ac
@@ -58,10 +57,10 @@ required:
unevaluatedProperties: false

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