mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
1.9 KiB
85 lines
1.9 KiB
/* SPDX-License-Identifier: GPL-2.0-only */ |
|
/* |
|
* ispccp2.h |
|
* |
|
* TI OMAP3 ISP - CCP2 module |
|
* |
|
* Copyright (C) 2010 Nokia Corporation |
|
* Copyright (C) 2010 Texas Instruments, Inc. |
|
* |
|
* Contacts: Laurent Pinchart <[email protected]> |
|
* Sakari Ailus <[email protected]> |
|
*/ |
|
|
|
#ifndef OMAP3_ISP_CCP2_H |
|
#define OMAP3_ISP_CCP2_H |
|
|
|
#include <linux/videodev2.h> |
|
|
|
struct isp_device; |
|
struct isp_csiphy; |
|
|
|
/* Sink and source ccp2 pads */ |
|
#define CCP2_PAD_SINK 0 |
|
#define CCP2_PAD_SOURCE 1 |
|
#define CCP2_PADS_NUM 2 |
|
|
|
/* CCP2 input media entity */ |
|
enum ccp2_input_entity { |
|
CCP2_INPUT_NONE, |
|
CCP2_INPUT_SENSOR, |
|
CCP2_INPUT_MEMORY, |
|
}; |
|
|
|
/* CCP2 output media entity */ |
|
enum ccp2_output_entity { |
|
CCP2_OUTPUT_NONE, |
|
CCP2_OUTPUT_CCDC, |
|
CCP2_OUTPUT_MEMORY, |
|
}; |
|
|
|
|
|
/* Logical channel configuration */ |
|
struct isp_interface_lcx_config { |
|
int crc; |
|
u32 data_start; |
|
u32 data_size; |
|
u32 format; |
|
}; |
|
|
|
/* Memory channel configuration */ |
|
struct isp_interface_mem_config { |
|
u32 dst_port; |
|
u32 vsize_count; |
|
u32 hsize_count; |
|
u32 src_ofst; |
|
u32 dst_ofst; |
|
}; |
|
|
|
/* CCP2 device */ |
|
struct isp_ccp2_device { |
|
struct v4l2_subdev subdev; |
|
struct v4l2_mbus_framefmt formats[CCP2_PADS_NUM]; |
|
struct media_pad pads[CCP2_PADS_NUM]; |
|
|
|
enum ccp2_input_entity input; |
|
enum ccp2_output_entity output; |
|
struct isp_interface_lcx_config if_cfg; |
|
struct isp_interface_mem_config mem_cfg; |
|
struct isp_video video_in; |
|
struct isp_csiphy *phy; |
|
struct regulator *vdds_csib; |
|
enum isp_pipeline_stream_state state; |
|
wait_queue_head_t wait; |
|
atomic_t stopping; |
|
}; |
|
|
|
/* Function declarations */ |
|
int omap3isp_ccp2_init(struct isp_device *isp); |
|
void omap3isp_ccp2_cleanup(struct isp_device *isp); |
|
int omap3isp_ccp2_register_entities(struct isp_ccp2_device *ccp2, |
|
struct v4l2_device *vdev); |
|
void omap3isp_ccp2_unregister_entities(struct isp_ccp2_device *ccp2); |
|
void omap3isp_ccp2_isr(struct isp_ccp2_device *ccp2); |
|
|
|
#endif /* OMAP3_ISP_CCP2_H */
|
|
|