* 获取DDR频率 * @ret DDR频率 */
| 99 | * @ret DDR频率 |
| 100 | */ |
| 101 | unsigned long clk_get_ddr_rate(void) |
| 102 | { |
| 103 | unsigned long cpu_rate = 0; |
| 104 | unsigned long ddr_rate = 0; |
| 105 | unsigned int ctrl; |
| 106 | |
| 107 | cpu_rate = clk_get_cpu_rate(); |
| 108 | ctrl = reg_read_32((volatile unsigned int *)LS1C_START_FREQ); |
| 109 | ctrl = (ctrl & DIV_SDRAM) >> DIV_SDRAM_SHIFT; |
| 110 | |
| 111 | switch (ctrl) |
| 112 | { |
| 113 | case 0: |
| 114 | ddr_rate = cpu_rate / 2; |
| 115 | break; |
| 116 | |
| 117 | case 1: |
| 118 | ddr_rate = cpu_rate / 4; |
| 119 | break; |
| 120 | |
| 121 | case 2: |
| 122 | case 3: |
| 123 | ddr_rate = cpu_rate / 3; |
| 124 | break; |
| 125 | } |
| 126 | |
| 127 | return ddr_rate; |
| 128 | } |
| 129 | |
| 130 | |
| 131 | /* |
no test coverage detected