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