1b9e0d40cSSantosh ShilimkarStatus: Unstable - ABI compatibility may be broken in the future 2b9e0d40cSSantosh Shilimkar 3b9e0d40cSSantosh ShilimkarBinding for keystone PLLs. The main PLL IP typically has a multiplier, 4b9e0d40cSSantosh Shilimkara divider and a post divider. The additional PLL IPs like ARMPLL, DDRPLL 5b9e0d40cSSantosh Shilimkarand PAPLL are controlled by the memory mapped register where as the Main 6b9e0d40cSSantosh ShilimkarPLL is controlled by a PLL controller registers along with memory mapped 7b9e0d40cSSantosh Shilimkarregisters. 8b9e0d40cSSantosh Shilimkar 9b9e0d40cSSantosh ShilimkarThis binding uses the common clock binding[1]. 10b9e0d40cSSantosh Shilimkar 11b9e0d40cSSantosh Shilimkar[1] Documentation/devicetree/bindings/clock/clock-bindings.txt 12b9e0d40cSSantosh Shilimkar 13b9e0d40cSSantosh ShilimkarRequired properties: 14b9e0d40cSSantosh Shilimkar- #clock-cells : from common clock binding; shall be set to 0. 15b9e0d40cSSantosh Shilimkar- compatible : shall be "ti,keystone,main-pll-clock" or "ti,keystone,pll-clock" 16b9e0d40cSSantosh Shilimkar- clocks : parent clock phandle 17b9e0d40cSSantosh Shilimkar- reg - pll control0 and pll multipler registers 18b9e0d40cSSantosh Shilimkar- reg-names : control and multiplier. The multiplier is applicable only for 19b9e0d40cSSantosh Shilimkar main pll clock 20b9e0d40cSSantosh Shilimkar- fixed-postdiv : fixed post divider value 21b9e0d40cSSantosh Shilimkar 22b9e0d40cSSantosh ShilimkarExample: 23b9e0d40cSSantosh Shilimkar mainpllclk: mainpllclk@2310110 { 24b9e0d40cSSantosh Shilimkar #clock-cells = <0>; 25b9e0d40cSSantosh Shilimkar compatible = "ti,keystone,main-pll-clock"; 26b9e0d40cSSantosh Shilimkar clocks = <&refclkmain>; 27b9e0d40cSSantosh Shilimkar reg = <0x02620350 4>, <0x02310110 4>; 28b9e0d40cSSantosh Shilimkar reg-names = "control", "multiplier"; 29b9e0d40cSSantosh Shilimkar fixed-postdiv = <2>; 30b9e0d40cSSantosh Shilimkar }; 31b9e0d40cSSantosh Shilimkar 32b9e0d40cSSantosh Shilimkar papllclk: papllclk@2620358 { 33b9e0d40cSSantosh Shilimkar #clock-cells = <0>; 34b9e0d40cSSantosh Shilimkar compatible = "ti,keystone,pll-clock"; 35b9e0d40cSSantosh Shilimkar clocks = <&refclkmain>; 36b9e0d40cSSantosh Shilimkar clock-output-names = "pa-pll-clk"; 37b9e0d40cSSantosh Shilimkar reg = <0x02620358 4>; 38b9e0d40cSSantosh Shilimkar reg-names = "control"; 39b9e0d40cSSantosh Shilimkar fixed-postdiv = <6>; 40b9e0d40cSSantosh Shilimkar }; 41b9e0d40cSSantosh Shilimkar 42b9e0d40cSSantosh ShilimkarRequired properties: 43b9e0d40cSSantosh Shilimkar- #clock-cells : from common clock binding; shall be set to 0. 44b9e0d40cSSantosh Shilimkar- compatible : shall be "ti,keystone,pll-mux-clock" 45b9e0d40cSSantosh Shilimkar- clocks : link phandles of parent clocks 46b9e0d40cSSantosh Shilimkar- reg - pll mux register 47b9e0d40cSSantosh Shilimkar- bit-shift : number of bits to shift the bit-mask 48b9e0d40cSSantosh Shilimkar- bit-mask : arbitrary bitmask for programming the mux 49b9e0d40cSSantosh Shilimkar 50b9e0d40cSSantosh ShilimkarOptional properties: 51b9e0d40cSSantosh Shilimkar- clock-output-names : From common clock binding. 52b9e0d40cSSantosh Shilimkar 53b9e0d40cSSantosh ShilimkarExample: 54b9e0d40cSSantosh Shilimkar mainmuxclk: mainmuxclk@2310108 { 55b9e0d40cSSantosh Shilimkar #clock-cells = <0>; 56b9e0d40cSSantosh Shilimkar compatible = "ti,keystone,pll-mux-clock"; 57b9e0d40cSSantosh Shilimkar clocks = <&mainpllclk>, <&refclkmain>; 58b9e0d40cSSantosh Shilimkar reg = <0x02310108 4>; 59b9e0d40cSSantosh Shilimkar bit-shift = <23>; 60b9e0d40cSSantosh Shilimkar bit-mask = <1>; 61b9e0d40cSSantosh Shilimkar clock-output-names = "mainmuxclk"; 62b9e0d40cSSantosh Shilimkar }; 63b9e0d40cSSantosh Shilimkar 64b9e0d40cSSantosh ShilimkarRequired properties: 65b9e0d40cSSantosh Shilimkar- #clock-cells : from common clock binding; shall be set to 0. 66b9e0d40cSSantosh Shilimkar- compatible : shall be "ti,keystone,pll-divider-clock" 67b9e0d40cSSantosh Shilimkar- clocks : parent clock phandle 68b9e0d40cSSantosh Shilimkar- reg - pll mux register 69b9e0d40cSSantosh Shilimkar- bit-shift : number of bits to shift the bit-mask 70b9e0d40cSSantosh Shilimkar- bit-mask : arbitrary bitmask for programming the divider 71b9e0d40cSSantosh Shilimkar 72b9e0d40cSSantosh ShilimkarOptional properties: 73b9e0d40cSSantosh Shilimkar- clock-output-names : From common clock binding. 74b9e0d40cSSantosh Shilimkar 75b9e0d40cSSantosh ShilimkarExample: 76b9e0d40cSSantosh Shilimkar gemtraceclk: gemtraceclk@2310120 { 77b9e0d40cSSantosh Shilimkar #clock-cells = <0>; 78b9e0d40cSSantosh Shilimkar compatible = "ti,keystone,pll-divider-clock"; 79b9e0d40cSSantosh Shilimkar clocks = <&mainmuxclk>; 80b9e0d40cSSantosh Shilimkar reg = <0x02310120 4>; 81b9e0d40cSSantosh Shilimkar bit-shift = <0>; 82b9e0d40cSSantosh Shilimkar bit-mask = <8>; 83b9e0d40cSSantosh Shilimkar clock-output-names = "gemtraceclk"; 84b9e0d40cSSantosh Shilimkar }; 85