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;
34 struct fb_videomode *fbmode;
37 struct mxc_dispdrv_driver {
39 int (*init) (struct mxc_dispdrv_handle *, struct mxc_dispdrv_setting *);
40 /* deferred operations after dev_id and disp_id pass usage check */
41 int (*post_init) (struct mxc_dispdrv_handle *, int dev_id, int disp_id);
42 void (*deinit) (struct mxc_dispdrv_handle *);
43 /* display driver enable function for extension */
44 int (*enable) (struct mxc_dispdrv_handle *);
45 /* display driver disable function, called at early part of fb_blank */
46 void (*disable) (struct mxc_dispdrv_handle *);
47 /* display driver setup function, called at early part of fb_set_par */
48 int (*setup) (struct mxc_dispdrv_handle *, struct fb_info *fbi);
51 struct mxc_dispdrv_handle *mxc_dispdrv_register(struct mxc_dispdrv_driver *drv);
52 int mxc_dispdrv_unregister(struct mxc_dispdrv_handle *handle);
53 struct mxc_dispdrv_handle *mxc_dispdrv_gethandle(char *name,
54 struct mxc_dispdrv_setting *setting);
55 void mxc_dispdrv_puthandle(struct mxc_dispdrv_handle *handle);
56 int mxc_dispdrv_setdata(struct mxc_dispdrv_handle *handle, void *data);
57 void *mxc_dispdrv_getdata(struct mxc_dispdrv_handle *handle);