static void ceres_panel_select(void) { struct tegra_panel *panel; u8 dsi_instance = 0; //Ivan //panel = &dsi_otm1283a_720p; if (tegra_get_board_panel_id()==11) { //LIUJ201140504RELE1315ADDO adc select lcd panel = &dsi_hx8394a_720p; panel_name = "Tcl_hx8394_HD_video_24bit\n"; } else if (tegra_get_board_panel_id()==1) { panel = &dsi_s_1080p_5; panel_name = "Sharp_s_1080p_HD_video_24bit\n"; } else { panel = &dsi_otm1283a_720p; panel_name = "Truly_otm1283a_HD_video_24bit\n"; } dsi_instance = DSI_INSTANCE_0; if (panel->init_sd_settings) panel->init_sd_settings(&sd_settings); if (panel->init_dc_out) { panel->init_dc_out(&ceres_disp1_out); ceres_disp1_out.dsi->dsi_instance = dsi_instance; ceres_disp1_out.dsi->dsi_panel_rst_gpio = DSI_PANEL_RST_GPIO; ceres_disp1_out.dsi->dsi_panel_bl_en_gpio = DSI_PANEL_BL_EN_GPIO; ceres_disp1_out.dsi->dsi_panel_bl_pwm_gpio = NULL; // DSI_PANEL_BL_PWM_GPIO; ceres_disp1_out.dsi->te_gpio = TE_GPIO; /* update the init cmd if dependent on reset GPIO */ tegra_dsi_update_init_cmd_gpio_rst(&ceres_disp1_out); } if (panel->init_fb_data) panel->init_fb_data(&ceres_disp1_fb_data); if (panel->init_cmu_data) panel->init_cmu_data(&ceres_disp1_pdata); if (panel->set_disp_device) panel->set_disp_device(&ceres_disp1_device); tegra_dsi_resources_init(dsi_instance, ceres_disp1_resources, ARRAY_SIZE(ceres_disp1_resources)); if (panel->register_bl_dev) panel->register_bl_dev(); }
static void pluto_panel_select(void) { struct tegra_panel *panel; struct board_info board; u8 dsi_instance = 0; tegra_get_display_board_info(&board); switch (board.board_id) { case BOARD_E1605: panel = &dsi_j_720p_4_7; dsi_instance = DSI_INSTANCE_1; break; case BOARD_E1577: panel = &dsi_s_1080p_5; break; case BOARD_E1582: default: if (tegra_get_board_panel_id()) { panel = &dsi_s_1080p_5; dsi_instance = DSI_INSTANCE_1; } else { panel = &dsi_l_720p_5; dsi_instance = DSI_INSTANCE_0; } break; } if (panel->init_sd_settings) panel->init_sd_settings(&sd_settings); if (panel->init_dc_out) { panel->init_dc_out(&pluto_disp1_out); pluto_disp1_out.dsi->dsi_instance = dsi_instance; pluto_disp1_out.dsi->dsi_panel_rst_gpio = DSI_PANEL_RST_GPIO; pluto_disp1_out.dsi->dsi_panel_bl_en_gpio = DSI_PANEL_BL_EN_GPIO; pluto_disp1_out.dsi->dsi_panel_bl_pwm_gpio = DSI_PANEL_BL_PWM_GPIO; /* update the init cmd if dependent on reset GPIO */ tegra_dsi_update_init_cmd_gpio_rst(&pluto_disp1_out); } if (panel->init_fb_data) panel->init_fb_data(&pluto_disp1_fb_data); if (panel->init_cmu_data) panel->init_cmu_data(&pluto_disp1_pdata); if (panel->set_disp_device) panel->set_disp_device(&pluto_disp1_device); tegra_dsi_resources_init(dsi_instance, pluto_disp1_resources, ARRAY_SIZE(pluto_disp1_resources)); if (panel->register_bl_dev) panel->register_bl_dev(); }
/* can be called multiple times */ static struct tegra_panel *ardbeg_panel_configure(struct board_info *board_out, u8 *dsi_instance_out) { struct tegra_panel *panel = NULL; u8 dsi_instance = DSI_INSTANCE_0; struct board_info boardtmp; if (!board_out) board_out = &boardtmp; tegra_get_display_board_info(board_out); switch (board_out->board_id) { case BOARD_E1639: case BOARD_E1813: panel = &dsi_s_wqxga_10_1; break; case BOARD_PM354: panel = &dsi_a_1080p_14_0; break; case BOARD_E1627: panel = &dsi_p_wuxga_10_1; tegra_io_dpd_enable(&dsic_io); tegra_io_dpd_enable(&dsid_io); break; case BOARD_E1549: panel = &dsi_lgd_wxga_7_0; break; case BOARD_E1937: switch (board_out->sku) { case 1100: panel = &dsi_a_1200_800_8_0; dsi_instance = DSI_INSTANCE_0; break; default: panel = &dsi_a_1200_1920_8_0; dsi_instance = DSI_INSTANCE_0; break; } break; case BOARD_PM363: case BOARD_E1824: switch (board_out->sku) { case 1200: panel = &edp_i_1080p_11_6; ardbeg_disp1_out.type = TEGRA_DC_OUT_NVSR_DP; break; default: panel = &edp_a_1080p_14_0; ardbeg_disp1_out.type = TEGRA_DC_OUT_DP; break; } ardbeg_disp1_out.dp_out = &dp_settings; ardbeg_disp1_device.resource = ardbeg_disp1_edp_resources; ardbeg_disp1_device.num_resources = ARRAY_SIZE(ardbeg_disp1_edp_resources); break; case BOARD_PM366: panel = &lvds_c_1366_14; ardbeg_disp1_out.type = TEGRA_DC_OUT_LVDS; ardbeg_disp1_device.resource = ardbeg_disp1_edp_resources; ardbeg_disp1_device.num_resources = ARRAY_SIZE(ardbeg_disp1_edp_resources); break; case BOARD_E1807: panel = &dsi_a_1200_800_8_0; dsi_instance = DSI_INSTANCE_0; tegra_io_dpd_enable(&dsic_io); tegra_io_dpd_enable(&dsid_io); break; case BOARD_P1761: if (tegra_get_board_panel_id()) panel = &dsi_a_1200_1920_8_0; else panel = &dsi_a_1200_800_8_0; dsi_instance = DSI_INSTANCE_0; tegra_io_dpd_enable(&dsic_io); tegra_io_dpd_enable(&dsid_io); break; default: panel = &dsi_p_wuxga_10_1; tegra_io_dpd_enable(&dsic_io); tegra_io_dpd_enable(&dsid_io); break; } if (dsi_instance_out) *dsi_instance_out = dsi_instance; return panel; }