prci.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. // See LICENSE for license details.
  2. #ifndef _SIFIVE_PRCI_H
  3. #define _SIFIVE_PRCI_H
  4. /* Register offsets */
  5. #define PRCI_HFROSCCFG (0x0000)
  6. #define PRCI_HFXOSCCFG (0x0004)
  7. #define PRCI_PLLCFG (0x0008)
  8. #define PRCI_PLLDIV (0x000C)
  9. #define PRCI_PROCMONCFG (0x00F0)
  10. /* Fields */
  11. #define ROSC_DIV(x) (((x) & 0x2F) << 0 )
  12. #define ROSC_TRIM(x) (((x) & 0x1F) << 16)
  13. #define ROSC_EN(x) (((x) & 0x1 ) << 30)
  14. #define ROSC_RDY(x) (((x) & 0x1 ) << 31)
  15. #define XOSC_EN(x) (((x) & 0x1) << 30)
  16. #define XOSC_RDY(x) (((x) & 0x1) << 31)
  17. #define PLL_R(x) (((x) & 0x7) << 0)
  18. // single reserved bit for F LSB.
  19. #define PLL_F(x) (((x) & 0x3F) << 4)
  20. #define PLL_Q(x) (((x) & 0x3) << 10)
  21. #define PLL_SEL(x) (((x) & 0x1) << 16)
  22. #define PLL_REFSEL(x) (((x) & 0x1) << 17)
  23. #define PLL_BYPASS(x) (((x) & 0x1) << 18)
  24. #define PLL_LOCK(x) (((x) & 0x1) << 31)
  25. #define PLL_R_default 0x1
  26. #define PLL_F_default 0x1F
  27. #define PLL_Q_default 0x3
  28. #define PLL_REFSEL_HFROSC 0x0
  29. #define PLL_REFSEL_HFXOSC 0x1
  30. #define PLL_SEL_HFROSC 0x0
  31. #define PLL_SEL_PLL 0x1
  32. #define PLL_FINAL_DIV(x) (((x) & 0x3F) << 0)
  33. #define PLL_FINAL_DIV_BY_1(x) (((x) & 0x1 ) << 8)
  34. #define PROCMON_DIV(x) (((x) & 0x1F) << 0)
  35. #define PROCMON_TRIM(x) (((x) & 0x1F) << 8)
  36. #define PROCMON_EN(x) (((x) & 0x1) << 16)
  37. #define PROCMON_SEL(x) (((x) & 0x3) << 24)
  38. #define PROCMON_NT_EN(x) (((x) & 0x1) << 28)
  39. #define PROCMON_SEL_HFCLK 0
  40. #define PROCMON_SEL_HFXOSCIN 1
  41. #define PROCMON_SEL_PLLOUTDIV 2
  42. #define PROCMON_SEL_PROCMON 3
  43. #endif // _SIFIVE_PRCI_H