1 /* 2 * Support for Intel Camera Imaging ISP subsystem. 3 * Copyright (c) 2015, Intel Corporation. 4 * 5 * This program is free software; you can redistribute it and/or modify it 6 * under the terms and conditions of the GNU General Public License, 7 * version 2, as published by the Free Software Foundation. 8 * 9 * This program is distributed in the hope it will be useful, but WITHOUT 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 12 * more details. 13 */ 14 15 #ifndef __CSI_RX_GLOBAL_H_INCLUDED__ 16 #define __CSI_RX_GLOBAL_H_INCLUDED__ 17 18 #include <type_support.h> 19 20 typedef enum { 21 CSI_MIPI_PACKET_TYPE_UNDEFINED = 0, 22 CSI_MIPI_PACKET_TYPE_LONG, 23 CSI_MIPI_PACKET_TYPE_SHORT, 24 CSI_MIPI_PACKET_TYPE_RESERVED, 25 N_CSI_MIPI_PACKET_TYPE 26 } csi_mipi_packet_type_t; 27 28 typedef struct csi_rx_backend_lut_entry_s csi_rx_backend_lut_entry_t; 29 struct csi_rx_backend_lut_entry_s { 30 u32 long_packet_entry; 31 u32 short_packet_entry; 32 }; 33 34 typedef struct csi_rx_backend_cfg_s csi_rx_backend_cfg_t; 35 struct csi_rx_backend_cfg_s { 36 /* LUT entry for the packet */ 37 csi_rx_backend_lut_entry_t lut_entry; 38 39 /* can be derived from the Data Type */ 40 csi_mipi_packet_type_t csi_mipi_packet_type; 41 42 struct { 43 bool comp_enable; 44 u32 virtual_channel; 45 u32 data_type; 46 u32 comp_scheme; 47 u32 comp_predictor; 48 u32 comp_bit_idx; 49 } csi_mipi_cfg; 50 }; 51 52 typedef struct csi_rx_frontend_cfg_s csi_rx_frontend_cfg_t; 53 struct csi_rx_frontend_cfg_s { 54 u32 active_lanes; 55 }; 56 57 extern const u32 N_SHORT_PACKET_LUT_ENTRIES[N_CSI_RX_BACKEND_ID]; 58 extern const u32 N_LONG_PACKET_LUT_ENTRIES[N_CSI_RX_BACKEND_ID]; 59 extern const u32 N_CSI_RX_FE_CTRL_DLANES[N_CSI_RX_FRONTEND_ID]; 60 /* sid_width for CSI_RX_BACKEND<N>_ID */ 61 extern const u32 N_CSI_RX_BE_SID_WIDTH[N_CSI_RX_BACKEND_ID]; 62 63 #endif /* __CSI_RX_GLOBAL_H_INCLUDED__ */ 64