|
|
发表于 2009-12-23 17:46:31
|
显示全部楼层
先说我不是大牛喔 / g, U/ Q8 ~3 C ^$ z
* c$ G( \ s2 M' P没错,读clockgen是用block r/w
- f0 w* b2 n& N8 H+ j) b' M. b. O: [6 f9 Q
流程和byte,word r/w类似
; V/ D4 r* E7 Z! G) J
; u& G v8 h) ~ H1 ~- Z1) check host_status reg(smbusbase+0x0)的busy bit(bit0)=0,否则clear status(写0xfe进去)# K4 z, r' ] a( z& L- Y
2)按部就班,写clkgen的slave address和protocol和cmd到相应的寄存器并且开始读写(smbusbase+0x2 bit6)' m, Q+ P f# G2 ]3 D, t Z
3)等待smbusbase+0x0 bit7,bit2=1并且check smbase+0x0 bit4位看有没有错误(=0就OK)
* c3 V& C3 c0 Q/ F, g" j4)在host data0 reg可以拿到block count,然后依次在smbase+0x07就可以拿到clkgen data啦" O; E# a3 c- ^$ k
* o; X% L: ^( y- F
写也类似
* L1 y$ z/ V8 \) r/ R+ T! }, t# K& A5 P+ m
小弟这里也写了一个类似的工具hwiotest
hwiotest.rar
(566.7 KB, 下载次数: 1009)
|
|