Unverified Commit b675697d authored by Stephen Boyd's avatar Stephen Boyd
Browse files

Merge branches 'clk-amlogic', 'clk-thead', 'clk-mediatek' and 'clk-samsung' into clk-next

* clk-amlogic:
  clk: meson: gxbb: use the existing HHI_HDMI_PLL_CNTL3 macro
  clk: meson: g12a: Limit the HDMI PLL OD to /4
  clk: meson: gxbb: Limit the HDMI PLL OD to /4 on GXL/GXM SoCs
  clk: amlogic: remove potentially unsafe flags from S4 video clocks
  clk: amlogic: add video-related clocks for S4 SoC
  dt-bindings: clock: add video clock indices for Amlogic S4 SoC
  clk: meson: t7: add t7 clock peripherals controller driver
  clk: meson: t7: add support for the T7 SoC PLL clock
  dt-bindings: clock: add Amlogic T7 peripherals clock controller
  dt-bindings: clock: add Amlogic T7 SCMI clock controller
  dt-bindings: clock: add Amlogic T7 PLL clock controller

* clk-thead:
  clk: thead: th1520-ap: Support CPU frequency scaling
  clk: thead: th1520-ap: Add macro to define multiplexers with flags
  clk: thead: th1520-ap: Support setting PLL rates
  clk: thead: th1520-ap: Add C910 bus clock
  clk: thead: th1520-ap: Poll for PLL lock and wait for stability
  dt-bindings: clock: thead,th1520-clk-ap: Add ID for C910 bus clock

* clk-mediatek:
  Revert "clk: Respect CLK_OPS_PARENT_ENABLE during recalc"
  clk: mediatek: Fix error handling in runtime PM setup
  clk: mediatek: don't select clk-mt8192 for all ARM64 builds
  clk: mediatek: Add mfg_eb as parent to mt8196 mfgpll clocks
  clk: mediatek: Refactor pllfh registration to pass device
  clk: mediatek: Pass device to clk_hw_register for PLLs
  clk: mediatek: Refactor pll registration to pass device
  clk: Respect CLK_OPS_PARENT_ENABLE during recalc
  dt-bindings: clock: mediatek,mt7622-pciesys: Remove syscon compatible
  clk: mediatek: Drop __initconst from gates

* clk-samsung:
  clk: samsung: gs101: add support for Display Process Unit (DPU) clocks
  dt-bindings: samsung: exynos-sysreg: add gs101 dpu compatible
  dt-bindings: clock: google,gs101-clock: Add DPU clock management unit
  dt-bindings: clock: google,gs101-clock: fix alphanumeric ordering
  clk: samsung: fix sysreg save/restore when PM is enabled for CMU
  clk: samsung: avoid warning message on legacy Exynos (auto clock gating)
  clk: samsung: gs101: Enable auto_clock_gate mode for each gs101 CMU
  clk: samsung: Implement automatic clock gating mode for CMUs
  dt-bindings: clock: google,gs101-clock: add samsung,sysreg property as required
  clk: samsung: exynosautov920: add clock support
  dt-bindings: clock: exynosautov920: add MFD clock definitions
Loading
Loading
Loading
Loading
+116 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright (C) 2024-2025 Amlogic, Inc. All rights reserved
%YAML 1.2
---
$id: http://devicetree.org/schemas/clock/amlogic,t7-peripherals-clkc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Amlogic T7 Peripherals Clock Controller

maintainers:
  - Neil Armstrong <neil.armstrong@linaro.org>
  - Jerome Brunet <jbrunet@baylibre.com>
  - Xianwei Zhao <xianwei.zhao@amlogic.com>
  - Jian Hu <jian.hu@amlogic.com>

properties:
  compatible:
    const: amlogic,t7-peripherals-clkc

  reg:
    maxItems: 1

  '#clock-cells':
    const: 1

  clocks:
    minItems: 14
    items:
      - description: input oscillator
      - description: input sys clk
      - description: input fixed pll
      - description: input fclk div 2
      - description: input fclk div 2p5
      - description: input fclk div 3
      - description: input fclk div 4
      - description: input fclk div 5
      - description: input fclk div 7
      - description: input hifi pll
      - description: input gp0 pll
      - description: input gp1 pll
      - description: input mpll1
      - description: input mpll2
      - description: external input rmii oscillator (optional)
      - description: input video pll0 (optional)
      - description: external pad input for rtc (optional)

  clock-names:
    minItems: 14
    items:
      - const: xtal
      - const: sys
      - const: fix
      - const: fdiv2
      - const: fdiv2p5
      - const: fdiv3
      - const: fdiv4
      - const: fdiv5
      - const: fdiv7
      - const: hifi
      - const: gp0
      - const: gp1
      - const: mpll1
      - const: mpll2
      - const: ext_rmii
      - const: vid_pll0
      - const: ext_rtc

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

additionalProperties: false

examples:
  - |
    apb {
        #address-cells = <2>;
        #size-cells = <2>;

        clkc_periphs:clock-controller@0 {
            compatible = "amlogic,t7-peripherals-clkc";
            reg = <0 0x0 0 0x1c8>;
            #clock-cells = <1>;
            clocks = <&xtal>,
                     <&scmi_clk 13>,
                     <&scmi_clk 16>,
                     <&scmi_clk 18>,
                     <&scmi_clk 20>,
                     <&scmi_clk 22>,
                     <&scmi_clk 24>,
                     <&scmi_clk 26>,
                     <&scmi_clk 28>,
                     <&hifi 1>,
                     <&gp0 1>,
                     <&gp1 1>,
                     <&mpll 4>,
                     <&mpll 6>;
            clock-names = "xtal",
                          "sys",
                          "fix",
                          "fdiv2",
                          "fdiv2p5",
                          "fdiv3",
                          "fdiv4",
                          "fdiv5",
                          "fdiv7",
                          "hifi",
                          "gp0",
                          "gp1",
                          "mpll1",
                          "mpll2";
        };
    };
+114 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright (C) 2024-2025 Amlogic, Inc. All rights reserved
%YAML 1.2
---
$id: http://devicetree.org/schemas/clock/amlogic,t7-pll-clkc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Amlogic T7 PLL Clock Control Controller

maintainers:
  - Neil Armstrong <neil.armstrong@linaro.org>
  - Jerome Brunet <jbrunet@baylibre.com>
  - Jian Hu <jian.hu@amlogic.com>
  - Xianwei Zhao <xianwei.zhao@amlogic.com>

properties:
  compatible:
    enum:
      - amlogic,t7-gp0-pll
      - amlogic,t7-gp1-pll
      - amlogic,t7-hifi-pll
      - amlogic,t7-pcie-pll
      - amlogic,t7-mpll
      - amlogic,t7-hdmi-pll
      - amlogic,t7-mclk-pll

  reg:
    maxItems: 1

  '#clock-cells':
    const: 1

  clocks:
    items:
      - description: mclk pll input oscillator gate
      - description: oscillator input clock source for mclk_sel_0
      - description: fixed input clock source for mclk_sel_0
    minItems: 1

  clock-names:
    items:
      - const: in0
      - const: in1
      - const: in2
    minItems: 1

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

allOf:
  - if:
      properties:
        compatible:
          contains:
            const: amlogic,t7-mclk-pll

    then:
      properties:
        clocks:
          minItems: 3

        clock-names:
          minItems: 3

  - if:
      properties:
        compatible:
          contains:
            enum:
              - amlogic,t7-gp0-pll
              - amlogic,t7-gp1--pll
              - amlogic,t7-hifi-pll
              - amlogic,t7-pcie-pll
              - amlogic,t7-mpll
              - amlogic,t7-hdmi-pll

    then:
      properties:
        clocks:
          maxItems: 1

        clock-names:
          maxItems: 1

additionalProperties: false

examples:
  - |
    apb {
        #address-cells = <2>;
        #size-cells = <2>;

        clock-controller@8080 {
            compatible = "amlogic,t7-gp0-pll";
            reg = <0 0x8080 0 0x20>;
            clocks = <&scmi_clk 2>;
            clock-names = "in0";
            #clock-cells = <1>;
        };

        clock-controller@8300 {
            compatible = "amlogic,t7-mclk-pll";
            reg = <0 0x8300 0 0x18>;
            clocks = <&scmi_clk 2>,
                     <&xtal>,
                     <&scmi_clk 31>;
            clock-names = "in0", "in1", "in2";
            #clock-cells = <1>;
        };
    };
+38 −2
Original line number Diff line number Diff line
@@ -29,9 +29,10 @@ properties:
    enum:
      - google,gs101-cmu-top
      - google,gs101-cmu-apm
      - google,gs101-cmu-misc
      - google,gs101-cmu-dpu
      - google,gs101-cmu-hsi0
      - google,gs101-cmu-hsi2
      - google,gs101-cmu-misc
      - google,gs101-cmu-peric0
      - google,gs101-cmu-peric1

@@ -52,6 +53,11 @@ properties:
  reg:
    maxItems: 1

  samsung,sysreg:
    $ref: /schemas/types.yaml#/definitions/phandle
    description:
      Phandle to system registers interface.

required:
  - compatible
  - "#clock-cells"
@@ -77,6 +83,24 @@ allOf:
          items:
            - const: oscclk

  - if:
      properties:
        compatible:
          contains:
            const: google,gs101-cmu-dpu

    then:
      properties:
        clocks:
          items:
            - description: External reference clock (24.576 MHz)
            - description: DPU bus clock (from CMU_TOP)

        clock-names:
          items:
            - const: oscclk
            - const: bus

  - if:
      properties:
        compatible:
@@ -166,6 +190,18 @@ allOf:
            - const: bus
            - const: ip

  - if:
      properties:
        compatible:
          contains:
            const: google,gs101-cmu-top
    then:
      properties:
        samsung,sysreg: false
    else:
      required:
        - samsung,sysreg

additionalProperties: false

examples:
@@ -175,7 +211,7 @@ examples:

    cmu_top: clock-controller@1e080000 {
        compatible = "google,gs101-cmu-top";
        reg = <0x1e080000 0x8000>;
        reg = <0x1e080000 0x10000>;
        #clock-cells = <1>;
        clocks = <&ext_24_5m>;
        clock-names = "oscclk";
+4 −6
Original line number Diff line number Diff line
@@ -14,11 +14,9 @@ maintainers:

properties:
  compatible:
    oneOf:
      - items:
          - const: mediatek,mt7622-pciesys
          - const: syscon
      - const: mediatek,mt7629-pciesys
    enum:
      - mediatek,mt7622-pciesys
      - mediatek,mt7629-pciesys

  reg:
    maxItems: 1
@@ -40,7 +38,7 @@ additionalProperties: false
examples:
  - |
    clock-controller@1a100800 {
        compatible = "mediatek,mt7622-pciesys", "syscon";
        compatible = "mediatek,mt7622-pciesys";
        reg = <0x1a100800 0x1000>;
        #clock-cells = <1>;
        #reset-cells = <1>;
+19 −0
Original line number Diff line number Diff line
@@ -40,6 +40,7 @@ properties:
      - samsung,exynosautov920-cmu-hsi2
      - samsung,exynosautov920-cmu-m2m
      - samsung,exynosautov920-cmu-mfc
      - samsung,exynosautov920-cmu-mfd
      - samsung,exynosautov920-cmu-misc
      - samsung,exynosautov920-cmu-peric0
      - samsung,exynosautov920-cmu-peric1
@@ -268,6 +269,24 @@ allOf:
            - const: mfc
            - const: wfd

  - if:
      properties:
        compatible:
          contains:
            const: samsung,exynosautov920-cmu-mfd

    then:
      properties:
        clocks:
          items:
            - description: External reference clock (38.4 MHz)
            - description: CMU_MFD NOC clock (from CMU_TOP)

        clock-names:
          items:
            - const: oscclk
            - const: noc

required:
  - compatible
  - "#clock-cells"
Loading