| Status: Unstable - ABI compatibility may be broken in the future |
| |
| Binding for keystone PLLs. The main PLL IP typically has a multiplier, |
| a divider and a post divider. The additional PLL IPs like ARMPLL, DDRPLL |
| and PAPLL are controlled by the memory mapped register where as the Main |
| PLL is controlled by a PLL controller registers along with memory mapped |
| registers. |
| |
| This binding uses the common clock binding[1]. |
| |
| [1] Documentation/devicetree/bindings/clock/clock-bindings.txt |
| |
| Required properties: |
| - #clock-cells : from common clock binding; shall be set to 0. |
| - compatible : shall be "ti,keystone,main-pll-clock" or "ti,keystone,pll-clock" |
| - clocks : parent clock phandle |
| - reg - pll control0 and pll multipler registers |
| - reg-names : control, multiplier and post-divider. The multiplier and |
| post-divider registers are applicable only for main pll clock |
| - fixed-postdiv : fixed post divider value. If absent, use clkod register bits |
| for postdiv |
| |
| Example: |
| mainpllclk: mainpllclk@2310110 { |
| #clock-cells = <0>; |
| compatible = "ti,keystone,main-pll-clock"; |
| clocks = <&refclksys>; |
| reg = <0x02620350 4>, <0x02310110 4>, <0x02310108 4>; |
| reg-names = "control", "multiplier", "post-divider"; |
| fixed-postdiv = <2>; |
| }; |
| |
| papllclk: papllclk@2620358 { |
| #clock-cells = <0>; |
| compatible = "ti,keystone,pll-clock"; |
| clocks = <&refclkpass>; |
| clock-output-names = "pa-pll-clk"; |
| reg = <0x02620358 4>; |
| reg-names = "control"; |
| }; |
| |
| Required properties: |
| - #clock-cells : from common clock binding; shall be set to 0. |
| - compatible : shall be "ti,keystone,pll-mux-clock" |
| - clocks : link phandles of parent clocks |
| - reg - pll mux register |
| - bit-shift : number of bits to shift the bit-mask |
| - bit-mask : arbitrary bitmask for programming the mux |
| |
| Optional properties: |
| - clock-output-names : From common clock binding. |
| |
| Example: |
| mainmuxclk: mainmuxclk@2310108 { |
| #clock-cells = <0>; |
| compatible = "ti,keystone,pll-mux-clock"; |
| clocks = <&mainpllclk>, <&refclkmain>; |
| reg = <0x02310108 4>; |
| bit-shift = <23>; |
| bit-mask = <1>; |
| clock-output-names = "mainmuxclk"; |
| }; |
| |
| Required properties: |
| - #clock-cells : from common clock binding; shall be set to 0. |
| - compatible : shall be "ti,keystone,pll-divider-clock" |
| - clocks : parent clock phandle |
| - reg - pll mux register |
| - bit-shift : number of bits to shift the bit-mask |
| - bit-mask : arbitrary bitmask for programming the divider |
| |
| Optional properties: |
| - clock-output-names : From common clock binding. |
| |
| Example: |
| gemtraceclk: gemtraceclk@2310120 { |
| #clock-cells = <0>; |
| compatible = "ti,keystone,pll-divider-clock"; |
| clocks = <&mainmuxclk>; |
| reg = <0x02310120 4>; |
| bit-shift = <0>; |
| bit-mask = <8>; |
| clock-output-names = "gemtraceclk"; |
| }; |