static int __init lcdc_wxga_init(void) { int ret; struct msm_panel_info pinfo; #ifdef CONFIG_FB_MSM_MDDI_AUTO_DETECT if (msm_fb_detect_client("lcdc_wxga")) return 0; #endif pinfo.xres = 1280; pinfo.yres = 720; pinfo.type = LCDC_PANEL; pinfo.pdest = DISPLAY_1; pinfo.wait_cycle = 0; pinfo.bpp = 24; pinfo.fb_num = 2; pinfo.clk_rate = 74250000; pinfo.lcdc.h_back_porch = 124; pinfo.lcdc.h_front_porch = 110; pinfo.lcdc.h_pulse_width = 136; pinfo.lcdc.v_back_porch = 19; pinfo.lcdc.v_front_porch = 5; pinfo.lcdc.v_pulse_width = 6; pinfo.lcdc.border_clr = 0; pinfo.lcdc.underflow_clr = 0xff; pinfo.lcdc.hsync_skew = 0; ret = lcdc_device_register(&pinfo); if (ret) printk(KERN_ERR "%s: failed to register device!\n", __func__); return ret; }
static int __init lcdc_qrdc_init(void) { int ret; struct msm_panel_info pinfo; if (msm_fb_detect_client("lcdc_qrdc")) return 0; pinfo.xres = 1366; pinfo.yres = 768; pinfo.type = LCDC_PANEL; pinfo.pdest = DISPLAY_1; pinfo.wait_cycle = 0; pinfo.bpp = 24; pinfo.fb_num = 2; pinfo.clk_rate = 43192000; pinfo.lcdc.h_back_porch = 120; pinfo.lcdc.h_front_porch = 20; pinfo.lcdc.h_pulse_width = 40; pinfo.lcdc.v_back_porch = 25; pinfo.lcdc.v_front_porch = 1; pinfo.lcdc.v_pulse_width = 7; pinfo.lcdc.border_clr = 0; /* blk */ pinfo.lcdc.underflow_clr = 0xff; /* blue */ pinfo.lcdc.hsync_skew = 0; ret = lcdc_device_register(&pinfo); if (ret) printk(KERN_ERR "%s: failed to register device\n", __func__); return ret; }
static int __init lcdc_auo_init(void) { int ret; #ifdef CONFIG_FB_MSM_TRY_MDDI_CATCH_LCDC_PRISM ret = msm_fb_detect_client("lcdc_auo_wvga"); if (ret == -ENODEV) return 0; if (ret && (mddi_get_client_id() != 0)) return 0; #endif pinfo.xres = 480; pinfo.yres = 800; pinfo.type = LCDC_PANEL; pinfo.pdest = DISPLAY_1; pinfo.wait_cycle = 0; pinfo.bpp = 16; pinfo.fb_num = 2; pinfo.clk_rate = 24576000; /* 24.576MHz to match the SPEC. from AMSS */ pinfo.width = 46; /* physical width in mm */ pinfo.height = 77; /* physical height in mm */ pinfo.lcdc.h_back_porch = 12; pinfo.lcdc.h_front_porch = 16; pinfo.lcdc.h_pulse_width = 4; pinfo.lcdc.v_back_porch = 3; pinfo.lcdc.v_front_porch = 3; pinfo.lcdc.v_pulse_width = 2; pinfo.lcdc.border_clr = 0; /* blk */ pinfo.lcdc.underflow_clr = 0xff; /* blue */ pinfo.lcdc.hsync_skew = 0; ret = lcdc_device_register(&pinfo, &lcdc_auo_panel_data); if (ret) printk(KERN_ERR "%s: failed to register device!\n", __func__); auo_gpio_init(); return ret; }
static int __init lcdc_samsung_init(void) { int ret; #ifdef CONFIG_FB_MSM_TRY_MDDI_CATCH_LCDC_PRISM ret = msm_fb_detect_client("lcdc_samsung_wvga"); if (ret == -ENODEV) return 0; if (ret && (mddi_get_client_id() != 0)) return 0; #endif pinfo.xres = FB_XRES; pinfo.yres = FB_YRES; pinfo.type = LCDC_PANEL; pinfo.pdest = DISPLAY_1; pinfo.wait_cycle = 0; pinfo.bpp = VINFO_BPP; pinfo.fb_num = 2; pinfo.clk_rate = 24576000; /* 33.3MHz is limited from SUMSUNG datasheet */ pinfo.width = 48; /* physical width 48.24 mm */ pinfo.height = 81; /* physical height 80.4 mm */ pinfo.lcdc.h_back_porch = 8; pinfo.lcdc.h_front_porch = 8; pinfo.lcdc.h_pulse_width = 1; pinfo.lcdc.v_back_porch = 4; pinfo.lcdc.v_front_porch = 4; pinfo.lcdc.v_pulse_width = 4; pinfo.lcdc.border_clr = 0; /* blk */ pinfo.lcdc.underflow_clr = 0xff; /* blue */ pinfo.lcdc.hsync_skew = 0; ret = lcdc_device_register(&pinfo, &lcdc_samsung_panel_data); if (ret) printk(KERN_ERR "%s: failed to register device!\n", __func__); return ret; }
static int __init lcdc_prism_init(void) { int ret; struct msm_panel_info pinfo; #ifdef CONFIG_FB_MSM_TRY_MDDI_CATCH_LCDC_PRISM ret = msm_fb_detect_client("lcdc_prism_wvga"); if (ret == -ENODEV) return 0; if (ret && (mddi_get_client_id() != 0)) return 0; #endif pinfo.xres = 800; pinfo.yres = 480; MSM_FB_SINGLE_MODE_PANEL(&pinfo); pinfo.type = LCDC_PANEL; pinfo.pdest = DISPLAY_1; pinfo.wait_cycle = 0; pinfo.bpp = 24; pinfo.fb_num = 2; pinfo.clk_rate = 38400000; pinfo.lcdc.h_back_porch = 21; pinfo.lcdc.h_front_porch = 81; pinfo.lcdc.h_pulse_width = 60; pinfo.lcdc.v_back_porch = 18; pinfo.lcdc.v_front_porch = 27; pinfo.lcdc.v_pulse_width = 2; pinfo.lcdc.border_clr = 0; /* blk */ pinfo.lcdc.underflow_clr = 0xff; /* blue */ pinfo.lcdc.hsync_skew = 0; ret = lcdc_device_register(&pinfo); if (ret) printk(KERN_ERR "%s: failed to register device!\n", __func__); return ret; }
static int __init hdmi_sii_init(void) { int ret; struct msm_panel_info pinfo; if (msm_fb_detect_client("hdmi_sii9022")) return 0; pinfo.xres = 1280; pinfo.yres = 720; pinfo.type = HDMI_PANEL; pinfo.pdest = DISPLAY_1; pinfo.wait_cycle = 0; pinfo.bpp = 24; pinfo.fb_num = 2; pinfo.clk_rate = 74250000; pinfo.lcdc.h_back_porch = 124; pinfo.lcdc.h_front_porch = 110; pinfo.lcdc.h_pulse_width = 136; pinfo.lcdc.v_back_porch = 19; pinfo.lcdc.v_front_porch = 5; pinfo.lcdc.v_pulse_width = 6; pinfo.lcdc.border_clr = 0; pinfo.lcdc.underflow_clr = 0xff; pinfo.lcdc.hsync_skew = 0; ret = lcdc_device_register(&pinfo); if (ret) { ; goto init_exit; } ret = i2c_add_driver(&hdmi_sii_i2c_driver); if (ret) ; init_exit: return ret; }