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 __INPUT_SYSTEM_LOCAL_H_INCLUDED__ 17 #define __INPUT_SYSTEM_LOCAL_H_INCLUDED__ 18 19 #include "type_support.h" 20 #include "input_system_global.h" 21 22 #include "csi_rx.h" 23 #include "pixelgen.h" 24 #include "isys_stream2mmio.h" 25 #include "isys_irq.h" 26 27 typedef enum { 28 MIPI_FORMAT_SHORT1 = 0x08, 29 MIPI_FORMAT_SHORT2, 30 MIPI_FORMAT_SHORT3, 31 MIPI_FORMAT_SHORT4, 32 MIPI_FORMAT_SHORT5, 33 MIPI_FORMAT_SHORT6, 34 MIPI_FORMAT_SHORT7, 35 MIPI_FORMAT_SHORT8, 36 MIPI_FORMAT_EMBEDDED = 0x12, 37 MIPI_FORMAT_YUV420_8 = 0x18, 38 MIPI_FORMAT_YUV420_10, 39 MIPI_FORMAT_YUV420_8_LEGACY, 40 MIPI_FORMAT_YUV420_8_SHIFT = 0x1C, 41 MIPI_FORMAT_YUV420_10_SHIFT, 42 MIPI_FORMAT_YUV422_8 = 0x1E, 43 MIPI_FORMAT_YUV422_10, 44 MIPI_FORMAT_RGB444 = 0x20, 45 MIPI_FORMAT_RGB555, 46 MIPI_FORMAT_RGB565, 47 MIPI_FORMAT_RGB666, 48 MIPI_FORMAT_RGB888, 49 MIPI_FORMAT_RAW6 = 0x28, 50 MIPI_FORMAT_RAW7, 51 MIPI_FORMAT_RAW8, 52 MIPI_FORMAT_RAW10, 53 MIPI_FORMAT_RAW12, 54 MIPI_FORMAT_RAW14, 55 MIPI_FORMAT_CUSTOM0 = 0x30, 56 MIPI_FORMAT_CUSTOM1, 57 MIPI_FORMAT_CUSTOM2, 58 MIPI_FORMAT_CUSTOM3, 59 MIPI_FORMAT_CUSTOM4, 60 MIPI_FORMAT_CUSTOM5, 61 MIPI_FORMAT_CUSTOM6, 62 MIPI_FORMAT_CUSTOM7, 63 //MIPI_FORMAT_RAW16, /*not supported by 2401*/ 64 //MIPI_FORMAT_RAW18, 65 N_MIPI_FORMAT 66 } mipi_format_t; 67 68 #define N_MIPI_FORMAT_CUSTOM 8 69 70 /* The number of stores for compressed format types */ 71 #define N_MIPI_COMPRESSOR_CONTEXT (N_RX_CHANNEL_ID * N_MIPI_FORMAT_CUSTOM) 72 #define UNCOMPRESSED_BITS_PER_PIXEL_10 10 73 #define UNCOMPRESSED_BITS_PER_PIXEL_12 12 74 #define COMPRESSED_BITS_PER_PIXEL_6 6 75 #define COMPRESSED_BITS_PER_PIXEL_7 7 76 #define COMPRESSED_BITS_PER_PIXEL_8 8 77 enum mipi_compressor { 78 MIPI_COMPRESSOR_NONE = 0, 79 MIPI_COMPRESSOR_10_6_10, 80 MIPI_COMPRESSOR_10_7_10, 81 MIPI_COMPRESSOR_10_8_10, 82 MIPI_COMPRESSOR_12_6_12, 83 MIPI_COMPRESSOR_12_7_12, 84 MIPI_COMPRESSOR_12_8_12, 85 N_MIPI_COMPRESSOR_METHODS 86 }; 87 88 typedef enum { 89 MIPI_PREDICTOR_NONE = 0, 90 MIPI_PREDICTOR_TYPE1, 91 MIPI_PREDICTOR_TYPE2, 92 N_MIPI_PREDICTOR_TYPES 93 } mipi_predictor_t; 94 95 typedef struct input_system_state_s input_system_state_t; 96 struct input_system_state_s { 97 ibuf_ctrl_state_t ibuf_ctrl_state[N_IBUF_CTRL_ID]; 98 csi_rx_fe_ctrl_state_t csi_rx_fe_ctrl_state[N_CSI_RX_FRONTEND_ID]; 99 csi_rx_be_ctrl_state_t csi_rx_be_ctrl_state[N_CSI_RX_BACKEND_ID]; 100 pixelgen_ctrl_state_t pixelgen_ctrl_state[N_PIXELGEN_ID]; 101 stream2mmio_state_t stream2mmio_state[N_STREAM2MMIO_ID]; 102 isys_irqc_state_t isys_irqc_state[N_ISYS_IRQ_ID]; 103 }; 104 #endif /* __INPUT_SYSTEM_LOCAL_H_INCLUDED__ */ 105