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