projects/linux·commit bfc7249c

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

bfc7249c · Linus Torvalds <[email protected]> · 2014-12-20 16:42:36 -08:00

Pull clk framework updates from Mike Turquette:
 "This is much later than usual due to several last minute bugs that had
  to be addressed.  As usual the majority of changes are new drivers and
  modifications to existing drivers.  The core recieved many fixes along
  with the groundwork for several large changes coming in the future
  which will better parition clock providers from clock consumers"

* tag 'clk-for-linus-3.19' of git://git.linaro.org/people/mike.turquette/linux: (86 commits)
  clk: samsung: Fix Exynos 5420 pinctrl setup and clock disable failure due to domain being gated
  ARM: OMAP3: clock: fix boot breakage in legacy mode
  ARM: OMAP2+: clock: fix DPLL code to use new determine rate APIs
  clk: Really fix deadlock with mmap_sem
  clk: mmp: fix sparse non static symbol warning
  clk: Change clk_ops->determine_rate to return a clk_hw as the best parent
  clk: change clk_debugfs_add_file to take a struct clk_hw
  clk: Don't expose __clk_get_accuracy
  clk: Don't try to use a struct clk* after it could have been freed
  clk: Remove unused function __clk_get_prepare_count
  clk: samsung: Fix double add of syscore ops after driver rebind
  clk: samsung: exynos4: set parent of sclk_hdmiphy to hdmi
  clk: samsung: exynos4415: Fix build with PM_SLEEP disabled
  clk: samsung: remove unnecessary inclusion of header files from clk.h
  clk: samsung: remove unnecessary CONFIG_OF from clk.c
  clk: samsung: Spelling s/bwtween/between/
  clk: rockchip: Add support for the mmc clock phases using the framework
  clk: rockchip: add bindings for the mmc clocks
  clk: rockchip: rk3288 export i2s0_clkout for use in DT
  clk: rockchip: use clock ID for DMC (memory controller) on rk3288
  ...
Commit
bfc7249cc293deac8f2678b7ec3d2407b68c0a33
Parents
a4e1328a · f1e9203e

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

Changes

94 files changed · +6663 −690

FileStatusAddDelContent
Documentation/clk.txtmodified+1−1View file
Documentation/devicetree/bindings/clock/exynos4415-clock.txtadded+38−0View file
Documentation/devicetree/bindings/clock/exynos7-clock.txtadded+93−0View file
Documentation/devicetree/bindings/clock/marvell,mmp2.txtadded+21−0View file
Documentation/devicetree/bindings/clock/marvell,pxa168.txtadded+21−0View file
Documentation/devicetree/bindings/clock/marvell,pxa910.txtadded+21−0View file
Documentation/devicetree/bindings/clock/renesas,cpg-div6-clocks.txtmodified+12−6View file
Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txtmodified+4−4View file
Documentation/devicetree/bindings/clock/sunxi.txtmodified+27−4View file
MAINTAINERSmodified+2−1View file
arch/arm/boot/dts/Makefilemodified+3−0View file
arch/arm/boot/dts/mmp2-brownstone.dtsmodified+1−1View file
arch/arm/boot/dts/mmp2.dtsimodified+28−1View file
arch/arm/boot/dts/pxa168-aspenite.dtsmodified+1−1View file
arch/arm/boot/dts/pxa168.dtsimodified+26−1View file
arch/arm/boot/dts/pxa910-dkb.dtsmodified+1−1View file
arch/arm/boot/dts/pxa910.dtsimodified+27−1View file
arch/arm/boot/dts/sun4i-a10.dtsimodified+2−10View file
arch/arm/boot/dts/sun5i-a10s.dtsimodified+2−10View file
arch/arm/boot/dts/sun5i-a13.dtsimodified+2−10View file
arch/arm/boot/dts/sun6i-a31.dtsimodified+2−10View file
arch/arm/boot/dts/sun7i-a20.dtsimodified+2−10View file
arch/arm/boot/dts/sun8i-a23.dtsimodified+2−10View file
arch/arm/mach-mmp/Kconfigmodified+6−6View file
arch/arm/mach-mmp/mmp-dt.cmodified+18−39View file
arch/arm/mach-mmp/mmp2-dt.cmodified+9−17View file
arch/arm/mach-omap2/cclock3xxx_data.cmodified+14−9View file
arch/arm/mach-omap2/dpll3xxx.cmodified+3−3View file
arch/arm/mach-omap2/dpll44xx.cmodified+3−3View file
arch/mips/alchemy/common/clock.cmodified+5−5View file
drivers/clk/at91/clk-programmable.cmodified+2−2View file
drivers/clk/bcm/clk-kona.cmodified+2−2View file
drivers/clk/clk-composite.cmodified+5−4View file
drivers/clk/clk-mux.cmodified+1−1View file
drivers/clk/clk-s2mps11.cmodified+1−1View file
drivers/clk/clk.cmodified+23−19View file
drivers/clk/hisilicon/clk-hi3620.cmodified+36−36View file
drivers/clk/mmp/Makefilemodified+6−1View file
drivers/clk/mmp/clk-frac.cmodified+58−16View file
drivers/clk/mmp/clk-gate.cadded+133−0View file
drivers/clk/mmp/clk-mix.cadded+513−0View file
drivers/clk/mmp/clk-mmp2.cmodified+3−3View file
drivers/clk/mmp/clk-of-mmp2.cadded+334−0View file
drivers/clk/mmp/clk-of-pxa168.cadded+279−0View file
drivers/clk/mmp/clk-of-pxa910.cadded+301−0View file
drivers/clk/mmp/clk-pxa168.cmodified+3−3View file
drivers/clk/mmp/clk-pxa910.cmodified+3−3View file
drivers/clk/mmp/clk.cadded+192−0View file
drivers/clk/mmp/clk.hmodified+215−11View file
drivers/clk/mmp/reset.cadded+99−0View file
drivers/clk/mmp/reset.hadded+31−0View file
drivers/clk/pxa/Makefilemodified+1−0View file
drivers/clk/pxa/clk-pxa.cmodified+28−17View file
drivers/clk/pxa/clk-pxa.hmodified+5−4View file
drivers/clk/pxa/clk-pxa25x.cadded+273−0View file
drivers/clk/pxa/clk-pxa27x.cmodified+8−1View file
drivers/clk/qcom/clk-pll.cmodified+1−1View file
drivers/clk/qcom/clk-rcg.cmodified+12−8View file
drivers/clk/qcom/clk-rcg2.cmodified+17−11View file
drivers/clk/rockchip/Makefilemodified+1−0View file
drivers/clk/rockchip/clk-mmc-phase.cadded+154−0View file
drivers/clk/rockchip/clk-pll.cmodified+66−15View file
drivers/clk/rockchip/clk-rk3188.cmodified+36−43View file
drivers/clk/rockchip/clk-rk3288.cmodified+160−86View file
drivers/clk/rockchip/clk.cmodified+10−10View file
drivers/clk/rockchip/clk.hmodified+43−2View file
drivers/clk/samsung/Makefilemodified+2−0View file
drivers/clk/samsung/clk-exynos-audss.cmodified+32−1View file
drivers/clk/samsung/clk-exynos4.cmodified+1−1View file
drivers/clk/samsung/clk-exynos4415.cadded+1144−0View file
drivers/clk/samsung/clk-exynos5260.cmodified+26−159View file
drivers/clk/samsung/clk-exynos7.cadded+743−0View file
drivers/clk/samsung/clk-pll.cmodified+20−5View file
drivers/clk/samsung/clk-pll.hmodified+4−0View file
drivers/clk/samsung/clk.cmodified+100−2View file
drivers/clk/samsung/clk.hmodified+38−5View file
drivers/clk/shmobile/clk-div6.cmodified+101−12View file
drivers/clk/sunxi/Makefilemodified+1−0View file
drivers/clk/sunxi/clk-a20-gmac.cmodified+6−1View file
drivers/clk/sunxi/clk-factors.cmodified+3−3View file
drivers/clk/sunxi/clk-factors.hmodified+1−2View file
drivers/clk/sunxi/clk-mod0.cmodified+1−0View file
drivers/clk/sunxi/clk-sun6i-ar100.cmodified+2−2View file
drivers/clk/sunxi/clk-sun8i-mbus.cmodified+1−0View file
drivers/clk/sunxi/clk-sun9i-core.cadded+271−0View file
drivers/clk/sunxi/clk-sunxi.cmodified+59−26View file
include/dt-bindings/clock/exynos4415.hadded+360−0View file
include/dt-bindings/clock/exynos7-clk.hadded+92−0View file
include/dt-bindings/clock/marvell,mmp2.hadded+74−0View file
include/dt-bindings/clock/marvell,pxa168.hadded+57−0View file
include/dt-bindings/clock/marvell,pxa910.hadded+54−0View file
include/dt-bindings/clock/rk3288-cru.hmodified+13−0View file
include/linux/clk-provider.hmodified+3−5View file
include/linux/clk/ti.hmodified+2−2View 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 1fee72f..4ff8462 100644
--- a/Documentation/clk.txt
+++ b/Documentation/clk.txt
@@ -74,7 +74,7 @@ the operations defined in clk.h:
long (*determine_rate)(struct clk_hw *hw,
unsigned long rate,
unsigned long *best_parent_rate,
- struct clk **best_parent_clk);
+ struct clk_hw **best_parent_clk);
int (*set_parent)(struct clk_hw *hw, u8 index);
u8 (*get_parent)(struct clk_hw *hw);
int (*set_rate)(struct clk_hw *hw,

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

View file
diff --git a/Documentation/devicetree/bindings/clock/exynos4415-clock.txt b/Documentation/devicetree/bindings/clock/exynos4415-clock.txt
new file mode 100644
index 0000000..847d98b
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/exynos4415-clock.txt
@@ -0,0 +1,38 @@
+* Samsung Exynos4415 Clock Controller
+
+The Exynos4415 clock controller generates and supplies clock to various
+consumer devices within the Exynos4415 SoC.
+
+Required properties:
+
+- compatible: should be one of the following:
+ - "samsung,exynos4415-cmu" - for the main system clocks controller
+ (CMU_LEFTBUS, CMU_RIGHTBUS, CMU_TOP, CMU_CPU clock domains).
+ - "samsung,exynos4415-cmu-dmc" - for the Exynos4415 SoC DRAM Memory
+ Controller (DMC) domain clock controller.
+
+- reg: physical base address of the 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
+dt-bindings/clock/exynos4415.h header and can be used in device
+tree sources.
+
+Example 1: An example of a clock controller node is listed below.
+
+ cmu: clock-controller@10030000 {
+ compatible = "samsung,exynos4415-cmu";
+ reg = <0x10030000 0x18000>;
+ #clock-cells = <1>;
+ };
+
+ cmu-dmc: clock-controller@105C0000 {
+ compatible = "samsung,exynos4415-cmu-dmc";
+ reg = <0x105C0000 0x3000>;
+ #clock-cells = <1>;
+ };

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

View file
diff --git a/Documentation/devicetree/bindings/clock/exynos7-clock.txt b/Documentation/devicetree/bindings/clock/exynos7-clock.txt
new file mode 100644
index 0000000..6d3d5f8
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/exynos7-clock.txt
@@ -0,0 +1,93 @@
+* Samsung Exynos7 Clock Controller
+
+Exynos7 clock controller has various blocks which are instantiated
+independently from the device-tree. These clock controllers
+generate and supply clocks to various hardware blocks within
+the SoC.
+
+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
+dt-bindings/clock/exynos7-clk.h header and can be used in
+device tree sources.
+
+External clocks:
+
+There are several clocks that are generated outside the SoC. It
+is expected that they are defined using standard clock bindings
+with following clock-output-names:
+
+ - "fin_pll" - PLL input clock from XXTI
+
+Required Properties for Clock Controller:
+
+ - compatible: clock controllers will use one of the following
+ compatible strings to indicate the clock controller
+ functionality.
+
+ - "samsung,exynos7-clock-topc"
+ - "samsung,exynos7-clock-top0"
+ - "samsung,exynos7-clock-top1"
+ - "samsung,exynos7-clock-ccore"
+ - "samsung,exynos7-clock-peric0"
+ - "samsung,exynos7-clock-peric1"
+ - "samsung,exynos7-clock-peris"
+ - "samsung,exynos7-clock-fsys0"
+ - "samsung,exynos7-clock-fsys1"
+
+ - reg: physical base address of the controller and the length of
+ memory mapped region.
+
+ - #clock-cells: should be 1.
+
+ - clocks: list of clock identifiers which are fed as the input to
+ the given clock controller. Please refer the next section to
+ find the input clocks for a given controller.
+
+- clock-names: list of names of clocks which are fed as the input
+ to the given clock controller.
+
+Input clocks for top0 clock controller:
+ - fin_pll
+ - dout_sclk_bus0_pll
+ - dout_sclk_bus1_pll
+ - dout_sclk_cc_pll
+ - dout_sclk_mfc_pll
+
+Input clocks for top1 clock controller:
+ - fin_pll
+ - dout_sclk_bus0_pll
+ - dout_sclk_bus1_pll
+ - dout_sclk_cc_pll
+ - dout_sclk_mfc_pll
+
+Input clocks for ccore clock controller:
+ - fin_pll
+ - dout_aclk_ccore_133
+
+Input clocks for peric0 clock controller:
+ - fin_pll
+ - dout_aclk_peric0_66
+ - sclk_uart0
+
+Input clocks for peric1 clock controller:
+ - fin_pll
+ - dout_aclk_peric1_66
+ - sclk_uart1
+ - sclk_uart2
+ - sclk_uart3
+
+Input clocks for peris clock controller:
+ - fin_pll
+ - dout_aclk_peris_66
+
+Input clocks for fsys0 clock controller:
+ - fin_pll
+ - dout_aclk_fsys0_200
+ - dout_sclk_mmc2
+
+Input clocks for fsys1 clock controller:
+ - fin_pll
+ - dout_aclk_fsys1_200
+ - dout_sclk_mmc0
+ - dout_sclk_mmc1

Documentation/devicetree/bindings/clock/marvell,mmp2.txt

View file
diff --git a/Documentation/devicetree/bindings/clock/marvell,mmp2.txt b/Documentation/devicetree/bindings/clock/marvell,mmp2.txt
new file mode 100644
index 0000000..af376a0
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/marvell,mmp2.txt
@@ -0,0 +1,21 @@
+* Marvell MMP2 Clock Controller
+
+The MMP2 clock subsystem generates and supplies clock to various
+controllers within the MMP2 SoC.
+
+Required Properties:
+
+- compatible: should be one of the following.
+ - "marvell,mmp2-clock" - controller compatible with MMP2 SoC.
+
+- reg: physical base address of the clock subsystem and length of memory mapped
+ region. There are 3 places in SOC has clock control logic:
+ "mpmu", "apmu", "apbc". So three reg spaces need to be defined.
+
+- #clock-cells: should be 1.
+- #reset-cells: should be 1.
+
+Each clock is assigned an identifier and client nodes use this identifier
+to specify the clock which they consume.
+
+All these identifier could be found in <dt-bindings/clock/marvell-mmp2.h>.

Documentation/devicetree/bindings/clock/marvell,pxa168.txt

View file
diff --git a/Documentation/devicetree/bindings/clock/marvell,pxa168.txt b/Documentation/devicetree/bindings/clock/marvell,pxa168.txt
new file mode 100644
index 0000000..c62eb1d
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/marvell,pxa168.txt
@@ -0,0 +1,21 @@
+* Marvell PXA168 Clock Controller
+
+The PXA168 clock subsystem generates and supplies clock to various
+controllers within the PXA168 SoC.
+
+Required Properties:
+
+- compatible: should be one of the following.
+ - "marvell,pxa168-clock" - controller compatible with PXA168 SoC.
+
+- reg: physical base address of the clock subsystem and length of memory mapped
+ region. There are 3 places in SOC has clock control logic:
+ "mpmu", "apmu", "apbc". So three reg spaces need to be defined.
+
+- #clock-cells: should be 1.
+- #reset-cells: should be 1.
+
+Each clock is assigned an identifier and client nodes use this identifier
+to specify the clock which they consume.
+
+All these identifier could be found in <dt-bindings/clock/marvell,pxa168.h>.

Documentation/devicetree/bindings/clock/marvell,pxa910.txt

View file
diff --git a/Documentation/devicetree/bindings/clock/marvell,pxa910.txt b/Documentation/devicetree/bindings/clock/marvell,pxa910.txt
new file mode 100644
index 0000000..d9f41f3
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/marvell,pxa910.txt
@@ -0,0 +1,21 @@
+* Marvell PXA910 Clock Controller
+
+The PXA910 clock subsystem generates and supplies clock to various
+controllers within the PXA910 SoC.
+
+Required Properties:
+
+- compatible: should be one of the following.
+ - "marvell,pxa910-clock" - controller compatible with PXA910 SoC.
+
+- reg: physical base address of the clock subsystem and length of memory mapped
+ region. There are 4 places in SOC has clock control logic:
+ "mpmu", "apmu", "apbc", "apbcp". So four reg spaces need to be defined.
+
+- #clock-cells: should be 1.
+- #reset-cells: should be 1.
+
+Each clock is assigned an identifier and client nodes use this identifier
+to specify the clock which they consume.
+
+All these identifier could be found in <dt-bindings/clock/marvell-pxa910.h>.

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

View file
diff --git a/Documentation/devicetree/bindings/clock/renesas,cpg-div6-clocks.txt b/Documentation/devicetree/bindings/clock/renesas,cpg-div6-clocks.txt
index 952e373..054f65f 100644
--- a/Documentation/devicetree/bindings/clock/renesas,cpg-div6-clocks.txt
+++ b/Documentation/devicetree/bindings/clock/renesas,cpg-div6-clocks.txt
@@ -7,11 +7,16 @@ to 64.
Required Properties:
- compatible: Must be one of the following
+ - "renesas,r8a73a4-div6-clock" for R8A73A4 (R-Mobile APE6) DIV6 clocks
+ - "renesas,r8a7740-div6-clock" for R8A7740 (R-Mobile A1) DIV6 clocks
- "renesas,r8a7790-div6-clock" for R8A7790 (R-Car H2) DIV6 clocks
- "renesas,r8a7791-div6-clock" for R8A7791 (R-Car M2) DIV6 clocks
+ - "renesas,sh73a0-div6-clock" for SH73A0 (SH-Mobile AG5) DIV6 clocks
- "renesas,cpg-div6-clock" for generic DIV6 clocks
- reg: Base address and length of the memory resource used by the DIV6 clock
- - clocks: Reference to the parent clock
+ - clocks: Reference to the parent clock(s); either one, four, or eight
+ clocks must be specified. For clocks with multiple parents, invalid
+ settings must be specified as "<0>".
- #clock-cells: Must be 0
- clock-output-names: The name of the clock as a free-form string
@@ -19,10 +24,11 @@ Required Properties:
Example
-------
- sd2_clk: sd2_clk@e6150078 {
- compatible = "renesas,r8a7790-div6-clock", "renesas,cpg-div6-clock";
- reg = <0 0xe6150078 0 4>;
- clocks = <&pll1_div2_clk>;
+ sdhi2_clk: sdhi2_clk@e615007c {
+ compatible = "renesas,r8a73a4-div6-clock", "renesas,cpg-div6-clock";
+ reg = <0 0xe615007c 0 4>;
+ clocks = <&pll1_div2_clk>, <&cpg_clocks R8A73A4_CLK_PLL2S>,
+ <0>, <&extal2_clk>;
#clock-cells = <0>;
- clock-output-names = "sd2";
+ clock-output-names = "sdhi2ck";
};

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

View file
diff --git a/Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt b/Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt
index a5f5223..2e18676 100644
--- a/Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt
+++ b/Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt
@@ -26,11 +26,11 @@ Required Properties:
must appear in the same order as the output clocks.
- #clock-cells: Must be 1
- clock-output-names: The name of the clocks as free-form strings
- - renesas,clock-indices: Indices of the gate clocks into the group (0 to 31)
+ - clock-indices: Indices of the gate clocks into the group (0 to 31)
-The clocks, clock-output-names and renesas,clock-indices properties contain one
-entry per gate clock. The MSTP groups are sparsely populated. Unimplemented
-gate clocks must not be declared.
+The clocks, clock-output-names and clock-indices properties contain one entry
+per gate clock. The MSTP groups are sparsely populated. Unimplemented gate
+clocks must not be declared.
Example

Documentation/devicetree/bindings/clock/sunxi.txt

View file
diff --git a/Documentation/devicetree/bindings/clock/sunxi.txt b/Documentation/devicetree/bindings/clock/sunxi.txt
index ed116df..67b2b99 100644
--- a/Documentation/devicetree/bindings/clock/sunxi.txt
+++ b/Documentation/devicetree/bindings/clock/sunxi.txt
@@ -10,14 +10,17 @@ Required properties:
"allwinner,sun4i-a10-pll1-clk" - for the main PLL clock and PLL4
"allwinner,sun6i-a31-pll1-clk" - for the main PLL clock on A31
"allwinner,sun8i-a23-pll1-clk" - for the main PLL clock on A23
+ "allwinner,sun9i-a80-pll4-clk" - for the peripheral PLLs on A80
"allwinner,sun4i-a10-pll5-clk" - for the PLL5 clock
"allwinner,sun4i-a10-pll6-clk" - for the PLL6 clock
"allwinner,sun6i-a31-pll6-clk" - for the PLL6 clock on A31
+ "allwinner,sun9i-a80-gt-clk" - for the GT bus clock on A80
"allwinner,sun4i-a10-cpu-clk" - for the CPU multiplexer clock
"allwinner,sun4i-a10-axi-clk" - for the AXI clock
"allwinner,sun8i-a23-axi-clk" - for the AXI clock on A23
"allwinner,sun4i-a10-axi-gates-clk" - for the AXI gates
"allwinner,sun4i-a10-ahb-clk" - for the AHB clock
+ "allwinner,sun9i-a80-ahb-clk" - for the AHB bus clocks on A80
"allwinner,sun4i-a10-ahb-gates-clk" - for the AHB gates on A10
"allwinner,sun5i-a13-ahb-gates-clk" - for the AHB gates on A13
"allwinner,sun5i-a10s-ahb-gates-clk" - for the AHB gates on A10s
@@ -26,24 +29,29 @@ Required properties:
"allwinner,sun6i-a31-ahb1-mux-clk" - for the AHB1 multiplexer on A31
"allwinner,sun6i-a31-ahb1-gates-clk" - for the AHB1 gates on A31
"allwinner,sun8i-a23-ahb1-gates-clk" - for the AHB1 gates on A23
+ "allwinner,sun9i-a80-ahb0-gates-clk" - for the AHB0 gates on A80
+ "allwinner,sun9i-a80-ahb1-gates-clk" - for the AHB1 gates on A80
+ "allwinner,sun9i-a80-ahb2-gates-clk" - for the AHB2 gates on A80
"allwinner,sun4i-a10-apb0-clk" - for the APB0 clock
"allwinner,sun6i-a31-apb0-clk" - for the APB0 clock on A31
"allwinner,sun8i-a23-apb0-clk" - for the APB0 clock on A23
+ "allwinner,sun9i-a80-apb0-clk" - for the APB0 bus clock on A80
"allwinner,sun4i-a10-apb0-gates-clk" - for the APB0 gates on A10
"allwinner,sun5i-a13-apb0-gates-clk" - for the APB0 gates on A13
"allwinner,sun5i-a10s-apb0-gates-clk" - for the APB0 gates on A10s
"allwinner,sun6i-a31-apb0-gates-clk" - for the APB0 gates on A31
"allwinner,sun7i-a20-apb0-gates-clk" - for the APB0 gates on A20
"allwinner,sun8i-a23-apb0-gates-clk" - for the APB0 gates on A23
+ "allwinner,sun9i-a80-apb0-gates-clk" - for the APB0 gates on A80
"allwinner,sun4i-a10-apb1-clk" - for the APB1 clock
- "allwinner,sun4i-a10-apb1-mux-clk" - for the APB1 clock muxing
+ "allwinner,sun9i-a80-apb1-clk" - for the APB1 bus clock on A80
"allwinner,sun4i-a10-apb1-gates-clk" - for the APB1 gates on A10
"allwinner,sun5i-a13-apb1-gates-clk" - for the APB1 gates on A13
"allwinner,sun5i-a10s-apb1-gates-clk" - for the APB1 gates on A10s
"allwinner,sun6i-a31-apb1-gates-clk" - for the APB1 gates on A31
"allwinner,sun7i-a20-apb1-gates-clk" - for the APB1 gates on A20
"allwinner,sun8i-a23-apb1-gates-clk" - for the APB1 gates on A23
- "allwinner,sun6i-a31-apb2-div-clk" - for the APB2 gates on A31
+ "allwinner,sun9i-a80-apb1-gates-clk" - for the APB1 gates on A80
"allwinner,sun6i-a31-apb2-gates-clk" - for the APB2 gates on A31
"allwinner,sun8i-a23-apb2-gates-clk" - for the APB2 gates on A23
"allwinner,sun5i-a13-mbus-clk" - for the MBUS clock on A13
@@ -63,8 +71,9 @@ Required properties for all clocks:
multiplexed clocks, the list order must match the hardware
programming order.
- #clock-cells : from common clock binding; shall be set to 0 except for
- "allwinner,*-gates-clk", "allwinner,sun4i-pll5-clk" and
- "allwinner,sun4i-pll6-clk" where it shall be set to 1
+ the following compatibles where it shall be set to 1:
+ "allwinner,*-gates-clk", "allwinner,sun4i-pll5-clk",
+ "allwinner,sun4i-pll6-clk", "allwinner,sun6i-a31-pll6-clk"
- clock-output-names : shall be the corresponding names of the outputs.
If the clock module only has one output, the name shall be the
module name.
@@ -79,6 +88,12 @@ Clock consumers should specify the desired clocks they use with a
"clocks" phandle cell. Consumers that are using a gated clock should
provide an additional ID in their clock property. This ID is the
offset of the bit controlling this particular gate in the register.
+For the other clocks with "#clock-cells" = 1, the additional ID shall
+refer to the index of the output.
+
+For "allwinner,sun6i-a31-pll6-clk", there are 2 outputs. The first output
+is the normal PLL6 output, or "pll6". The second output is rate doubled
+PLL6, or "pll6x2".
For example:
@@ -106,6 +121,14 @@ pll5: clk@01c20020 {
clock-output-names = "pll5_ddr", "pll5_other";
};
+pll6: clk@01c20028 {
+ #clock-cells = <1>;
+ compatible = "allwinner,sun6i-a31-pll6-clk";
+ reg = <0x01c20028 0x4>;
+ clocks = <&osc24M>;
+ clock-output-names = "pll6", "pll6x2";
+};
+
cpu: cpu@01c20054 {
#clock-cells = <0>;
compatible = "allwinner,sun4i-a10-cpu-clk";

MAINTAINERS

View file
diff --git a/MAINTAINERS b/MAINTAINERS
index 08f671d..ddb9ac8 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -2576,8 +2576,9 @@ F: drivers/media/platform/coda/
COMMON CLK FRAMEWORK
M: Mike Turquette <[email protected]>
+M: Stephen Boyd <[email protected]>
-T: git git://git.linaro.org/people/mturquette/linux.git
+T: git git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git
S: Maintained
F: drivers/clk/
X: drivers/clk/clkdev.c

arch/arm/boot/dts/Makefile

View file
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 6a3d9a6..91bd5bd 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -177,6 +177,9 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += kirkwood-b3.dtb \
dtb-$(CONFIG_ARCH_LPC32XX) += ea3250.dtb phy3250.dtb
dtb-$(CONFIG_ARCH_MARCO) += marco-evb.dtb
dtb-$(CONFIG_MACH_MESON6) += meson6-atv1200.dtb
+dtb-$(CONFIG_ARCH_MMP) += pxa168-aspenite.dtb \
+ pxa910-dkb.dtb \
+ mmp2-brownstone.dtb
dtb-$(CONFIG_ARCH_MOXART) += moxart-uc7112lx.dtb
dtb-$(CONFIG_ARCH_MXC) += \
imx1-ads.dtb \

arch/arm/boot/dts/mmp2-brownstone.dts

View file
diff --git a/arch/arm/boot/dts/mmp2-brownstone.dts b/arch/arm/boot/dts/mmp2-brownstone.dts
index 7f70a39..350208c 100644
--- a/arch/arm/boot/dts/mmp2-brownstone.dts
+++ b/arch/arm/boot/dts/mmp2-brownstone.dts
@@ -8,7 +8,7 @@
*/
/dts-v1/;
-/include/ "mmp2.dtsi"
+#include "mmp2.dtsi"
/ {
model = "Marvell MMP2 Brownstone Development Board";

arch/arm/boot/dts/mmp2.dtsi

View file
diff --git a/arch/arm/boot/dts/mmp2.dtsi b/arch/arm/boot/dts/mmp2.dtsi
index 4e8b08c..766bbb8 100644
--- a/arch/arm/boot/dts/mmp2.dtsi
+++ b/arch/arm/boot/dts/mmp2.dtsi
@@ -7,7 +7,8 @@
* publishhed by the Free Software Foundation.
*/
-/include/ "skeleton.dtsi"
+#include "skeleton.dtsi"
+#include <dt-bindings/clock/marvell,mmp2.h>
/ {
aliases {
@@ -135,6 +136,8 @@
compatible = "mrvl,mmp-uart";
reg = <0xd4030000 0x1000>;
interrupts = <27>;
+ clocks = <&soc_clocks MMP2_CLK_UART0>;
+ resets = <&soc_clocks MMP2_CLK_UART0>;
status = "disabled";
};
@@ -142,6 +145,8 @@
compatible = "mrvl,mmp-uart";
reg = <0xd4017000 0x1000>;
interrupts = <28>;
+ clocks = <&soc_clocks MMP2_CLK_UART1>;
+ resets = <&soc_clocks MMP2_CLK_UART1>;
status = "disabled";
};
@@ -149,6 +154,8 @@
compatible = "mrvl,mmp-uart";
reg = <0xd4018000 0x1000>;
interrupts = <24>;
+ clocks = <&soc_clocks MMP2_CLK_UART2>;
+ resets = <&soc_clocks MMP2_CLK_UART2>;
status = "disabled";
};
@@ -156,6 +163,8 @@
compatible = "mrvl,mmp-uart";
reg = <0xd4016000 0x1000>;
interrupts = <46>;
+ clocks = <&soc_clocks MMP2_CLK_UART3>;
+ resets = <&soc_clocks MMP2_CLK_UART3>;
status = "disabled";
};
@@ -168,6 +177,8 @@
#gpio-cells = <2>;
interrupts = <49>;
interrupt-names = "gpio_mux";
+ clocks = <&soc_clocks MMP2_CLK_GPIO>;
+ resets = <&soc_clocks MMP2_CLK_GPIO>;
interrupt-controller;
#interrupt-cells = <1>;
ranges;
@@ -201,6 +212,8 @@
compatible = "mrvl,mmp-twsi";
reg = <0xd4011000 0x1000>;
interrupts = <7>;
+ clocks = <&soc_clocks MMP2_CLK_TWSI0>;
+ resets = <&soc_clocks MMP2_CLK_TWSI0>;
#address-cells = <1>;
#size-cells = <0>;
mrvl,i2c-fast-mode;
@@ -211,6 +224,8 @@
compatible = "mrvl,mmp-twsi";
reg = <0xd4025000 0x1000>;
interrupts = <58>;
+ clocks = <&soc_clocks MMP2_CLK_TWSI1>;
+ resets = <&soc_clocks MMP2_CLK_TWSI1>;
status = "disabled";
};
@@ -220,8 +235,20 @@
interrupts = <1 0>;
interrupt-names = "rtc 1Hz", "rtc alarm";
interrupt-parent = <&intcmux5>;
+ clocks = <&soc_clocks MMP2_CLK_RTC>;
+ resets = <&soc_clocks MMP2_CLK_RTC>;
status = "disabled";
};
};
+
+ soc_clocks: clocks{
+ compatible = "marvell,mmp2-clock";
+ reg = <0xd4050000 0x1000>,
+ <0xd4282800 0x400>,
+ <0xd4015000 0x1000>;
+ reg-names = "mpmu", "apmu", "apbc";
+ #clock-cells = <1>;
+ #reset-cells = <1>;
+ };
};
};

arch/arm/boot/dts/pxa168-aspenite.dts

View file
diff --git a/arch/arm/boot/dts/pxa168-aspenite.dts b/arch/arm/boot/dts/pxa168-aspenite.dts
index e762fac..0a988b3 100644
--- a/arch/arm/boot/dts/pxa168-aspenite.dts
+++ b/arch/arm/boot/dts/pxa168-aspenite.dts
@@ -8,7 +8,7 @@
*/
/dts-v1/;
-/include/ "pxa168.dtsi"
+#include "pxa168.dtsi"
/ {
model = "Marvell PXA168 Aspenite Development Board";

arch/arm/boot/dts/pxa168.dtsi

View file
diff --git a/arch/arm/boot/dts/pxa168.dtsi b/arch/arm/boot/dts/pxa168.dtsi
index 975dad2..b899e25 100644
--- a/arch/arm/boot/dts/pxa168.dtsi
+++ b/arch/arm/boot/dts/pxa168.dtsi
@@ -7,7 +7,8 @@
* publishhed by the Free Software Foundation.
*/
-/include/ "skeleton.dtsi"
+#include "skeleton.dtsi"
+#include <dt-bindings/clock/marvell,pxa168.h>
/ {
aliases {
@@ -59,6 +60,8 @@
compatible = "mrvl,mmp-uart";
reg = <0xd4017000 0x1000>;
interrupts = <27>;
+ clocks = <&soc_clocks PXA168_CLK_UART0>;
+ resets = <&soc_clocks PXA168_CLK_UART0>;
status = "disabled";
};
@@ -66,6 +69,8 @@
compatible = "mrvl,mmp-uart";
reg = <0xd4018000 0x1000>;
interrupts = <28>;
+ clocks = <&soc_clocks PXA168_CLK_UART1>;
+ resets = <&soc_clocks PXA168_CLK_UART1>;
status = "disabled";
};
@@ -73,6 +78,8 @@
compatible = "mrvl,mmp-uart";
reg = <0xd4026000 0x1000>;
interrupts = <29>;
+ clocks = <&soc_clocks PXA168_CLK_UART2>;
+ resets = <&soc_clocks PXA168_CLK_UART2>;
status = "disabled";
};
@@ -84,6 +91,8 @@
gpio-controller;
#gpio-cells = <2>;
interrupts = <49>;
+ clocks = <&soc_clocks PXA168_CLK_GPIO>;
+ resets = <&soc_clocks PXA168_CLK_GPIO>;
interrupt-names = "gpio_mux";
interrupt-controller;
#interrupt-cells = <1>;
@@ -110,6 +119,8 @@
compatible = "mrvl,mmp-twsi";
reg = <0xd4011000 0x1000>;
interrupts = <7>;
+ clocks = <&soc_clocks PXA168_CLK_TWSI0>;
+ resets = <&soc_clocks PXA168_CLK_TWSI0>;
mrvl,i2c-fast-mode;

This diff is incomplete. Download the complete patch.

arch/arm/boot/dts/pxa910-dkb.dts

View file

This diff is incomplete. Download the complete patch.

arch/arm/boot/dts/pxa910.dtsi

View file

This diff is incomplete. Download the complete patch.

arch/arm/boot/dts/sun4i-a10.dtsi

View file

This diff is incomplete. Download the complete patch.

arch/arm/boot/dts/sun5i-a10s.dtsi

View file

This diff is incomplete. Download the complete patch.

arch/arm/boot/dts/sun5i-a13.dtsi

View file

This diff is incomplete. Download the complete patch.

arch/arm/boot/dts/sun6i-a31.dtsi

View file

This diff is incomplete. Download the complete patch.

arch/arm/boot/dts/sun7i-a20.dtsi

View file

This diff is incomplete. Download the complete patch.

arch/arm/boot/dts/sun8i-a23.dtsi

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-mmp/Kconfig

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-mmp/mmp-dt.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-mmp/mmp2-dt.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-omap2/cclock3xxx_data.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-omap2/dpll3xxx.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-omap2/dpll44xx.c

View file

This diff is incomplete. Download the complete patch.

arch/mips/alchemy/common/clock.c

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/bcm/clk-kona.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/clk-composite.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/clk-mux.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/hisilicon/clk-hi3620.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/mmp/Makefile

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/mmp/clk-gate.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/mmp/clk-mix.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/mmp/clk-mmp2.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/mmp/clk-of-mmp2.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/mmp/clk-of-pxa168.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/mmp/clk-of-pxa910.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/mmp/clk-pxa168.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/mmp/clk-pxa910.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/mmp/clk.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/mmp/clk.h

View file

This diff is incomplete. Download the complete patch.

drivers/clk/mmp/reset.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/mmp/reset.h

View file

This diff is incomplete. Download the complete patch.

drivers/clk/pxa/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/clk/pxa/clk-pxa.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/pxa/clk-pxa.h

View file

This diff is incomplete. Download the complete patch.

drivers/clk/pxa/clk-pxa25x.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/pxa/clk-pxa27x.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/qcom/clk-pll.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/qcom/clk-rcg.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/qcom/clk-rcg2.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/rockchip/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/clk/rockchip/clk-mmc-phase.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/rockchip/clk-pll.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/rockchip/clk-rk3188.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/rockchip/clk-rk3288.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/rockchip/clk.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/rockchip/clk.h

View file

This diff is incomplete. Download the complete patch.

drivers/clk/samsung/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/clk/samsung/clk-exynos-audss.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/samsung/clk-exynos4.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/samsung/clk-exynos4415.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/samsung/clk-exynos5260.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/samsung/clk-exynos7.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/samsung/clk-pll.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/samsung/clk-pll.h

View file

This diff is incomplete. Download the complete patch.

drivers/clk/samsung/clk.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/samsung/clk.h

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/sunxi/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/clk/sunxi/clk-a20-gmac.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/sunxi/clk-factors.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/sunxi/clk-factors.h

View file

This diff is incomplete. Download the complete patch.

drivers/clk/sunxi/clk-mod0.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/sunxi/clk-sun6i-ar100.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/sunxi/clk-sun8i-mbus.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/sunxi/clk-sun9i-core.c

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.

include/dt-bindings/clock/exynos4415.h

View file

This diff is incomplete. Download the complete patch.

include/dt-bindings/clock/exynos7-clk.h

View file

This diff is incomplete. Download the complete patch.

include/dt-bindings/clock/marvell,mmp2.h

View file

This diff is incomplete. Download the complete patch.

include/dt-bindings/clock/marvell,pxa168.h

View file

This diff is incomplete. Download the complete patch.

include/dt-bindings/clock/marvell,pxa910.h

View file

This diff is incomplete. Download the complete patch.

include/dt-bindings/clock/rk3288-cru.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/ti.h

View file

This diff is incomplete. Download the complete patch.