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