Merge remote-tracking branches 'asoc/fix/atmel', 'asoc/fix/fsl', 'asoc/fix/tegra...
[linux-drm-fsl-dcu.git] / Documentation / devicetree / bindings / clock / keystone-pll.txt
1 Status: Unstable - ABI compatibility may be broken in the future
2
3 Binding for keystone PLLs. The main PLL IP typically has a multiplier,
4 a divider and a post divider. The additional PLL IPs like ARMPLL, DDRPLL
5 and PAPLL are controlled by the memory mapped register where as the Main
6 PLL is controlled by a PLL controller registers along with memory mapped
7 registers.
8
9 This binding uses the common clock binding[1].
10
11 [1] Documentation/devicetree/bindings/clock/clock-bindings.txt
12
13 Required 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
22 Example:
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
42 Required 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
50 Optional properties:
51 - clock-output-names : From common clock binding.
52
53 Example:
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
64 Required 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
72 Optional properties:
73 - clock-output-names : From common clock binding.
74
75 Example:
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         };