1 #ifndef _LINUX_DISPLAY_RK_H
2 #define _LINUX_DISPLAY_RK_H
4 #include <linux/device.h>
6 #include <linux/list.h>
8 struct rk_display_device;
10 enum rk_display_priority {
11 DISPLAY_PRIORITY_TV = 0,
12 DISPLAY_PRIORITY_YPBPR,
14 DISPLAY_PRIORITY_HDMI,
23 /* This structure defines all the properties of a Display. */
24 struct rk_display_driver {
25 void (*suspend)(struct rk_display_device *, pm_message_t state);
26 void (*resume)(struct rk_display_device *);
27 int (*probe)(struct rk_display_device *, void *);
28 int (*remove)(struct rk_display_device *);
31 struct rk_display_ops {
32 int (*setenable)(struct rk_display_device *, int enable);
33 int (*getenable)(struct rk_display_device *);
34 int (*getstatus)(struct rk_display_device *);
35 int (*getmodelist)(struct rk_display_device *,
36 struct list_head **modelist);
37 int (*setmode)(struct rk_display_device *,
38 struct fb_videomode *mode);
39 int (*getmode)(struct rk_display_device *,
40 struct fb_videomode *mode);
41 int (*setscale)(struct rk_display_device *, int, int);
42 int (*getscale)(struct rk_display_device *, int);
43 int (*setdebug)(struct rk_display_device *, int);
44 int (*getedidaudioinfo)(struct rk_display_device *,
45 char *audioinfo, int len);
46 int (*getmonspecs)(struct rk_display_device *,
47 struct fb_monspecs *monspecs);
50 struct rk_display_device {
51 struct module *owner; /* Owner module */
52 struct rk_display_driver *driver;
53 struct device *parent; /* This is the parent */
54 struct device *dev; /* This is this display device */
60 struct rk_display_ops *ops;
62 struct list_head list;
65 struct rk_display_devicelist {
66 struct list_head list;
67 struct rk_display_device *dev;
70 struct rk_display_device
71 *rk_display_device_register(struct rk_display_driver *driver,
72 struct device *parent, void *devdata);
73 void rk_display_device_unregister(struct rk_display_device *dev);
74 void rk_display_device_enable(struct rk_display_device *ddev);
75 void rk_display_device_enable_other(struct rk_display_device *ddev);
76 void rk_display_device_disable_other(struct rk_display_device *ddev);
77 void rk_display_device_select(int priority);