Back to home page

LXR

 
 

    


File indexing completed on 2025-05-11 08:23:05

0001 #include <rtems.h>
0002 #include <bsp.h>
0003 #include <s3c24xx.h>
0004 
0005 /* ------------------------------------------------------------------------- */
0006 /* NOTE: This describes the proper use of this file.
0007  *
0008  * BSP_OSC_FREQ should be defined as the input frequency of the PLL.
0009  *
0010  * get_FCLK(), get_HCLK(), get_PCLK() and get_UCLK() return the clock of
0011  * the specified bus in HZ.
0012  */
0013 /* ------------------------------------------------------------------------- */
0014 
0015 /* return FCLK frequency */
0016 uint32_t get_FCLK(void)
0017 {
0018     uint32_t r, m, p, s;
0019 
0020     r = rMPLLCON;
0021     m = ((r & 0xFF000) >> 12) + 8;
0022     p = ((r & 0x003F0) >> 4) + 2;
0023     s = r & 0x3;
0024 
0025     return((BSP_OSC_FREQ * m) / (p << s));
0026 }
0027 
0028 /* return UCLK frequency */
0029 uint32_t get_UCLK(void)
0030 {
0031     uint32_t r, m, p, s;
0032 
0033     r = rUPLLCON;
0034     m = ((r & 0xFF000) >> 12) + 8;
0035     p = ((r & 0x003F0) >> 4) + 2;
0036     s = r & 0x3;
0037 
0038     return((BSP_OSC_FREQ * m) / (p << s));
0039 }
0040 
0041 /* return HCLK frequency */
0042 uint32_t get_HCLK(void)
0043 {
0044     if (rCLKDIVN & 0x2)
0045     return get_FCLK()/2;
0046     else
0047     return get_FCLK();
0048 }
0049 
0050 /* return PCLK frequency */
0051 uint32_t get_PCLK(void)
0052 {
0053     if (rCLKDIVN & 0x1)
0054     return get_HCLK()/2;
0055     else
0056     return get_HCLK();
0057 }