Commit c63e2a7a authored by Stephen Boyd's avatar Stephen Boyd
Browse files

Merge branches 'clk-socfpga', 'clk-doc', 'clk-qcom', 'clk-vc5' and 'clk-bcm' into clk-next

 - Enable CPU clks on Qualcomm IPQ6018 SoCs
 - Enable CPU clks on Qualcomm MSM8996 SoCs
 - GPU clk support for Qualcomm SM8150 and SM8250 SoCs
 - Audio clks on Qualcomm SC7180 SoCs
 - Make defines for bcm63xx-gate clks to use in DT
 - Support gate clks on BCM6318 SoCs
 - Add HDMI clks for BCM2711 SoCs
 - Support BCM2711 SoC firmware clks

* clk-socfpga:
  clk: socfpga: agilex: mpu_l2ram_clk should be mpu_ccu_clk
  clk: socfpga: agilex: add nand_x_clk and nand_ecc_clk
  dt-bindings: agilex: add NAND_X_CLK and NAND_ECC_CLK

* clk-doc:
  clk: Clean up kernel-doc errors
  clk: <linux/clk-provider.h>: drop a duplicated word
  clk: add function documentation for clk_hw_round_rate()

* clk-qcom: (38 commits)
  dt-bindings: clock: Fix YAML schemas for LPASS clocks on SC7180
  clk: qcom: gcc-sdm660: Fix up gcc_mss_mnoc_bimc_axi_clk
  clk: qcom: gcc-sdm660: Add missing modem reset
  clk: qcom: lpass: Add support for LPASS clock controller for SC7180
  clk: qcom: gcc: Add support for GCC LPASS clock for SC7180
  dt-bindings: clock: Add YAML schemas for LPASS clocks on SC7180
  clk: qcom: gdsc: Add support to enable retention of GSDCR
  clk: qcom: Export gdsc_gx_do_nothing_enable() to modules
  clk: qcom: Add graphics clock controller driver for SM8250
  clk: qcom: Add graphics clock controller driver for SM8150
  clk: qcom: add common gdsc_gx_do_nothing_enable for gpucc drivers
  dt-bindings: clock: add SM8250 QCOM Graphics clock bindings
  dt-bindings: clock: add SM8150 QCOM Graphics clock bindings
  dt-bindings: clock: combine qcom,sdm845-gpucc and qcom,sc7180-gpucc
  clk: qcom: gcc: remove unnecessary vco_table from SM8150
  clk: qcom: clk-alpha-pll: use the right PCAL_DONE value for lucid pll
  clk: qcom: clk-alpha-pll: same regs and ops for trion and lucid
  clk: qcom: clk-alpha-pll: remove unused/incorrect PLL_CAL_VAL
  clk: qcom: gcc: fix sm8150 GPU and NPU clocks
  dt-bindings: clock: Fix qcom,msm8996-apcc yaml syntax
  ...

* clk-vc5:
  clk: vc5: use a dedicated struct to describe the output drivers
  dt-bindings: clk: versaclock5: convert to yaml
  MAINTAINERS: take over IDT VersaClock 5 clock driver
  dt-bindings: clk: versaclock5: fix 'idt' prefix typos
  clk: vc5: Add memory check to prevent oops
  clk: vc5: fix use of memory after it has been kfree'd
  clk: vc5: Enable addition output configurations of the Versaclock
  dt: Add additional option bindings for IDT VersaClock
  clk: vc5: Allow Versaclock driver to support multiple instances

* clk-bcm: (44 commits)
  clk: bcm2835: Do not use prediv with bcm2711's PLLs
  dt-bindings: arm: bcm: Add a select to the RPI Firmware binding
  clk: bcm: dvp: Add missing module informations
  clk: bcm: rpi: Remove the quirks for the CPU clock
  clk: bcm2835: Don't cache the PLLB rate
  clk: bcm2835: Allow custom CCF flags for the PLLs
  Revert "clk: bcm2835: remove pllb"
  clk: bcm: rpi: Give firmware clocks a name
  clk: bcm: rpi: Discover the firmware clocks
  clk: bcm: rpi: Add an enum for the firmware clocks
  clk: bcm: rpi: Add DT provider for the clocks
  clk: bcm: rpi: Make the PLLB registration function return a clk_hw
  clk: bcm: rpi: Split pllb clock hooks
  clk: bcm: rpi: Rename is_prepared function
  clk: bcm: rpi: Pass the clocks data to the firmware function
  clk: bcm: rpi: Add clock id to data
  clk: bcm: rpi: Create a data structure for the clocks
  clk: bcm: rpi: Use CCF boundaries instead of rolling our own
  clk: bcm: rpi: Make sure the clkdev lookup is removed
  clk: bcm: rpi: Switch to clk_hw_register_clkdev
  ...
Loading
Loading
Loading
Loading
+0 −14
Original line number Diff line number Diff line
Raspberry Pi VideoCore firmware driver

Required properties:

- compatible:		Should be "raspberrypi,bcm2835-firmware"
- mboxes:		Phandle to the firmware device's Mailbox.
			  (See: ../mailbox/mailbox.txt for more information)

Example:

firmware {
	compatible = "raspberrypi,bcm2835-firmware";
	mboxes = <&mailbox>;
};
+68 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/bcm/raspberrypi,bcm2835-firmware.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Raspberry Pi VideoCore firmware driver

maintainers:
  - Eric Anholt <eric@anholt.net>
  - Stefan Wahren <wahrenst@gmx.net>

select:
  properties:
    compatible:
      contains:
        const: raspberrypi,bcm2835-firmware

  required:
    - compatible

properties:
  compatible:
    items:
      - const: raspberrypi,bcm2835-firmware
      - const: simple-bus

  mboxes:
    $ref: '/schemas/types.yaml#/definitions/phandle'
    description: |
      Phandle to the firmware device's Mailbox.
      (See: ../mailbox/mailbox.txt for more information)

  clocks:
    type: object

    properties:
      compatible:
        const: raspberrypi,firmware-clocks

      "#clock-cells":
        const: 1
        description: >
          The argument is the ID of the clocks contained by the
          firmware messages.

    required:
      - compatible
      - "#clock-cells"

    additionalProperties: false

required:
  - compatible
  - mboxes

examples:
  - |
    firmware {
        compatible = "raspberrypi,bcm2835-firmware", "simple-bus";
        mboxes = <&mailbox>;

        firmware_clocks: clocks {
            compatible = "raspberrypi,firmware-clocks";
            #clock-cells = <1>;
        };
    };
...
+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,bcm2711-dvp.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Broadcom BCM2711 HDMI DVP Device Tree Bindings

maintainers:
  - Maxime Ripard <mripard@kernel.org>

properties:
  "#clock-cells":
    const: 1

  "#reset-cells":
    const: 1

  compatible:
    const: brcm,brcm2711-dvp

  reg:
    maxItems: 1

  clocks:
    maxItems: 1

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

additionalProperties: false

examples:
  - |
    dvp: clock@7ef00000 {
        compatible = "brcm,brcm2711-dvp";
        reg = <0x7ef00000 0x10>;
        clocks = <&clk_108MHz>;
        #clock-cells = <1>;
        #reset-cells = <1>;
    };

...
+2 −0
Original line number Diff line number Diff line
@@ -3,6 +3,8 @@ Gated Clock Controller Bindings for MIPS based BCM63XX SoCs
Required properties:
- compatible: must be one of:
	 "brcm,bcm3368-clocks"
	 "brcm,bcm6318-clocks"
	 "brcm,bcm6318-ubus-clocks"
	 "brcm,bcm6328-clocks"
	 "brcm,bcm6358-clocks"
	 "brcm,bcm6362-clocks"
+0 −92
Original line number Diff line number Diff line
Binding for IDT VersaClock 5,6 programmable i2c clock generators.

The IDT VersaClock 5 and VersaClock 6 are programmable i2c clock
generators providing from 3 to 12 output clocks.

==I2C device node==

Required properties:
- compatible:	shall be one of
		"idt,5p49v5923"
		"idt,5p49v5925"
		"idt,5p49v5933"
		"idt,5p49v5935"
		"idt,5p49v6901"
		"idt,5p49v6965"
- reg:		i2c device address, shall be 0x68 or 0x6a.
- #clock-cells:	from common clock binding; shall be set to 1.
- clocks:	from common clock binding; list of parent clock handles,
		- 5p49v5923 and
		  5p49v5925 and
		  5p49v6901: (required) either or both of XTAL or CLKIN
					reference clock.
		- 5p49v5933 and
		- 5p49v5935: (optional) property not present (internal
					Xtal used) or CLKIN reference
					clock.
- clock-names:	from common clock binding; clock input names, can be
		- 5p49v5923 and
		  5p49v5925 and
		  5p49v6901: (required) either or both of "xin", "clkin".
		- 5p49v5933 and
		- 5p49v5935: (optional) property not present or "clkin".

==Mapping between clock specifier and physical pins==

When referencing the provided clock in the DT using phandle and
clock specifier, the following mapping applies:

5P49V5923:
	0 -- OUT0_SEL_I2CB
	1 -- OUT1
	2 -- OUT2

5P49V5933:
	0 -- OUT0_SEL_I2CB
	1 -- OUT1
	2 -- OUT4

5P49V5925 and
5P49V5935:
	0 -- OUT0_SEL_I2CB
	1 -- OUT1
	2 -- OUT2
	3 -- OUT3
	4 -- OUT4

5P49V6901:
	0 -- OUT0_SEL_I2CB
	1 -- OUT1
	2 -- OUT2
	3 -- OUT3
	4 -- OUT4

==Example==

/* 25MHz reference crystal */
ref25: ref25m {
	compatible = "fixed-clock";
	#clock-cells = <0>;
	clock-frequency = <25000000>;
};

i2c-master-node {

	/* IDT 5P49V5923 i2c clock generator */
	vc5: clock-generator@6a {
		compatible = "idt,5p49v5923";
		reg = <0x6a>;
		#clock-cells = <1>;

		/* Connect XIN input to 25MHz reference */
		clocks = <&ref25m>;
		clock-names = "xin";
	};
};

/* Consumer referencing the 5P49V5923 pin OUT1 */
consumer {
	...
	clocks = <&vc5 1>;
	...
}
Loading