static int mdss_dsi_ctrl_remove(struct platform_device *pdev) { struct msm_fb_data_type *mfd; struct mdss_dsi_ctrl_pdata *ctrl_pdata = platform_get_drvdata(pdev); int i = 0; if (!ctrl_pdata) { pr_err("%s: no driver data\n", __func__); return -ENODEV; } for (i = DSI_MAX_PM - 1; i >= 0; i--) { if (msm_dss_config_vreg(&pdev->dev, ctrl_pdata->power_data[i].vreg_config, ctrl_pdata->power_data[i].num_vreg, 1) < 0) pr_err("%s: failed to de-init vregs for %s\n", __func__, __mdss_dsi_pm_name(i)); mdss_dsi_put_dt_vreg_data(&pdev->dev, &ctrl_pdata->power_data[i]); } mfd = platform_get_drvdata(pdev); msm_dss_iounmap(&ctrl_pdata->mmss_misc_io); msm_dss_iounmap(&ctrl_pdata->phy_io); msm_dss_iounmap(&ctrl_pdata->ctrl_io); return 0; }
//---duguowei static int mdss_dsi_regulator_init(struct platform_device *pdev) { int rc = 0; struct mdss_dsi_ctrl_pdata *ctrl_pdata = NULL; int i = 0; if (!pdev) { pr_err("%s: invalid input\n", __func__); return -EINVAL; } ctrl_pdata = platform_get_drvdata(pdev); if (!ctrl_pdata) { pr_err("%s: invalid driver data\n", __func__); return -EINVAL; } for (i = 0; !rc && (i < DSI_MAX_PM); i++) { rc = msm_dss_config_vreg(&pdev->dev, ctrl_pdata->power_data[i].vreg_config, ctrl_pdata->power_data[i].num_vreg, 1); if (rc) pr_err("%s: failed to init vregs for %s\n", __func__, __mdss_dsi_pm_name(i)); } return rc; }
int msm_dsi_io_init(struct platform_device *pdev, struct dss_module_power *mp) { int rc; if (!dsi_io_private) { dsi_io_private = kzalloc(sizeof(struct msm_dsi_io_private), GFP_KERNEL); if (!dsi_io_private) { pr_err("fail to alloc dsi io private data structure\n"); return -ENOMEM; } } rc = msm_dsi_clk_init(pdev); if (rc) { pr_err("fail to initialize DSI clock\n"); return rc; } rc = msm_dss_config_vreg(&pdev->dev, mp->vreg_config, mp->num_vreg, 1); if (rc) { pr_err("fail to initialize DSI regulator\n"); return rc; } return 0; }
void msm_dsi_io_deinit(struct platform_device *pdev, struct dss_module_power *mp) { if (dsi_io_private) { msm_dsi_clk_deinit(); msm_dss_config_vreg(&pdev->dev, mp->vreg_config, mp->num_vreg, 0); kfree(dsi_io_private); dsi_io_private = NULL; } }
static int mdss_dsi_regulator_init(struct platform_device *pdev) { int rc = 0; struct mdss_dsi_ctrl_pdata *ctrl_pdata = NULL; int i = 0; /* #if defined(CONFIG_FB_MSM_MIPI_SAMSUNG_OCTA_CMD_WQHD_PT_PANEL)|| \ defined(CONFIG_FB_MSM_MIPI_SAMSUNG_OCTA_CMD_FHD_FA2_PT_PANEL) || \ defined(CONFIG_FB_MSM_MIPI_SAMSUNG_OCTA_S6E3HA2_CMD_WQHD_PT_PANEL) || \ defined(CONFIG_FB_MSM_MIPI_SAMSUNG_OCTA_S6E3HA2_CMD_WQXGA_PT_PANEL) struct dsi_drv_cm_data *dsi_drv = NULL; #endif */ struct dsi_drv_cm_data *dsi_drv = NULL; if (!pdev) { pr_err("%s: invalid input\n", __func__); return -EINVAL; } ctrl_pdata = platform_get_drvdata(pdev); if (!ctrl_pdata) { pr_err("%s: invalid driver data\n", __func__); return -EINVAL; } dsi_drv = &(ctrl_pdata->shared_pdata); pr_info("mdss_dsi_regulator_init %s\n", dev_name(&pdev->dev)); dsi_drv->vdd_vreg = devm_regulator_get(&pdev->dev, "vdd"); if (IS_ERR(dsi_drv->vdd_vreg)) { pr_err("%s: could not get vddreg, rc=%ld\n", __func__, PTR_ERR(dsi_drv->vdd_vreg)); return PTR_ERR(dsi_drv->vdd_vreg); } else { pr_info("%s: vdd - pma8084_l22 (i/o) init.. \n", __func__); } for (i = 0; !rc && (i < DSI_MAX_PM); i++) { rc = msm_dss_config_vreg(&pdev->dev, ctrl_pdata->power_data[i].vreg_config, ctrl_pdata->power_data[i].num_vreg, 1); if (rc) pr_err("%s: failed to init vregs for %s\n", __func__, __mdss_dsi_pm_name(i)); } return rc; }
static int mdss_dsi_regulator_init(struct platform_device *pdev) { struct mdss_dsi_ctrl_pdata *ctrl_pdata = NULL; if (!pdev) { pr_err("%s: invalid input\n", __func__); return -EINVAL; } ctrl_pdata = platform_get_drvdata(pdev); if (!ctrl_pdata) { pr_err("%s: invalid driver data\n", __func__); return -EINVAL; } return msm_dss_config_vreg(&pdev->dev, ctrl_pdata->power_data.vreg_config, ctrl_pdata->power_data.num_vreg, 1); }
static int __devexit mdss_dsi_ctrl_remove(struct platform_device *pdev) { struct msm_fb_data_type *mfd; struct mdss_dsi_ctrl_pdata *ctrl_pdata = platform_get_drvdata(pdev); if (!ctrl_pdata) { pr_err("%s: no driver data\n", __func__); return -ENODEV; } if (msm_dss_config_vreg(&pdev->dev, ctrl_pdata->power_data.vreg_config, ctrl_pdata->power_data.num_vreg, 1) < 0) pr_err("%s: failed to de-init vregs\n", __func__); mdss_dsi_put_dt_vreg_data(&pdev->dev, &ctrl_pdata->power_data); mfd = platform_get_drvdata(pdev); iounmap(mdss_dsi_base); return 0; }
static int mdss_dsi_regulator_init(struct platform_device *pdev) { int ret = 0; struct mdss_dsi_ctrl_pdata *ctrl_pdata = NULL; struct dsi_drv_cm_data *dsi_drv = NULL; struct device_node *node = NULL; if (!pdev) { pr_err("%s: invalid input\n", __func__); return -EINVAL; } node = pdev->dev.of_node; /* * if "qcom,mdss-dsi-use-vdd-supply" property is not exist, we * assume that it is used in board. if don't want vdd-supply, * please use "qcom,mdss-dsi-use-vdd-supply=<0>" in your dtsi. */ of_property_read_u32(node, "qcom,mdss-dsi-use-vdd-supply", &mdss_dsi_use_vdd_supply); ctrl_pdata = platform_get_drvdata(pdev); if (!ctrl_pdata) { pr_err("%s: invalid driver data\n", __func__); return -EINVAL; } dsi_drv = &(ctrl_pdata->shared_pdata); if (ctrl_pdata->power_data.num_vreg > 0) { ret = msm_dss_config_vreg(&pdev->dev, ctrl_pdata->power_data.vreg_config, ctrl_pdata->power_data.num_vreg, 1); } else { if (mdss_dsi_use_vdd_supply) { dsi_drv->vdd_vreg = devm_regulator_get(&pdev->dev, "vdd"); if (IS_ERR(dsi_drv->vdd_vreg)) { pr_err("%s: could not get vdd vreg, rc=%ld\n", __func__, PTR_ERR(dsi_drv->vdd_vreg)); return PTR_ERR(dsi_drv->vdd_vreg); } ret = regulator_set_voltage(dsi_drv->vdd_vreg, 3000000, 3000000); if (ret) { pr_err("%s: set voltage failed on vdd vreg, rc=%d\n", __func__, ret); return ret; } } dsi_drv->vdd_io_vreg = devm_regulator_get(&pdev->dev, "vddio"); if (IS_ERR(dsi_drv->vdd_io_vreg)) { pr_err("%s: could not get vddio reg, rc=%ld\n", __func__, PTR_ERR(dsi_drv->vdd_io_vreg)); return PTR_ERR(dsi_drv->vdd_io_vreg); } ret = regulator_set_voltage(dsi_drv->vdd_io_vreg, 1800000, 1800000); if (ret) { pr_err("%s: set voltage failed on vddio vreg, rc=%d\n", __func__, ret); return ret; } dsi_drv->vdda_vreg = devm_regulator_get(&pdev->dev, "vdda"); if (IS_ERR(dsi_drv->vdda_vreg)) { pr_err("%s: could not get vdda vreg, rc=%ld\n", __func__, PTR_ERR(dsi_drv->vdda_vreg)); return PTR_ERR(dsi_drv->vdda_vreg); } ret = regulator_set_voltage(dsi_drv->vdda_vreg, 1200000, 1200000); if (ret) { pr_err("%s: set voltage failed on vdda vreg, rc=%d\n", __func__, ret); return ret; } } return 0; }
static int mdss_dsi_regulator_init(struct platform_device *pdev) { int ret = 0; struct mdss_dsi_ctrl_pdata *ctrl_pdata = NULL; struct dsi_drv_cm_data *dsi_drv = NULL; if (!pdev) { pr_err("%s: invalid input\n", __func__); return -EINVAL; } ctrl_pdata = platform_get_drvdata(pdev); if (!ctrl_pdata) { pr_err("%s: invalid driver data\n", __func__); return -EINVAL; } dsi_drv = &(ctrl_pdata->shared_pdata); if (ctrl_pdata->power_data.num_vreg > 0) { ret = msm_dss_config_vreg(&pdev->dev, ctrl_pdata->power_data.vreg_config, ctrl_pdata->power_data.num_vreg, 1); } else { dsi_drv->vdd_vreg = devm_regulator_get(&pdev->dev, "vdd"); if (IS_ERR(dsi_drv->vdd_vreg)) { pr_err("%s: could not get vdda vreg, rc=%ld\n", __func__, PTR_ERR(dsi_drv->vdd_vreg)); return PTR_ERR(dsi_drv->vdd_vreg); } ret = regulator_set_voltage(dsi_drv->vdd_vreg, 3000000, 3000000); if (ret) { pr_err("%s: set voltage failed on vdda vreg, rc=%d\n", __func__, ret); return ret; } dsi_drv->vdd_io_vreg = devm_regulator_get(&pdev->dev, "vddio"); if (IS_ERR(dsi_drv->vdd_io_vreg)) { pr_err("%s: could not get vddio reg, rc=%ld\n", __func__, PTR_ERR(dsi_drv->vdd_io_vreg)); return PTR_ERR(dsi_drv->vdd_io_vreg); } ret = regulator_set_voltage(dsi_drv->vdd_io_vreg, 1800000, 1800000); if (ret) { pr_err("%s: set voltage failed on vddio vreg, rc=%d\n", __func__, ret); return ret; } dsi_drv->vdda_vreg = devm_regulator_get(&pdev->dev, "vdda"); if (IS_ERR(dsi_drv->vdda_vreg)) { pr_err("%s: could not get vdda vreg, rc=%ld\n", __func__, PTR_ERR(dsi_drv->vdda_vreg)); return PTR_ERR(dsi_drv->vdda_vreg); } ret = regulator_set_voltage(dsi_drv->vdda_vreg, 1200000, 1200000); if (ret) { pr_err("%s: set voltage failed on vdda vreg, rc=%d\n", __func__, ret); return ret; } } return 0; }