xref: /linux/Documentation/devicetree/bindings/clock/ti/dpll.txt (revision 9b61b2069681b60d0d0bedbd0fe3c70123dddb19)
1f38b0dd6STero KristoBinding for Texas Instruments DPLL clock.
2f38b0dd6STero Kristo
3f38b0dd6STero KristoThis binding uses the common clock binding[1].  It assumes a
4f38b0dd6STero Kristoregister-mapped DPLL with usually two selectable input clocks
5f38b0dd6STero Kristo(reference clock and bypass clock), with digital phase locked
6f38b0dd6STero Kristoloop logic for multiplying the input clock to a desired output
7f38b0dd6STero Kristoclock. This clock also typically supports different operation
8f38b0dd6STero Kristomodes (locked, low power stop etc.) This binding has several
9f38b0dd6STero Kristosub-types, which effectively result in slightly different setup
10f38b0dd6STero Kristofor the actual DPLL clock.
11f38b0dd6STero Kristo
12f38b0dd6STero Kristo[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
13f38b0dd6STero Kristo
14f38b0dd6STero KristoRequired properties:
15f38b0dd6STero Kristo- compatible : shall be one of:
16f38b0dd6STero Kristo		"ti,omap3-dpll-clock",
17f38b0dd6STero Kristo		"ti,omap3-dpll-core-clock",
18f38b0dd6STero Kristo		"ti,omap3-dpll-per-clock",
19f38b0dd6STero Kristo		"ti,omap3-dpll-per-j-type-clock",
20f38b0dd6STero Kristo		"ti,omap4-dpll-clock",
21f38b0dd6STero Kristo		"ti,omap4-dpll-x2-clock",
22f38b0dd6STero Kristo		"ti,omap4-dpll-core-clock",
23f38b0dd6STero Kristo		"ti,omap4-dpll-m4xen-clock",
24f38b0dd6STero Kristo		"ti,omap4-dpll-j-type-clock",
25b4be0189SNishanth Menon		"ti,omap5-mpu-dpll-clock",
26f38b0dd6STero Kristo		"ti,am3-dpll-no-gate-clock",
27f38b0dd6STero Kristo		"ti,am3-dpll-j-type-clock",
28f38b0dd6STero Kristo		"ti,am3-dpll-no-gate-j-type-clock",
29f38b0dd6STero Kristo		"ti,am3-dpll-clock",
30f38b0dd6STero Kristo		"ti,am3-dpll-core-clock",
31f38b0dd6STero Kristo		"ti,am3-dpll-x2-clock",
32aa76fcf4STero Kristo		"ti,omap2-dpll-core-clock",
33f38b0dd6STero Kristo
34f38b0dd6STero Kristo- #clock-cells : from common clock binding; shall be set to 0.
35f38b0dd6STero Kristo- clocks : link phandles of parent clocks, first entry lists reference clock
36f38b0dd6STero Kristo  and second entry bypass clock
37f38b0dd6STero Kristo- reg : offsets for the register set for controlling the DPLL.
38f38b0dd6STero Kristo  Registers are listed in following order:
39f38b0dd6STero Kristo	"control" - contains the control register base address
40f38b0dd6STero Kristo	"idlest" - contains the idle status register base address
41f38b0dd6STero Kristo	"mult-div1" - contains the multiplier / divider register base address
42f38b0dd6STero Kristo	"autoidle" - contains the autoidle register base address (optional)
43*4a8bc264SDario Binacchi	"ssc-deltam" - DPLL supports spread spectrum clocking (SSC), contains
44*4a8bc264SDario Binacchi		       the frequency spreading register base address (optional)
45*4a8bc264SDario Binacchi	"ssc-modfreq" - DPLL supports spread spectrum clocking (SSC), contains
46*4a8bc264SDario Binacchi		        the modulation frequency register base address
47*4a8bc264SDario Binacchi			(optional)
48f38b0dd6STero Kristo  ti,am3-* dpll types do not have autoidle register
49aa76fcf4STero Kristo  ti,omap2-* dpll type does not support idlest / autoidle registers
50f38b0dd6STero Kristo
51f38b0dd6STero KristoOptional properties:
52f38b0dd6STero Kristo- DPLL mode setting - defining any one or more of the following overrides
53f38b0dd6STero Kristo  default setting.
54f38b0dd6STero Kristo	- ti,low-power-stop : DPLL supports low power stop mode, gating output
55f38b0dd6STero Kristo	- ti,low-power-bypass : DPLL output matches rate of parent bypass clock
56f38b0dd6STero Kristo	- ti,lock : DPLL locks in programmed rate
57*4a8bc264SDario Binacchi	- ti,min-div : the minimum divisor to start from to round the DPLL
58*4a8bc264SDario Binacchi		       target rate
59*4a8bc264SDario Binacchi	- ti,ssc-deltam : DPLL supports spread spectrum clocking, frequency
60*4a8bc264SDario Binacchi			  spreading in permille (10th of a percent)
61*4a8bc264SDario Binacchi	- ti,ssc-modfreq-hz : DPLL supports spread spectrum clocking, spread
62*4a8bc264SDario Binacchi			      spectrum modulation frequency
63*4a8bc264SDario Binacchi	- ti,ssc-downspread : DPLL supports spread spectrum clocking, boolean
64*4a8bc264SDario Binacchi			      to enable the downspread feature
65f38b0dd6STero Kristo
66f38b0dd6STero KristoExamples:
67f38b0dd6STero Kristo	dpll_core_ck: dpll_core_ck@44e00490 {
68f38b0dd6STero Kristo		#clock-cells = <0>;
69f38b0dd6STero Kristo		compatible = "ti,omap4-dpll-core-clock";
70f38b0dd6STero Kristo		clocks = <&sys_clkin_ck>, <&sys_clkin_ck>;
71f38b0dd6STero Kristo		reg = <0x490>, <0x45c>, <0x488>, <0x468>;
72f38b0dd6STero Kristo	};
73f38b0dd6STero Kristo
74f38b0dd6STero Kristo	dpll2_ck: dpll2_ck@48004004 {
75f38b0dd6STero Kristo		#clock-cells = <0>;
76f38b0dd6STero Kristo		compatible = "ti,omap3-dpll-clock";
77f38b0dd6STero Kristo		clocks = <&sys_ck>, <&dpll2_fck>;
78f38b0dd6STero Kristo		ti,low-power-stop;
79f38b0dd6STero Kristo		ti,low-power-bypass;
80f38b0dd6STero Kristo		ti,lock;
81f38b0dd6STero Kristo		reg = <0x4>, <0x24>, <0x34>, <0x40>;
82f38b0dd6STero Kristo	};
83f38b0dd6STero Kristo
84f38b0dd6STero Kristo	dpll_core_ck: dpll_core_ck@44e00490 {
85f38b0dd6STero Kristo		#clock-cells = <0>;
86f38b0dd6STero Kristo		compatible = "ti,am3-dpll-core-clock";
87f38b0dd6STero Kristo		clocks = <&sys_clkin_ck>, <&sys_clkin_ck>;
88f38b0dd6STero Kristo		reg = <0x90>, <0x5c>, <0x68>;
89f38b0dd6STero Kristo	};
90aa76fcf4STero Kristo
91aa76fcf4STero Kristo	dpll_ck: dpll_ck {
92aa76fcf4STero Kristo		#clock-cells = <0>;
93aa76fcf4STero Kristo		compatible = "ti,omap2-dpll-core-clock";
94aa76fcf4STero Kristo		clocks = <&sys_ck>, <&sys_ck>;
95aa76fcf4STero Kristo		reg = <0x0500>, <0x0540>;
96aa76fcf4STero Kristo	};
97*4a8bc264SDario Binacchi
98*4a8bc264SDario Binacchi	dpll_disp_ck: dpll_disp_ck {
99*4a8bc264SDario Binacchi		#clock-cells = <0>;
100*4a8bc264SDario Binacchi		compatible = "ti,am3-dpll-no-gate-clock";
101*4a8bc264SDario Binacchi		clocks = <&sys_clkin_ck>, <&sys_clkin_ck>;
102*4a8bc264SDario Binacchi		reg = <0x0498>, <0x0448>, <0x0454>, <0x044c>, <0x0450>;
103*4a8bc264SDario Binacchi	};
104