forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge tag 'v4.7-rockchip-clk1' of git://git.kernel.org/pub/scm/linux/…
…kernel/git/mmind/linux-rockchip into clk-next Pull rockchip clk updates from Heiko Stuebner: This is first big chunk of Rockchip clock-related changes for 4.7. Main change is probably the added support for the new rk3399 soc and necessary infrastructure changes surrounding it. The biggest chunk is probably that clock code is now able to handle multiple clock providers in one system, as the rk3399 has two of those. A general one and another smaller one in a separate power domain. The rk3399 also uses another new pll type. Thankfully it just fits nicely into our current structure. It also needs some parts like the cpuclk mux parameters to be a bit more flexible and an new fractional divider subtype without gate. Apart from this big change we have some more fixes and removal of forgotten variables. * tag 'v4.7-rockchip-clk1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: clk: rockchip: add clock controller for the RK3399 dt-bindings: add bindings for rk3399 clock controller clk: rockchip: add dt-binding header for rk3399 clk: rockchip: release io resource when failing to init clk clk: rockchip: remove redundant checking of device_node clk: rockchip: fix warning reported by kernel-doc clk: rockchip: remove mux_core_reg from rockchip_cpuclk_reg_data clk: rockchip: add new pll-type for rk3399 and similar socs clk: rockchip: Add support for multiple clock providers clk: rockchip: allow varying mux parameters for cpuclk pll-sources clk: rockchip: add a COMPOSITE_FRACMUX_NOGATE type
- Loading branch information
Showing
13 changed files
with
2,945 additions
and
136 deletions.
There are no files selected for viewing
62 changes: 62 additions & 0 deletions
62
Documentation/devicetree/bindings/clock/rockchip,rk3399-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,62 @@ | ||
* Rockchip RK3399 Clock and Reset Unit | ||
|
||
The RK3399 clock controller generates and supplies clock to various | ||
controllers within the SoC and also implements a reset controller for SoC | ||
peripherals. | ||
|
||
Required Properties: | ||
|
||
- compatible: PMU for CRU should be "rockchip,rk3399-pmucru" | ||
- compatible: CRU should be "rockchip,rk3399-cru" | ||
- reg: physical base address of the controller and length of memory mapped | ||
region. | ||
- #clock-cells: should be 1. | ||
- #reset-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/rk3399-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, | ||
- "clkin_gmac" - external GMAC clock - optional, | ||
- "clkin_i2s" - external I2S clock - optional, | ||
- "pclkin_cif" - external ISP clock - optional, | ||
- "clk_usbphy0_480m" - output clock of the pll in the usbphy0 | ||
- "clk_usbphy1_480m" - output clock of the pll in the usbphy1 | ||
|
||
Example: Clock controller node: | ||
|
||
pmucru: pmu-clock-controller@ff750000 { | ||
compatible = "rockchip,rk3399-pmucru"; | ||
reg = <0x0 0xff750000 0x0 0x1000>; | ||
#clock-cells = <1>; | ||
#reset-cells = <1>; | ||
}; | ||
|
||
cru: clock-controller@ff760000 { | ||
compatible = "rockchip,rk3399-cru"; | ||
reg = <0x0 0xff760000 0x0 0x1000>; | ||
#clock-cells = <1>; | ||
#reset-cells = <1>; | ||
}; | ||
|
||
Example: UART controller node that consumes the clock generated by the clock | ||
controller: | ||
|
||
uart0: serial@ff1a0000 { | ||
compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart"; | ||
reg = <0x0 0xff180000 0x0 0x100>; | ||
clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>; | ||
clock-names = "baudclk", "apb_pclk"; | ||
interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; | ||
reg-shift = <2>; | ||
reg-io-width = <4>; | ||
}; |
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 |
---|---|---|
|
@@ -15,3 +15,4 @@ obj-y += clk-rk3188.o | |
obj-y += clk-rk3228.o | ||
obj-y += clk-rk3288.o | ||
obj-y += clk-rk3368.o | ||
obj-y += clk-rk3399.o |
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.