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