Merge ath-next from git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
[linux-2.6-block.git] / Documentation / media / v4l-drivers / davinci-vpbe.rst
CommitLineData
f2ac8ce8
MCC
1.. SPDX-License-Identifier: GPL-2.0
2
e0f10453
MCC
3The VPBE V4L2 driver design
4===========================
af60313d 5
e0f10453
MCC
6File partitioning
7-----------------
af60313d 8
af60313d 9 V4L2 display device driver
83c73537
LP
10 drivers/media/platform/davinci/vpbe_display.c
11 drivers/media/platform/davinci/vpbe_display.h
af60313d
MH
12
13 VPBE display controller
83c73537
LP
14 drivers/media/platform/davinci/vpbe.c
15 drivers/media/platform/davinci/vpbe.h
af60313d
MH
16
17 VPBE venc sub device driver
83c73537
LP
18 drivers/media/platform/davinci/vpbe_venc.c
19 drivers/media/platform/davinci/vpbe_venc.h
20 drivers/media/platform/davinci/vpbe_venc_regs.h
af60313d
MH
21
22 VPBE osd driver
83c73537
LP
23 drivers/media/platform/davinci/vpbe_osd.c
24 drivers/media/platform/davinci/vpbe_osd.h
25 drivers/media/platform/davinci/vpbe_osd_regs.h
af60313d 26
e0f10453
MCC
27Functional partitioning
28-----------------------
af60313d 29
e0f10453
MCC
30Consists of the following (in the same order as the list under file
31partitioning):
af60313d
MH
32
33 1. V4L2 display driver
34 Implements creation of video2 and video3 device nodes and
35 provides v4l2 device interface to manage VID0 and VID1 layers.
36
37 2. Display controller
38 Loads up VENC, OSD and external encoders such as ths8200. It provides
39 a set of API calls to V4L2 drivers to set the output/standards
40 in the VENC or external sub devices. It also provides
41 a device object to access the services from OSD subdevice
42 using sub device ops. The connection of external encoders to VENC LCD
43 controller port is done at init time based on default output and standard
44 selection or at run time when application change the output through
45 V4L2 IOCTLs.
46
47 When connected to an external encoder, vpbe controller is also responsible
48 for setting up the interface between VENC and external encoders based on
49 board specific settings (specified in board-xxx-evm.c). This allows
50 interfacing external encoders such as ths8200. The setup_if_config()
51 is implemented for this as well as configure_venc() (part of the next patch)
52 API to set timings in VENC for a specific display resolution. As of this
53 patch series, the interconnection and enabling and setting of the external
54 encoders is not present, and would be a part of the next patch series.
55
56 3. VENC subdevice module
57 Responsible for setting outputs provided through internal DACs and also
58 setting timings at LCD controller port when external encoders are connected
59 at the port or LCD panel timings required. When external encoder/LCD panel
60 is connected, the timings for a specific standard/preset is retrieved from
61 the board specific table and the values are used to set the timings in
62 venc using non-standard timing mode.
63
64 Support LCD Panel displays using the VENC. For example to support a Logic
65 PD display, it requires setting up the LCD controller port with a set of
66 timings for the resolution supported and setting the dot clock. So we could
67 add the available outputs as a board specific entry (i.e add the "LogicPD"
68 output name to board-xxx-evm.c). A table of timings for various LCDs
69 supported can be maintained in the board specific setup file to support
70 various LCD displays.As of this patch a basic driver is present, and this
71 support for external encoders and displays forms a part of the next
72 patch series.
73
74 4. OSD module
75 OSD module implements all OSD layer management and hardware specific
76 features. The VPBE module interacts with the OSD for enabling and
77 disabling appropriate features of the OSD.
78
e0f10453
MCC
79Current status
80--------------
af60313d 81
e0f10453
MCC
82A fully functional working version of the V4L2 driver is available. This
83driver has been tested with NTSC and PAL standards and buffer streaming.
af60313d 84
e0f10453
MCC
85To be done
86----------
af60313d 87
e0f10453 88vpbe display controller
af60313d
MH
89 - Add support for external encoders.
90 - add support for selecting external encoder as default at probe time.
91
e0f10453 92vpbe venc sub device
af60313d
MH
93 - add timings for supporting ths8200
94 - add support for LogicPD LCD.
95
e0f10453 96FB drivers
af60313d 97 - Add support for fbdev drivers.- Ready and part of subsequent patches.