|
发表于 2009-12-23 17:46:31
|
显示全部楼层
先说我不是大牛喔
/ y. i1 n+ r w' m. B b s6 C4 F, H) q" |0 Z% `: Z! u) ^
没错,读clockgen是用block r/w; {7 a/ y, ]: F) B: [: |
0 T0 N4 S m# ^% ]7 x流程和byte,word r/w类似' r+ _+ u; `" Q% U$ S
+ j, \2 a; X! \* W" e" h4 n& j
1) check host_status reg(smbusbase+0x0)的busy bit(bit0)=0,否则clear status(写0xfe进去)
; u- a- s h k7 r. S- h2)按部就班,写clkgen的slave address和protocol和cmd到相应的寄存器并且开始读写(smbusbase+0x2 bit6)
8 b y! o) [2 z; [' Y3)等待smbusbase+0x0 bit7,bit2=1并且check smbase+0x0 bit4位看有没有错误(=0就OK)/ ` D7 r8 u1 @$ s7 p5 X
4)在host data0 reg可以拿到block count,然后依次在smbase+0x07就可以拿到clkgen data啦
* c6 V/ y U1 \2 \/ A6 a1 \/ b: t& W
5 S& _" T( H: P/ I* @! Z+ r/ Q写也类似
7 N$ I# s) i# w- o
- I9 \: y5 P6 P- @: P" S小弟这里也写了一个类似的工具hwiotest
hwiotest.rar
(566.7 KB, 下载次数: 522)
|
|