|
发表于 2009-12-23 17:46:31
|
显示全部楼层
先说我不是大牛喔3 m' R( E6 V, n [" o/ c; V
+ G" D+ v& y, a* l没错,读clockgen是用block r/w& _' X$ |# c4 i- F
' \* _7 j: W) a) ~. h3 V% Z h流程和byte,word r/w类似# y# i+ e9 e w o" C
% ?- Y9 e5 p+ t* O1) check host_status reg(smbusbase+0x0)的busy bit(bit0)=0,否则clear status(写0xfe进去)! ]; a% x% s* z
2)按部就班,写clkgen的slave address和protocol和cmd到相应的寄存器并且开始读写(smbusbase+0x2 bit6)" f+ ?6 n% v& [
3)等待smbusbase+0x0 bit7,bit2=1并且check smbase+0x0 bit4位看有没有错误(=0就OK)
) R1 s+ o. [) C4)在host data0 reg可以拿到block count,然后依次在smbase+0x07就可以拿到clkgen data啦
$ N2 g& K$ M, t' V1 E8 t o# v+ W/ W! P5 @' u
写也类似! E, C4 Z& A' y4 \
* c) C# e; [( i
小弟这里也写了一个类似的工具hwiotest
hwiotest.rar
(566.7 KB, 下载次数: 493)
|
|