static int enterprise_dsi_panel_enable(struct device *dev) { int ret; struct board_info board_info; tegra_get_board_info(&board_info); ret = avdd_dsi_csi_rail_enable(); if (ret) return ret; #if DSI_PANEL_RESET if ((board_info.fab >= BOARD_FAB_A03) || (board_info.board_id == BOARD_E1239)) { if (enterprise_lcd_reg == NULL) { enterprise_lcd_reg = regulator_get(dev, "lcd_vddio_en"); if (IS_ERR_OR_NULL(enterprise_lcd_reg)) { pr_err("Could not get regulator lcd_vddio_en\n"); ret = PTR_ERR(enterprise_lcd_reg); enterprise_lcd_reg = NULL; return ret; } } if (enterprise_lcd_reg != NULL) { ret = regulator_enable(enterprise_lcd_reg); if (ret < 0) { pr_err("Could not enable lcd_vddio_en\n"); return ret; } } } if (kernel_1st_panel_init == true) { ret = gpio_request(enterprise_dsi_panel_reset, "panel reset"); if (ret < 0) return ret; kernel_1st_panel_init = false; } else { ret = gpio_direction_output(enterprise_dsi_panel_reset, 0); if (ret < 0) { pr_err("%s: gpio_direction_ouput failed %d\n", __func__, ret); gpio_free(enterprise_dsi_panel_reset); return ret; } gpio_set_value(enterprise_dsi_panel_reset, 0); udelay(2000); gpio_set_value(enterprise_dsi_panel_reset, 1); mdelay(20); } #endif return ret; }
static int enterprise_dsi_panel_enable(void) { int ret; struct board_info board_info; tegra_get_board_info(&board_info); ret = avdd_dsi_csi_rail_enable(); if (ret) return ret; #if DSI_PANEL_RESET if (board_info.fab >= BOARD_FAB_A03) { if (enterprise_lcd_reg == NULL) { enterprise_lcd_reg = regulator_get(NULL, "lcd_vddio_en"); if (IS_ERR_OR_NULL(enterprise_lcd_reg)) { pr_err("Could not get regulator lcd_vddio_en\n"); ret = PTR_ERR(enterprise_lcd_reg); enterprise_lcd_reg = NULL; return ret; } } if (enterprise_lcd_reg != NULL) { ret = regulator_enable(enterprise_lcd_reg); if (ret < 0) { pr_err("Could not enable lcd_vddio_en\n"); return ret; } } } if (kernel_1st_panel_init != true) { ret = gpio_request(enterprise_dsi_panel_reset, "panel reset"); if (ret < 0) return ret; ret = gpio_direction_output(enterprise_dsi_panel_reset, 0); if (ret < 0) { gpio_free(enterprise_dsi_panel_reset); return ret; } tegra_gpio_enable(enterprise_dsi_panel_reset); gpio_set_value(enterprise_dsi_panel_reset, 0); udelay(2000); gpio_set_value(enterprise_dsi_panel_reset, 1); mdelay(20); } #endif return ret; }