|
发表于 2009-12-23 17:46:31
|
显示全部楼层
先说我不是大牛喔 . m1 S$ H# P, [0 ~: n' x& q9 U
) A# `" l0 c+ Y& E, c7 E) X
没错,读clockgen是用block r/w
9 d* g) Z) u; ]& _+ H1 {# o& u$ e ]# p; _
流程和byte,word r/w类似4 i7 W q! J) H# x+ h X
+ d8 z- W) g: m; Y8 f, Q
1) check host_status reg(smbusbase+0x0)的busy bit(bit0)=0,否则clear status(写0xfe进去)
2 ?- I; x% X/ ^) N, x, I( ?' V" W2)按部就班,写clkgen的slave address和protocol和cmd到相应的寄存器并且开始读写(smbusbase+0x2 bit6)
% ~. z I) ]4 X) K- }' e, h3)等待smbusbase+0x0 bit7,bit2=1并且check smbase+0x0 bit4位看有没有错误(=0就OK)# H- T) z4 }- u2 L9 n: n
4)在host data0 reg可以拿到block count,然后依次在smbase+0x07就可以拿到clkgen data啦
0 R, E/ S" i2 Y& x5 Z
: {, ^, v& I; f写也类似6 ?: F' P; y8 y h' k/ Y
) a* w) q/ ~2 n1 a- Z小弟这里也写了一个类似的工具hwiotest
hwiotest.rar
(566.7 KB, 下载次数: 829)
|
|