|
|
发表于 2009-12-23 17:46:31
|
显示全部楼层
先说我不是大牛喔
4 v$ }, ` t5 k/ M; H( D' g, s3 V. H% t$ b" w2 S
没错,读clockgen是用block r/w) O5 p, W9 `* R* J( ~
+ f$ a% V* o5 F k3 z流程和byte,word r/w类似3 W( {3 G. Z. |% x& b
`5 v6 Y4 e+ R1) check host_status reg(smbusbase+0x0)的busy bit(bit0)=0,否则clear status(写0xfe进去)# `1 ?. X! ] c/ [1 [$ N# p
2)按部就班,写clkgen的slave address和protocol和cmd到相应的寄存器并且开始读写(smbusbase+0x2 bit6)
. O: P ~+ I( C) o0 D6 b& M3)等待smbusbase+0x0 bit7,bit2=1并且check smbase+0x0 bit4位看有没有错误(=0就OK)
3 G! v6 O! z4 w; }4)在host data0 reg可以拿到block count,然后依次在smbase+0x07就可以拿到clkgen data啦
9 }" D& [0 z" z; V
+ v7 e' T. k$ o# `/ z写也类似
4 h M; W" j% U& Z( ^7 k/ v1 M
小弟这里也写了一个类似的工具hwiotest
hwiotest.rar
(566.7 KB, 下载次数: 890)
|
|