xref: /freebsd/sys/contrib/device-tree/Bindings/clock/keystone-pll.txt (revision 96190b4fef3b4a0cc3ca0606b0c4e3e69a5e6717)
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 multiplier registers
18- reg-names : control, multiplier and post-divider. The multiplier and
19		post-divider registers are applicable only for main pll clock
20- fixed-postdiv : fixed post divider value. If absent, use clkod register bits
21		for postdiv
22
23Example:
24	mainpllclk: mainpllclk@2310110 {
25		#clock-cells = <0>;
26		compatible = "ti,keystone,main-pll-clock";
27		clocks = <&refclksys>;
28		reg = <0x02620350 4>, <0x02310110 4>, <0x02310108 4>;
29		reg-names = "control", "multiplier", "post-divider";
30		fixed-postdiv = <2>;
31	};
32
33	papllclk: papllclk@2620358 {
34		#clock-cells = <0>;
35		compatible = "ti,keystone,pll-clock";
36		clocks = <&refclkpass>;
37		clock-output-names = "pa-pll-clk";
38		reg = <0x02620358 4>;
39		reg-names = "control";
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