4 /********************************************************************
6 ********************************************************************/
7 /* HDMI video mode code according CEA-861-E*/
10 HDMI_640x480p_60Hz = 1,
11 HDMI_720x480p_60Hz_4_3,
12 HDMI_720x480p_60Hz_16_9,
14 HDMI_1920x1080i_60Hz, //5
15 HDMI_720x480i_60Hz_4_3,
16 HDMI_720x480i_60Hz_16_9,
17 HDMI_720x240p_60Hz_4_3,
18 HDMI_720x240p_60Hz_16_9,
19 HDMI_2880x480i_60Hz_4_3, //10
20 HDMI_2880x480i_60Hz_16_9,
21 HDMI_2880x240p_60Hz_4_3,
22 HDMI_2880x240p_60Hz_16_9,
23 HDMI_1440x480p_60Hz_4_3,
24 HDMI_1440x480p_60Hz_16_9, //15
26 HDMI_720x576p_50Hz_4_3,
27 HDMI_720x576p_50Hz_16_9,
29 HDMI_1920x1080i_50Hz, //20
30 HDMI_720x576i_50Hz_4_3,
31 HDMI_720x576i_50Hz_16_9,
32 HDMI_720x288p_50Hz_4_3,
33 HDMI_720x288p_50Hz_16_9,
34 HDMI_2880x576i_50Hz_4_3, //25
35 HDMI_2880x576i_50Hz_16_9,
36 HDMI_2880x288p_50Hz_4_3,
37 HDMI_2880x288p_50Hz_16_9,
38 HDMI_1440x576p_50Hz_4_3,
39 HDMI_1440x576p_50Hz_16_9, //30
44 HDMI_2880x480p_60Hz_4_3, //35
45 HDMI_2880x480p_60Hz_16_9,
46 HDMI_2880x576p_50Hz_4_3,
47 HDMI_2880x576p_50Hz_16_9,
48 HDMI_1920x1080i_50Hz_2, // V Line 1250 total
49 HDMI_1920x1080i_100Hz, //40
51 HDMI_720x576p_100Hz_4_3,
52 HDMI_720x576p_100Hz_16_9,
53 HDMI_720x576i_100Hz_4_3,
54 HDMI_720x576i_100Hz_16_9, //45
55 HDMI_1920x1080i_120Hz,
57 HDMI_720x480p_120Hz_4_3,
58 HDMI_720x480p_120Hz_16_9,
59 HDMI_720x480i_120Hz_4_3, //50
60 HDMI_720x480i_120Hz_16_9,
61 HDMI_720x576p_200Hz_4_3,
62 HDMI_720x576p_200Hz_16_9,
63 HDMI_720x576i_200Hz_4_3,
64 HDMI_720x576i_200Hz_16_9, //55
65 HDMI_720x480p_240Hz_4_3,
66 HDMI_720x480p_240Hz_16_9,
67 HDMI_720x480i_240Hz_4_3,
68 HDMI_720x480i_240Hz_16_9,
69 HDMI_1280x720p_24Hz, //60
72 HDMI_1920x1080p_120Hz,
73 HDMI_1920x1080p_100Hz,
76 /* HDMI Video Data Color Mode */
91 HDMI_AUDIO_AAC_LC, //AAC
94 HDMI_AUDIO_DSD, //One bit Audio
104 HDMI_AUDIO_FS_32000 = 0x1,
105 HDMI_AUDIO_FS_44100 = 0x2,
106 HDMI_AUDIO_FS_48000 = 0x4,
107 HDMI_AUDIO_FS_88200 = 0x8,
108 HDMI_AUDIO_FS_96000 = 0x10,
109 HDMI_AUDIO_FS_176400 = 0x20,
110 HDMI_AUDIO_FS_192000 = 0x40
113 /* Audio Word Length */
114 enum hdmi_audio_word_length {
115 HDMI_AUDIO_WORD_LENGTH_16bit = 0x1,
116 HDMI_AUDIO_WORD_LENGTH_20bit = 0x2,
117 HDMI_AUDIO_WORD_LENGTH_24bit = 0x4
120 /* EDID block size */
121 #define HDMI_EDID_BLOCK_SIZE 128
123 // HDMI state machine
136 // HDMI configuration command
138 HDMI_CONFIG_NONE = 0,
148 // HDMI Hotplug status
150 HDMI_HPD_REMOVED = 0,
156 #define HDMI_DISABLE 0
157 #define HDMI_ENABLE 1
158 #define HDMI_UNKOWN 0xFF
160 /* HDMI Error Code */
163 HDMI_ERROR_SUCESS = 0,
169 /* HDMI audio parameters */
171 u32 type; //Audio type
172 u32 channel; //Audio channel number
173 u32 rate; //Audio sampling rate
174 u32 word_length; //Audio data word length
178 unsigned char sink_hdmi; //HDMI display device flag
179 unsigned char ycbcr444; //Display device support YCbCr444
180 unsigned char ycbcr422; //Display device support YCbCr422
181 unsigned char deepcolor; //bit3:DC_48bit; bit2:DC_36bit; bit1:DC_30bit; bit0:DC_Y444;
182 struct fb_monspecs *specs; //Device spec
183 struct list_head modelist; //Device supported display mode list
184 struct hdmi_audio *audio; //Device supported audio info
185 int audio_num; //Device supported audio type number
188 extern const struct fb_videomode hdmi_mode[];
190 #define hdmi_err(dev, format, arg...) \
191 dev_printk(KERN_ERR , dev , format , ## arg)
194 #define hdmi_dbg(dev, format, arg...) \
195 dev_printk(KERN_INFO , dev , format , ## arg)
197 #define hdmi_dbg(dev, format, arg...)
200 extern int hdmi_get_hotplug(void);
201 extern int hdmi_set_info(struct rk29fb_screen *screen, unsigned int vic);
202 extern void hdmi_init_lcdc(struct rk29fb_screen *screen, struct rk29lcd_info *lcd_info);