• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * linux-5.4/drivers/media/platform/sunxi-vin/vin-cci/bsp_cci.h
3  *
4  * Copyright (c) 2007-2017 Allwinnertech Co., Ltd.
5  *
6  * This software is licensed under the terms of the GNU General Public
7  * License version 2, as published by the Free Software Foundation, and
8  * may be copied, distributed, and modified under those terms.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  */
16 
17 #ifndef __BSP_CCI__H__
18 #define __BSP_CCI__H__
19 
20 #include "csi_cci_reg.h"
21 struct cci_tx_mode {
22 	struct cci_tx_buf tx_buf_mode;
23 	struct cci_tx_trig tx_trig_mode;
24 	unsigned int tx_trig_line_cnt;
25 };
26 
27 struct cci_msg {
28 	struct cci_bus_fmt bus_fmt;
29 	unsigned char *pkt_buf;
30 	unsigned char pkt_num;
31 };
32 
33 int bsp_csi_cci_set_base_addr(unsigned int sel, unsigned long addr);
34 void bsp_csi_cci_init(unsigned int sel);
35 void bsp_csi_cci_exit(unsigned int sel);
36 void bsp_csi_cci_init_helper(unsigned int sel);
37 int bsp_cci_irq_process(unsigned int sel);
38 
39 int bsp_cci_tx_start_wait_done(unsigned int sel, struct cci_msg *msg);
40 int cci_wr_8_8(unsigned int sel, unsigned char reg, unsigned char data,
41 	       unsigned char slv);
42 int cci_wr_16_8(unsigned int sel, unsigned short reg, unsigned char data,
43 		unsigned char slv);
44 int cci_wr_16_16(unsigned int sel, unsigned short reg, unsigned short data,
45 		 unsigned char slv);
46 int cci_wr_8_16(unsigned int sel, unsigned char reg, unsigned short data,
47 		unsigned char slv);
48 int cci_wr_0_16(unsigned int sel, unsigned short data, unsigned char slv);
49 int cci_rd_8_8(unsigned int sel, unsigned char reg, unsigned char *data,
50 	       unsigned char slv);
51 int cci_rd_16_8(unsigned int sel, unsigned short reg, unsigned char *data,
52 		unsigned char slv);
53 int cci_rd_16_16(unsigned int sel, unsigned short reg, unsigned short *data,
54 		 unsigned char slv);
55 int cci_rd_8_16(unsigned int sel, unsigned char reg, unsigned short *data,
56 		unsigned char slv);
57 int cci_rd_0_16(unsigned int sel, unsigned short *data, unsigned char slv);
58 int cci_wr_a16_d8_continuous(unsigned int sel, unsigned short reg,
59 			     unsigned char *data, unsigned char slv, int size);
60 
61 void cci_s_power(unsigned int sel, int on_off);
62 
63 #endif /*__BSP_CCI__H__*/
64