|
|
发表于 2009-12-23 17:46:31
|
显示全部楼层
先说我不是大牛喔
; Y2 D% V$ l0 |& U/ \! A% z! g
2 }" [, u* @# t8 }没错,读clockgen是用block r/w1 R1 E5 l! e B1 Q
* _! w. y" v2 G5 J3 c" P/ R8 \流程和byte,word r/w类似
9 M" b5 j9 I2 p/ h j
' k5 Z7 d- m, k e. @1) check host_status reg(smbusbase+0x0)的busy bit(bit0)=0,否则clear status(写0xfe进去)
* d, p3 Y0 G2 c! P! X0 @2)按部就班,写clkgen的slave address和protocol和cmd到相应的寄存器并且开始读写(smbusbase+0x2 bit6)
) ~" B/ [/ x' Q1 M1 u3)等待smbusbase+0x0 bit7,bit2=1并且check smbase+0x0 bit4位看有没有错误(=0就OK)2 m( E) L9 B, b& ^8 j. c' L* `9 x
4)在host data0 reg可以拿到block count,然后依次在smbase+0x07就可以拿到clkgen data啦, T) u& E* S. M& w3 b
" F1 c7 l7 @( o9 z
写也类似
2 Y0 Q* o0 [4 i2 c5 [3 g, R9 |$ E2 \
小弟这里也写了一个类似的工具hwiotest
hwiotest.rar
(566.7 KB, 下载次数: 1323)
|
|