以根据代码中的计算公式针对自己的开发板修改系统时钟。
下面是针对S3C2410、S3C2440,分别使用不同的宏设置系统时钟:
58 int board_init (void)
59 {
60 S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER();
61 S3C24X0_GPIO * const gpio = S3C24X0_GetBase_GPIO();
62
63 /* 设置GPIO */
64 gpio->GPACON = 0x007FFFFF;
65 gpio->GPBCON = 0x00044555;
66 gpio->GPBUP = 0x000007FF;
67 gpio->GPCCON = 0xAAAAAAAA;
68 gpio->GPCUP = 0x0000FFFF;
69 gpio->GPDCON = 0xAAAAAAAA;
70 gpio->GPDUP = 0x0000FFFF;
71 gpio->GPECON = 0xAAAAAAAA;
72 gpio->GPEUP = 0x0000FFFF;
73 gpio->GPFCON = 0x000055AA;
74 gpio->GPFUP = 0x000000FF;
75 gpio->GPGCON = 0xFF95FFBA;
76 gpio->GPGUP = 0x0000FFFF;
77 gpio->GPHCON = 0x002AFAAA;
78 gpio->GPHUP = 0x000007FF;
79
80 /* 同时支持S3C2410和S3C2440, */
81 if ((gpio->GSTATUS1 == 0x32410000) || (gpio->GSTATUS1 == 0x32410002))
82 {
83 /* FCLK:HCLK:PCLK = 1:2:4 */
84 clk_power->CLKDIVN = S3C2410_CLKDIV;
85
86 /* 修改为异步总线模式 */
87 __asm__( "mrc p15, 0, r1, c1, c0, 0\n" /* read ctrl register */
88 "orr r1, r1, #0xc0000000\n" /* Asynchronous */
89 "mcr p15, 0, r1, c1, c0, 0\n" /* write ctrl register */
90 :::"r1"
91 );
92
93 /* 设置PLL锁定时间 */
94 clk_power->LOCKTIME = 0xFFFFFF;
95
96 /* 配置MPLL */
97 clk_power->MPLLCON = S3C2410_MPLL_200MHZ;
98
99 /* 配置MPLL后,要延时一段时间再配置UPLL */
100 delay (4000);
101
102 /* 配置UPLL */
103 clk_power->UPLLCON = S3C2410_UPLL_48MHZ;
104
105 /* 再延时一会 */
106 delay (8000);
107
108 /* 机器类型ID,这在调用Linux内核时用到 */
109 gd->bd->bi_arch_number = MACH_TYPE_SMDK2410;
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-65990-18.html
中国大地思想的大旗又高高举起和飘扬了
日本海军普遍吨位3300吨以上
结果生了好多小蛆