xref: /freebsd/sys/contrib/device-tree/Bindings/clock/rockchip,rk3288-cru.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel Vadot* Rockchip RK3288 Clock and Reset Unit
2*c66ec88fSEmmanuel Vadot
3*c66ec88fSEmmanuel VadotThe RK3288 clock controller generates and supplies clock to various
4*c66ec88fSEmmanuel Vadotcontrollers within the SoC and also implements a reset controller for SoC
5*c66ec88fSEmmanuel Vadotperipherals.
6*c66ec88fSEmmanuel Vadot
7*c66ec88fSEmmanuel VadotA revision of this SoC is available: rk3288w. The clock tree is a bit
8*c66ec88fSEmmanuel Vadotdifferent so another dt-compatible is available. Noticed that it is only
9*c66ec88fSEmmanuel Vadotsetting the difference but there is no automatic revision detection. This
10*c66ec88fSEmmanuel Vadotshould be performed by bootloaders.
11*c66ec88fSEmmanuel Vadot
12*c66ec88fSEmmanuel VadotRequired Properties:
13*c66ec88fSEmmanuel Vadot
14*c66ec88fSEmmanuel Vadot- compatible: should be "rockchip,rk3288-cru" or "rockchip,rk3288w-cru" in
15*c66ec88fSEmmanuel Vadot  case of this revision of Rockchip rk3288.
16*c66ec88fSEmmanuel Vadot- reg: physical base address of the controller and length of memory mapped
17*c66ec88fSEmmanuel Vadot  region.
18*c66ec88fSEmmanuel Vadot- #clock-cells: should be 1.
19*c66ec88fSEmmanuel Vadot- #reset-cells: should be 1.
20*c66ec88fSEmmanuel Vadot
21*c66ec88fSEmmanuel VadotOptional Properties:
22*c66ec88fSEmmanuel Vadot
23*c66ec88fSEmmanuel Vadot- rockchip,grf: phandle to the syscon managing the "general register files"
24*c66ec88fSEmmanuel Vadot  If missing pll rates are not changeable, due to the missing pll lock status.
25*c66ec88fSEmmanuel Vadot
26*c66ec88fSEmmanuel VadotEach clock is assigned an identifier and client nodes can use this identifier
27*c66ec88fSEmmanuel Vadotto specify the clock which they consume. All available clocks are defined as
28*c66ec88fSEmmanuel Vadotpreprocessor macros in the dt-bindings/clock/rk3288-cru.h headers and can be
29*c66ec88fSEmmanuel Vadotused in device tree sources. Similar macros exist for the reset sources in
30*c66ec88fSEmmanuel Vadotthese files.
31*c66ec88fSEmmanuel Vadot
32*c66ec88fSEmmanuel VadotExternal clocks:
33*c66ec88fSEmmanuel Vadot
34*c66ec88fSEmmanuel VadotThere are several clocks that are generated outside the SoC. It is expected
35*c66ec88fSEmmanuel Vadotthat they are defined using standard clock bindings with following
36*c66ec88fSEmmanuel Vadotclock-output-names:
37*c66ec88fSEmmanuel Vadot - "xin24m" - crystal input - required,
38*c66ec88fSEmmanuel Vadot - "xin32k" - rtc clock - optional,
39*c66ec88fSEmmanuel Vadot - "ext_i2s" - external I2S clock - optional,
40*c66ec88fSEmmanuel Vadot - "ext_hsadc" - external HSADC clock - optional,
41*c66ec88fSEmmanuel Vadot - "ext_edp_24m" - external display port clock - optional,
42*c66ec88fSEmmanuel Vadot - "ext_vip" - external VIP clock - optional,
43*c66ec88fSEmmanuel Vadot - "ext_isp" - external ISP clock - optional,
44*c66ec88fSEmmanuel Vadot - "ext_jtag" - external JTAG clock - optional
45*c66ec88fSEmmanuel Vadot
46*c66ec88fSEmmanuel VadotExample: Clock controller node:
47*c66ec88fSEmmanuel Vadot
48*c66ec88fSEmmanuel Vadot	cru: cru@20000000 {
49*c66ec88fSEmmanuel Vadot		compatible = "rockchip,rk3188-cru";
50*c66ec88fSEmmanuel Vadot		reg = <0x20000000 0x1000>;
51*c66ec88fSEmmanuel Vadot		rockchip,grf = <&grf>;
52*c66ec88fSEmmanuel Vadot
53*c66ec88fSEmmanuel Vadot		#clock-cells = <1>;
54*c66ec88fSEmmanuel Vadot		#reset-cells = <1>;
55*c66ec88fSEmmanuel Vadot	};
56*c66ec88fSEmmanuel Vadot
57*c66ec88fSEmmanuel VadotExample: UART controller node that consumes the clock generated by the clock
58*c66ec88fSEmmanuel Vadot  controller:
59*c66ec88fSEmmanuel Vadot
60*c66ec88fSEmmanuel Vadot	uart0: serial@10124000 {
61*c66ec88fSEmmanuel Vadot		compatible = "snps,dw-apb-uart";
62*c66ec88fSEmmanuel Vadot		reg = <0x10124000 0x400>;
63*c66ec88fSEmmanuel Vadot		interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
64*c66ec88fSEmmanuel Vadot		reg-shift = <2>;
65*c66ec88fSEmmanuel Vadot		reg-io-width = <1>;
66*c66ec88fSEmmanuel Vadot		clocks = <&cru SCLK_UART0>;
67*c66ec88fSEmmanuel Vadot	};
68