Commit 9f32a03e authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull clk updates from Stephen Boyd:
 "This has been a semi-quiet cycle. The core framework remains unchanged
  this time around.

  In terms of shiny new code though, we have support for the SpacemiT K1
  SoC, Sophgo SG2044, and T-HEAD TH1520 VO clk drivers joining the usual
  silicon players like Qualcomm, Samsung, Allwinner, and Renesas.

  Surprisingly, the Qualcomm pile was smaller than usual but that is
  likely because they put one SoC support inside a driver for a
  different SoC that is very similar.

  Other than all those new clk drivers there are the usual clk data
  updates to fix parents, frequency tables, and add missing clks along
  with some Kconfig changes to make compile testing simpler and even
  more DT binding conversions to boot.

  The exciting part is still the new SoC support like SpacemiT and
  Sophgo support though, which really dominate the diffstat because they
  introduce a whole new silicon vendor clk driver.

  New Drivers:
   - Camera clock controller driver for Qualcomm QCS8300
   - DE (display engine) 3.3 clocks on Allwinner H616
   - Samsung ExynosAutov920 CPU cluster CL0, CL1 and CL2 clock controllers
   - Video Output (VO) subsystem clk controller in the T-HEAD TH1520 SoC
   - Clock driver for Sophgo SG2044
   - Clock driver for SpacemiT K1 SoC
   - Renesas RZ/V2N (R9A09G056) SoC clk driver

  Updates:
   - Correct data in various SoC clk drivers
   - Allow clkaN to be optional in the Qualcomm RPMh clock controller
     driver if command db doesn't define it
   - Change Kconfig options to not enable by default during compile
     testing
   - Add missing clks in various SoC clk drivers
   - Remove some duplicate clk DT bindings and convert some more to
     YAML"

* tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (93 commits)
  clk: qcom: gcc-x1e80100: Set FORCE MEM CORE for UFS clocks
  clk: qcom: gcc: Set FORCE_MEM_CORE_ON for gcc_ufs_axi_clk for 8650/8750
  clk: qcom: rpmh: make clkaN optional
  clk: qcom: Add support for Camera Clock Controller on QCS8300
  clk: rockchip: rk3528: add slab.h header include
  clk: rockchip: rk3576: add missing slab.h include
  clk: meson: Do not enable by default during compile testing
  clk: meson-g12a: add missing fclk_div2 to spicc
  clk: qcom: gcc-msm8939: Fix mclk0 & mclk1 for 24 MHz
  clk: rockchip: rename gate-grf clk file
  clk: rockchip: rename branch_muxgrf to branch_grf_mux
  clk: sunxi-ng: ccu: add Display Engine 3.3 (DE33) support
  dt-bindings: allwinner: add H616 DE33 clock binding
  clk: samsung: correct clock summary for hsi1 block
  dt-bindings: clock: add SM6350 QCOM video clock bindings
  clk: rockchip: Pass NULL as reg pointer when registering GRF MMC clocks
  clk: sunxi-ng: h616: Add LVDS reset for LCD TCON
  dt-bindings: clock: sun50i-h616-ccu: Add LVDS reset
  clk: rockchip: rk3036: mark ddrphy as critical
  clk: rockchip: rk3036: fix implementation of usb480m clock mux
  ...
parents d8441523 63bfd78a
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ properties:
      - const: allwinner,sun50i-a64-de2-clk
      - const: allwinner,sun50i-h5-de2-clk
      - const: allwinner,sun50i-h6-de3-clk
      - const: allwinner,sun50i-h616-de33-clk
      - items:
          - const: allwinner,sun8i-r40-de2-clk
          - const: allwinner,sun8i-h3-de2-clk
+0 −31
Original line number Diff line number Diff line
Broadcom BCM2835 auxiliary peripheral support

This binding uses the common clock binding:
    Documentation/devicetree/bindings/clock/clock-bindings.txt

The auxiliary peripherals (UART, SPI1, and SPI2) have a small register
area controlling clock gating to the peripherals, and providing an IRQ
status register.

Required properties:
- compatible:	Should be "brcm,bcm2835-aux"
- #clock-cells:	Should be <1>. The permitted clock-specifier values can be
		  found in include/dt-bindings/clock/bcm2835-aux.h
- reg:		Specifies base physical address and size of the registers
- clocks:	The parent clock phandle

Example:

	clocks: cprman@7e101000 {
		compatible = "brcm,bcm2835-cprman";
		#clock-cells = <1>;
		reg = <0x7e101000 0x2000>;
		clocks = <&clk_osc>;
	};

	aux: aux@7e215004 {
		compatible = "brcm,bcm2835-aux";
		#clock-cells = <1>;
		reg = <0x7e215000 0x8>;
		clocks = <&clocks BCM2835_CLOCK_VPU>;
	};
+47 −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/brcm,bcm2835-aux-clock.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Broadcom BCM2835 auxiliary peripheral clock

maintainers:
  - Stefan Wahren <wahrenst@gmx.net>
  - Raspberry Pi Kernel Maintenance <kernel-list@raspberrypi.com>

description:
  The auxiliary peripherals (UART, SPI1, and SPI2) have a small register
  area controlling clock gating to the peripherals, and providing an IRQ
  status register.

properties:
  compatible:
    const: brcm,bcm2835-aux

  reg:
    maxItems: 1

  "#clock-cells":
    const: 1

  clocks:
    maxItems: 1

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

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/bcm2835.h>
    clock@7e215000 {
        compatible = "brcm,bcm2835-aux";
        reg = <0x7e215000 0x8>;
        #clock-cells = <1>;
        clocks = <&clocks BCM2835_CLOCK_VPU>;
    };
+58 −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/fsl,vf610-ccm.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Clock for Freescale Vybrid VF610 SOC

description:
  The clock consumer should specify the desired clock by having the clock
  ID in its "clocks" phandle cell. See include/dt-bindings/clock/vf610-clock.h
  for the full list of VF610 clock IDs

maintainers:
  - Frank Li <Frank.Li@nxp.com>

properties:
  compatible:
    const: fsl,vf610-ccm

  reg:
    maxItems: 1

  '#clock-cells':
    const: 1

  clocks:
    items:
      - description: external crystal oscillator 32KHz, recommended
      - description: external crystal oscillator 24MHz, recommended
      - description: audio
      - description: enet
    minItems: 2

  clock-names:
    items:
      - const: sxosc
      - const: fxosc
      - const: enet_ext
      - const: audio_ext
    minItems: 2

required:
  - compatible
  - reg

additionalProperties: false

examples:
  - |
    clock-controller@4006b000 {
        compatible = "fsl,vf610-ccm";
        reg = <0x4006b000 0x1000>;
        #clock-cells = <1>;
        clocks = <&sxosc>, <&fxosc>;
        clock-names = "sxosc", "fxosc";
    };
+0 −114
Original line number Diff line number Diff line
Binding for Maxim MAX77686/MAX77802/MAX77620 32k clock generator block

This is a part of device tree bindings of MAX77686/MAX77802/MAX77620
multi-function device. More information can be found in MFD DT binding
doc as follows:
	bindings/mfd/max77686.txt for MAX77686 and
	bindings/mfd/max77802.txt for MAX77802 and
	bindings/mfd/max77620.txt for MAX77620.

The MAX77686 contains three 32.768khz clock outputs that can be controlled
(gated/ungated) over I2C. Clocks are defined as preprocessor macros in
dt-bindings/clock/maxim,max77686.h.


The MAX77802 contains two 32.768khz clock outputs that can be controlled
(gated/ungated) over I2C. Clocks are defined as preprocessor macros in
dt-bindings/clock/maxim,max77802.h.

The MAX77686 contains one 32.768khz clock outputs that can be controlled
(gated/ungated) over I2C. Clocks are defined as preprocessor macros in
dt-bindings/clock/maxim,max77620.h.

Following properties should be presend in main device node of the MFD chip.

Required properties:

- #clock-cells: from common clock binding; shall be set to 1.

Optional properties:
- clock-output-names: From common clock binding.

Each clock is assigned an identifier and client nodes can use this identifier
to specify the clock which they consume. Following indices are allowed:
    - 0: 32khz_ap clock (max77686, max77802), 32khz_out0 (max77620)
    - 1: 32khz_cp clock (max77686, max77802),
    - 2: 32khz_pmic clock (max77686).

Clocks are defined as preprocessor macros in above dt-binding header for
respective chips.

Example:

1. With MAX77686:

#include <dt-bindings/clock/maxim,max77686.h>
/* ... */

	Node of the MFD chip
		max77686: max77686@9 {
			compatible = "maxim,max77686";
			interrupt-parent = <&wakeup_eint>;
			interrupts = <26 IRQ_TYPE_LEVEL_LOW>;
			reg = <0x09>;
			#clock-cells = <1>;

			/* ... */
		};

	Clock consumer node

		foo@0 {
			compatible = "bar,foo";
			/* ... */
			clock-names = "my-clock";
			clocks = <&max77686 MAX77686_CLK_PMIC>;
		};

2. With MAX77802:

#include <dt-bindings/clock/maxim,max77802.h>
/* ... */

	Node of the MFD chip
		max77802: max77802@9 {
			compatible = "maxim,max77802";
			interrupt-parent = <&wakeup_eint>;
			interrupts = <26 IRQ_TYPE_LEVEL_LOW>;
			reg = <0x09>;
			#clock-cells = <1>;

			/* ... */
		};

	Clock consumer node

		foo@0 {
			compatible = "bar,foo";
			/* ... */
			clock-names = "my-clock";
			clocks = <&max77802 MAX77802_CLK_32K_AP>;
		};


3. With MAX77620:

#include <dt-bindings/clock/maxim,max77620.h>
/* ... */

	Node of the MFD chip
		max77620: max77620@3c {
			compatible = "maxim,max77620";
			reg = <0x3c>;
			#clock-cells = <1>;
			/* ... */
		};

	Clock consumer node

		foo@0 {
			compatible = "bar,foo";
			/* ... */
			clock-names = "my-clock";
			clocks = <&max77620 MAX77620_CLK_32K_OUT0>;
		};
Loading