24.05.2014 Views

Embedded Application Programming Interface - picmg

Embedded Application Programming Interface - picmg

Embedded Application Programming Interface - picmg

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

* Timeout due to clock stretching<br />

| EAPI_STATUS_TIMEOUT<br />

* startNak | EAPI_STATUS_NOT_FOUND<br />

* startNak | EAPI_STATUS_NOT_FOUND<br />

* startAckNak | EAPI_STATUS_WRITE_ERROR<br />

* ReadBCnt>(RBufLen+1) | EAPI_STATUS_MORE_DATA<br />

* Common Error | Common Error Code<br />

* Else | EAPI_STATUS_SUCCESS<br />

*/<br />

EApiStatus_t<br />

EAPI_CALLTYPE<br />

EApiI2CWriteReadRaw(<br />

__IN EApiId_t Id , /* I2C Bus Id */<br />

__IN uint8_t Addr , /* Encoded 7Bit I2C<br />

* Device Address<br />

*/<br />

__INOPT void *pWBuffer , /* Write Data pBuffer */<br />

__IN uint32_t WriteBCnt, /* Number of Bytes to<br />

* write plus 1<br />

*/<br />

__OUTOPT void *pRBuffer , /* Read Data pBuffer */<br />

__IN uint32_t RBufLen , /* Data pBuffer Length */<br />

__IN uint32_t ReadBCnt /* Number of Bytes to<br />

* Read plus 1<br />

*/<br />

);<br />

#define EApiI2CWriteRaw(Id, Addr, pBuffer, ByteCnt) \<br />

EApiI2CWriteReadRaw(Id, Addr, pBuffer, ByteCnt, NULL, 0, 0)<br />

#define EApiI2CReadRaw(Id, Addr, pBuffer, BufLen, ByteCnt) \<br />

EApiI2CWriteReadRaw(Id, Addr, NULL, 0, pBuffer, BufLen, ByteCnt)<br />

#define EAPI_I2C_ENC_10BIT_ADDR(x) EAPI_UINT32_C(((x)&0xFF)|(((x)&0x0300)1)&0x300))<br />

#define EAPI_I2C_IS_10BIT_ADDR(x) (((x)&0xF800)==0xF000)<br />

#define EAPI_I2C_IS_7BIT_ADDR(x) (!EAPI_I2C_IS_10BIT_ADDR(x))<br />

/*<br />

* I2C Transfer Types<br />

* Bits 31 & 30 Selects Command Type<br />

*<br />

* Transfer Type 1:<br />

* Address Format : 7Bit<br />

* Command Type : None<br />

* Data Direction : Write<br />

* StartAckAck Stop<br />

*<br />

* Transfer Type 2:<br />

* Address Format : 7Bit<br />

* Command Type : None<br />

* Data Direction : Read<br />

* StartAckNak Stop<br />

*<br />

* Transfer Type 3:<br />

* Address Format : 7Bit<br />

* Command Type : Standard<br />

* Data Direction : Write<br />

* StartAckAckAck Stop<br />

*<br />

* Transfer Type 4:<br />

* Address Format : 7Bit<br />

* Command Type : Standard<br />

* Data Direction : Read<br />

* StartAckAck<br />

* StartAckNak Stop<br />

*<br />

* Transfer Type 5:<br />

* Address Format : 7Bit<br />

* Command Type : Extended<br />

* Data Direction : Write<br />

* StartAckAckAckAck Stop<br />

*<br />

* Transfer Type 6:<br />

* Address Format : 7Bit<br />

* Command Type : Extended<br />

* Data Direction : Read<br />

* StartAckAckAck<br />

PICMG® EAPI R1.0, August 8, 2010 page 64 of 83

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!