static int dsi_a_1200_800_8_0_enable(struct device *dev) { int err = 0; err = dsi_a_1200_800_8_0_regulator_get(dev); if (err < 0) { pr_err("dsi regulator get failed\n"); goto fail; } err = tegra_panel_gpio_get_dt("a,wxga-8-0", &panel_of); if (err < 0) { pr_err("dsi gpio request failed\n"); goto fail; } /* If panel rst gpio is specified in device tree, * use that. */ if (gpio_is_valid(panel_of.panel_gpio[TEGRA_GPIO_RESET])) en_panel_rst = panel_of.panel_gpio[TEGRA_GPIO_RESET]; if (avdd_lcd_3v3) { err = regulator_enable(avdd_lcd_3v3); if (err < 0) { pr_err("avdd_lcd regulator enable failed\n"); goto fail; } } if (dvdd_lcd_1v8) { err = regulator_enable(dvdd_lcd_1v8); if (err < 0) { pr_err("dvdd_lcd regulator enable failed\n"); goto fail; } } if (vdd_lcd_bl_en) { err = regulator_enable(vdd_lcd_bl_en); if (err < 0) { pr_err("vdd_lcd_bl_en regulator enable failed\n"); goto fail; } } msleep(100); #if DSI_PANEL_RESET gpio_direction_output(en_panel_rst, 1); usleep_range(1000, 5000); gpio_set_value(en_panel_rst, 0); msleep(150); gpio_set_value(en_panel_rst, 1); msleep(20); #endif return 0; fail: return err; }
static int dsi_l_720p_5_enable(struct device *dev) { int err = 0; err = dsi_l_720p_5_reg_get(); if (err < 0) { pr_err("dsi regulator get failed\n"); goto fail; } err = tegra_panel_gpio_get_dt("lg,720p-5", &panel_of); if (err < 0) { /* try to request gpios from board file */ err = dsi_l_720p_5_gpio_get(); if (err < 0) { pr_err("dsi gpio request failed\n"); goto fail; } } if (gpio_is_valid(panel_of.panel_gpio[TEGRA_GPIO_RESET])) gpio_direction_output( panel_of.panel_gpio[TEGRA_GPIO_RESET], 0); else gpio_direction_output( dsi_l_720p_5_pdata.dsi_panel_rst_gpio, 0); if (avdd_lcd_3v0_2v8) { err = regulator_enable(avdd_lcd_3v0_2v8); if (err < 0) { pr_err("avdd_lcd regulator enable failed\n"); goto fail; } regulator_set_voltage(avdd_lcd_3v0_2v8, 2800000, 2800000); } usleep_range(3000, 5000); if (vdd_lcd_s_1v8) { err = regulator_enable(vdd_lcd_s_1v8); if (err < 0) { pr_err("vdd_lcd_1v8_s regulator enable failed\n"); goto fail; } } usleep_range(3000, 5000); if (vdd_sys_bl_3v7) { err = regulator_enable(vdd_sys_bl_3v7); if (err < 0) { pr_err("vdd_sys_bl regulator enable failed\n"); goto fail; } } usleep_range(3000, 5000); #if DSI_PANEL_RESET err = tegra_panel_reset(&panel_of, 20); if (err < 0) { /* use platform data */ gpio_set_value(dsi_l_720p_5_pdata.dsi_panel_rst_gpio, 1); usleep_range(1000, 5000); gpio_set_value(dsi_l_720p_5_pdata.dsi_panel_rst_gpio, 0); usleep_range(1000, 5000); gpio_set_value(dsi_l_720p_5_pdata.dsi_panel_rst_gpio, 1); msleep(20); } #endif if (gpio_is_valid(panel_of.panel_gpio[TEGRA_GPIO_BL_ENABLE])) gpio_direction_output( panel_of.panel_gpio[TEGRA_GPIO_BL_ENABLE], 1); else gpio_direction_output( dsi_l_720p_5_pdata.dsi_panel_bl_en_gpio, 1); is_bl_powered = true; return 0; fail: return err; }
static int dsi_s_wqxga_10_1_postpoweron(struct device *dev) { int err = 0; if (machine_is_macallan()) err = macallan_dsi_regulator_get(dev); else err = dalmore_dsi_regulator_get(dev); if (err < 0) { pr_err("dsi regulator get failed\n"); goto fail; } err = tegra_panel_gpio_get_dt("s,wqxga-10-1", &panel_of); if (err < 0) { /* try to get gpios from board file */ if (machine_is_macallan()) err = macallan_dsi_gpio_get(); else err = dalmore_dsi_gpio_get(); if (err < 0) { pr_err("dsi gpio request failed\n"); goto fail; } } if (vdd_ds_1v8) { err = regulator_enable(vdd_ds_1v8); if (err < 0) { pr_err("vdd_ds_1v8 regulator enable failed\n"); goto fail; } } if (dvdd_lcd_1v8) { err = regulator_enable(dvdd_lcd_1v8); if (err < 0) { pr_err("dvdd_lcd regulator enable failed\n"); goto fail; } } if (avdd_lcd_3v3) { err = regulator_enable(avdd_lcd_3v3); if (err < 0) { pr_err("avdd_lcd regulator enable failed\n"); goto fail; } } /* panel ic requirement after vcc enable */ msleep(260); if (vdd_lcd_bl) { err = regulator_enable(vdd_lcd_bl); if (err < 0) { pr_err("vdd_lcd_bl regulator enable failed\n"); goto fail; } } if (vdd_lcd_bl_en) { err = regulator_enable(vdd_lcd_bl_en); if (err < 0) { pr_err("vdd_lcd_bl_en regulator enable failed\n"); goto fail; } } msleep(20); #if DSI_PANEL_RESET err = tegra_panel_reset(&panel_of, 20); if (err < 0) { /* use platform data */ gpio_direction_output( dsi_s_wqxga_10_1_pdata.dsi_panel_rst_gpio, 1); usleep_range(1000, 5000); gpio_set_value(dsi_s_wqxga_10_1_pdata.dsi_panel_rst_gpio, 0); usleep_range(1000, 5000); gpio_set_value(dsi_s_wqxga_10_1_pdata.dsi_panel_rst_gpio, 1); msleep(20); } #endif return 0; fail: return err; }
static int dsi_s_wqxga_10_1_postpoweron(struct device *dev) { int err = 0; err = dalmore_dsi_regulator_get(dev); if (err < 0) { pr_err("dsi regulator get failed\n"); goto fail; } err = tegra_panel_gpio_get_dt("s,wqxga-10-1", &panel_of); if (err < 0) { pr_err("dsi gpio request failed\n"); goto fail; } /* If panel rst gpio is specified in device tree, * use that. */ if (gpio_is_valid(panel_of.panel_gpio[TEGRA_GPIO_RESET])) en_panel_rst = panel_of.panel_gpio[TEGRA_GPIO_RESET]; if (dvdd_lcd_1v8) { err = regulator_enable(dvdd_lcd_1v8); if (err < 0) { pr_err("dvdd_lcd regulator enable failed\n"); goto fail; } } if (avdd_lcd_3v3) { err = regulator_enable(avdd_lcd_3v3); if (err < 0) { pr_err("avdd_lcd regulator enable failed\n"); goto fail; } } /* panel ic requirement after vcc enable */ msleep(260); if (vdd_lcd_bl) { err = regulator_enable(vdd_lcd_bl); if (err < 0) { pr_err("vdd_lcd_bl regulator enable failed\n"); goto fail; } } if (vdd_lcd_bl_en) { err = regulator_enable(vdd_lcd_bl_en); if (err < 0) { pr_err("vdd_lcd_bl_en regulator enable failed\n"); goto fail; } } msleep(20); #if DSI_PANEL_RESET /* use platform data */ gpio_direction_output(en_panel_rst, 1); usleep_range(1000, 5000); gpio_set_value(en_panel_rst, 0); usleep_range(1000, 5000); gpio_set_value(en_panel_rst, 1); msleep(20); #endif return 0; fail: return err; }
static int dsi_lgd_wxga_7_0_enable(struct device *dev) { int err = 0; err = tegratab_dsi_regulator_get(dev); if (err < 0) { pr_err("dsi regulator get failed\n"); goto fail; } err = tegra_panel_gpio_get_dt("lg,wxga-7", &panel_of); if (err < 0) { /* try to request gpios from board file */ err = tegratab_dsi_gpio_get(); if (err < 0) { pr_err("dsi gpio request failed\n"); goto fail; } } /* * Turning on 1.8V then AVDD after 5ms is required per spec. */ msleep(20); if (avdd_lcd_3v3) { err = regulator_enable(avdd_lcd_3v3); if (err < 0) { pr_err("avdd_lcd regulator enable failed\n"); goto fail; } regulator_set_voltage(avdd_lcd_3v3, 3300000, 3300000); } msleep(150); if (dvdd_lcd) { err = regulator_enable(dvdd_lcd); if (err < 0) { pr_err("dvdd_lcd regulator enable failed\n"); goto fail; } } msleep(100); if (vdd_lcd_bl_en) { err = regulator_enable(vdd_lcd_bl_en); if (err < 0) { pr_err("vdd_lcd_bl_en regulator enable failed\n"); goto fail; } } msleep(100); #if DSI_PANEL_RESET /* * Nothing is requested. */ #endif return 0; fail: return err; }
static int edp_a_1080p_14_0_enable(struct device *dev) { int err = 0; if (of_machine_is_compatible("nvidia,ardbeg")) err = ardbeg_edp_regulator_get(dev); else err = laguna_edp_regulator_get(dev); if (err < 0) { pr_err("edp regulator get failed\n"); goto fail; } err = tegra_panel_gpio_get_dt("a-edp,1080p-14-0", &panel_of); if (err < 0) { pr_err("edp gpio request failed\n"); goto fail; } if (vdd_lcd_bl) { err = regulator_enable(vdd_lcd_bl); if (err < 0) { pr_err("vdd_lcd_bl regulator enable failed\n"); goto fail; } } if (avdd_3v3_dp) { err = regulator_enable(avdd_3v3_dp); if (err < 0) { pr_err("avdd_3v3_dp regulator enable failed\n"); goto fail; } } msleep(20); if (vdd_ds_1v8) { err = regulator_enable(vdd_ds_1v8); if (err < 0) { pr_err("vdd_ds_1v8 regulator enable failed\n"); goto fail; } } if (avdd_lcd) { err = regulator_enable(avdd_lcd); if (err < 0) { pr_err("avdd_lcd regulator enable failed\n"); goto fail; } } msleep(10); if (vdd_lcd_bl_en) { err = regulator_enable(vdd_lcd_bl_en); if (err < 0) { pr_err("vdd_lcd_bl_en regulator enable failed\n"); goto fail; } } msleep(180); return 0; fail: return err; }