clk.txt 1.1 KB

1234567891011121314151617181920212223242526272829303132
  1. Clock framework on SuperH architecture
  2. The framework on SH extends existing API by the function clk_set_rate_ex,
  3. which prototype is as follows:
  4. clk_set_rate_ex (struct clk *clk, unsigned long rate, int algo_id)
  5. The algo_id parameter is used to specify algorithm used to recalculate clocks,
  6. adjanced to clock, specified as first argument. It is assumed that algo_id==0
  7. means no changes to adjanced clock
  8. Internally, the clk_set_rate_ex forwards request to clk->ops->set_rate method,
  9. if it is present in ops structure. The method should set the clock rate and adjust
  10. all needed clocks according to the passed algo_id.
  11. Exact values for algo_id are machine-dependent. For the sh7722, the following
  12. values are defined:
  13. NO_CHANGE = 0,
  14. IUS_N1_N1, /* I:U = N:1, U:Sh = N:1 */
  15. IUS_322, /* I:U:Sh = 3:2:2 */
  16. IUS_522, /* I:U:Sh = 5:2:2 */
  17. IUS_N11, /* I:U:Sh = N:1:1 */
  18. SB_N1, /* Sh:B = N:1 */
  19. SB3_N1, /* Sh:B3 = N:1 */
  20. SB3_32, /* Sh:B3 = 3:2 */
  21. SB3_43, /* Sh:B3 = 4:3 */
  22. SB3_54, /* Sh:B3 = 5:4 */
  23. BP_N1, /* B:P = N:1 */
  24. IP_N1 /* I:P = N:1 */
  25. Each of these constants means relation between clocks that can be set via the FRQCR
  26. register