summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/clock/ti/dpll.txt
blob: 37a7cb6ad07d873fec2b9be8bad19a4ebea7bcc2 (plain)
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
Binding for Texas Instruments DPLL clock.

Binding status: Unstable - ABI compatibility may be broken in the future

This binding uses the common clock binding[1].  It assumes a
register-mapped DPLL with usually two selectable input clocks
(reference clock and bypass clock), with digital phase locked
loop logic for multiplying the input clock to a desired output
clock. This clock also typically supports different operation
modes (locked, low power stop etc.) This binding has several
sub-types, which effectively result in slightly different setup
for the actual DPLL clock.

[1] Documentation/devicetree/bindings/clock/clock-bindings.txt

Required properties:
- compatible : shall be one of:
		"ti,omap3-dpll-clock",
		"ti,omap3-dpll-core-clock",
		"ti,omap3-dpll-per-clock",
		"ti,omap3-dpll-per-j-type-clock",
		"ti,omap4-dpll-clock",
		"ti,omap4-dpll-x2-clock",
		"ti,omap4-dpll-core-clock",
		"ti,omap4-dpll-m4xen-clock",
		"ti,omap4-dpll-j-type-clock",
		"ti,omap5-mpu-dpll-clock",
		"ti,am3-dpll-no-gate-clock",
		"ti,am3-dpll-j-type-clock",
		"ti,am3-dpll-no-gate-j-type-clock",
		"ti,am3-dpll-clock",
		"ti,am3-dpll-core-clock",
		"ti,am3-dpll-x2-clock",
		"ti,omap2-dpll-core-clock",

- #clock-cells : from common clock binding; shall be set to 0.
- clocks : link phandles of parent clocks, first entry lists reference clock
  and second entry bypass clock
- reg : offsets for the register set for controlling the DPLL.
  Registers are listed in following order:
	"control" - contains the control register base address
	"idlest" - contains the idle status register base address
	"mult-div1" - contains the multiplier / divider register base address
	"autoidle" - contains the autoidle register base address (optional)
	"ssc-deltam" - DPLL supports spread spectrum clocking (SSC), contains
		       the frequency spreading register base address (optional)
	"ssc-modfreq" - DPLL supports spread spectrum clocking (SSC), contains
		        the modulation frequency register base address
			(optional)
  ti,am3-* dpll types do not have autoidle register
  ti,omap2-* dpll type does not support idlest / autoidle registers

Optional properties:
- DPLL mode setting - defining any one or more of the following overrides
  default setting.
	- ti,low-power-stop : DPLL supports low power stop mode, gating output
	- ti,low-power-bypass : DPLL output matches rate of parent bypass clock
	- ti,lock : DPLL locks in programmed rate
	- ti,min-div : the minimum divisor to start from to round the DPLL
		       target rate
	- ti,ssc-deltam : DPLL supports spread spectrum clocking, frequency
			  spreading in permille (10th of a percent)
	- ti,ssc-modfreq-hz : DPLL supports spread spectrum clocking, spread
			      spectrum modulation frequency
	- ti,ssc-downspread : DPLL supports spread spectrum clocking, boolean
			      to enable the downspread feature

Examples:
	dpll_core_ck: dpll_core_ck@44e00490 {
		#clock-cells = <0>;
		compatible = "ti,omap4-dpll-core-clock";
		clocks = <&sys_clkin_ck>, <&sys_clkin_ck>;
		reg = <0x490>, <0x45c>, <0x488>, <0x468>;
	};

	dpll2_ck: dpll2_ck@48004004 {
		#clock-cells = <0>;
		compatible = "ti,omap3-dpll-clock";
		clocks = <&sys_ck>, <&dpll2_fck>;
		ti,low-power-stop;
		ti,low-power-bypass;
		ti,lock;
		reg = <0x4>, <0x24>, <0x34>, <0x40>;
	};

	dpll_core_ck: dpll_core_ck@44e00490 {
		#clock-cells = <0>;
		compatible = "ti,am3-dpll-core-clock";
		clocks = <&sys_clkin_ck>, <&sys_clkin_ck>;
		reg = <0x90>, <0x5c>, <0x68>;
	};

	dpll_ck: dpll_ck {
		#clock-cells = <0>;
		compatible = "ti,omap2-dpll-core-clock";
		clocks = <&sys_ck>, <&sys_ck>;
		reg = <0x0500>, <0x0540>;
	};

	dpll_disp_ck: dpll_disp_ck {
		#clock-cells = <0>;
		compatible = "ti,am3-dpll-no-gate-clock";
		clocks = <&sys_clkin_ck>, <&sys_clkin_ck>;
		reg = <0x0498>, <0x0448>, <0x0454>, <0x044c>, <0x0450>;
	};