xref: /OK3568_Linux_fs/u-boot/doc/device-tree-bindings/clock/rockchip.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunDevice Tree Clock bindings for arch-rockchip
2*4882a593Smuzhiyun
3*4882a593SmuzhiyunThis binding uses the common clock binding[1].
4*4882a593Smuzhiyun
5*4882a593Smuzhiyun[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
6*4882a593Smuzhiyun
7*4882a593Smuzhiyun== Gate clocks ==
8*4882a593Smuzhiyun
9*4882a593SmuzhiyunThese bindings are deprecated!
10*4882a593SmuzhiyunPlease use the soc specific CRU bindings instead.
11*4882a593Smuzhiyun
12*4882a593SmuzhiyunThe gate registers form a continuos block which makes the dt node
13*4882a593Smuzhiyunstructure a matter of taste, as either all gates can be put into
14*4882a593Smuzhiyunone gate clock spanning all registers or they can be divided into
15*4882a593Smuzhiyunthe 10 individual gates containing 16 clocks each.
16*4882a593SmuzhiyunThe code supports both approaches.
17*4882a593Smuzhiyun
18*4882a593SmuzhiyunRequired properties:
19*4882a593Smuzhiyun- compatible : "rockchip,rk2928-gate-clk"
20*4882a593Smuzhiyun- reg : shall be the control register address(es) for the clock.
21*4882a593Smuzhiyun- #clock-cells : from common clock binding; shall be set to 1
22*4882a593Smuzhiyun- clock-output-names : the corresponding gate names that the clock controls
23*4882a593Smuzhiyun- clocks : should contain the parent clock for each individual gate,
24*4882a593Smuzhiyun  therefore the number of clocks elements should match the number of
25*4882a593Smuzhiyun  clock-output-names
26*4882a593Smuzhiyun
27*4882a593SmuzhiyunExample using multiple gate clocks:
28*4882a593Smuzhiyun
29*4882a593Smuzhiyun		clk_gates0: gate-clk@200000d0 {
30*4882a593Smuzhiyun			compatible = "rockchip,rk2928-gate-clk";
31*4882a593Smuzhiyun			reg = <0x200000d0 0x4>;
32*4882a593Smuzhiyun			clocks = <&dummy>, <&dummy>,
33*4882a593Smuzhiyun				 <&dummy>, <&dummy>,
34*4882a593Smuzhiyun				 <&dummy>, <&dummy>,
35*4882a593Smuzhiyun				 <&dummy>, <&dummy>,
36*4882a593Smuzhiyun				 <&dummy>, <&dummy>,
37*4882a593Smuzhiyun				 <&dummy>, <&dummy>,
38*4882a593Smuzhiyun				 <&dummy>, <&dummy>,
39*4882a593Smuzhiyun				 <&dummy>, <&dummy>;
40*4882a593Smuzhiyun
41*4882a593Smuzhiyun			clock-output-names =
42*4882a593Smuzhiyun				"gate_core_periph", "gate_cpu_gpll",
43*4882a593Smuzhiyun				"gate_ddrphy", "gate_aclk_cpu",
44*4882a593Smuzhiyun				"gate_hclk_cpu", "gate_pclk_cpu",
45*4882a593Smuzhiyun				"gate_atclk_cpu", "gate_i2s0",
46*4882a593Smuzhiyun				"gate_i2s0_frac", "gate_i2s1",
47*4882a593Smuzhiyun				"gate_i2s1_frac", "gate_i2s2",
48*4882a593Smuzhiyun				"gate_i2s2_frac", "gate_spdif",
49*4882a593Smuzhiyun				"gate_spdif_frac", "gate_testclk";
50*4882a593Smuzhiyun
51*4882a593Smuzhiyun			#clock-cells = <1>;
52*4882a593Smuzhiyun		};
53*4882a593Smuzhiyun
54*4882a593Smuzhiyun		clk_gates1: gate-clk@200000d4 {
55*4882a593Smuzhiyun			compatible = "rockchip,rk2928-gate-clk";
56*4882a593Smuzhiyun			reg = <0x200000d4 0x4>;
57*4882a593Smuzhiyun			clocks = <&xin24m>, <&xin24m>,
58*4882a593Smuzhiyun				 <&xin24m>, <&dummy>,
59*4882a593Smuzhiyun				 <&dummy>, <&xin24m>,
60*4882a593Smuzhiyun				 <&xin24m>, <&dummy>,
61*4882a593Smuzhiyun				 <&xin24m>, <&dummy>,
62*4882a593Smuzhiyun				 <&xin24m>, <&dummy>,
63*4882a593Smuzhiyun				 <&xin24m>, <&dummy>,
64*4882a593Smuzhiyun				 <&xin24m>, <&dummy>;
65*4882a593Smuzhiyun
66*4882a593Smuzhiyun			clock-output-names =
67*4882a593Smuzhiyun				"gate_timer0", "gate_timer1",
68*4882a593Smuzhiyun				"gate_timer2", "gate_jtag",
69*4882a593Smuzhiyun				"gate_aclk_lcdc1_src", "gate_otgphy0",
70*4882a593Smuzhiyun				"gate_otgphy1", "gate_ddr_gpll",
71*4882a593Smuzhiyun				"gate_uart0", "gate_frac_uart0",
72*4882a593Smuzhiyun				"gate_uart1", "gate_frac_uart1",
73*4882a593Smuzhiyun				"gate_uart2", "gate_frac_uart2",
74*4882a593Smuzhiyun				"gate_uart3", "gate_frac_uart3";
75*4882a593Smuzhiyun
76*4882a593Smuzhiyun			#clock-cells = <1>;
77*4882a593Smuzhiyun		};
78