| /* 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 __INPUT_SYSTEM_LOCAL_H_INCLUDED__ |
| #define __INPUT_SYSTEM_LOCAL_H_INCLUDED__ |
| |
| #include "type_support.h" |
| #include "input_system_global.h" |
| |
| #include "csi_rx.h" |
| #include "pixelgen.h" |
| #include "isys_stream2mmio.h" |
| #include "isys_irq.h" |
| |
| typedef enum { |
| MIPI_FORMAT_SHORT1 = 0x08, |
| MIPI_FORMAT_SHORT2, |
| MIPI_FORMAT_SHORT3, |
| MIPI_FORMAT_SHORT4, |
| MIPI_FORMAT_SHORT5, |
| MIPI_FORMAT_SHORT6, |
| MIPI_FORMAT_SHORT7, |
| MIPI_FORMAT_SHORT8, |
| MIPI_FORMAT_EMBEDDED = 0x12, |
| MIPI_FORMAT_YUV420_8 = 0x18, |
| MIPI_FORMAT_YUV420_10, |
| MIPI_FORMAT_YUV420_8_LEGACY, |
| MIPI_FORMAT_YUV420_8_SHIFT = 0x1C, |
| MIPI_FORMAT_YUV420_10_SHIFT, |
| MIPI_FORMAT_YUV422_8 = 0x1E, |
| MIPI_FORMAT_YUV422_10, |
| MIPI_FORMAT_RGB444 = 0x20, |
| MIPI_FORMAT_RGB555, |
| MIPI_FORMAT_RGB565, |
| MIPI_FORMAT_RGB666, |
| MIPI_FORMAT_RGB888, |
| MIPI_FORMAT_RAW6 = 0x28, |
| MIPI_FORMAT_RAW7, |
| MIPI_FORMAT_RAW8, |
| MIPI_FORMAT_RAW10, |
| MIPI_FORMAT_RAW12, |
| MIPI_FORMAT_RAW14, |
| MIPI_FORMAT_CUSTOM0 = 0x30, |
| MIPI_FORMAT_CUSTOM1, |
| MIPI_FORMAT_CUSTOM2, |
| MIPI_FORMAT_CUSTOM3, |
| MIPI_FORMAT_CUSTOM4, |
| MIPI_FORMAT_CUSTOM5, |
| MIPI_FORMAT_CUSTOM6, |
| MIPI_FORMAT_CUSTOM7, |
| //MIPI_FORMAT_RAW16, /*not supported by 2401*/ |
| //MIPI_FORMAT_RAW18, |
| N_MIPI_FORMAT |
| } mipi_format_t; |
| |
| #define N_MIPI_FORMAT_CUSTOM 8 |
| |
| /* The number of stores for compressed format types */ |
| #define N_MIPI_COMPRESSOR_CONTEXT (N_RX_CHANNEL_ID * N_MIPI_FORMAT_CUSTOM) |
| #define UNCOMPRESSED_BITS_PER_PIXEL_10 10 |
| #define UNCOMPRESSED_BITS_PER_PIXEL_12 12 |
| #define COMPRESSED_BITS_PER_PIXEL_6 6 |
| #define COMPRESSED_BITS_PER_PIXEL_7 7 |
| #define COMPRESSED_BITS_PER_PIXEL_8 8 |
| enum mipi_compressor { |
| MIPI_COMPRESSOR_NONE = 0, |
| MIPI_COMPRESSOR_10_6_10, |
| MIPI_COMPRESSOR_10_7_10, |
| MIPI_COMPRESSOR_10_8_10, |
| MIPI_COMPRESSOR_12_6_12, |
| MIPI_COMPRESSOR_12_7_12, |
| MIPI_COMPRESSOR_12_8_12, |
| N_MIPI_COMPRESSOR_METHODS |
| }; |
| |
| typedef enum { |
| MIPI_PREDICTOR_NONE = 0, |
| MIPI_PREDICTOR_TYPE1, |
| MIPI_PREDICTOR_TYPE2, |
| N_MIPI_PREDICTOR_TYPES |
| } mipi_predictor_t; |
| |
| typedef struct input_system_state_s input_system_state_t; |
| struct input_system_state_s { |
| ibuf_ctrl_state_t ibuf_ctrl_state[N_IBUF_CTRL_ID]; |
| csi_rx_fe_ctrl_state_t csi_rx_fe_ctrl_state[N_CSI_RX_FRONTEND_ID]; |
| csi_rx_be_ctrl_state_t csi_rx_be_ctrl_state[N_CSI_RX_BACKEND_ID]; |
| pixelgen_ctrl_state_t pixelgen_ctrl_state[N_PIXELGEN_ID]; |
| stream2mmio_state_t stream2mmio_state[N_STREAM2MMIO_ID]; |
| isys_irqc_state_t isys_irqc_state[N_ISYS_IRQ_ID]; |
| }; |
| #endif /* __INPUT_SYSTEM_LOCAL_H_INCLUDED__ */ |