18c2ecf20Sopenharmony_ciStatus: Unstable - ABI compatibility may be broken in the future
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ciBinding for keystone PLLs. The main PLL IP typically has a multiplier,
48c2ecf20Sopenharmony_cia divider and a post divider. The additional PLL IPs like ARMPLL, DDRPLL
58c2ecf20Sopenharmony_ciand PAPLL are controlled by the memory mapped register where as the Main
68c2ecf20Sopenharmony_ciPLL is controlled by a PLL controller registers along with memory mapped
78c2ecf20Sopenharmony_ciregisters.
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ciThis binding uses the common clock binding[1].
108c2ecf20Sopenharmony_ci
118c2ecf20Sopenharmony_ci[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_ciRequired properties:
148c2ecf20Sopenharmony_ci- #clock-cells : from common clock binding; shall be set to 0.
158c2ecf20Sopenharmony_ci- compatible : shall be "ti,keystone,main-pll-clock" or "ti,keystone,pll-clock"
168c2ecf20Sopenharmony_ci- clocks : parent clock phandle
178c2ecf20Sopenharmony_ci- reg - pll control0 and pll multipler registers
188c2ecf20Sopenharmony_ci- reg-names : control, multiplier and post-divider. The multiplier and
198c2ecf20Sopenharmony_ci		post-divider registers are applicable only for main pll clock
208c2ecf20Sopenharmony_ci- fixed-postdiv : fixed post divider value. If absent, use clkod register bits
218c2ecf20Sopenharmony_ci		for postdiv
228c2ecf20Sopenharmony_ci
238c2ecf20Sopenharmony_ciExample:
248c2ecf20Sopenharmony_ci	mainpllclk: mainpllclk@2310110 {
258c2ecf20Sopenharmony_ci		#clock-cells = <0>;
268c2ecf20Sopenharmony_ci		compatible = "ti,keystone,main-pll-clock";
278c2ecf20Sopenharmony_ci		clocks = <&refclksys>;
288c2ecf20Sopenharmony_ci		reg = <0x02620350 4>, <0x02310110 4>, <0x02310108 4>;
298c2ecf20Sopenharmony_ci		reg-names = "control", "multiplier", "post-divider";
308c2ecf20Sopenharmony_ci		fixed-postdiv = <2>;
318c2ecf20Sopenharmony_ci	};
328c2ecf20Sopenharmony_ci
338c2ecf20Sopenharmony_ci	papllclk: papllclk@2620358 {
348c2ecf20Sopenharmony_ci		#clock-cells = <0>;
358c2ecf20Sopenharmony_ci		compatible = "ti,keystone,pll-clock";
368c2ecf20Sopenharmony_ci		clocks = <&refclkpass>;
378c2ecf20Sopenharmony_ci		clock-output-names = "pa-pll-clk";
388c2ecf20Sopenharmony_ci		reg = <0x02620358 4>;
398c2ecf20Sopenharmony_ci		reg-names = "control";
408c2ecf20Sopenharmony_ci	};
418c2ecf20Sopenharmony_ci
428c2ecf20Sopenharmony_ciRequired properties:
438c2ecf20Sopenharmony_ci- #clock-cells : from common clock binding; shall be set to 0.
448c2ecf20Sopenharmony_ci- compatible : shall be "ti,keystone,pll-mux-clock"
458c2ecf20Sopenharmony_ci- clocks : link phandles of parent clocks
468c2ecf20Sopenharmony_ci- reg - pll mux register
478c2ecf20Sopenharmony_ci- bit-shift : number of bits to shift the bit-mask
488c2ecf20Sopenharmony_ci- bit-mask : arbitrary bitmask for programming the mux
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ciOptional properties:
518c2ecf20Sopenharmony_ci- clock-output-names : From common clock binding.
528c2ecf20Sopenharmony_ci
538c2ecf20Sopenharmony_ciExample:
548c2ecf20Sopenharmony_ci	mainmuxclk: mainmuxclk@2310108 {
558c2ecf20Sopenharmony_ci		#clock-cells = <0>;
568c2ecf20Sopenharmony_ci		compatible = "ti,keystone,pll-mux-clock";
578c2ecf20Sopenharmony_ci		clocks = <&mainpllclk>, <&refclkmain>;
588c2ecf20Sopenharmony_ci		reg = <0x02310108 4>;
598c2ecf20Sopenharmony_ci		bit-shift = <23>;
608c2ecf20Sopenharmony_ci		bit-mask = <1>;
618c2ecf20Sopenharmony_ci		clock-output-names = "mainmuxclk";
628c2ecf20Sopenharmony_ci	};
638c2ecf20Sopenharmony_ci
648c2ecf20Sopenharmony_ciRequired properties:
658c2ecf20Sopenharmony_ci- #clock-cells : from common clock binding; shall be set to 0.
668c2ecf20Sopenharmony_ci- compatible : shall be "ti,keystone,pll-divider-clock"
678c2ecf20Sopenharmony_ci- clocks : parent clock phandle
688c2ecf20Sopenharmony_ci- reg - pll mux register
698c2ecf20Sopenharmony_ci- bit-shift : number of bits to shift the bit-mask
708c2ecf20Sopenharmony_ci- bit-mask : arbitrary bitmask for programming the divider
718c2ecf20Sopenharmony_ci
728c2ecf20Sopenharmony_ciOptional properties:
738c2ecf20Sopenharmony_ci- clock-output-names : From common clock binding.
748c2ecf20Sopenharmony_ci
758c2ecf20Sopenharmony_ciExample:
768c2ecf20Sopenharmony_ci	gemtraceclk: gemtraceclk@2310120 {
778c2ecf20Sopenharmony_ci		#clock-cells = <0>;
788c2ecf20Sopenharmony_ci		compatible = "ti,keystone,pll-divider-clock";
798c2ecf20Sopenharmony_ci		clocks = <&mainmuxclk>;
808c2ecf20Sopenharmony_ci		reg = <0x02310120 4>;
818c2ecf20Sopenharmony_ci		bit-shift = <0>;
828c2ecf20Sopenharmony_ci		bit-mask = <8>;
838c2ecf20Sopenharmony_ci		clock-output-names = "gemtraceclk";
848c2ecf20Sopenharmony_ci	};
85