zte's code,first commit
Change-Id: I9a04da59e459a9bc0d67f101f700d9d7dc8d681b
diff --git a/cp/ps/driver/inc/io/drvs_io_sio.h b/cp/ps/driver/inc/io/drvs_io_sio.h
new file mode 100644
index 0000000..8912b78
--- /dev/null
+++ b/cp/ps/driver/inc/io/drvs_io_sio.h
@@ -0,0 +1,138 @@
+/***********************************************************************
+* Copyright (C) 2001, ZTE Corporation.
+*
+* File Name: drvs_io_sio.h
+* File Mark:
+* Description: sio define.
+* Others:
+* Version: 1.4.9
+* Author: wangxia
+* Date: 2010-04-2
+*
+* History 1:
+* Date:
+* Version:
+* Author:
+* Modification:
+
+* History 2:
+**********************************************************************/
+#include "drvs_io_keys.h"
+#ifndef _DRVS_SIO_H_
+#define _DRVS_SIO_H_
+
+/*************************************************************************
+ * Include files *
+ *************************************************************************/
+
+
+/*************************************************************************
+ * Macro *
+ *************************************************************************/
+
+/**************************************************************************
+ * Types *
+ **************************************************************************/
+
+typedef struct _T_ZDrvSio_DataConfig
+{
+ UINT32 baudrate;
+ UINT32 flowControl;
+ UINT8 dataBits;
+ UINT8 stopBits;
+ UINT8 parity;
+ UINT8 workMode;
+}T_ZDrvSio_DataConfig;
+
+
+typedef enum
+{
+ ZDRV_DEV_UART_FCTL_OFF,
+ ZDRV_DEV_UART_FCTL_SW,
+ ZDRV_DEV_UART_FCTL_HW
+}T_ZDrvSio_UartFlowCtrl_Types;
+
+typedef enum
+{
+ ZDRV_DEV_UART_PARITY_EVEN,
+ ZDRV_DEV_UART_PARITY_ODD,
+ ZDRV_DEV_UART_PARITY_NULL
+}T_ZDrvSio_UartParity_Types;
+
+typedef enum
+{
+ ZDRV_DEV_UART_MODE_CPU,
+ ZDRV_DEV_UART_MODE_DMA,
+ ZDRV_DEV_UART_MODE_NULL
+}T_ZDrvSio_UartWorkMode_Types;
+
+/*sio ioctl command*/
+typedef enum
+{
+ IOCTL_SIO_SET_DATA, /*set data config command,set baudrate.param:T_ZDrvSio_DataConfig*/
+ IOCTL_SIO_SET_BUFFER, /*set data buffer command,param:T_ZDrvSio_SetConfig */
+ IOCTL_SIO_CLEAN_BLOCK, /*clean the sio block read*/
+ IOCTL_SIO_CALLBACK, /*set sio non block callback function.param:T_ZDrvSio_Read_CallBack*/
+
+ IOCTL_SIO_CMD_MAX
+} T_ZDrvSio_IOCTL; /*sio ioctl command*/
+
+
+
+typedef struct _T_ZDrvUsbSio_SetConfig
+{
+
+ UINT8 endpoint;
+ UINT32 txBufferSize;
+ UINT32 rxBufferSize;
+ BOOL block;
+ UINT32 blocktime;
+
+}T_ZDrvUsbSio_SetConfig; /*usbsio use to config the param*/
+
+typedef struct _T_ZDrvSio_SetConfig
+{
+
+ UINT8 endpoint;
+ UINT32 txBufferSize;
+ UINT32 rxBufferSize;
+ BOOL block;
+ UINT32 blocktime;
+ T_ZDrvSio_DataConfig dataconfig;
+}T_ZDrvSio_SetConfig; /*usbsio use to config the param*/
+
+
+typedef struct _T_Sio_Dev_Hw
+{
+ VOID * regs;
+ T_ZDrvSio_DataConfig settings;
+ VOID * upLayerSet;
+
+}
+T_Sio_Dev_Hw;
+
+
+typedef struct _T_Sio_HalOpt
+{
+ SINT32 (*open)(UINT32 portNum,T_ZDrvSio_DataConfig * portConfig);
+ SINT32 (*read)(UINT32 portNum, UINT8* pBuf, UINT32 len);
+ SINT32 (*write)(UINT32 portNum, UINT8* pBuf, UINT32 len);
+ SINT32 (*close)(UINT32 portNum);
+ SINT32 (*ctrl)(UINT32 portNum,T_DRVIO_CTRL_KEY function, VOID* arg);
+}
+T_Sio_HalOpt;
+
+/**************************************************************************
+ * Global Variable *
+ **************************************************************************/
+
+/**************************************************************************
+ * Function Prototypes *
+ **************************************************************************/
+SINT32 zDrvSio_Install(UINT32 portNum, CHAR* name, T_Sio_HalOpt * pDevHalOpt);
+
+
+#endif/*_DRVS_SIO_H_ */
+
+
+