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__
17 struct mxc_dispdrv_handle {
18 struct mxc_dispdrv_driver *drv;
21 struct mxc_dispdrv_setting {
22 /*input-feedback parameter*/
28 /*feedback parameter*/
33 struct mxc_dispdrv_driver {
35 int (*init) (struct mxc_dispdrv_handle *, struct mxc_dispdrv_setting *);
36 /* deferred operations after dev_id and disp_id pass usage check */
37 int (*post_init) (struct mxc_dispdrv_handle *, int dev_id, int disp_id);
38 void (*deinit) (struct mxc_dispdrv_handle *);
39 /* display driver enable function for extension */
40 int (*enable) (struct mxc_dispdrv_handle *);
41 /* display driver disable function, called at early part of fb_blank */
42 void (*disable) (struct mxc_dispdrv_handle *);
43 /* display driver setup function, called at early part of fb_set_par */
44 int (*setup) (struct mxc_dispdrv_handle *, struct fb_info *fbi);
47 struct mxc_dispdrv_handle *mxc_dispdrv_register(struct mxc_dispdrv_driver *drv);
48 int mxc_dispdrv_unregister(struct mxc_dispdrv_handle *handle);
49 struct mxc_dispdrv_handle *mxc_dispdrv_gethandle(char *name,
50 struct mxc_dispdrv_setting *setting);
51 void mxc_dispdrv_puthandle(struct mxc_dispdrv_handle *handle);
52 int mxc_dispdrv_setdata(struct mxc_dispdrv_handle *handle, void *data);
53 void *mxc_dispdrv_getdata(struct mxc_dispdrv_handle *handle);