1 /* include/linux/hdmi.h
\r
3 * This program is free software; you can redistribute it and/or modify
\r
4 * it under the terms of the GNU General Public License version 2 as
\r
5 * published by the Free Software Foundation.
\r
9 #ifndef __LINUX_HDMI_CORE_H
\r
10 #define __LINUX_HDMI_CORE_H
\r
12 #include <linux/device.h>
\r
13 #include <linux/workqueue.h>
\r
14 #include <linux/i2c.h>
\r
15 #include <linux/completion.h>
\r
16 #include <linux/wakelock.h>
\r
18 extern int debug_en;
\r
20 #define hdmi_dbg(dev, format, arg...) \
\r
23 dev_printk(KERN_INFO , dev , format , ## arg);\
\r
32 #define HDMI_DISABLE 0
\r
33 #define HDMI_ENABLE 1
\r
35 #define MIN_SCALE 80
\r
37 #define MOUSE_NONE 0x00
\r
38 #define MOUSE_LEFT_PRESS 0x01
\r
39 #define MOUSE_RIGHT_PRESS 0x02
\r
40 #define MOUSE_MIDDLE_PRESS 0x04
\r
41 #define HDMI_MOUSE_EVENT MOUSE_NONE
\r
43 #define DISP_ON_LCD 0
\r
44 #define DISP_ON_HDMI 1
\r
45 #define DISP_ON_LCD_AND_HDMI 2
\r
47 #ifdef CONFIG_HDMI_DUAL_DISP
\r
48 #define DUAL_DISP_CAP HDMI_ENABLE
\r
49 #define HDMI_DEFAULT_MODE DISP_ON_LCD_AND_HDMI
\r
51 #define DUAL_DISP_CAP HDMI_DISABLE
\r
52 #define HDMI_DEFAULT_MODE DISP_ON_HDMI
\r
55 #define HDMI_1920x1080p_50Hz 0
\r
56 #define HDMI_1920x1080p_60Hz 1
\r
57 #define HDMI_1280x720p_50Hz 2
\r
58 #define HDMI_1280x720p_60Hz 3
\r
59 #define HDMI_720x576p_50Hz_4x3 4
\r
60 #define HDMI_720x576p_50Hz_16x9 5
\r
61 #define HDMI_720x480p_60Hz_4x3 6
\r
62 #define HDMI_720x480p_60Hz_16x9 7
\r
64 /* HDMI default resolution */
\r
65 #define HDMI_DEFAULT_RESOLUTION HDMI_1920x1080p_50Hz
\r
67 #define HDMI_I2S_Fs_44100 0
\r
68 #define HDMI_I2S_Fs_48000 2
\r
69 /* I2S default sample rate */
\r
70 #define HDMI_I2S_DEFAULT_Fs HDMI_I2S_Fs_44100
\r
73 #define HDMI_MAX_ID 32
\r
76 int (*set_param)(struct hdmi *);
\r
77 int (*hdmi_precent)(struct hdmi *);
\r
78 int (*insert)(struct hdmi *);
\r
79 int (*remove)(struct hdmi *);
\r
80 int (*init)(struct hdmi*);
\r
96 struct timer_list timer;
\r
99 struct delayed_work work;
\r
100 struct completion complete;
\r
101 const struct hdmi_ops *ops;
\r
103 unsigned long priv[0] ____cacheline_aligned;
\r
105 extern int hdmi_is_insert(void);
\r
106 extern void *hdmi_priv(struct hdmi *hdmi);
\r
107 extern struct hdmi *hdmi_register(int extra, struct device *parent);
\r
108 extern void hdmi_unregister(struct hdmi *hdmi);
\r
109 extern void hdmi_changed(struct hdmi *hdmi, int msec);
\r
111 extern int hdmi_switch_fb(struct hdmi *hdmi, int type);
\r
112 extern void hdmi_suspend(struct hdmi *hdmi);
\r
113 extern void hdmi_resume(struct hdmi *hdmi);
\r
114 extern struct hdmi *get_hdmi_struct(int nr);
\r
116 extern void hdmi_set_spk(int on);
\r
117 extern void hdmi_set_backlight(int on);
\r
118 extern int hdmi_get_scale(void);
\r
119 extern int hdmi_set_scale(int event, char *data, int len);
\r
120 extern int fb_get_video_mode(void);
\r
121 extern int display_on_hdmi(void);
\r
122 extern int hdmi_get_data(void);
\r
123 extern int hdmi_set_data(int data);
\r