| .. SPDX-License-Identifier: GPL-2.0 | |
| .. include:: <isonum.txt> | |
| OMAP 3 Image Signal Processor (ISP) driver | |
| ========================================== | |
| Copyright |copy| 2010 Nokia Corporation | |
| Copyright |copy| 2009 Texas Instruments, Inc. | |
| Contacts: Laurent Pinchart <laurent.pinchart@ideasonboard.com>, | |
| Sakari Ailus <sakari.ailus@iki.fi>, David Cohen <dacohen@gmail.com> | |
| Introduction | |
| ------------ | |
| This file documents the Texas Instruments OMAP 3 Image Signal Processor (ISP) | |
| driver located under drivers/media/platform/ti/omap3isp. The original driver was | |
| written by Texas Instruments but since that it has been rewritten (twice) at | |
| Nokia. | |
| The driver has been successfully used on the following versions of OMAP 3: | |
| - 3430 | |
| - 3530 | |
| - 3630 | |
| The driver implements V4L2, Media controller and v4l2_subdev interfaces. | |
| Sensor, lens and flash drivers using the v4l2_subdev interface in the kernel | |
| are supported. | |
| Split to subdevs | |
| ---------------- | |
| The OMAP 3 ISP is split into V4L2 subdevs, each of the blocks inside the ISP | |
| having one subdev to represent it. Each of the subdevs provide a V4L2 subdev | |
| interface to userspace. | |
| - OMAP3 ISP CCP2 | |
| - OMAP3 ISP CSI2a | |
| - OMAP3 ISP CCDC | |
| - OMAP3 ISP preview | |
| - OMAP3 ISP resizer | |
| - OMAP3 ISP AEWB | |
| - OMAP3 ISP AF | |
| - OMAP3 ISP histogram | |
| Each possible link in the ISP is modelled by a link in the Media controller | |
| interface. For an example program see [#]_. | |
| Controlling the OMAP 3 ISP | |
| -------------------------- | |
| In general, the settings given to the OMAP 3 ISP take effect at the beginning | |
| of the following frame. This is done when the module becomes idle during the | |
| vertical blanking period on the sensor. In memory-to-memory operation the pipe | |
| is run one frame at a time. Applying the settings is done between the frames. | |
| All the blocks in the ISP, excluding the CSI-2 and possibly the CCP2 receiver, | |
| insist on receiving complete frames. Sensors must thus never send the ISP | |
| partial frames. | |
| Autoidle does have issues with some ISP blocks on the 3430, at least. | |
| Autoidle is only enabled on 3630 when the omap3isp module parameter autoidle | |
| is non-zero. | |
| Technical reference manuals (TRMs) and other documentation | |
| ---------------------------------------------------------- | |
| OMAP 3430 TRM: | |
| <URL:http://focus.ti.com/pdfs/wtbu/OMAP34xx_ES3.1.x_PUBLIC_TRM_vZM.zip> | |
| Referenced 2011-03-05. | |
| OMAP 35xx TRM: | |
| <URL:http://www.ti.com/litv/pdf/spruf98o> Referenced 2011-03-05. | |
| OMAP 3630 TRM: | |
| <URL:http://focus.ti.com/pdfs/wtbu/OMAP36xx_ES1.x_PUBLIC_TRM_vQ.zip> | |
| Referenced 2011-03-05. | |
| DM 3730 TRM: | |
| <URL:http://www.ti.com/litv/pdf/sprugn4h> Referenced 2011-03-06. | |
| References | |
| ---------- | |
| .. [#] http://git.ideasonboard.org/?p=media-ctl.git;a=summary |