Message ID | 1653001902-26910-2-git-send-email-quic_khsieh@quicinc.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | eDP/DP Phy vdda realted function | expand |
Quoting Kuogee Hsieh (2022-05-19 16:11:40) > diff --git a/drivers/phy/qualcomm/phy-qcom-edp.c b/drivers/phy/qualcomm/phy-qcom-edp.c > index cacd32f..78b7306 100644 > --- a/drivers/phy/qualcomm/phy-qcom-edp.c > +++ b/drivers/phy/qualcomm/phy-qcom-edp.c > @@ -87,14 +87,19 @@ struct qcom_edp { > > struct clk_bulk_data clks[2]; > struct regulator_bulk_data supplies[2]; > + int enable_load[2]; > }; > > static int qcom_edp_phy_init(struct phy *phy) > { > struct qcom_edp *edp = phy_get_drvdata(phy); > int ret; > + int i; > > - ret = regulator_bulk_enable(ARRAY_SIZE(edp->supplies), edp->supplies); > + for (i = 0; i < 2; i++) Use ARRAY_SIZE(edp->supplies)? > + regulator_set_load(edp->supplies[i].consumer, edp->enable_load[i]); > + > + ret = regulator_bulk_enable(2, edp->supplies); Why is ARRAY_SIZE() usage removed? > if (ret) > return ret; >
On 5/19/2022 5:19 PM, Stephen Boyd wrote: > Quoting Kuogee Hsieh (2022-05-19 16:11:40) >> diff --git a/drivers/phy/qualcomm/phy-qcom-edp.c b/drivers/phy/qualcomm/phy-qcom-edp.c >> index cacd32f..78b7306 100644 >> --- a/drivers/phy/qualcomm/phy-qcom-edp.c >> +++ b/drivers/phy/qualcomm/phy-qcom-edp.c >> @@ -87,14 +87,19 @@ struct qcom_edp { >> >> struct clk_bulk_data clks[2]; >> struct regulator_bulk_data supplies[2]; >> + int enable_load[2]; >> }; >> >> static int qcom_edp_phy_init(struct phy *phy) >> { >> struct qcom_edp *edp = phy_get_drvdata(phy); >> int ret; >> + int i; >> >> - ret = regulator_bulk_enable(ARRAY_SIZE(edp->supplies), edp->supplies); >> + for (i = 0; i < 2; i++) > Use ARRAY_SIZE(edp->supplies)? > >> + regulator_set_load(edp->supplies[i].consumer, edp->enable_load[i]); >> + >> + ret = regulator_bulk_enable(2, edp->supplies); > Why is ARRAY_SIZE() usage removed? remove it base on Dmitry's comment. I will restore it back to use ARRY_SIZE > >> if (ret) >> return ret; >>
On Fri, 20 May 2022 at 18:09, Kuogee Hsieh <quic_khsieh@quicinc.com> wrote: > > > On 5/19/2022 5:19 PM, Stephen Boyd wrote: > > Quoting Kuogee Hsieh (2022-05-19 16:11:40) > >> diff --git a/drivers/phy/qualcomm/phy-qcom-edp.c b/drivers/phy/qualcomm/phy-qcom-edp.c > >> index cacd32f..78b7306 100644 > >> --- a/drivers/phy/qualcomm/phy-qcom-edp.c > >> +++ b/drivers/phy/qualcomm/phy-qcom-edp.c > >> @@ -87,14 +87,19 @@ struct qcom_edp { > >> > >> struct clk_bulk_data clks[2]; > >> struct regulator_bulk_data supplies[2]; > >> + int enable_load[2]; > >> }; > >> > >> static int qcom_edp_phy_init(struct phy *phy) > >> { > >> struct qcom_edp *edp = phy_get_drvdata(phy); > >> int ret; > >> + int i; > >> > >> - ret = regulator_bulk_enable(ARRAY_SIZE(edp->supplies), edp->supplies); > >> + for (i = 0; i < 2; i++) > > Use ARRAY_SIZE(edp->supplies)? > > > >> + regulator_set_load(edp->supplies[i].consumer, edp->enable_load[i]); > >> + > >> + ret = regulator_bulk_enable(2, edp->supplies); > > Why is ARRAY_SIZE() usage removed? > > > remove it base on Dmitry's comment. Ugh. I asked to remove the num_consumers variable, not the ARRAY_SIZE. > > I will restore it back to use ARRY_SIZE > > > > > >> if (ret) > >> return ret; > >>
diff --git a/drivers/phy/qualcomm/phy-qcom-edp.c b/drivers/phy/qualcomm/phy-qcom-edp.c index cacd32f..78b7306 100644 --- a/drivers/phy/qualcomm/phy-qcom-edp.c +++ b/drivers/phy/qualcomm/phy-qcom-edp.c @@ -87,14 +87,19 @@ struct qcom_edp { struct clk_bulk_data clks[2]; struct regulator_bulk_data supplies[2]; + int enable_load[2]; }; static int qcom_edp_phy_init(struct phy *phy) { struct qcom_edp *edp = phy_get_drvdata(phy); int ret; + int i; - ret = regulator_bulk_enable(ARRAY_SIZE(edp->supplies), edp->supplies); + for (i = 0; i < 2; i++) + regulator_set_load(edp->supplies[i].consumer, edp->enable_load[i]); + + ret = regulator_bulk_enable(2, edp->supplies); if (ret) return ret; @@ -635,6 +640,8 @@ static int qcom_edp_phy_probe(struct platform_device *pdev) edp->supplies[0].supply = "vdda-phy"; edp->supplies[1].supply = "vdda-pll"; + edp->enable_load[0] = 21800; /* load for 1.2 V vdda-phy supply */ + edp->enable_load[1] = 36000; /* load for 0.9 V vdda-pll supply */ ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(edp->supplies), edp->supplies); if (ret) return ret;
This patch add regulator_set_load() before enable regulator at eDP phy driver. Signed-off-by: Kuogee Hsieh <quic_khsieh@quicinc.com> --- drivers/phy/qualcomm/phy-qcom-edp.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)