主题 : 可以写驱动修改CLKDIVN的值么? 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 11101
精华: 0
发帖: 35
金钱: 205 两
威望: 59 点
综合积分: 70 分
注册时间: 2009-11-27
最后登录: 2018-02-08
楼主  发表于: 2010-01-10 10:37

 可以写驱动修改CLKDIVN的值么?

想把HCLK变高一些,写了驱动,读CLKDIVN的值是5,算出HCLK=100M(我实在是找不到哦1:2:4这个是从哪来的),我看2440datasheet,HDIVN=10;10 : HCLK = FCLK/4 when CAMDIVN[9] = 0.    HCLK= FCLK/8 when CAMDIVN[9] = 1. 于是我又读出CAMDIVN的值,CAMDIVN[9] = 0,那么HCLK=100M。不知道我说的对不对?
我现在想把它变成200m,于是就写个驱动,向CLKDIVN里写入3,结果就出错了。。。
求高人指点,谢谢!
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
1楼  发表于: 2010-01-10 11:23
1. 可以修改CLKDIVN的值,但不推荐你在Linux设备驱动里去做这样的事。那通常是Linux内核启动之前bootloader设定的。如果要改的话,改bootloader的源代码会比较方便;
2. CLKDIVN的值不能随便设定,HCLK会提供给很多硬件模块,比如SDRAM,LCD Controller。修改之前确定新的HCLK频率可以满足使用它的各个硬件模块的要求.
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 新手上路
UID: 11101
精华: 0
发帖: 35
金钱: 205 两
威望: 59 点
综合积分: 70 分
注册时间: 2009-11-27
最后登录: 2018-02-08
2楼  发表于: 2010-01-10 15:00
引用第1楼kasim于2010-01-10 11:23发表的  :
1. 可以修改CLKDIVN的值,但不推荐你在Linux设备驱动里去做这样的事。那通常是Linux内核启动之前bootloader设定的。如果要改的话,改bootloader的源代码会比较方便;
2. CLKDIVN的值不能随便设定,HCLK会提供给很多硬件模块,比如SDRAM,LCD Controller。修改之前确定新的HCLK频率可以满足使用它的各个硬件模块的要求.

哦,那如果我什么都不修改的话,HCLK是200m还是100m呢?记得您说过是1:2:4,我怎么没找到根据呢?谢谢!
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
3楼  发表于: 2010-01-10 15:11

 回 2楼(smilemaomi) 的帖子

设置的依据在S3C2440A的用户手册上, 看MPLLCON, CLKDIVN以及CAMDIVN这几个寄存器的设置。supervivi中默认的设置的值是405MHz/100Mhz/50Mhz, 是1:4:8, 我之前是笔误了,抱歉。
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 新手上路
UID: 11101
精华: 0
发帖: 35
金钱: 205 两
威望: 59 点
综合积分: 70 分
注册时间: 2009-11-27
最后登录: 2018-02-08
4楼  发表于: 2010-01-10 20:37

 Re:回 2楼(smilemaomi) 的帖子

引用第3楼kasim于2010-01-10 15:11发表的 回 2楼(smilemaomi) 的帖子 :
设置的依据在S3C2440A的用户手册上, 看MPLLCON, CLKDIVN以及CAMDIVN这几个寄存器的设置。supervivi中默认的设置的值是405MHz/100Mhz/50Mhz, 是1:4:8, 我之前是笔误了,抱歉。

谢谢!