/* SPDX-License-Identifier: GPL-2.0 */ /* * Support for Intel Camera Imaging ISP subsystem. * Copyright (c) 2015, Intel Corporation. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, * version 2, as published by the Free Software Foundation. * * This program is distributed in the hope it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. */ #ifndef __CSI_RX_GLOBAL_H_INCLUDED__ #define __CSI_RX_GLOBAL_H_INCLUDED__ #include <type_support.h> typedef enum { CSI_MIPI_PACKET_TYPE_UNDEFINED = 0, CSI_MIPI_PACKET_TYPE_LONG, CSI_MIPI_PACKET_TYPE_SHORT, CSI_MIPI_PACKET_TYPE_RESERVED, N_CSI_MIPI_PACKET_TYPE } csi_mipi_packet_type_t; typedef struct csi_rx_backend_lut_entry_s csi_rx_backend_lut_entry_t; struct csi_rx_backend_lut_entry_s { u32 long_packet_entry; u32 short_packet_entry; }; typedef struct csi_rx_backend_cfg_s csi_rx_backend_cfg_t; struct csi_rx_backend_cfg_s { /* LUT entry for the packet */ csi_rx_backend_lut_entry_t lut_entry; /* can be derived from the Data Type */ csi_mipi_packet_type_t csi_mipi_packet_type; struct { bool comp_enable; u32 virtual_channel; u32 data_type; u32 comp_scheme; u32 comp_predictor; u32 comp_bit_idx; } csi_mipi_cfg; }; typedef struct csi_rx_frontend_cfg_s csi_rx_frontend_cfg_t; struct csi_rx_frontend_cfg_s { u32 active_lanes; }; extern const u32 N_SHORT_PACKET_LUT_ENTRIES[N_CSI_RX_BACKEND_ID]; extern const u32 N_LONG_PACKET_LUT_ENTRIES[N_CSI_RX_BACKEND_ID]; extern const u32 N_CSI_RX_FE_CTRL_DLANES[N_CSI_RX_FRONTEND_ID]; /* sid_width for CSI_RX_BACKEND<N>_ID */ extern const u32 N_CSI_RX_BE_SID_WIDTH[N_CSI_RX_BACKEND_ID]; #endif /* __CSI_RX_GLOBAL_H_INCLUDED__ */