1: int32_t AG903_I2CMgrSlaveWrite(
AG903_I2CMgrHandle* handle, uint8_t* buf, uint32_t size)
2: {
3: AG903_I2CMgrQue que;
4: int32_t retval =
AG903_ENONE;
5: int32_t result;
6: uint32_t hdlnum;
7: uint8_t ch;
8:
9: result = I2CMgr_CheckHandle(handle, &ch, &hdlnum);
10:
if(
AG903_ENONE != result) {
11:
return -
AG903_EINVAL;
12: }
13:
if((NULL == buf) || (0 == size)) {
14:
return -
AG903_EINVAL;
15: }
16:
17: que.proc = AG903_I2C_PROC_SLAVE_WRITE;
18: que.hdlnum = hdlnum;
19: que.arg.wr.buf = buf;
20: que.arg.wr.size = size;
21: que.arg.wr.addr = 0;
22: retval = I2CMgr_SetQue(ch, &que);
23:
if(
AG903_ENONE == retval) {
24: I2cHandleStat[ch][hdlnum].stat = AG903_I2C_HANDLE_QUEUING;
25: I2CMgr_MainProcess(ch);
26: }
27:
28:
return retval;
29: }