About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Documentation / video4linux / README.davinci-vpbe


Based on kernel version 4.7.2. Page generated on 2016-08-22 22:48 EST.

1	
2	                VPBE V4L2 driver design
3	 ======================================================================
4	
5	 File partitioning
6	 -----------------
7	 V4L2 display device driver
8	         drivers/media/platform/davinci/vpbe_display.c
9	         drivers/media/platform/davinci/vpbe_display.h
10	
11	 VPBE display controller
12	         drivers/media/platform/davinci/vpbe.c
13	         drivers/media/platform/davinci/vpbe.h
14	
15	 VPBE venc sub device driver
16	         drivers/media/platform/davinci/vpbe_venc.c
17	         drivers/media/platform/davinci/vpbe_venc.h
18	         drivers/media/platform/davinci/vpbe_venc_regs.h
19	
20	 VPBE osd driver
21	         drivers/media/platform/davinci/vpbe_osd.c
22	         drivers/media/platform/davinci/vpbe_osd.h
23	         drivers/media/platform/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.
Hide Line Numbers


About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog