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