86 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2/*3 * ispccp2.h4 *5 * TI OMAP3 ISP - CCP2 module6 *7 * Copyright (C) 2010 Nokia Corporation8 * 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_H15#define OMAP3_ISP_CCP2_H16 17#include <linux/videodev2.h>18 19struct isp_device;20struct isp_csiphy;21 22/* Sink and source ccp2 pads */23#define CCP2_PAD_SINK 024#define CCP2_PAD_SOURCE 125#define CCP2_PADS_NUM 226 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 */86