| /* |
| * Copyright (C) 2012 Texas Instruments Inc |
| * |
| * This program is free software; you can redistribute it and/or |
| * modify it under the terms of the GNU General Public License as |
| * published by the Free Software Foundation version 2. |
| * |
| * This program is distributed in the hope that 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. |
| * |
| * You should have received a copy of the GNU General Public License |
| * along with this program; if not, write to the Free Software |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
| * |
| * Contributors: |
| * Manjunath Hadli <manjunath.hadli@ti.com> |
| * Prabhakar Lad <prabhakar.lad@ti.com> |
| */ |
| |
| #ifndef _DAVINCI_VPFE_MC_CAPTURE_H |
| #define _DAVINCI_VPFE_MC_CAPTURE_H |
| |
| #include "dm365_ipipe.h" |
| #include "dm365_ipipeif.h" |
| #include "dm365_isif.h" |
| #include "dm365_resizer.h" |
| #include "vpfe_video.h" |
| |
| #define VPFE_MAJOR_RELEASE 0 |
| #define VPFE_MINOR_RELEASE 0 |
| #define VPFE_BUILD 1 |
| #define VPFE_CAPTURE_VERSION_CODE ((VPFE_MAJOR_RELEASE << 16) | \ |
| (VPFE_MINOR_RELEASE << 8) | \ |
| VPFE_BUILD) |
| |
| /* IPIPE hardware limits */ |
| #define IPIPE_MAX_OUTPUT_WIDTH_A 2176 |
| #define IPIPE_MAX_OUTPUT_WIDTH_B 640 |
| |
| /* Based on max resolution supported. QXGA */ |
| #define IPIPE_MAX_OUTPUT_HEIGHT_A 1536 |
| /* Based on max resolution supported. VGA */ |
| #define IPIPE_MAX_OUTPUT_HEIGHT_B 480 |
| |
| #define to_vpfe_device(ptr_module) \ |
| container_of(ptr_module, struct vpfe_device, vpfe_##ptr_module) |
| #define to_device(ptr_module) \ |
| (to_vpfe_device(ptr_module)->dev) |
| |
| struct vpfe_device { |
| /* external registered sub devices */ |
| struct v4l2_subdev **sd; |
| /* number of registered external subdevs */ |
| unsigned int num_ext_subdevs; |
| /* vpfe cfg */ |
| struct vpfe_config *cfg; |
| /* clock ptrs for vpfe capture */ |
| struct clk **clks; |
| /* V4l2 device */ |
| struct v4l2_device v4l2_dev; |
| /* parent device */ |
| struct device *pdev; |
| /* IRQ number for DMA transfer completion at the image processor */ |
| unsigned int imp_dma_irq; |
| /* CCDC IRQs used when CCDC/ISIF output to SDRAM */ |
| unsigned int ccdc_irq0; |
| unsigned int ccdc_irq1; |
| /* media device */ |
| struct media_device media_dev; |
| /* ccdc subdevice */ |
| struct vpfe_isif_device vpfe_isif; |
| /* ipipeif subdevice */ |
| struct vpfe_ipipeif_device vpfe_ipipeif; |
| /* ipipe subdevice */ |
| struct vpfe_ipipe_device vpfe_ipipe; |
| /* resizer subdevice */ |
| struct vpfe_resizer_device vpfe_resizer; |
| }; |
| |
| /* File handle structure */ |
| struct vpfe_fh { |
| struct v4l2_fh vfh; |
| struct vpfe_video_device *video; |
| /* Indicates whether this file handle is doing IO */ |
| u8 io_allowed; |
| }; |
| |
| void mbus_to_pix(const struct v4l2_mbus_framefmt *mbus, |
| struct v4l2_pix_format *pix); |
| |
| #endif /* _DAVINCI_VPFE_MC_CAPTURE_H */ |