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