|
发表于 2009-12-23 17:46:31
|
显示全部楼层
先说我不是大牛喔
_' y' C+ [9 z) R1 R. V" H9 u/ w/ I
没错,读clockgen是用block r/w1 _0 z. o0 y7 m' V- q3 }) |4 }
. w% ?8 w8 ^9 L* @" r* Y
流程和byte,word r/w类似
- P Q6 L) ^, t- N* p5 Q' ?5 _9 n; N4 y! n
1) check host_status reg(smbusbase+0x0)的busy bit(bit0)=0,否则clear status(写0xfe进去)* Z6 E/ C, w6 q( S5 g$ u& O
2)按部就班,写clkgen的slave address和protocol和cmd到相应的寄存器并且开始读写(smbusbase+0x2 bit6)
; y2 @! G( T* a3)等待smbusbase+0x0 bit7,bit2=1并且check smbase+0x0 bit4位看有没有错误(=0就OK). b. R! s$ P) A, q
4)在host data0 reg可以拿到block count,然后依次在smbase+0x07就可以拿到clkgen data啦
( s2 H8 ^1 P/ l& j: o6 n) N8 W- F7 [
写也类似
* M1 g/ M* C2 Y+ Y; ]0 C1 b, ?' C
" p) x' ]: f* B9 c5 q2 ^小弟这里也写了一个类似的工具hwiotest
hwiotest.rar
(566.7 KB, 下载次数: 818)
|
|