Commit 35655ceb authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull clk updates from Stephen Boyd:
 "Here's a collection of largely clk driver updates. The usual suspects
  are here: i.MX, Qualcomm, Renesas, Allwinner, Samsung, and Rockchip,
  but it feels pretty light on commits.

  There's only one real commit to the framework core and that's to
  consolidate code. Otherwise the diffstat is dominated by many Qualcomm
  clk driver patches that modernize the driver for the proper way of
  speciying clk parents. That's shifting data around, which could subtly
  break things so I'll be on the lookout for fixes.

  New Drivers:
   - Proper clk driver for Mediatek MT7621 SoCs
   - Support for the clock controller on the new Rockchip rk3568

  Updates:
   - Simplify Zynq Kconfig dependencies
   - Use clk_hw pointers in socfpga driver
   - Cleanup parent data in qcom clk drivers
   - Some cleanups for rk3399 modularization
   - Fix reparenting of i.MX UART clocks by initializing only the ones
     associated to stdout
   - Correct the PCIE clocks for i.MX8MP and i.MX8MQ
   - Make i.MX LPCG and SCU clocks return on registering failure
   - Kernel doc fixes
   - Add DAB hardware accelerator clocks on Renesas R-Car E3 and M3-N
   - Add timer (TMU) clocks on Renesas R-Car H3 ES1.0
   - Add Timer (TMU & CMT) and thermal sensor (TSC) clocks on
     Renesas R-Car V3U
   - Sigma-delta modulation on Allwinner V3s audio PLL"

* tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (82 commits)
  MAINTAINERS: add MT7621 CLOCK maintainer
  staging: mt7621-dts: use valid vendor 'mediatek' instead of invalid 'mtk'
  staging: mt7621-dts: make use of new 'mt7621-clk'
  clk: ralink: add clock driver for mt7621 SoC
  clk: uniphier: Fix potential infinite loop
  clk: qcom: rpmh: add support for SDX55 rpmh IPA clock
  clk: qcom: gcc-sdm845: get rid of the test clock
  clk: qcom: convert SDM845 Global Clock Controller to parent_data
  dt-bindings: clock: separate SDM845 GCC clock bindings
  clk: qcom: apss-ipq-pll: Add missing MODULE_DEVICE_TABLE
  clk: qcom: a53-pll: Add missing MODULE_DEVICE_TABLE
  clk: qcom: a7-pll: Add missing MODULE_DEVICE_TABLE
  dt: bindings: add mt7621-sysc device tree binding documentation
  dt-bindings: clock: add dt binding header for mt7621 clocks
  clk: samsung: Remove redundant dev_err calls
  clk: zynqmp: pll: add set_pll_mode to check condition in zynqmp_pll_enable
  clk: zynqmp: move zynqmp_pll_set_mode out of round_rate callback
  clk: zynqmp: Drop dependency on ARCH_ZYNQMP
  clk: zynqmp: Enable the driver if ZYNQMP_FIRMWARE is selected
  clk: qcom: gcc-sm8350: use ARRAY_SIZE instead of specifying num_parents
  ...
parents d8201efe 3ba2d41d
Loading
Loading
Loading
Loading
+68 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/clock/mediatek,mt7621-sysc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: MT7621 Clock Device Tree Bindings

maintainers:
  - Sergio Paracuellos <sergio.paracuellos@gmail.com>

description: |
  The MT7621 has a PLL controller from where the cpu clock is provided
  as well as derived clocks for the bus and the peripherals. It also
  can gate SoC device clocks.

  Each clock is assigned an identifier and client nodes use this identifier
  to specify the clock which they consume.

  All these identifiers could be found in:
  [1]: <include/dt-bindings/clock/mt7621-clk.h>.

  The clocks are provided inside a system controller node.

properties:
  compatible:
    items:
      - const: mediatek,mt7621-sysc
      - const: syscon

  reg:
    maxItems: 1

  "#clock-cells":
    description:
      The first cell indicates the clock number, see [1] for available
      clocks.
    const: 1

  ralink,memctl:
    $ref: /schemas/types.yaml#/definitions/phandle
    description:
      phandle of syscon used to control memory registers

  clock-output-names:
    maxItems: 8

required:
  - compatible
  - reg
  - '#clock-cells'
  - ralink,memctl

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/mt7621-clk.h>

    sysc: sysc@0 {
      compatible = "mediatek,mt7621-sysc", "syscon";
      reg = <0x0 0x100>;
      #clock-cells = <1>;
      ralink,memctl = <&memc>;
      clock-output-names = "xtal", "cpu", "bus",
                           "50m", "125m", "150m",
                           "250m", "270m";
    };
+82 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only
%YAML 1.2
---
$id: http://devicetree.org/schemas/clock/qcom,gcc-sdm845.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 on SDM845

  See also:
  - dt-bindings/clock/qcom,gcc-sdm845.h

properties:
  compatible:
    const: qcom,gcc-sdm845

  clocks:
    items:
      - description: Board XO source
      - description: Board active XO source
      - description: Sleep clock source
      - description: PCIE 0 Pipe clock source
      - description: PCIE 1 Pipe clock source

  clock-names:
    items:
      - const: bi_tcxo
      - const: bi_tcxo_ao
      - const: sleep_clk
      - const: pcie_0_pipe_clk
      - const: pcie_1_pipe_clk

  '#clock-cells':
    const: 1

  '#reset-cells':
    const: 1

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

  reg:
    maxItems: 1

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

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

additionalProperties: false

examples:
  # Example for GCC for SDM845:
  - |
    #include <dt-bindings/clock/qcom,rpmh.h>
    clock-controller@100000 {
      compatible = "qcom,gcc-sdm845";
      reg = <0x100000 0x1f0000>;
      clocks = <&rpmhcc RPMH_CXO_CLK>,
               <&rpmhcc RPMH_CXO_CLK_A>,
               <&sleep_clk>,
               <&pcie0_lane>,
               <&pcie1_lane>;
      clock-names = "bi_tcxo", "bi_tcxo_ao", "sleep_clk", "pcie_0_pipe_clk", "pcie_1_pipe_clk";
      #clock-cells = <1>;
      #reset-cells = <1>;
      #power-domain-cells = <1>;
    };
...
+0 −2
Original line number Diff line number Diff line
@@ -32,7 +32,6 @@ description: |
  - dt-bindings/clock/qcom,gcc-mdm9615.h
  - dt-bindings/reset/qcom,gcc-mdm9615.h
  - dt-bindings/clock/qcom,gcc-sdm660.h  (qcom,gcc-sdm630 and qcom,gcc-sdm660)
  - dt-bindings/clock/qcom,gcc-sdm845.h

properties:
  compatible:
@@ -52,7 +51,6 @@ properties:
      - qcom,gcc-mdm9615
      - qcom,gcc-sdm630
      - qcom,gcc-sdm660
      - qcom,gcc-sdm845

  '#clock-cells':
    const: 1
+60 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/clock/rockchip,rk3568-cru.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: ROCKCHIP rk3568 Family Clock Control Module Binding

maintainers:
  - Elaine Zhang <zhangqing@rock-chips.com>
  - Heiko Stuebner <heiko@sntech.de>

description: |
  The RK3568 clock controller generates the clock and also implements a
  reset controller for SoC peripherals.
  (examples: provide SCLK_UART1\PCLK_UART1 and SRST_P_UART1\SRST_S_UART1 for UART module)
  Each clock is assigned an identifier and client nodes can use this identifier
  to specify the clock which they consume. All available clocks are defined as
  preprocessor macros in the dt-bindings/clock/rk3568-cru.h headers and can be
  used in device tree sources.

properties:
  compatible:
    enum:
      - rockchip,rk3568-cru
      - rockchip,rk3568-pmucru

  reg:
    maxItems: 1

  "#clock-cells":
    const: 1

  "#reset-cells":
    const: 1

required:
  - compatible
  - reg
  - "#clock-cells"
  - "#reset-cells"

additionalProperties: false

examples:
  # Clock Control Module node:
  - |
    pmucru: clock-controller@fdd00000 {
      compatible = "rockchip,rk3568-pmucru";
      reg = <0xfdd00000 0x1000>;
      #clock-cells = <1>;
      #reset-cells = <1>;
    };
  - |
    cru: clock-controller@fdd20000 {
      compatible = "rockchip,rk3568-cru";
      reg = <0xfdd20000 0x1000>;
      #clock-cells = <1>;
      #reset-cells = <1>;
    };
+6 −0
Original line number Diff line number Diff line
@@ -11469,6 +11469,12 @@ L: linux-wireless@vger.kernel.org
S:	Maintained
F:	drivers/net/wireless/mediatek/mt7601u/
MEDIATEK MT7621 CLOCK DRIVER
M:	Sergio Paracuellos <sergio.paracuellos@gmail.com>
S:	Maintained
F:	Documentation/devicetree/bindings/clock/mediatek,mt7621-sysc.yaml
F:	drivers/clk/ralink/clk-mt7621.c
MEDIATEK MT7621/28/88 I2C DRIVER
M:	Stefan Roese <sr@denx.de>
L:	linux-i2c@vger.kernel.org
Loading