Skip to content

Commit

Permalink
Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kerne…
Browse files Browse the repository at this point in the history
…l/git/clk/linux

Pull clk framework updates from Stephen Boyd:
 "The core clk framework changes are small again. They're mostly minor
  fixes that weren't causing enough problems (or any problems when we're
  just clarifying things) to warrant sending outside the merge window.
  The majority of changes are in drivers for various SoCs. Full details
  are in the logs, but here's the summary.

  Core:

   - Better support for DeviceTree overlays with the addition of the
     CLK_OF_DECLARE_DRIVER macro. Now we won't probe a clk driver for a
     device node that matched during of_clk_init(), unless the driver
     uses CLK_OF_DECLARE_DRIVER instead of CLK_OF_DECLARE. This allows
     overlays to work cleanly for drivers that must probe before the
     device model is ready, and also after it's ready when an overlay is
     loaded.

   - Clarification in the code around how clk_hw pointers are returned
     from of clk providers

   - Proper migration of prepare/enable counts to parents when the clk
     tree is constructed

  New Drivers:

   - Socionext's UniPhier SoCs
   - Loongson1C
   - ZTE ZX296718
   - Qualcomm MDM9615
   - Amlogic GXBB AO clocks and resets
   - Broadcom BCM53573 ILP
   - Maxim MAX77620

 Updates:

   - Four Allwinner SoCs are migrated to the new style clk driver (A31,
     A31s, A23 and A33)
   - Exynos 5xxx audio and DRAM clks
   - Loongson1B AC97, DMA and NAND clks
   - Rockchip DDR clks and rk3399 driver tweaks
   - Renesas R-Car M3-W (r8a7796) SoC SDHI interface and Watchdog timer
     clks
   - Renasas R-Car H3 and M3-W CMT clks and RAVB+Thermal clks for M3-W
   - Amlogic GXBB MMC gate clks
   - at91 sama5d4 sckc
   - Removal of STiH415 and STiH416 clk support as the SoC is being
     removed
   - Rework of STiH4xx clk support for new style bindings
   - Continuation of driver migration to clk_hw based registration APIs
   - xgene PMD support
   - bcm2835 critical clk markings
   - ARM versatile ICST"

* tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (199 commits)
  CLK: Add Loongson1C clock support
  clk: Loongson1: Make use of GENMASK
  clk: Loongson1: Update clocks of Loongson1B
  clk: Loongson1: Refactor Loongson1 clock
  clk: change the type of clk_hw_onecell_data.num to unsigned int
  clk: zx296718: register driver earlier with core_initcall
  clk: mvebu: dynamically allocate resources in Armada CP110 system controller
  clk: mvebu: fix setting unwanted flags in CP110 gate clock
  clk: nxp: clk-lpc32xx: Unmap region obtained by of_iomap
  clk: mediatek: clk-mt8173: Unmap region obtained by of_iomap
  clk: sunxi-ng: Fix reset offset for the A23 and A33
  clk: at91: sckc: optimize boot time
  clk: at91: Add sama5d4 sckc support
  clk: at91: move slow clock controller clocks to sckc.c
  clk: imx6: initialize GPU clocks
  clk: imx6: fix i.MX6DL clock tree to reflect reality
  clk: imx53: Add clocks configuration
  clk: uniphier: add clock data for UniPhier SoCs
  clk: uniphier: add core support code for UniPhier clock driver
  clk: bcm: Add driver for BCM53573 ILP clock
  ...
  • Loading branch information
Linus Torvalds committed Oct 4, 2016
2 parents 77b0a4a + b4626a7 commit 5617c12
Show file tree
Hide file tree
Showing 235 changed files with 15,747 additions and 4,213 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ The Mediatek apmixedsys controller provides the PLLs to the system.

Required Properties:

- compatible: Should be:
- compatible: Should be one of:
- "mediatek,mt2701-apmixedsys"
- "mediatek,mt8135-apmixedsys"
- "mediatek,mt8173-apmixedsys"
- #clock-cells: Must be 1
Expand Down
22 changes: 22 additions & 0 deletions Documentation/devicetree/bindings/arm/mediatek/mediatek,bdpsys.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
Mediatek bdpsys controller
============================

The Mediatek bdpsys controller provides various clocks to the system.

Required Properties:

- compatible: Should be:
- "mediatek,mt2701-bdpsys", "syscon"
- #clock-cells: Must be 1

The bdpsys controller uses the common clk binding from
Documentation/devicetree/bindings/clock/clock-bindings.txt
The available clocks are defined in dt-bindings/clock/mt*-clk.h.

Example:

bdpsys: clock-controller@1c000000 {
compatible = "mediatek,mt2701-bdpsys", "syscon";
reg = <0 0x1c000000 0 0x1000>;
#clock-cells = <1>;
};
22 changes: 22 additions & 0 deletions Documentation/devicetree/bindings/arm/mediatek/mediatek,ethsys.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
Mediatek ethsys controller
============================

The Mediatek ethsys controller provides various clocks to the system.

Required Properties:

- compatible: Should be:
- "mediatek,mt2701-ethsys", "syscon"
- #clock-cells: Must be 1

The ethsys controller uses the common clk binding from
Documentation/devicetree/bindings/clock/clock-bindings.txt
The available clocks are defined in dt-bindings/clock/mt*-clk.h.

Example:

ethsys: clock-controller@1b000000 {
compatible = "mediatek,mt2701-ethsys", "syscon";
reg = <0 0x1b000000 0 0x1000>;
#clock-cells = <1>;
};
24 changes: 24 additions & 0 deletions Documentation/devicetree/bindings/arm/mediatek/mediatek,hifsys.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
Mediatek hifsys controller
============================

The Mediatek hifsys controller provides various clocks and reset
outputs to the system.

Required Properties:

- compatible: Should be:
- "mediatek,mt2701-hifsys", "syscon"
- #clock-cells: Must be 1

The hifsys controller uses the common clk binding from
Documentation/devicetree/bindings/clock/clock-bindings.txt
The available clocks are defined in dt-bindings/clock/mt*-clk.h.

Example:

hifsys: clock-controller@1a000000 {
compatible = "mediatek,mt2701-hifsys", "syscon";
reg = <0 0x1a000000 0 0x1000>;
#clock-cells = <1>;
#reset-cells = <1>;
};
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ The Mediatek imgsys controller provides various clocks to the system.

Required Properties:

- compatible: Should be:
- compatible: Should be one of:
- "mediatek,mt2701-imgsys", "syscon"
- "mediatek,mt8173-imgsys", "syscon"
- #clock-cells: Must be 1

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ outputs to the system.

Required Properties:

- compatible: Should be:
- compatible: Should be one of:
- "mediatek,mt2701-infracfg", "syscon"
- "mediatek,mt8135-infracfg", "syscon"
- "mediatek,mt8173-infracfg", "syscon"
- #clock-cells: Must be 1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ The Mediatek mmsys controller provides various clocks to the system.

Required Properties:

- compatible: Should be:
- compatible: Should be one of:
- "mediatek,mt2701-mmsys", "syscon"
- "mediatek,mt8173-mmsys", "syscon"
- #clock-cells: Must be 1

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ outputs to the system.

Required Properties:

- compatible: Should be:
- compatible: Should be one of:
- "mediatek,mt2701-pericfg", "syscon"
- "mediatek,mt8135-pericfg", "syscon"
- "mediatek,mt8173-pericfg", "syscon"
- #clock-cells: Must be 1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ The Mediatek topckgen controller provides various clocks to the system.

Required Properties:

- compatible: Should be:
- compatible: Should be one of:
- "mediatek,mt2701-topckgen"
- "mediatek,mt8135-topckgen"
- "mediatek,mt8173-topckgen"
- #clock-cells: Must be 1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ The Mediatek vdecsys controller provides various clocks to the system.

Required Properties:

- compatible: Should be:
- compatible: Should be one of:
- "mediatek,mt2701-vdecsys", "syscon"
- "mediatek,mt8173-vdecsys", "syscon"
- #clock-cells: Must be 1

Expand Down
45 changes: 45 additions & 0 deletions Documentation/devicetree/bindings/clock/amlogic,gxbb-aoclkc.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
* Amlogic GXBB AO Clock and Reset Unit

The Amlogic GXBB AO clock controller generates and supplies clock to various
controllers within the Always-On part of the SoC.

Required Properties:

- compatible: should be "amlogic,gxbb-aoclkc"
- reg: physical base address of the clock controller and length of memory
mapped region.

- #clock-cells: should be 1.

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/gxbb-aoclkc.h header and can be
used in device tree sources.

- #reset-cells: should be 1.

Each reset is assigned an identifier and client nodes can use this identifier
to specify the reset which they consume. All available resets are defined as
preprocessor macros in the dt-bindings/reset/gxbb-aoclkc.h header and can be
used in device tree sources.

Example: AO Clock controller node:

clkc_AO: clock-controller@040 {
compatible = "amlogic,gxbb-aoclkc";
reg = <0x0 0x040 0x0 0x4>;
#clock-cells = <1>;
#reset-cells = <1>;
};

Example: UART controller node that consumes the clock and reset generated
by the clock controller:

uart_AO: serial@4c0 {
compatible = "amlogic,meson-uart";
reg = <0x4c0 0x14>;
interrupts = <0 90 1>;
clocks = <&clkc_AO CLKID_AO_UART1>;
resets = <&clkc_AO RESET_AO_UART1>;
status = "disabled";
};
34 changes: 32 additions & 2 deletions Documentation/devicetree/bindings/clock/arm-syscon-icst.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,50 @@ Technology (IDT). ARM integrated these oscillators deeply into their
reference designs by adding special control registers that manage such
oscillators to their system controllers.

The ARM system controller contains logic to serialize and initialize
The various ARM system controllers contain logic to serialize and initialize
an ICST clock request after a write to the 32 bit register at an offset
into the system controller. Furthermore, to even be able to alter one of
these frequencies, the system controller must first be unlocked by
writing a special token to another offset in the system controller.

Some ARM hardware contain special versions of the serial interface that only
connects the low 8 bits of the VDW (missing one bit), hardwires RDW to
different values and sometimes also hardwire the output divider. They
therefore have special compatible strings as per this table (the OD value is
the value on the pins, not the resulting output divider):

Hardware variant: RDW OD VDW

Integrator/AP 22 1 Bit 8 0, rest variable
integratorap-cm

Integrator/AP 46 3 Bit 8 0, rest variable
integratorap-sys

Integrator/AP 22 or 1 17 or (33 or 25 MHz)
integratorap-pci 14 1 14

Integrator/CP 22 variable Bit 8 0, rest variable
integratorcp-cm-core

Integrator/CP 22 variable Bit 8 0, rest variable
integratorcp-cm-mem

The ICST oscillator must be provided inside a system controller node.

Required properties:
- compatible: must be one of
"arm,syscon-icst525"
"arm,syscon-icst307"
"arm,syscon-icst525-integratorap-cm"
"arm,syscon-icst525-integratorap-sys"
"arm,syscon-icst525-integratorap-pci"
"arm,syscon-icst525-integratorcp-cm-core"
"arm,syscon-icst525-integratorcp-cm-mem"
- lock-offset: the offset address into the system controller where the
unlocking register is located
- vco-offset: the offset address into the system controller where the
ICST control register is located (even 32 bit address)
- compatible: must be one of "arm,syscon-icst525" or "arm,syscon-icst307"
- #clock-cells: must be <0>
- clocks: parent clock, since the ICST needs a parent clock to derive its
frequency from, this attribute is compulsory.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
* Peripheral Clock bindings for Marvell Armada 37xx SoCs

Marvell Armada 37xx SoCs provide peripheral clocks which are
used as clock source for the peripheral of the SoC.

There are two different blocks associated to north bridge and south
bridge.

The peripheral clock consumer should specify the desired clock by
having the clock ID in its "clocks" phandle cell.

The following is a list of provided IDs for Armada 370 North bridge clocks:
ID Clock name Description
-----------------------------------
0 mmc MMC controller
1 sata_host Sata Host
2 sec_at Security AT
3 sac_dap Security DAP
4 tsecm Security Engine
5 setm_tmx Serial Embedded Trace Module
6 avs Adaptive Voltage Scaling
7 sqf SPI
8 pwm PWM
9 i2c_2 I2C 2
10 i2c_1 I2C 1
11 ddr_phy DDR PHY
12 ddr_fclk DDR F clock
13 trace Trace
14 counter Counter
15 eip97 EIP 97
16 cpu CPU

The following is a list of provided IDs for Armada 370 South bridge clocks:
ID Clock name Description
-----------------------------------
0 gbe-50 50 MHz parent clock for Gigabit Ethernet
1 gbe-core parent clock for Gigabit Ethernet core
2 gbe-125 125 MHz parent clock for Gigabit Ethernet
3 gbe1-50 50 MHz clock for Gigabit Ethernet port 1
4 gbe0-50 50 MHz clock for Gigabit Ethernet port 0
5 gbe1-125 125 MHz clock for Gigabit Ethernet port 1
6 gbe0-125 125 MHz clock for Gigabit Ethernet port 0
7 gbe1-core Gigabit Ethernet core port 1
8 gbe0-core Gigabit Ethernet core port 0
9 gbe-bm Gigabit Ethernet Buffer Manager
10 sdio SDIO
11 usb32-sub2-sys USB 2 clock
12 usb32-ss-sys USB 3 clock

Required properties:

- compatible : shall be "marvell,armada-3700-periph-clock-nb" for the
north bridge block, or
"marvell,armada-3700-periph-clock-sb" for the south bridge block
- reg : must be the register address of North/South Bridge Clock register
- #clock-cells : from common clock binding; shall be set to 1

- clocks : list of the parent clock phandle in the following order:
TBG-A P, TBG-B P, TBG-A S, TBG-B S and finally the xtal clock.


Example:

nb_perih_clk: nb-periph-clk@13000{
compatible = "marvell,armada-3700-periph-clock-nb";
reg = <0x13000 0x1000>;
clocks = <&tbg 0>, <&tbg 1>, <&tbg 2>,
<&tbg 3>, <&xtalclk>;
#clock-cells = <1>;
};
27 changes: 27 additions & 0 deletions Documentation/devicetree/bindings/clock/armada3700-tbg-clock.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
* Time Base Generator Clock bindings for Marvell Armada 37xx SoCs

Marvell Armada 37xx SoCs provde Time Base Generator clocks which are
used as parent clocks for the peripheral clocks.

The TBG clock consumer should specify the desired clock by having the
clock ID in its "clocks" phandle cell.

The following is a list of provided IDs and clock names on Armada 3700:
0 = TBG A P
1 = TBG B P
2 = TBG A S
3 = TBG B S

Required properties:
- compatible : shall be "marvell,armada-3700-tbg-clock"
- reg : must be the register address of North Bridge PLL register
- #clock-cells : from common clock binding; shall be set to 1

Example:

tbg: tbg@13200 {
compatible = "marvell,armada-3700-tbg-clock";
reg = <0x13200 0x1000>;
clocks = <&xtalclk>;
#clock-cells = <1>;
};
28 changes: 28 additions & 0 deletions Documentation/devicetree/bindings/clock/armada3700-xtal-clock.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
* Xtal Clock bindings for Marvell Armada 37xx SoCs

Marvell Armada 37xx SoCs allow to determine the xtal clock frequencies by
reading the gpio latch register.

This node must be a subnode of the node exposing the register address
of the GPIO block where the gpio latch is located.

Required properties:
- compatible : shall be one of the following:
"marvell,armada-3700-xtal-clock"
- #clock-cells : from common clock binding; shall be set to 0

Optional properties:
- clock-output-names : from common clock binding; allows overwrite default clock
output names ("xtal")

Example:
gpio1: gpio@13800 {
compatible = "marvell,armada-3700-gpio", "syscon", "simple-mfd";
reg = <0x13800 0x1000>;

xtalclk: xtal-clk {
compatible = "marvell,armada-3700-xtal-clock";
clock-output-names = "xtal";
#clock-cells = <0>;
};
};
3 changes: 2 additions & 1 deletion Documentation/devicetree/bindings/clock/at91-clock.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ This binding uses the common clock binding[1].

Required properties:
- compatible : shall be one of the following:
"atmel,at91sam9x5-sckc":
"atmel,at91sam9x5-sckc" or
"atmel,sama5d4-sckc":
at91 SCKC (Slow Clock Controller)
This node contains the slow clock definitions.

Expand Down
Loading

0 comments on commit 5617c12

Please sign in to comment.