ispccp2.h (1913B)
1/* SPDX-License-Identifier: GPL-2.0-only */ 2/* 3 * ispccp2.h 4 * 5 * TI OMAP3 ISP - CCP2 module 6 * 7 * Copyright (C) 2010 Nokia Corporation 8 * Copyright (C) 2010 Texas Instruments, Inc. 9 * 10 * Contacts: Laurent Pinchart <laurent.pinchart@ideasonboard.com> 11 * Sakari Ailus <sakari.ailus@iki.fi> 12 */ 13 14#ifndef OMAP3_ISP_CCP2_H 15#define OMAP3_ISP_CCP2_H 16 17#include <linux/videodev2.h> 18 19struct isp_device; 20struct isp_csiphy; 21 22/* Sink and source ccp2 pads */ 23#define CCP2_PAD_SINK 0 24#define CCP2_PAD_SOURCE 1 25#define CCP2_PADS_NUM 2 26 27/* CCP2 input media entity */ 28enum ccp2_input_entity { 29 CCP2_INPUT_NONE, 30 CCP2_INPUT_SENSOR, 31 CCP2_INPUT_MEMORY, 32}; 33 34/* CCP2 output media entity */ 35enum ccp2_output_entity { 36 CCP2_OUTPUT_NONE, 37 CCP2_OUTPUT_CCDC, 38 CCP2_OUTPUT_MEMORY, 39}; 40 41 42/* Logical channel configuration */ 43struct isp_interface_lcx_config { 44 int crc; 45 u32 data_start; 46 u32 data_size; 47 u32 format; 48}; 49 50/* Memory channel configuration */ 51struct isp_interface_mem_config { 52 u32 dst_port; 53 u32 vsize_count; 54 u32 hsize_count; 55 u32 src_ofst; 56 u32 dst_ofst; 57}; 58 59/* CCP2 device */ 60struct isp_ccp2_device { 61 struct v4l2_subdev subdev; 62 struct v4l2_mbus_framefmt formats[CCP2_PADS_NUM]; 63 struct media_pad pads[CCP2_PADS_NUM]; 64 65 enum ccp2_input_entity input; 66 enum ccp2_output_entity output; 67 struct isp_interface_lcx_config if_cfg; 68 struct isp_interface_mem_config mem_cfg; 69 struct isp_video video_in; 70 struct isp_csiphy *phy; 71 struct regulator *vdds_csib; 72 enum isp_pipeline_stream_state state; 73 wait_queue_head_t wait; 74 atomic_t stopping; 75}; 76 77/* Function declarations */ 78int omap3isp_ccp2_init(struct isp_device *isp); 79void omap3isp_ccp2_cleanup(struct isp_device *isp); 80int omap3isp_ccp2_register_entities(struct isp_ccp2_device *ccp2, 81 struct v4l2_device *vdev); 82void omap3isp_ccp2_unregister_entities(struct isp_ccp2_device *ccp2); 83void omap3isp_ccp2_isr(struct isp_ccp2_device *ccp2); 84 85#endif /* OMAP3_ISP_CCP2_H */