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