예제 #1
0
void hdmi_main (LCD_TIMING timing)
{
	unsigned int i=0;
	//////////////////////////////////////////////////////
	//
	// initial EP932 variable and customer's GPIO + I2C (if need).
	//
	/////////////////////////////////////////////////////
	EP_HDMI_Init();

	/////////////////////////////////////////////////////
	//
	// set video interface and timing, timing need modify to fit with customer's require
	//
	/////////////////////////////////////////////////////
	EP_HDMI_Set_Video_Timing(timing);	

	EP_HDMI_Set_Video_Output(Video_OUT_YUV_444);
	////////////////////////////////////////////////////
	//
	// set audio interface
	//
	///////////////////////////////////////////////////
	EP_HDMI_SetAudFmt(AUD_I2S, AUD_SF_44100Hz);

	//////////////////////////////////////////////////////////////////
	//
	// need to run EP932Controller_Task and EP932Controller_Timer every 10ms
	//
	/////////////////////////////////////////////////////////////////
	while(1)
	{
		i++;
		if(i>200)
			break;

		EP932Controller_Task();
		EP932Controller_Timer();
	}
}
static int hdmi_i2c_probe(struct i2c_client *client, const struct i2c_device_id *id)
{
    disp_vdevice_init_data init_data;

    pr_info("[DISP_I2C] hdmi_i2c_probe\n");
    memset(&init_data, 0, sizeof(disp_vdevice_init_data));
    ep952_i2c_client = client;

    init_data.disp = hdmi_screen_id;
    memcpy(init_data.name, modules_name, 32);
    init_data.type = DISP_OUTPUT_TYPE_HDMI;
    init_data.fix_timing = 0;

    init_data.func.enable = ep952_open;
    init_data.func.disable = ep952_close;
    init_data.func.set_mode = ep952_set_mode;
    init_data.func.mode_support = ep952_get_mode_support;
    init_data.func.get_HPD_status = ep952_get_hpd_status;
    init_data.func.get_input_csc = ep952_get_input_csc;
    init_data.func.get_video_timing_info = ep952_get_video_timing_info;
	init_data.func.suspend = ep952_suspend;
	init_data.func.resume = ep952_resume;
	init_data.func.early_suspend = ep952_early_suspend;
	init_data.func.late_resume = ep952_late_resume;
    init_data.func.get_interface_para = ep952_hdmi_get_interface_para;
    disp_vdevice_get_source_ops(&hdmi_source_ops);
    hdmi_parse_config();
	EP_HDMI_Init();

    #if defined(CONFIG_SWITCH) || defined(CONFIG_ANDROID_SWITCH)
    switch_dev_register(&hdmi_switch_dev);
    #endif
	ep952_thread_enable();

    ep952_device = disp_vdevice_register(&init_data);

    return 0;
}