Commit 17bbcd7d authored by Stephen Boyd's avatar Stephen Boyd
Browse files

Merge tag 'clk-imx-5.7' of...

Merge tag 'clk-imx-5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into clk-imx

Pull i.MX clk driver updates from Shawn Guo:

 - A series from Anson to convert i.MX8 clock bindings to json-schema
 - Update pll14xx driver to include new frequency entries for pll1443x
   table, and return error for invalid PLL type
 - Clean up header includes and unnecessary code on a few clock driver
 - Add mssing of_node_put() call for a number of clock drivers
 - Drop flag CLK_IS_CRITICAL from 'A53_CORE' mux clock, as we already
   have the flag on its child cpu clock
 - Fix a53 cpu clock for i.MX8 drivers to get it source from ARM PLL
   via CORE_SEL slice, and source from A53 CCM clk root when we need to
   change ARM PLL frequency. Thus, we can support core running above
   1GHz safely
 - Update pfdv2 driver to check zero rate and use determine_rate for
   getting the best rate
 - Add CLKO2 for imx8mm, SNVS clock for imx8mn, and PXP clock for imx7d

* tag 'clk-imx-5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: (41 commits)
  clk: imx: clk-gate2: Pass the device to the register function
  clk: imx7d: Add PXP clock
  clk: imx8mq: A53 core clock no need to be critical
  clk: imx8mp: A53 core clock no need to be critical
  clk: imx8mm: A53 core clock no need to be critical
  clk: imx8mn: A53 core clock no need to be critical
  clk: imx: pllv4: use prepare/unprepare
  clk: imx: pfdv2: determine best parent rate
  clk: imx: pfdv2: switch to use determine_rate
  clk: imx: Fix division by zero warning on pfdv2
  clk: imx: clk-sscg-pll: Drop unnecessary initialization
  clk: imx: pll14xx: Return error if pll type is invalid
  clk: imx: imx8mp: fix a53 cpu clock
  clk: imx: imx8mn: fix a53 cpu clock
  clk: imx: imx8mm: fix a53 cpu clock
  clk: imx: imx8mq: fix a53 cpu clock
  clk: imx8mp: Rename the IMX8MP_CLK_HDMI_27M clock
  clk: imx8mn: Remove unused includes
  clk: imx8mm: Remove unused includes
  clk: imx8mp: Include slab.h instead of clkdev.h
  ...
parents bb6d3fb3 b5881e80
Loading
Loading
Loading
Loading
+0 −29
Original line number Diff line number Diff line
* Clock bindings for NXP i.MX8M Mini

Required properties:
- compatible: Should be "fsl,imx8mm-ccm"
- reg: Address and length of the register set
- #clock-cells: Should be <1>
- clocks: list of clock specifiers, must contain an entry for each required
          entry in clock-names
- clock-names: should include the following entries:
    - "osc_32k"
    - "osc_24m"
    - "clk_ext1"
    - "clk_ext2"
    - "clk_ext3"
    - "clk_ext4"

clk: clock-controller@30380000 {
	compatible = "fsl,imx8mm-ccm";
	reg = <0x0 0x30380000 0x0 0x10000>;
	#clock-cells = <1>;
	clocks = <&osc_32k>, <&osc_24m>, <&clk_ext1>, <&clk_ext2>,
		 <&clk_ext3>, <&clk_ext4>;
	clock-names = "osc_32k", "osc_24m", "clk_ext1", "clk_ext2",
		      "clk_ext3", "clk_ext4";
};

The clock consumer should specify the desired clock by having the clock
ID in its "clocks" phandle cell. See include/dt-bindings/clock/imx8mm-clock.h
for the full list of i.MX8M Mini clock IDs.
+68 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/bindings/clock/imx8mm-clock.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: NXP i.MX8M Mini Clock Control Module Binding

maintainers:
  - Anson Huang <Anson.Huang@nxp.com>

description: |
  NXP i.MX8M Mini clock control module is an integrated clock controller, which
  generates and supplies to all modules.

properties:
  compatible:
    const: fsl,imx8mm-ccm

  reg:
    maxItems: 1

  clocks:
    items:
      - description: 32k osc
      - description: 24m osc
      - description: ext1 clock input
      - description: ext2 clock input
      - description: ext3 clock input
      - description: ext4 clock input

  clock-names:
    items:
      - const: osc_32k
      - const: osc_24m
      - const: clk_ext1
      - const: clk_ext2
      - const: clk_ext3
      - const: clk_ext4

  '#clock-cells':
    const: 1
    description:
      The clock consumer should specify the desired clock by having the clock
      ID in its "clocks" phandle cell. See include/dt-bindings/clock/imx8mm-clock.h
      for the full list of i.MX8M Mini clock IDs.

required:
  - compatible
  - reg
  - clocks
  - clock-names
  - '#clock-cells'

examples:
  # Clock Control Module node:
  - |
    clk: clock-controller@30380000 {
        compatible = "fsl,imx8mm-ccm";
        reg = <0x30380000 0x10000>;
        #clock-cells = <1>;
        clocks = <&osc_32k>, <&osc_24m>, <&clk_ext1>, <&clk_ext2>,
                 <&clk_ext3>, <&clk_ext4>;
        clock-names = "osc_32k", "osc_24m", "clk_ext1", "clk_ext2",
                      "clk_ext3", "clk_ext4";
    };

...
+2 −46
Original line number Diff line number Diff line
@@ -40,7 +40,7 @@ properties:

  '#clock-cells':
    const: 1
    description: |
    description:
      The clock consumer should specify the desired clock by having the clock
      ID in its "clocks" phandle cell. See include/dt-bindings/clock/imx8mn-clock.h
      for the full list of i.MX8M Nano clock IDs.
@@ -57,7 +57,7 @@ examples:
  - |
    clk: clock-controller@30380000 {
        compatible = "fsl,imx8mn-ccm";
        reg = <0x0 0x30380000 0x0 0x10000>;
        reg = <0x30380000 0x10000>;
        #clock-cells = <1>;
        clocks = <&osc_32k>, <&osc_24m>, <&clk_ext1>,
                 <&clk_ext2>, <&clk_ext3>, <&clk_ext4>;
@@ -65,48 +65,4 @@ examples:
                      "clk_ext2", "clk_ext3", "clk_ext4";
    };

  # Required external clocks for Clock Control Module node:
  - |
    osc_32k: clock-osc-32k {
        compatible = "fixed-clock";
        #clock-cells = <0>;
        clock-frequency = <32768>;
        clock-output-names = "osc_32k";
    };

    osc_24m: clock-osc-24m {
        compatible = "fixed-clock";
        #clock-cells = <0>;
        clock-frequency = <24000000>;
        clock-output-names = "osc_24m";
    };

    clk_ext1: clock-ext1 {
        compatible = "fixed-clock";
        #clock-cells = <0>;
        clock-frequency = <133000000>;
        clock-output-names = "clk_ext1";
    };

    clk_ext2: clock-ext2 {
        compatible = "fixed-clock";
        #clock-cells = <0>;
        clock-frequency = <133000000>;
        clock-output-names = "clk_ext2";
    };

    clk_ext3: clock-ext3 {
        compatible = "fixed-clock";
        #clock-cells = <0>;
        clock-frequency = <133000000>;
        clock-output-names = "clk_ext3";
    };

    clk_ext4: clock-ext4 {
        compatible = "fixed-clock";
        #clock-cells = <0>;
        clock-frequency= <133000000>;
        clock-output-names = "clk_ext4";
    };

...
+0 −20
Original line number Diff line number Diff line
* Clock bindings for NXP i.MX8M Quad

Required properties:
- compatible: Should be "fsl,imx8mq-ccm"
- reg: Address and length of the register set
- #clock-cells: Should be <1>
- clocks: list of clock specifiers, must contain an entry for each required
          entry in clock-names
- clock-names: should include the following entries:
    - "ckil"
    - "osc_25m"
    - "osc_27m"
    - "clk_ext1"
    - "clk_ext2"
    - "clk_ext3"
    - "clk_ext4"

The clock consumer should specify the desired clock by having the clock
ID in its "clocks" phandle cell.  See include/dt-bindings/clock/imx8mq-clock.h
for the full list of i.MX8M Quad clock IDs.
+72 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/bindings/clock/imx8mq-clock.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: NXP i.MX8M Quad Clock Control Module Binding

maintainers:
  - Anson Huang <Anson.Huang@nxp.com>

description: |
  NXP i.MX8M Quad clock control module is an integrated clock controller, which
  generates and supplies to all modules.

properties:
  compatible:
    const: fsl,imx8mq-ccm

  reg:
    maxItems: 1

  clocks:
    items:
      - description: 32k osc
      - description: 25m osc
      - description: 27m osc
      - description: ext1 clock input
      - description: ext2 clock input
      - description: ext3 clock input
      - description: ext4 clock input

  clock-names:
    items:
      - const: ckil
      - const: osc_25m
      - const: osc_27m
      - const: clk_ext1
      - const: clk_ext2
      - const: clk_ext3
      - const: clk_ext4

  '#clock-cells':
    const: 1
    description:
      The clock consumer should specify the desired clock by having the clock
      ID in its "clocks" phandle cell. See include/dt-bindings/clock/imx8mq-clock.h
      for the full list of i.MX8M Quad clock IDs.

required:
  - compatible
  - reg
  - clocks
  - clock-names
  - '#clock-cells'

examples:
  # Clock Control Module node:
  - |
    clk: clock-controller@30380000 {
        compatible = "fsl,imx8mq-ccm";
        reg = <0x30380000 0x10000>;
        #clock-cells = <1>;
        clocks = <&ckil>, <&osc_25m>, <&osc_27m>,
                 <&clk_ext1>, <&clk_ext2>,
                 <&clk_ext3>, <&clk_ext4>;
        clock-names = "ckil", "osc_25m", "osc_27m",
                      "clk_ext1", "clk_ext2",
                      "clk_ext3", "clk_ext4";
    };

...
Loading