projects/linux·commit 19bc2eec

Merge tag 'clk-for-linus-3.15' of git://git.linaro.org/people/mike.turquette/linux

19bc2eec · Linus Torvalds <[email protected]> · 2014-04-05 18:39:18 -07:00

Pull clock framework changes from Mike Turquette:
 "The clock framework changes for 3.15 look similar to past pull
  requests.  Mostly clock driver updates, more Device Tree support in
  the form of common functions useful across platforms and a handful of
  features and fixes to the framework core"

* tag 'clk-for-linus-3.15' of git://git.linaro.org/people/mike.turquette/linux: (86 commits)
  clk: shmobile: fix setting paretn clock rate
  clk: shmobile: rcar-gen2: fix lb/sd0/sd1/sdh clock parent to pll1
  clk: Fix minor errors in of_clk_init() function comments
  clk: reverse default clk provider initialization order in of_clk_init()
  clk: sirf: update copyright years to 2014
  clk: mmp: try to use closer one when do round rate
  clk: mmp: fix the wrong calculation formula
  clk: mmp: fix wrong mask when calculate denominator
  clk: st: Adds quadfs clock binding
  clk: st: Adds clockgen-vcc and clockgen-mux clock binding
  clk: st: Adds clockgen clock binding
  clk: st: Adds divmux and prediv clock binding
  clk: st: Support for A9 MUX clocks
  clk: st: Support for ClockGenA9/DDR/GPU
  clk: st: Support for QUADFS inside ClockGenB/C/D/E/F
  clk: st: Support for VCC-mux and MUX clocks
  clk: st: Support for PLLs inside ClockGenA(s)
  clk: st: Support for DIVMUX and PreDiv Clocks
  clk: support hardware-specific debugfs entries
  clk: s2mps11: Use of_get_child_by_name
  ...
Commit
19bc2eec3cbf9a282b592749a93ec9027d352bf2
Parents
9712d3c3 · e44df332

Merge commit. Changes below are compared with the first parent: 9712d3c3.

Changes

74 files changed · +5882 −733

FileStatusAddDelContent
Documentation/clk.txtmodified+34−0View file
Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txtmodified+14−0View file
Documentation/devicetree/bindings/clock/altr_socfpga.txtmodified+5−0View file
Documentation/devicetree/bindings/clock/axi-clkgen.txtmodified+1−1View file
Documentation/devicetree/bindings/clock/clock-bindings.txtmodified+17−0View file
Documentation/devicetree/bindings/clock/hi3620-clock.txtmodified+1−0View file
Documentation/devicetree/bindings/clock/moxa,moxart-clock.txtadded+48−0View file
Documentation/devicetree/bindings/clock/mvebu-core-clock.txtmodified+14−0View file
Documentation/devicetree/bindings/clock/mvebu-corediv-clock.txtmodified+4−1View file
Documentation/devicetree/bindings/clock/mvebu-gated-clock.txtmodified+61−4View file
Documentation/devicetree/bindings/clock/renesas,rz-cpg-clocks.txtadded+29−0View file
Documentation/devicetree/bindings/clock/st/st,clkgen-divmux.txtadded+49−0View file
Documentation/devicetree/bindings/clock/st/st,clkgen-mux.txtadded+36−0View file
Documentation/devicetree/bindings/clock/st/st,clkgen-pll.txtadded+48−0View file
Documentation/devicetree/bindings/clock/st/st,clkgen-prediv.txtadded+36−0View file
Documentation/devicetree/bindings/clock/st/st,clkgen-vcc.txtadded+53−0View file
Documentation/devicetree/bindings/clock/st/st,clkgen.txtadded+83−0View file
Documentation/devicetree/bindings/clock/st/st,quadfs.txtadded+45−0View file
Documentation/devicetree/bindings/clock/sunxi.txtmodified+79−23View file
MAINTAINERSmodified+1−1View file
arch/arm/boot/dts/socfpga.dtsimodified+1−0View file
arch/arm/mach-socfpga/socfpga.cmodified+0−5View file
drivers/clk/Kconfigmodified+4−2View file
drivers/clk/Makefilemodified+3−0View file
drivers/clk/at91/clk-programmable.cmodified+61−141View file
drivers/clk/at91/clk-system.cmodified+65−11View file
drivers/clk/clk-axi-clkgen.cmodified+269−43View file
drivers/clk/clk-divider.cmodified+5−5View file
drivers/clk/clk-moxart.cadded+97−0View file
drivers/clk/clk-ppc-corenet.cmodified+48−22View file
drivers/clk/clk-s2mps11.cmodified+23−6View file
drivers/clk/clk.cmodified+111−20View file
drivers/clk/clkdev.cmodified+2−0View file
drivers/clk/hisilicon/Makefilemodified+4−1View file
drivers/clk/hisilicon/clk-hi3620.cmodified+281−17View file
drivers/clk/hisilicon/clk-hip04.cadded+58−0View file
drivers/clk/hisilicon/clk.cmodified+47−15View file
drivers/clk/hisilicon/clk.hmodified+11−6View file
drivers/clk/mmp/clk-frac.cmodified+12−8View file
drivers/clk/mvebu/Kconfigmodified+8−0View file
drivers/clk/mvebu/Makefilemodified+2−0View file
drivers/clk/mvebu/armada-375.cadded+184−0View file
drivers/clk/mvebu/armada-38x.cadded+167−0View file
drivers/clk/mvebu/clk-corediv.cmodified+123−31View file
drivers/clk/shmobile/Makefilemodified+1−0View file
drivers/clk/shmobile/clk-div6.cmodified+1−1View file
drivers/clk/shmobile/clk-mstp.cmodified+1−1View file
drivers/clk/shmobile/clk-rcar-gen2.cmodified+4−4View file
drivers/clk/shmobile/clk-rz.cadded+103−0View file
drivers/clk/sirf/clk-atlas6.cmodified+2−1View file
drivers/clk/sirf/clk-common.cmodified+2−1View file
drivers/clk/sirf/clk-prima2.cmodified+2−1View file
drivers/clk/socfpga/Makefilemodified+3−0View file
drivers/clk/socfpga/clk-gate.cadded+263−0View file
drivers/clk/socfpga/clk-periph.cadded+94−0View file
drivers/clk/socfpga/clk-pll.cadded+131−0View file
drivers/clk/socfpga/clk.cmodified+12−314View file
drivers/clk/socfpga/clk.hadded+57−0View file
drivers/clk/st/Makefileadded+1−0View file
drivers/clk/st/clkgen-fsyn.cadded+1039−0View file
drivers/clk/st/clkgen-mux.cadded+820−0View file
drivers/clk/st/clkgen-pll.cadded+698−0View file
drivers/clk/st/clkgen.hadded+48−0View file
drivers/clk/sunxi/clk-sunxi.cmodified+276−29View file
drivers/clk/tegra/clk-periph.cmodified+1−1View file
drivers/clk/ti/clk-33xx.cmodified+0−1View file
drivers/clk/ti/divider.cmodified+4−4View file
drivers/clk/ux500/u8500_of_clk.cmodified+2−1View file
drivers/clk/zynq/clkc.cmodified+2−2View file
drivers/clk/zynq/pll.cmodified+9−9View file
include/dt-bindings/clock/hi3620-clock.hmodified+5−0View file
include/dt-bindings/clock/hip04-clock.hadded+35−0View file
include/linux/clk-provider.hmodified+8−0View file
include/linux/clk.hmodified+14−0View file

Only the first 600 diff lines are shown. Download the complete patch.

Documentation/clk.txt

View file
diff --git a/Documentation/clk.txt b/Documentation/clk.txt
index 699ef2a..c9c399a 100644
--- a/Documentation/clk.txt
+++ b/Documentation/clk.txt
@@ -255,3 +255,37 @@ are sorted out.
To bypass this disabling, include "clk_ignore_unused" in the bootargs to the
kernel.
+
+ Part 7 - Locking
+
+The common clock framework uses two global locks, the prepare lock and the
+enable lock.
+
+The enable lock is a spinlock and is held across calls to the .enable,
+.disable and .is_enabled operations. Those operations are thus not allowed to
+sleep, and calls to the clk_enable(), clk_disable() and clk_is_enabled() API
+functions are allowed in atomic context.
+
+The prepare lock is a mutex and is held across calls to all other operations.
+All those operations are allowed to sleep, and calls to the corresponding API
+functions are not allowed in atomic context.
+
+This effectively divides operations in two groups from a locking perspective.
+
+Drivers don't need to manually protect resources shared between the operations
+of one group, regardless of whether those resources are shared by multiple
+clocks or not. However, access to resources that are shared between operations
+of the two groups needs to be protected by the drivers. An example of such a
+resource would be a register that controls both the clock rate and the clock
+enable/disable state.
+
+The clock framework is reentrant, in that a driver is allowed to call clock
+framework functions from within its implementation of clock operations. This
+can for instance cause a .set_rate operation of one clock being called from
+within the .set_rate operation of another clock. This case must be considered
+in the driver implementations, but the code flow is usually controlled by the
+driver in that case.
+
+Note that locking must also be considered when code outside of the common
+clock framework needs to access resources used by the clock operations. This
+is considered out of scope of this document.

Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt

View file
diff --git a/Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt b/Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt
index 8c7a465..df0a452 100644
--- a/Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt
+++ b/Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt
@@ -30,3 +30,17 @@ Example:
resume-offset = <0x308>;
reboot-offset = <0x4>;
};
+
+PCTRL: Peripheral misc control register
+
+Required Properties:
+- compatible: "hisilicon,pctrl"
+- reg: Address and size of pctrl.
+
+Example:
+
+ /* for Hi3620 */
+ pctrl: pctrl@fca09000 {
+ compatible = "hisilicon,pctrl";
+ reg = <0xfca09000 0x1000>;
+ };

Documentation/devicetree/bindings/clock/altr_socfpga.txt

View file
diff --git a/Documentation/devicetree/bindings/clock/altr_socfpga.txt b/Documentation/devicetree/bindings/clock/altr_socfpga.txt
index 0045433..5dfd145 100644
--- a/Documentation/devicetree/bindings/clock/altr_socfpga.txt
+++ b/Documentation/devicetree/bindings/clock/altr_socfpga.txt
@@ -23,3 +23,8 @@ Optional properties:
and the bit index.
- div-reg : For "socfpga-gate-clk", div-reg contains the divider register, bit shift,
and width.
+- clk-phase : For the sdmmc_clk, contains the value of the clock phase that controls
+ the SDMMC CIU clock. The first value is the clk_sample(smpsel), and the second
+ value is the cclk_in_drv(drvsel). The clk-phase is used to enable the correct
+ hold/delay times that is needed for the SD/MMC CIU clock. The values of both
+ can be 0-315 degrees, in 45 degree increments.

Documentation/devicetree/bindings/clock/axi-clkgen.txt

View file
diff --git a/Documentation/devicetree/bindings/clock/axi-clkgen.txt b/Documentation/devicetree/bindings/clock/axi-clkgen.txt
index 028b493..20e1704 100644
--- a/Documentation/devicetree/bindings/clock/axi-clkgen.txt
+++ b/Documentation/devicetree/bindings/clock/axi-clkgen.txt
@@ -5,7 +5,7 @@ This binding uses the common clock binding[1].
[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
Required properties:
-- compatible : shall be "adi,axi-clkgen".
+- compatible : shall be "adi,axi-clkgen-1.00.a" or "adi,axi-clkgen-2.00.a".
- #clock-cells : from common clock binding; Should always be set to 0.
- reg : Address and length of the axi-clkgen register set.
- clocks : Phandle and clock specifier for the parent clock.

Documentation/devicetree/bindings/clock/clock-bindings.txt

View file
diff --git a/Documentation/devicetree/bindings/clock/clock-bindings.txt b/Documentation/devicetree/bindings/clock/clock-bindings.txt
index 7c52c29..700e7aa 100644
--- a/Documentation/devicetree/bindings/clock/clock-bindings.txt
+++ b/Documentation/devicetree/bindings/clock/clock-bindings.txt
@@ -44,6 +44,23 @@ For example:
clocks by index. The names should reflect the clock output signal
names for the device.
+clock-indices: If the identifyng number for the clocks in the node
+ is not linear from zero, then the this mapping allows
+ the mapping of identifiers into the clock-output-names
+ array.
+
+For example, if we have two clocks <&oscillator 1> and <&oscillator 3>:
+
+ oscillator {
+ compatible = "myclocktype";
+ #clock-cells = <1>;
+ clock-indices = <1>, <3>;
+ clock-output-names = "clka", "clkb";
+ }
+
+ This ensures we do not have any empty nodes in clock-output-names
+
+
==Clock consumers==
Required properties:

Documentation/devicetree/bindings/clock/hi3620-clock.txt

View file
diff --git a/Documentation/devicetree/bindings/clock/hi3620-clock.txt b/Documentation/devicetree/bindings/clock/hi3620-clock.txt
index 4b71ab4..dad6269 100644
--- a/Documentation/devicetree/bindings/clock/hi3620-clock.txt
+++ b/Documentation/devicetree/bindings/clock/hi3620-clock.txt
@@ -7,6 +7,7 @@ Required Properties:
- compatible: should be one of the following.
- "hisilicon,hi3620-clock" - controller compatible with Hi3620 SoC.
+ - "hisilicon,hi3620-mmc-clock" - controller specific for Hi3620 mmc.
- reg: physical base address of the controller and length of memory mapped
region.

Documentation/devicetree/bindings/clock/moxa,moxart-clock.txt

View file
diff --git a/Documentation/devicetree/bindings/clock/moxa,moxart-clock.txt b/Documentation/devicetree/bindings/clock/moxa,moxart-clock.txt
new file mode 100644
index 0000000..fedea84
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/moxa,moxart-clock.txt
@@ -0,0 +1,48 @@
+Device Tree Clock bindings for arch-moxart
+
+This binding uses the common clock binding[1].
+
+[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
+
+MOXA ART SoCs allow to determine PLL output and APB frequencies
+by reading registers holding multiplier and divisor information.
+
+
+PLL:
+
+Required properties:
+- compatible : Must be "moxa,moxart-pll-clock"
+- #clock-cells : Should be 0
+- reg : Should contain registers location and length
+- clocks : Should contain phandle + clock-specifier for the parent clock
+
+Optional properties:
+- clock-output-names : Should contain clock name
+
+
+APB:
+
+Required properties:
+- compatible : Must be "moxa,moxart-apb-clock"
+- #clock-cells : Should be 0
+- reg : Should contain registers location and length
+- clocks : Should contain phandle + clock-specifier for the parent clock
+
+Optional properties:
+- clock-output-names : Should contain clock name
+
+
+For example:
+
+ clk_pll: clk_pll@98100000 {
+ compatible = "moxa,moxart-pll-clock";
+ #clock-cells = <0>;
+ reg = <0x98100000 0x34>;
+ };
+
+ clk_apb: clk_apb@98100000 {
+ compatible = "moxa,moxart-apb-clock";
+ #clock-cells = <0>;
+ reg = <0x98100000 0x34>;
+ clocks = <&clk_pll>;
+ };

Documentation/devicetree/bindings/clock/mvebu-core-clock.txt

View file
diff --git a/Documentation/devicetree/bindings/clock/mvebu-core-clock.txt b/Documentation/devicetree/bindings/clock/mvebu-core-clock.txt
index 1e66294..307a503 100644
--- a/Documentation/devicetree/bindings/clock/mvebu-core-clock.txt
+++ b/Documentation/devicetree/bindings/clock/mvebu-core-clock.txt
@@ -11,6 +11,18 @@ The following is a list of provided IDs and clock names on Armada 370/XP:
3 = hclk (DRAM control clock)
4 = dramclk (DDR clock)
+The following is a list of provided IDs and clock names on Armada 375:
+ 0 = tclk (Internal Bus clock)
+ 1 = cpuclk (CPU clock)
+ 2 = l2clk (L2 Cache clock)
+ 3 = ddrclk (DDR clock)
+
+The following is a list of provided IDs and clock names on Armada 380/385:
+ 0 = tclk (Internal Bus clock)
+ 1 = cpuclk (CPU clock)
+ 2 = l2clk (L2 Cache clock)
+ 3 = ddrclk (DDR clock)
+
The following is a list of provided IDs and clock names on Kirkwood and Dove:
0 = tclk (Internal Bus clock)
1 = cpuclk (CPU0 clock)
@@ -20,6 +32,8 @@ The following is a list of provided IDs and clock names on Kirkwood and Dove:
Required properties:
- compatible : shall be one of the following:
"marvell,armada-370-core-clock" - For Armada 370 SoC core clocks
+ "marvell,armada-375-core-clock" - For Armada 375 SoC core clocks
+ "marvell,armada-380-core-clock" - For Armada 380/385 SoC core clocks
"marvell,armada-xp-core-clock" - For Armada XP SoC core clocks
"marvell,dove-core-clock" - for Dove SoC core clocks
"marvell,kirkwood-core-clock" - for Kirkwood SoC (except mv88f6180)

Documentation/devicetree/bindings/clock/mvebu-corediv-clock.txt

View file
diff --git a/Documentation/devicetree/bindings/clock/mvebu-corediv-clock.txt b/Documentation/devicetree/bindings/clock/mvebu-corediv-clock.txt
index c62391f..520562a 100644
--- a/Documentation/devicetree/bindings/clock/mvebu-corediv-clock.txt
+++ b/Documentation/devicetree/bindings/clock/mvebu-corediv-clock.txt
@@ -4,7 +4,10 @@ The following is a list of provided IDs and clock names on Armada 370/XP:
0 = nand (NAND clock)
Required properties:
-- compatible : must be "marvell,armada-370-corediv-clock"
+- compatible : must be "marvell,armada-370-corediv-clock",
+ "marvell,armada-375-corediv-clock",
+ "marvell,armada-380-corediv-clock",
+
- reg : must be the register address of Core Divider control register
- #clock-cells : from common clock binding; shall be set to 1
- clocks : must be set to the parent's phandle

Documentation/devicetree/bindings/clock/mvebu-gated-clock.txt

View file
diff --git a/Documentation/devicetree/bindings/clock/mvebu-gated-clock.txt b/Documentation/devicetree/bindings/clock/mvebu-gated-clock.txt
index fc2910f..76477be 100644
--- a/Documentation/devicetree/bindings/clock/mvebu-gated-clock.txt
+++ b/Documentation/devicetree/bindings/clock/mvebu-gated-clock.txt
@@ -1,9 +1,10 @@
* Gated Clock bindings for Marvell EBU SoCs
-Marvell Armada 370/XP, Dove and Kirkwood allow some peripheral clocks to be
-gated to save some power. The clock consumer should specify the desired clock
-by having the clock ID in its "clocks" phandle cell. The clock ID is directly
-mapped to the corresponding clock gating control bit in HW to ease manual clock
+Marvell Armada 370/375/380/385/XP, Dove and Kirkwood allow some
+peripheral clocks to be gated to save some power. The clock consumer
+should specify the desired clock by having the clock ID in its
+"clocks" phandle cell. The clock ID is directly mapped to the
+corresponding clock gating control bit in HW to ease manual clock
lookup in datasheet.
The following is a list of provided IDs for Armada 370:
@@ -22,6 +23,60 @@ ID Clock Peripheral
28 ddr DDR Cntrl
30 sata1 SATA Host 0
+The following is a list of provided IDs for Armada 375:
+ID Clock Peripheral
+-----------------------------------
+2 mu Management Unit
+3 pp Packet Processor
+4 ptp PTP
+5 pex0 PCIe 0 Clock out
+6 pex1 PCIe 1 Clock out
+8 audio Audio Cntrl
+11 nd_clk Nand Flash Cntrl
+14 sata0_link SATA 0 Link
+15 sata0_core SATA 0 Core
+16 usb3 USB3 Host
+17 sdio SDHCI Host
+18 usb USB Host
+19 gop Gigabit Ethernet MAC
+20 sata1_link SATA 1 Link
+21 sata1_core SATA 1 Core
+22 xor0 XOR DMA 0
+23 xor1 XOR DMA 0
+24 copro Coprocessor
+25 tdm Time Division Mplx
+28 crypto0_enc Cryptographic Unit Port 0 Encryption
+29 crypto0_core Cryptographic Unit Port 0 Core
+30 crypto1_enc Cryptographic Unit Port 1 Encryption
+31 crypto1_core Cryptographic Unit Port 1 Core
+
+The following is a list of provided IDs for Armada 380/385:
+ID Clock Peripheral
+-----------------------------------
+0 audio Audio
+2 ge2 Gigabit Ethernet 2
+3 ge1 Gigabit Ethernet 1
+4 ge0 Gigabit Ethernet 0
+5 pex1 PCIe 1
+6 pex2 PCIe 2
+7 pex3 PCIe 3
+8 pex0 PCIe 0
+9 usb3h0 USB3 Host 0
+10 usb3h1 USB3 Host 1
+11 usb3d USB3 Device
+13 bm Buffer Management
+14 crypto0z Cryptographic 0 Z
+15 sata0 SATA 0
+16 crypto1z Cryptographic 1 Z
+17 sdio SDIO
+18 usb2 USB 2
+21 crypto1 Cryptographic 1
+22 xor0 XOR 0
+23 crypto0 Cryptographic 0
+25 tdm Time Division Multiplexing
+28 xor1 XOR 1
+30 sata1 SATA 1
+
The following is a list of provided IDs for Armada XP:
ID Clock Peripheral
-----------------------------------
@@ -95,6 +150,8 @@ ID Clock Peripheral
Required properties:
- compatible : shall be one of the following:
"marvell,armada-370-gating-clock" - for Armada 370 SoC clock gating
+ "marvell,armada-375-gating-clock" - for Armada 375 SoC clock gating
+ "marvell,armada-380-gating-clock" - for Armada 380/385 SoC clock gating
"marvell,armada-xp-gating-clock" - for Armada XP SoC clock gating
"marvell,dove-gating-clock" - for Dove SoC clock gating
"marvell,kirkwood-gating-clock" - for Kirkwood SoC clock gating

Documentation/devicetree/bindings/clock/renesas,rz-cpg-clocks.txt

View file
diff --git a/Documentation/devicetree/bindings/clock/renesas,rz-cpg-clocks.txt b/Documentation/devicetree/bindings/clock/renesas,rz-cpg-clocks.txt
new file mode 100644
index 0000000..98a2574
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/renesas,rz-cpg-clocks.txt
@@ -0,0 +1,29 @@
+* Renesas RZ Clock Pulse Generator (CPG)
+
+The CPG generates core clocks for the RZ SoCs. It includes the PLL, variable
+CPU and GPU clocks, and several fixed ratio dividers.
+
+Required Properties:
+
+ - compatible: Must be one of
+ - "renesas,r7s72100-cpg-clocks" for the r7s72100 CPG
+ - "renesas,rz-cpg-clocks" for the generic RZ CPG
+ - reg: Base address and length of the memory resource used by the CPG
+ - clocks: References to possible parent clocks. Order must match clock modes
+ in the datasheet. For the r7s72100, this is extal, usb_x1.
+ - #clock-cells: Must be 1
+ - clock-output-names: The names of the clocks. Supported clocks are "pll",
+ "i", and "g"
+
+
+Example
+-------
+
+ cpg_clocks: cpg_clocks@fcfe0000 {
+ #clock-cells = <1>;
+ compatible = "renesas,r7s72100-cpg-clocks",
+ "renesas,rz-cpg-clocks";
+ reg = <0xfcfe0000 0x18>;
+ clocks = <&extal_clk>, <&usb_x1_clk>;
+ clock-output-names = "pll", "i", "g";
+ };

Documentation/devicetree/bindings/clock/st/st,clkgen-divmux.txt

View file
diff --git a/Documentation/devicetree/bindings/clock/st/st,clkgen-divmux.txt b/Documentation/devicetree/bindings/clock/st/st,clkgen-divmux.txt
new file mode 100644
index 0000000..ae56315
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/st/st,clkgen-divmux.txt
@@ -0,0 +1,49 @@
+Binding for a ST divider and multiplexer clock driver.
+
+This binding uses the common clock binding[1].
+Base address is located to the parent node. See clock binding[2]
+
+[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
+[2] Documentation/devicetree/bindings/clock/st/st,clkgen.txt
+
+Required properties:
+
+- compatible : shall be:
+ "st,clkgena-divmux-c65-hs", "st,clkgena-divmux"
+ "st,clkgena-divmux-c65-ls", "st,clkgena-divmux"
+ "st,clkgena-divmux-c32-odf0", "st,clkgena-divmux"
+ "st,clkgena-divmux-c32-odf1", "st,clkgena-divmux"
+ "st,clkgena-divmux-c32-odf2", "st,clkgena-divmux"
+ "st,clkgena-divmux-c32-odf3", "st,clkgena-divmux"
+
+- #clock-cells : From common clock binding; shall be set to 1.
+
+- clocks : From common clock binding
+
+- clock-output-names : From common clock binding.
+
+Example:
+
+ clockgenA@fd345000 {
+ reg = <0xfd345000 0xb50>;
+
+ CLK_M_A1_DIV1: CLK_M_A1_DIV1 {
+ #clock-cells = <1>;
+ compatible = "st,clkgena-divmux-c32-odf1",
+ "st,clkgena-divmux";
+
+ clocks = <&CLK_M_A1_OSC_PREDIV>,
+ <&CLK_M_A1_PLL0 1>, /* PLL0 PHI1 */
+ <&CLK_M_A1_PLL1 1>; /* PLL1 PHI1 */
+
+ clock-output-names = "CLK_M_RX_ICN_TS",
+ "CLK_M_RX_ICN_VDP_0",
+ "", /* Unused */
+ "CLK_M_PRV_T1_BUS",
+ "CLK_M_ICN_REG_12",
+ "CLK_M_ICN_REG_10",
+ "", /* Unused */
+ "CLK_M_ICN_ST231";
+ };
+ };
+

Documentation/devicetree/bindings/clock/st/st,clkgen-mux.txt

View file
diff --git a/Documentation/devicetree/bindings/clock/st/st,clkgen-mux.txt b/Documentation/devicetree/bindings/clock/st/st,clkgen-mux.txt
new file mode 100644
index 0000000..943e080
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/st/st,clkgen-mux.txt
@@ -0,0 +1,36 @@
+Binding for a ST multiplexed clock driver.
+
+This binding supports only simple indexed multiplexers, it does not
+support table based parent index to hardware value translations.
+
+This binding uses the common clock binding[1].
+
+[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
+
+Required properties:
+
+- compatible : shall be:
+ "st,stih416-clkgenc-vcc-hd", "st,clkgen-mux"
+ "st,stih416-clkgenf-vcc-fvdp", "st,clkgen-mux"
+ "st,stih416-clkgenf-vcc-hva", "st,clkgen-mux"
+ "st,stih416-clkgenf-vcc-hd", "st,clkgen-mux"
+ "st,stih416-clkgenf-vcc-sd", "st,clkgen-mux"
+ "st,stih415-clkgen-a9-mux", "st,clkgen-mux"
+ "st,stih416-clkgen-a9-mux", "st,clkgen-mux"
+
+
+- #clock-cells : from common clock binding; shall be set to 0.
+
+- reg : A Base address and length of the register set.
+
+- clocks : from common clock binding
+
+Example:
+
+ CLK_M_HVA: CLK_M_HVA {
+ #clock-cells = <0>;
+ compatible = "st,stih416-clkgenf-vcc-hva", "st,clkgen-mux";
+ reg = <0xfd690868 4>;
+
+ clocks = <&CLOCKGEN_F 1>, <&CLK_M_A1_DIV0 3>;
+ };

Documentation/devicetree/bindings/clock/st/st,clkgen-pll.txt

View file
diff --git a/Documentation/devicetree/bindings/clock/st/st,clkgen-pll.txt b/Documentation/devicetree/bindings/clock/st/st,clkgen-pll.txt
new file mode 100644
index 0000000..81eb385
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/st/st,clkgen-pll.txt
@@ -0,0 +1,48 @@
+Binding for a ST pll clock driver.
+
+This binding uses the common clock binding[1].
+Base address is located to the parent node. See clock binding[2]
+
+[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
+[2] Documentation/devicetree/bindings/clock/st/st,clkgen.txt
+
+Required properties:
+
+- compatible : shall be:
+ "st,clkgena-prediv-c65", "st,clkgena-prediv"
+ "st,clkgena-prediv-c32", "st,clkgena-prediv"
+
+ "st,clkgena-plls-c65"
+ "st,plls-c32-a1x-0", "st,clkgen-plls-c32"
+ "st,plls-c32-a1x-1", "st,clkgen-plls-c32"
+ "st,stih415-plls-c32-a9", "st,clkgen-plls-c32"
+ "st,stih415-plls-c32-ddr", "st,clkgen-plls-c32"
+ "st,stih416-plls-c32-a9", "st,clkgen-plls-c32"
+ "st,stih416-plls-c32-ddr", "st,clkgen-plls-c32"
+
+ "st,stih415-gpu-pll-c32", "st,clkgengpu-pll-c32"
+ "st,stih416-gpu-pll-c32", "st,clkgengpu-pll-c32"
+
+
+- #clock-cells : From common clock binding; shall be set to 1.
+
+- clocks : From common clock binding
+
+- clock-output-names : From common clock binding.
+
+Example:
+
+ clockgenA@fee62000 {
+ reg = <0xfee62000 0xb48>;
+
+ CLK_S_A0_PLL: CLK_S_A0_PLL {
+ #clock-cells = <1>;
+ compatible = "st,clkgena-plls-c65";
+
+ clocks = <&CLK_SYSIN>;
+
+ clock-output-names = "CLK_S_A0_PLL0_HS",
+ "CLK_S_A0_PLL0_LS",
+ "CLK_S_A0_PLL1";
+ };
+ };

Documentation/devicetree/bindings/clock/st/st,clkgen-prediv.txt

View file
diff --git a/Documentation/devicetree/bindings/clock/st/st,clkgen-prediv.txt b/Documentation/devicetree/bindings/clock/st/st,clkgen-prediv.txt
new file mode 100644
index 0000000..566c9d7
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/st/st,clkgen-prediv.txt
@@ -0,0 +1,36 @@
+Binding for a ST pre-divider clock driver.
+
+This binding uses the common clock binding[1].
+Base address is located to the parent node. See clock binding[2]
+
+[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
+[2] Documentation/devicetree/bindings/clock/st/st,clkgen.txt
+
+Required properties:
+
+- compatible : shall be:
+ "st,clkgena-prediv-c65", "st,clkgena-prediv"
+ "st,clkgena-prediv-c32", "st,clkgena-prediv"
+
+- #clock-cells : From common clock binding; shall be set to 0.
+
+- clocks : From common clock binding
+
+- clock-output-names : From common clock binding.
+
+Example:
+
+ clockgenA@fd345000 {
+ reg = <0xfd345000 0xb50>;
+
+ CLK_M_A2_OSC_PREDIV: CLK_M_A2_OSC_PREDIV {
+ #clock-cells = <0>;
+ compatible = "st,clkgena-prediv-c32",
+ "st,clkgena-prediv";
+
+ clocks = <&CLK_SYSIN>;
+
+ clock-output-names = "CLK_M_A2_OSC_PREDIV";
+ };
+ };
+

Documentation/devicetree/bindings/clock/st/st,clkgen-vcc.txt

View file
diff --git a/Documentation/devicetree/bindings/clock/st/st,clkgen-vcc.txt b/Documentation/devicetree/bindings/clock/st/st,clkgen-vcc.txt
new file mode 100644
index 0000000..4e3ff28
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/st/st,clkgen-vcc.txt
@@ -0,0 +1,53 @@
+Binding for a type of STMicroelectronics clock crossbar (VCC).
+
+The crossbar can take up to 4 input clocks and control up to 16
+output clocks. Not all inputs or outputs have to be in use in a
+particular instantiation. Each output can be individually enabled,
+select any of the input clocks and apply a divide (by 1,2,4 or 8) to
+that selected clock.
+
+This binding uses the common clock binding[1].
+
+[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
+
+Required properties:
+
+- compatible : shall be:
+ "st,stih416-clkgenc", "st,vcc"
+ "st,stih416-clkgenf", "st,vcc"
+
+- #clock-cells : from common clock binding; shall be set to 1.
+
+- reg : A Base address and length of the register set.
+
+- clocks : from common clock binding
+
+- clock-output-names : From common clock binding. The block has 16
+ clock outputs but not all of them in a specific instance
+ have to be used in the SoC. If a clock name is left as
+ an empty string then no clock will be created for the
+ output associated with that string index. If fewer than
+ 16 strings are provided then no clocks will be created
+ for the remaining outputs.
+
+Example:
+
+ CLOCKGEN_C_VCC: CLOCKGEN_C_VCC {
+ #clock-cells = <1>;
+ compatible = "st,stih416-clkgenc", "st,clkgen-vcc";
+ reg = <0xfe8308ac 12>;
+
+ clocks = <&CLK_S_VCC_HD>, <&CLOCKGEN_C 1>,
+ <&CLK_S_TMDS_FROMPHY>, <&CLOCKGEN_C 2>;
+
+ clock-output-names =
+ "CLK_S_PIX_HDMI", "CLK_S_PIX_DVO",
+ "CLK_S_OUT_DVO", "CLK_S_PIX_HD",

This diff is incomplete. Download the complete patch.

Documentation/devicetree/bindings/clock/st/st,clkgen.txt

View file

This diff is incomplete. Download the complete patch.

Documentation/devicetree/bindings/clock/st/st,quadfs.txt

View file

This diff is incomplete. Download the complete patch.

Documentation/devicetree/bindings/clock/sunxi.txt

View file

This diff is incomplete. Download the complete patch.

MAINTAINERS

View file

This diff is incomplete. Download the complete patch.

arch/arm/boot/dts/socfpga.dtsi

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-socfpga/socfpga.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/Kconfig

View file

This diff is incomplete. Download the complete patch.

drivers/clk/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/clk/at91/clk-programmable.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/at91/clk-system.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/clk-axi-clkgen.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/clk-divider.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/clk-moxart.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/clk-ppc-corenet.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/clk-s2mps11.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/clk.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/clkdev.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/hisilicon/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/clk/hisilicon/clk-hi3620.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/hisilicon/clk-hip04.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/hisilicon/clk.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/hisilicon/clk.h

View file

This diff is incomplete. Download the complete patch.

drivers/clk/mmp/clk-frac.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/mvebu/Kconfig

View file

This diff is incomplete. Download the complete patch.

drivers/clk/mvebu/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/clk/mvebu/armada-375.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/mvebu/armada-38x.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/mvebu/clk-corediv.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/shmobile/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/clk/shmobile/clk-div6.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/shmobile/clk-mstp.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/shmobile/clk-rcar-gen2.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/shmobile/clk-rz.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/sirf/clk-atlas6.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/sirf/clk-common.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/sirf/clk-prima2.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/socfpga/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/clk/socfpga/clk-gate.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/socfpga/clk-periph.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/socfpga/clk-pll.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/socfpga/clk.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/socfpga/clk.h

View file

This diff is incomplete. Download the complete patch.

drivers/clk/st/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/clk/st/clkgen-fsyn.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/st/clkgen-mux.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/st/clkgen-pll.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/st/clkgen.h

View file

This diff is incomplete. Download the complete patch.

drivers/clk/sunxi/clk-sunxi.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/tegra/clk-periph.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/ti/clk-33xx.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/ti/divider.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/ux500/u8500_of_clk.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/zynq/clkc.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/zynq/pll.c

View file

This diff is incomplete. Download the complete patch.

include/dt-bindings/clock/hi3620-clock.h

View file

This diff is incomplete. Download the complete patch.

include/dt-bindings/clock/hip04-clock.h

View file

This diff is incomplete. Download the complete patch.

include/linux/clk-provider.h

View file

This diff is incomplete. Download the complete patch.

include/linux/clk.h

View file

This diff is incomplete. Download the complete patch.