/* * 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 __IA_CSS_INPUT_PORT_H #define __IA_CSS_INPUT_PORT_H /* @file * This file contains information about the possible input ports for CSS */ /* Enumeration of the physical input ports on the CSS hardware. * There are 3 MIPI CSI-2 ports. */ enum ia_css_csi2_port { IA_CSS_CSI2_PORT0, /* Implicitly map to MIPI_PORT0_ID */ IA_CSS_CSI2_PORT1, /* Implicitly map to MIPI_PORT1_ID */ IA_CSS_CSI2_PORT2 /* Implicitly map to MIPI_PORT2_ID */ }; /* Backward compatible for CSS API 2.0 only * TO BE REMOVED when all drivers move to CSS API 2.1 */ #define IA_CSS_CSI2_PORT_4LANE IA_CSS_CSI2_PORT0 #define IA_CSS_CSI2_PORT_1LANE IA_CSS_CSI2_PORT1 #define IA_CSS_CSI2_PORT_2LANE IA_CSS_CSI2_PORT2 /* The CSI2 interface supports 2 types of compression or can * be run without compression. */ enum ia_css_csi2_compression_type { IA_CSS_CSI2_COMPRESSION_TYPE_NONE, /** No compression */ IA_CSS_CSI2_COMPRESSION_TYPE_1, /** Compression scheme 1 */ IA_CSS_CSI2_COMPRESSION_TYPE_2 /** Compression scheme 2 */ }; struct ia_css_csi2_compression { enum ia_css_csi2_compression_type type; /** Compression used */ unsigned int compressed_bits_per_pixel; /** Compressed bits per pixel (only when compression is enabled) */ unsigned int uncompressed_bits_per_pixel; /** Uncompressed bits per pixel (only when compression is enabled) */ }; /* Input port structure. */ struct ia_css_input_port { enum ia_css_csi2_port port; /** Physical CSI-2 port */ unsigned int num_lanes; /** Number of lanes used (4-lane port only) */ unsigned int timeout; /** Timeout value */ unsigned int rxcount; /** Register value, should include all lanes */ struct ia_css_csi2_compression compression; /** Compression used */ }; #endif /* __IA_CSS_INPUT_PORT_H */