-
Notifications
You must be signed in to change notification settings - Fork 115
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge tag 'clk-for-linus-4.3' of git://git.kernel.org/pub/scm/linux/k…
…ernel/git/clk/linux Pull clk updates from Michael Turquette: "The clk framework changes for 4.3 are mostly updates to existing drivers and the addition of new clock drivers. Stephen Boyd has also done a lot of subsystem-wide driver clean-ups (thanks!). There are also fixes to the framework core and changes to better split clock provider drivers from clock consumer drivers" * tag 'clk-for-linus-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (227 commits) clk: s5pv210: add missing call to samsung_clk_of_add_provider() clk: pistachio: correct critical clock list clk: pistachio: Fix PLL rate calculation in integer mode clk: pistachio: Fix override of clk-pll settings from boot loader clk: pistachio: Fix 32bit integer overflows clk: tegra: Fix some static checker problems clk: qcom: Fix MSM8916 prng clock enable bit clk: Add missing header for 'bool' definition to clk-conf.h drivers/clk: appropriate __init annotation for const data clk: rockchip: register pll mux before pll itself clk: add bindings for the Ux500 clocks clk/ARM: move Ux500 PRCC bases to the device tree clk: remove duplicated code with __clk_set_parent_after clk: Convert __clk_get_name(hw->clk) to clk_hw_get_name(hw) clk: Constify clk_hw argument to provider APIs clk: Hi6220: add stub clock driver dt-bindings: clk: Hi6220: Document stub clock driver dt-bindings: arm: Hi6220: add doc for SRAM controller clk: atlas7: fix pll missed divide NR in fraction mode clk: atlas7: fix bit field and its root clk for coresight_tpiu ...
- Loading branch information
Showing
320 changed files
with
9,096 additions
and
4,940 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
SP810 System Controller | ||
----------------------- | ||
|
||
Required properties: | ||
|
||
- compatible: standard compatible string for a Primecell peripheral, | ||
see Documentation/devicetree/bindings/arm/primecell.txt | ||
for more details | ||
should be: "arm,sp810", "arm,primecell" | ||
|
||
- reg: standard registers property, physical address and size | ||
of the control registers | ||
|
||
- clock-names: from the common clock bindings, for more details see | ||
Documentation/devicetree/bindings/clock/clock-bindings.txt; | ||
should be: "refclk", "timclk", "apb_pclk" | ||
|
||
- clocks: from the common clock bindings, phandle and clock | ||
specifier pairs for the entries of clock-names property | ||
|
||
- #clock-cells: from the common clock bindings; | ||
should be: <1> | ||
|
||
- clock-output-names: from the common clock bindings; | ||
should be: "timerclken0", "timerclken1", "timerclken2", "timerclken3" | ||
|
||
- assigned-clocks: from the common clock binding; | ||
should be: clock specifier for each output clock of this | ||
provider node | ||
|
||
- assigned-clock-parents: from the common clock binding; | ||
should be: phandle of input clock listed in clocks | ||
property with the highest frequency | ||
|
||
Example: | ||
v2m_sysctl: sysctl@020000 { | ||
compatible = "arm,sp810", "arm,primecell"; | ||
reg = <0x020000 0x1000>; | ||
clocks = <&v2m_refclk32khz>, <&v2m_refclk1mhz>, <&smbclk>; | ||
clock-names = "refclk", "timclk", "apb_pclk"; | ||
#clock-cells = <1>; | ||
clock-output-names = "timerclken0", "timerclken1", "timerclken2", "timerclken3"; | ||
assigned-clocks = <&v2m_sysctl 0>, <&v2m_sysctl 1>, <&v2m_sysctl 3>, <&v2m_sysctl 3>; | ||
assigned-clock-parents = <&v2m_refclk1mhz>, <&v2m_refclk1mhz>, <&v2m_refclk1mhz>, <&v2m_refclk1mhz>; | ||
|
||
}; |
19 changes: 19 additions & 0 deletions
19
Documentation/devicetree/bindings/clock/gpio-mux-clock.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
Binding for simple gpio clock multiplexer. | ||
|
||
This binding uses the common clock binding[1]. | ||
|
||
[1] Documentation/devicetree/bindings/clock/clock-bindings.txt | ||
|
||
Required properties: | ||
- compatible : shall be "gpio-mux-clock". | ||
- clocks: list of two references to parent clocks. | ||
- #clock-cells : from common clock binding; shall be set to 0. | ||
- select-gpios : GPIO reference for selecting the parent clock. | ||
|
||
Example: | ||
clock { | ||
compatible = "gpio-mux-clock"; | ||
clocks = <&parentclk1>, <&parentclk2>; | ||
#clock-cells = <0>; | ||
select-gpios = <&gpio 1 GPIO_ACTIVE_HIGH>; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
79 changes: 79 additions & 0 deletions
79
Documentation/devicetree/bindings/clock/nvidia,tegra124-dfll.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,79 @@ | ||
NVIDIA Tegra124 DFLL FCPU clocksource | ||
|
||
This binding uses the common clock binding: | ||
Documentation/devicetree/bindings/clock/clock-bindings.txt | ||
|
||
The DFLL IP block on Tegra is a root clocksource designed for clocking | ||
the fast CPU cluster. It consists of a free-running voltage controlled | ||
oscillator connected to the CPU voltage rail (VDD_CPU), and a closed loop | ||
control module that will automatically adjust the VDD_CPU voltage by | ||
communicating with an off-chip PMIC either via an I2C bus or via PWM signals. | ||
Currently only the I2C mode is supported by these bindings. | ||
|
||
Required properties: | ||
- compatible : should be "nvidia,tegra124-dfll" | ||
- reg : Defines the following set of registers, in the order listed: | ||
- registers for the DFLL control logic. | ||
- registers for the I2C output logic. | ||
- registers for the integrated I2C master controller. | ||
- look-up table RAM for voltage register values. | ||
- interrupts: Should contain the DFLL block interrupt. | ||
- clocks: Must contain an entry for each entry in clock-names. | ||
See clock-bindings.txt for details. | ||
- clock-names: Must include the following entries: | ||
- soc: Clock source for the DFLL control logic. | ||
- ref: The closed loop reference clock | ||
- i2c: Clock source for the integrated I2C master. | ||
- resets: Must contain an entry for each entry in reset-names. | ||
See ../reset/reset.txt for details. | ||
- reset-names: Must include the following entries: | ||
- dvco: Reset control for the DFLL DVCO. | ||
- #clock-cells: Must be 0. | ||
- clock-output-names: Name of the clock output. | ||
- vdd-cpu-supply: Regulator for the CPU voltage rail that the DFLL | ||
hardware will start controlling. The regulator will be queried for | ||
the I2C register, control values and supported voltages. | ||
|
||
Required properties for the control loop parameters: | ||
- nvidia,sample-rate: Sample rate of the DFLL control loop. | ||
- nvidia,droop-ctrl: See the register CL_DVFS_DROOP_CTRL in the TRM. | ||
- nvidia,force-mode: See the field DFLL_PARAMS_FORCE_MODE in the TRM. | ||
- nvidia,cf: Numeric value, see the field DFLL_PARAMS_CF_PARAM in the TRM. | ||
- nvidia,ci: Numeric value, see the field DFLL_PARAMS_CI_PARAM in the TRM. | ||
- nvidia,cg: Numeric value, see the field DFLL_PARAMS_CG_PARAM in the TRM. | ||
|
||
Optional properties for the control loop parameters: | ||
- nvidia,cg-scale: Boolean value, see the field DFLL_PARAMS_CG_SCALE in the TRM. | ||
|
||
Required properties for I2C mode: | ||
- nvidia,i2c-fs-rate: I2C transfer rate, if using full speed mode. | ||
|
||
Example: | ||
|
||
clock@0,70110000 { | ||
compatible = "nvidia,tegra124-dfll"; | ||
reg = <0 0x70110000 0 0x100>, /* DFLL control */ | ||
<0 0x70110000 0 0x100>, /* I2C output control */ | ||
<0 0x70110100 0 0x100>, /* Integrated I2C controller */ | ||
<0 0x70110200 0 0x100>; /* Look-up table RAM */ | ||
interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>; | ||
clocks = <&tegra_car TEGRA124_CLK_DFLL_SOC>, | ||
<&tegra_car TEGRA124_CLK_DFLL_REF>, | ||
<&tegra_car TEGRA124_CLK_I2C5>; | ||
clock-names = "soc", "ref", "i2c"; | ||
resets = <&tegra_car TEGRA124_RST_DFLL_DVCO>; | ||
reset-names = "dvco"; | ||
#clock-cells = <0>; | ||
clock-output-names = "dfllCPU_out"; | ||
vdd-cpu-supply = <&vdd_cpu>; | ||
status = "okay"; | ||
|
||
nvidia,sample-rate = <12500>; | ||
nvidia,droop-ctrl = <0x00000f00>; | ||
nvidia,force-mode = <1>; | ||
nvidia,cf = <10>; | ||
nvidia,ci = <0>; | ||
nvidia,cg = <2>; | ||
|
||
nvidia,i2c-fs-rate = <400000>; | ||
}; |
61 changes: 61 additions & 0 deletions
61
Documentation/devicetree/bindings/clock/rockchip,rk3368-cru.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
* Rockchip RK3368 Clock and Reset Unit | ||
|
||
The RK3368 clock controller generates and supplies clock to various | ||
controllers within the SoC and also implements a reset controller for SoC | ||
peripherals. | ||
|
||
Required Properties: | ||
|
||
- compatible: should be "rockchip,rk3368-cru" | ||
- reg: physical base address of the controller and length of memory mapped | ||
region. | ||
- #clock-cells: should be 1. | ||
- #reset-cells: should be 1. | ||
|
||
Optional Properties: | ||
|
||
- rockchip,grf: phandle to the syscon managing the "general register files" | ||
If missing, pll rates are not changeable, due to the missing pll lock status. | ||
|
||
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/rk3368-cru.h headers and can be | ||
used in device tree sources. Similar macros exist for the reset sources in | ||
these files. | ||
|
||
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: | ||
- "xin24m" - crystal input - required, | ||
- "xin32k" - rtc clock - optional, | ||
- "ext_i2s" - external I2S clock - optional, | ||
- "ext_gmac" - external GMAC clock - optional | ||
- "ext_hsadc" - external HSADC clock - optional, | ||
- "ext_isp" - external ISP clock - optional, | ||
- "ext_jtag" - external JTAG clock - optional | ||
- "ext_vip" - external VIP clock - optional, | ||
- "usbotg_out" - output clock of the pll in the otg phy | ||
|
||
Example: Clock controller node: | ||
|
||
cru: clock-controller@ff760000 { | ||
compatible = "rockchip,rk3368-cru"; | ||
reg = <0x0 0xff760000 0x0 0x1000>; | ||
rockchip,grf = <&grf>; | ||
#clock-cells = <1>; | ||
#reset-cells = <1>; | ||
}; | ||
|
||
Example: UART controller node that consumes the clock generated by the clock | ||
controller: | ||
|
||
uart0: serial@10124000 { | ||
compatible = "snps,dw-apb-uart"; | ||
reg = <0x10124000 0x400>; | ||
interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; | ||
reg-shift = <2>; | ||
reg-io-width = <1>; | ||
clocks = <&cru SCLK_UART0>; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
Clock bindings for ST-Ericsson Ux500 clocks | ||
|
||
Required properties : | ||
- compatible : shall contain only one of the following: | ||
"stericsson,u8500-clks" | ||
"stericsson,u8540-clks" | ||
"stericsson,u9540-clks" | ||
- reg : shall contain base register location and length for | ||
CLKRST1, 2, 3, 5, and 6 in an array. Note the absence of | ||
CLKRST4, which does not exist. | ||
|
||
Required subnodes: | ||
- prcmu-clock: a subnode with one clock cell for PRCMU (power, | ||
reset, control unit) clocks. The cell indicates which PRCMU | ||
clock in the prcmu-clock node the consumer wants to use. | ||
- prcc-periph-clock: a subnode with two clock cells for | ||
PRCC (programmable reset- and clock controller) peripheral clocks. | ||
The first cell indicates which PRCC block the consumer | ||
wants to use, possible values are 1, 2, 3, 5, 6. The second | ||
cell indicates which clock inside the PRCC block it wants, | ||
possible values are 0 thru 31. | ||
- prcc-kernel-clock: a subnode with two clock cells for | ||
PRCC (programmable reset- and clock controller) kernel clocks | ||
The first cell indicates which PRCC block the consumer | ||
wants to use, possible values are 1, 2, 3, 5, 6. The second | ||
cell indicates which clock inside the PRCC block it wants, | ||
possible values are 0 thru 31. | ||
- rtc32k-clock: a subnode with zero clock cells for the 32kHz | ||
RTC clock. | ||
- smp-twd-clock: a subnode for the ARM SMP Timer Watchdog cluster | ||
with zero clock cells. | ||
|
||
Example: | ||
|
||
clocks { | ||
compatible = "stericsson,u8500-clks"; | ||
/* | ||
* Registers for the CLKRST block on peripheral | ||
* groups 1, 2, 3, 5, 6, | ||
*/ | ||
reg = <0x8012f000 0x1000>, <0x8011f000 0x1000>, | ||
<0x8000f000 0x1000>, <0xa03ff000 0x1000>, | ||
<0xa03cf000 0x1000>; | ||
|
||
prcmu_clk: prcmu-clock { | ||
#clock-cells = <1>; | ||
}; | ||
|
||
prcc_pclk: prcc-periph-clock { | ||
#clock-cells = <2>; | ||
}; | ||
|
||
prcc_kclk: prcc-kernel-clock { | ||
#clock-cells = <2>; | ||
}; | ||
|
||
rtc_clk: rtc32k-clock { | ||
#clock-cells = <0>; | ||
}; | ||
|
||
smp_twd_clk: smp-twd-clock { | ||
#clock-cells = <0>; | ||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.