keystone-pll.txt 2.6 KB

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