Back to home page

OSCL-LXR

 
 

    


0001 .. SPDX-License-Identifier: GPL-2.0
0002 
0003 The VPBE V4L2 driver design
0004 ===========================
0005 
0006 Functional partitioning
0007 -----------------------
0008 
0009 Consists of the following:
0010 
0011  1. V4L2 display driver
0012 
0013     Implements creation of video2 and video3 device nodes and
0014     provides v4l2 device interface to manage VID0 and VID1 layers.
0015 
0016  2. Display controller
0017 
0018     Loads up VENC, OSD and external encoders such as ths8200. It provides
0019     a set of API calls to V4L2 drivers to set the output/standards
0020     in the VENC or external sub devices. It also provides
0021     a device object to access the services from OSD subdevice
0022     using sub device ops. The connection of external encoders to VENC LCD
0023     controller port is done at init time based on default output and standard
0024     selection or at run time when application change the output through
0025     V4L2 IOCTLs.
0026 
0027     When connected to an external encoder, vpbe controller is also responsible
0028     for setting up the interface between VENC and external encoders based on
0029     board specific settings (specified in board-xxx-evm.c). This allows
0030     interfacing external encoders such as ths8200. The setup_if_config()
0031     is implemented for this as well as configure_venc() (part of the next patch)
0032     API to set timings in VENC for a specific display resolution. As of this
0033     patch series, the interconnection and enabling and setting of the external
0034     encoders is not present, and would be a part of the next patch series.
0035 
0036  3. VENC subdevice module
0037 
0038     Responsible for setting outputs provided through internal DACs and also
0039     setting timings at LCD controller port when external encoders are connected
0040     at the port or LCD panel timings required. When external encoder/LCD panel
0041     is connected, the timings for a specific standard/preset is retrieved from
0042     the board specific table and the values are used to set the timings in
0043     venc using non-standard timing mode.
0044 
0045     Support LCD Panel displays using the VENC. For example to support a Logic
0046     PD display, it requires setting up the LCD controller port with a set of
0047     timings for the resolution supported and setting the dot clock. So we could
0048     add the available outputs as a board specific entry (i.e add the "LogicPD"
0049     output name to board-xxx-evm.c). A table of timings for various LCDs
0050     supported can be maintained in the board specific setup file to support
0051     various LCD displays.As of this patch a basic driver is present, and this
0052     support for external encoders and displays forms a part of the next
0053     patch series.
0054 
0055  4. OSD module
0056 
0057     OSD module implements all OSD layer management and hardware specific
0058     features. The VPBE module interacts with the OSD for enabling and
0059     disabling appropriate features of the OSD.
0060 
0061 Current status
0062 --------------
0063 
0064 A fully functional working version of the V4L2 driver is available. This
0065 driver has been tested with NTSC and PAL standards and buffer streaming.