mirror of
https://github.com/torvalds/linux.git
synced 2024-12-26 04:42:12 +00:00
dbb4e67fe7
DDR3A/B, ARM and PA PLL controllers have clkod register bits for configuring postdiv values. So use it instead of using fixed post dividers for these pll controllers. Assume that if fixed-postdiv attribute is not present, use clkod register value for pistdiv. Also update the Documentation of bindings to reflect the same. Cc: Mike Turquette <mturquette@linaro.org Signed-off-by: Murali Karicheri <m-karicheri2@ti.com> Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
85 lines
2.6 KiB
Plaintext
85 lines
2.6 KiB
Plaintext
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 and multiplier. The multiplier is 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>;
|
|
reg-names = "control", "multiplier";
|
|
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";
|
|
};
|