xref: /linux/Documentation/devicetree/bindings/clock/keystone-pll.txt (revision 564eb714f5f09ac733c26860d5f0831f213fbdf1)
1Status: Unstable - ABI compatibility may be broken in the future
2
3Binding for keystone PLLs. The main PLL IP typically has a multiplier,
4a divider and a post divider. The additional PLL IPs like ARMPLL, DDRPLL
5and PAPLL are controlled by the memory mapped register where as the Main
6PLL is controlled by a PLL controller registers along with memory mapped
7registers.
8
9This binding uses the common clock binding[1].
10
11[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
12
13Required properties:
14- #clock-cells : from common clock binding; shall be set to 0.
15- compatible : shall be "ti,keystone,main-pll-clock" or "ti,keystone,pll-clock"
16- clocks : parent clock phandle
17- reg - pll control0 and pll multipler registers
18- reg-names : control and multiplier. The multiplier is applicable only for
19		main pll clock
20- fixed-postdiv : fixed post divider value
21
22Example:
23	mainpllclk: mainpllclk@2310110 {
24		#clock-cells = <0>;
25		compatible = "ti,keystone,main-pll-clock";
26		clocks = <&refclkmain>;
27		reg = <0x02620350 4>, <0x02310110 4>;
28		reg-names = "control", "multiplier";
29		fixed-postdiv = <2>;
30	};
31
32	papllclk: papllclk@2620358 {
33		#clock-cells = <0>;
34		compatible = "ti,keystone,pll-clock";
35		clocks = <&refclkmain>;
36		clock-output-names = "pa-pll-clk";
37		reg = <0x02620358 4>;
38		reg-names = "control";
39		fixed-postdiv = <6>;
40	};
41
42Required properties:
43- #clock-cells : from common clock binding; shall be set to 0.
44- compatible : shall be "ti,keystone,pll-mux-clock"
45- clocks : link phandles of parent clocks
46- reg - pll mux register
47- bit-shift : number of bits to shift the bit-mask
48- bit-mask : arbitrary bitmask for programming the mux
49
50Optional properties:
51- clock-output-names : From common clock binding.
52
53Example:
54	mainmuxclk: mainmuxclk@2310108 {
55		#clock-cells = <0>;
56		compatible = "ti,keystone,pll-mux-clock";
57		clocks = <&mainpllclk>, <&refclkmain>;
58		reg = <0x02310108 4>;
59		bit-shift = <23>;
60		bit-mask = <1>;
61		clock-output-names = "mainmuxclk";
62	};
63
64Required properties:
65- #clock-cells : from common clock binding; shall be set to 0.
66- compatible : shall be "ti,keystone,pll-divider-clock"
67- clocks : parent clock phandle
68- reg - pll mux register
69- bit-shift : number of bits to shift the bit-mask
70- bit-mask : arbitrary bitmask for programming the divider
71
72Optional properties:
73- clock-output-names : From common clock binding.
74
75Example:
76	gemtraceclk: gemtraceclk@2310120 {
77		#clock-cells = <0>;
78		compatible = "ti,keystone,pll-divider-clock";
79		clocks = <&mainmuxclk>;
80		reg = <0x02310120 4>;
81		bit-shift = <0>;
82		bit-mask = <8>;
83		clock-output-names = "gemtraceclk";
84	};
85