mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-27 17:36:25 +07:00
b9e0d40c0d
Add the driver for the PLL IPs found on Keystone 2 devices. The PLL IP typically has a multiplier, a divider and a post-divider. The 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 and memory map registers. Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Signed-off-by: Mike Turquette <mturquette@linaro.org>
85 lines
2.5 KiB
Plaintext
85 lines
2.5 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
|
|
|
|
Example:
|
|
mainpllclk: mainpllclk@2310110 {
|
|
#clock-cells = <0>;
|
|
compatible = "ti,keystone,main-pll-clock";
|
|
clocks = <&refclkmain>;
|
|
reg = <0x02620350 4>, <0x02310110 4>;
|
|
reg-names = "control", "multiplier";
|
|
fixed-postdiv = <2>;
|
|
};
|
|
|
|
papllclk: papllclk@2620358 {
|
|
#clock-cells = <0>;
|
|
compatible = "ti,keystone,pll-clock";
|
|
clocks = <&refclkmain>;
|
|
clock-output-names = "pa-pll-clk";
|
|
reg = <0x02620358 4>;
|
|
reg-names = "control";
|
|
fixed-postdiv = <6>;
|
|
};
|
|
|
|
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";
|
|
};
|