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