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
0007
0008
0009
0010
0011
0012
0013
0014
0015
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
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
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
0051 uint32_t get_PCLK(void)
0052 {
0053 if (rCLKDIVN & 0x1)
0054 return get_HCLK()/2;
0055 else
0056 return get_HCLK();
0057 }