summaryrefslogtreecommitdiff
path: root/lib/lzo/sprd_zipenc_drv.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/lzo/sprd_zipenc_drv.h')
-rwxr-xr-xlib/lzo/sprd_zipenc_drv.h136
1 files changed, 136 insertions, 0 deletions
diff --git a/lib/lzo/sprd_zipenc_drv.h b/lib/lzo/sprd_zipenc_drv.h
new file mode 100755
index 00000000..ae5bf168
--- /dev/null
+++ b/lib/lzo/sprd_zipenc_drv.h
@@ -0,0 +1,136 @@
+/******************************************************************************
+ ** File Name:
+ ** Author:
+ ** Date:
+ ** Copyright:
+ ** Description:
+ **
+ **
+ *****************************************************************************
+ *****************************************************************************
+ ** Edit History
+ **--------------------------------------------------------------------------*
+ ** DATE NAME DESCRIPTION
+ ** 22/08/2001 xxx Create.
+ *****************************************************************************/
+
+
+/**---------------------------------------------------------------------------*
+ ** Dependencies *
+ **---------------------------------------------------------------------------*/
+#ifndef __SPRD_ZIP_ENC_H__
+#define __SPRD_ZIP_ENC_H__
+
+#include <linux/bitops.h>
+
+#define ZIPENC_CTRL (0x0000)
+#define ZIPENC_IN_ADDR (0x0004)
+#define ZIPENC_IN_LEN (0x0008)
+#define ZIPENC_OUT_ADDR (0x000c)
+
+#define ZIPENC_OUT_LEN (0x0010)
+#define ZIPENC_CUR_IN_ADDR (0x0014)
+#define ZIPENC_CUR_IN_LEN (0x0018)
+#define ZIPENC_CUR_OUT_ADDR (0x001c)
+
+#define ZIPENC_CUR_OUT_LEN (0x0020)
+#define ZIPENC_IN_QUEUE (0x0024)
+#define ZIPENC_OUT_QUEUE (0x0028)
+#define ZIPENC_COMP_LEN (0x002c)
+
+#define ZIPENC_COMP_STS (0x0030)
+#define ZIPENC_STS0 (0x0034)
+#define ZIPENC_STS1 (0x0038)
+#define ZIPENC_STS2 (0x003C)
+
+#define ZIPENC_INT_EN (0x0040)
+#define ZIPENC_INT_CLR (0x0044)
+#define ZIPENC_INT_STS (0x0048)
+#define ZIPENC_INT_RAW (0x004c)
+
+#define ZIPENC_IN_ADDRX (0x0050)
+#define ZIPENC_IN_LENX (0x0054)
+#define ZIPENC_OUT_ADDRX (0x0058)
+#define ZIPENC_OUT_LENX (0x005c)
+#define ZIPENC_TIME_OUT (0x0060)
+
+
+#define ZIPENC_EN BIT(0)
+#define ZIPENC_MODE BIT(1)
+#define ZIPENC_RUN BIT(4)
+
+#define ZIPENC_IN_SWT_SHIFT (8)
+#define ZIPENC_IN_SWT_MASK (0x03<<ZIPENC_IN_SWT_SHIFT)
+
+#define ZIPENC_OUT_SWT_SHIFT (10)
+#define ZIPENC_OUT_SWT_MASK (0x03<<ZIPENC_OUT_SWT_SHIFT)
+
+#define ZIPENC_COMP_LEN_SHIFT (0)
+#define ZIPENC_COMP_LEN_MASK (0x1ffff<<ZIPENC_COMP_LEN_SHIFT)
+
+#define ZIPENC_ERR_STS_SHIFT (0)
+#define ZIPENC_ERR_STS_MASK (0xff<<ZIPENC_ERR_STS_SHIFT)
+
+#define ZIPENC_OL_STS_SHIFT (8)
+#define ZIPENC_OL_STS_MASK (0xff<<ZIPENC_OL_STS_SHIFT)
+
+
+#define ZIPENC_TIME_OUT_NUM_SHIFT (0)
+#define ZIPENC_TIME_OUT_NUM_MASK (0x00ffffff<<ZIPENC_TIME_OUT_NUM_SHIFT)
+
+#define ZIPENC_TIME_OUT_FLAG_SHIFT (24)
+#define ZIPENC_TIME_OUT_FLAG_MASK (0x00ffffff<<ZIPENC_TIME_OUT_FLAG_SHIFT)
+
+
+#define ZIPENC_IN_QUEUE_CLR BIT(15)
+#define ZIPENC_OUT_QUEUE_CLR BIT(15)
+
+#define ZIPENC_TIMEOUT_EN BIT(2)
+#define ZIPENC_SEG_DONE_EN BIT(1)
+#define ZIPENC_DONE_EN BIT(0)
+
+#define ZIPENC_TIMEOUT_CLR BIT(2)
+#define ZIPENC_SEG_DONE_CLR BIT(1)
+#define ZIPENC_DONE_CLR BIT(0)
+
+#define ZIPENC_NORMAL_LEN 0
+#define ZIPENC_LIMIT_LEN 1
+
+#define ZIPENC_SWITCH_MODE0 0
+#define ZIPENC_SWITCH_MODE1 1
+#define ZIPENC_SWITCH_MODE2 2
+#define ZIPENC_SWITCH_MODE3 3
+
+#define ZIPENC_WAIT_POOL 0
+#define ZIPENC_WAIT_INT 1
+
+#define ZIPENC_NORMAL 0
+#define ZIPENC_QUEUE 1
+
+#define ZIP_WORK_LENGTH (0x1000)
+
+typedef enum ZIPENC_INT_TYPE
+{
+ ZIPENC_DONE_INT = 0,
+ ZIPENC_SEG_DONE_INT,
+ ZIPENC_TIMEOUT_INT,
+ ZIPENC_ALL_INT
+}ZIPENC_INT_TYPE;
+
+//void sprd_zipenc_enable(u32 enable);
+void sped_zipenc_reset(void);
+void ZipEnc_Restart(void);
+int Zip_Enc_Wait_Pool(ZIPENC_INT_TYPE num);
+void ZipEnc_Run(void);
+void ZipEnc_LengthLimitMode(u32 enable);
+void ZipEnc_SetSrcCfg(unsigned long src_start_addr, u32 src_len);
+void ZipEnc_SetDestCfg(unsigned long dest_start_addr,u32 dst_len);
+void ZipEnc_In_Out_SwtMode(u32 inmode,u32 outmode);
+void ZipEnc_InQueue_Clr(void);
+void ZipEnc_OutQueue_Clr(void);
+void ZipEnc_Set_Timeout(u32 time);
+u32 ZipEnc_Get_Comp_Len(void);
+u32 ZipEnc_Get_Ol_Sts(void);
+u32 ZipEnc_Get_Err_Sts(void);
+u32 ZipEnc_Get_Timeout_Flag(void);
+#endif