2 * Copyright (C) 2011-2013 Freescale Semiconductor, Inc. All Rights Reserved.
6 * The code contained herein is licensed under the GNU General Public
7 * License. You may obtain a copy of the GNU General Public License
8 * Version 2 or later at the following locations:
10 * http://www.opensource.org/licenses/gpl-license.html
11 * http://www.gnu.org/copyleft/gpl.html
13 #ifndef __MXC_DISPDRV_H__
14 #define __MXC_DISPDRV_H__
16 #include <video/display_timing.h>
18 struct mxc_dispdrv_handle {
19 struct mxc_dispdrv_driver *drv;
22 struct mxc_dispdrv_setting {
23 /*input-feedback parameter*/
29 /*feedback parameter*/
32 enum display_flags disp_flags;
35 struct mxc_dispdrv_driver {
37 int (*init) (struct mxc_dispdrv_handle *, struct mxc_dispdrv_setting *);
38 /* deferred operations after dev_id and disp_id pass usage check */
39 int (*post_init) (struct mxc_dispdrv_handle *, int dev_id, int disp_id);
40 void (*deinit) (struct mxc_dispdrv_handle *);
41 /* display driver enable function for extension */
42 int (*enable) (struct mxc_dispdrv_handle *);
43 /* display driver disable function, called at early part of fb_blank */
44 void (*disable) (struct mxc_dispdrv_handle *);
45 /* display driver setup function, called at early part of fb_set_par */
46 int (*setup) (struct mxc_dispdrv_handle *, struct fb_info *fbi);
49 struct mxc_dispdrv_handle *mxc_dispdrv_register(struct mxc_dispdrv_driver *drv);
50 int mxc_dispdrv_unregister(struct mxc_dispdrv_handle *handle);
51 struct mxc_dispdrv_handle *mxc_dispdrv_gethandle(char *name,
52 struct mxc_dispdrv_setting *setting);
53 void mxc_dispdrv_puthandle(struct mxc_dispdrv_handle *handle);
54 int mxc_dispdrv_setdata(struct mxc_dispdrv_handle *handle, void *data);
55 void *mxc_dispdrv_getdata(struct mxc_dispdrv_handle *handle);