Message ID | TY3P286MB26111D00F42888C71EF0877698969@TY3P286MB2611.JPNP286.PROD.OUTLOOK.COM |
---|---|
State | Superseded |
Headers | show |
Series | [v1,1/4] dt-bindings: mfd: x-powers,axp152: Document the AXP15060 variant | expand |
On Fri, 7 Apr 2023 22:18:13 +0800 Shengyu Qu <wiagn233@outlook.com> wrote: > Current axp20x regulator driver would always set DCDC frequency even if > there is no x-powers,dcdc-freq in device tree data. Causing meaningless > warning info output on variants that do not support DCDC frequency > modification. So only try to set DCDC frequency when there is frequency > property. This patch should not be needed. You should disallow the x-powers,dcdc-freq property in the binding (see [1]), then handle that like the AXP313a driver does: by explicitly checking that the property does not exist, then returning, see [2]. In general you might want to rebase your series on top of the AXP313a v10 series, as this most likely goes in before. Cheers, Andre [1] https://lore.kernel.org/linux-sunxi/20230401001850.4988-2-andre.przywara@arm.com/ [2] https://lore.kernel.org/linux-sunxi/20230401001850.4988-4-andre.przywara@arm.com/ > Signed-off-by: Shengyu Qu <wiagn233@outlook.com> > --- > drivers/regulator/axp20x-regulator.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/regulator/axp20x-regulator.c b/drivers/regulator/axp20x-regulator.c > index ece4af93df7b..12a12923bc7b 100644 > --- a/drivers/regulator/axp20x-regulator.c > +++ b/drivers/regulator/axp20x-regulator.c > @@ -1247,10 +1247,10 @@ static int axp20x_regulator_parse_dt(struct platform_device *pdev) > if (!regulators) { > dev_warn(&pdev->dev, "regulators node not found\n"); > } else { > - of_property_read_u32(regulators, "x-powers,dcdc-freq", &dcdcfreq); > - ret = axp20x_set_dcdc_freq(pdev, dcdcfreq); > - if (ret < 0) { > - dev_err(&pdev->dev, "Error setting dcdc frequency: %d\n", ret); > + if (of_property_read_u32(regulators, "x-powers,dcdc-freq", &dcdcfreq) != -EINVAL) { > + ret = axp20x_set_dcdc_freq(pdev, dcdcfreq); > + if (ret < 0) > + dev_err(&pdev->dev, "Error setting dcdc frequency: %d\n", ret); > } > of_node_put(regulators); > }
Hi Andre, > On Fri, 7 Apr 2023 22:18:13 +0800 > Shengyu Qu <wiagn233@outlook.com> wrote: > >> Current axp20x regulator driver would always set DCDC frequency even if >> there is no x-powers,dcdc-freq in device tree data. Causing meaningless >> warning info output on variants that do not support DCDC frequency >> modification. So only try to set DCDC frequency when there is frequency >> property. > This patch should not be needed. You should disallow the > x-powers,dcdc-freq property in the binding (see [1]), then handle that > like the AXP313a driver does: by explicitly checking that the property > does not exist, then returning, see [2]. > > In general you might want to rebase your series on top of the AXP313a v10 > series, as this most likely goes in before. Thanks for pointing out this :) Would fix and rebase in next version. Best regards, Shengyu > Cheers, > Andre > > [1] > https://lore.kernel.org/linux-sunxi/20230401001850.4988-2-andre.przywara@arm.com/ > [2] > https://lore.kernel.org/linux-sunxi/20230401001850.4988-4-andre.przywara@arm.com/ > >> Signed-off-by: Shengyu Qu <wiagn233@outlook.com> >> --- >> drivers/regulator/axp20x-regulator.c | 8 ++++---- >> 1 file changed, 4 insertions(+), 4 deletions(-) >> >> diff --git a/drivers/regulator/axp20x-regulator.c b/drivers/regulator/axp20x-regulator.c >> index ece4af93df7b..12a12923bc7b 100644 >> --- a/drivers/regulator/axp20x-regulator.c >> +++ b/drivers/regulator/axp20x-regulator.c >> @@ -1247,10 +1247,10 @@ static int axp20x_regulator_parse_dt(struct platform_device *pdev) >> if (!regulators) { >> dev_warn(&pdev->dev, "regulators node not found\n"); >> } else { >> - of_property_read_u32(regulators, "x-powers,dcdc-freq", &dcdcfreq); >> - ret = axp20x_set_dcdc_freq(pdev, dcdcfreq); >> - if (ret < 0) { >> - dev_err(&pdev->dev, "Error setting dcdc frequency: %d\n", ret); >> + if (of_property_read_u32(regulators, "x-powers,dcdc-freq", &dcdcfreq) != -EINVAL) { >> + ret = axp20x_set_dcdc_freq(pdev, dcdcfreq); >> + if (ret < 0) >> + dev_err(&pdev->dev, "Error setting dcdc frequency: %d\n", ret); >> } >> of_node_put(regulators); >> }
diff --git a/drivers/regulator/axp20x-regulator.c b/drivers/regulator/axp20x-regulator.c index ece4af93df7b..12a12923bc7b 100644 --- a/drivers/regulator/axp20x-regulator.c +++ b/drivers/regulator/axp20x-regulator.c @@ -1247,10 +1247,10 @@ static int axp20x_regulator_parse_dt(struct platform_device *pdev) if (!regulators) { dev_warn(&pdev->dev, "regulators node not found\n"); } else { - of_property_read_u32(regulators, "x-powers,dcdc-freq", &dcdcfreq); - ret = axp20x_set_dcdc_freq(pdev, dcdcfreq); - if (ret < 0) { - dev_err(&pdev->dev, "Error setting dcdc frequency: %d\n", ret); + if (of_property_read_u32(regulators, "x-powers,dcdc-freq", &dcdcfreq) != -EINVAL) { + ret = axp20x_set_dcdc_freq(pdev, dcdcfreq); + if (ret < 0) + dev_err(&pdev->dev, "Error setting dcdc frequency: %d\n", ret); } of_node_put(regulators); }
Current axp20x regulator driver would always set DCDC frequency even if there is no x-powers,dcdc-freq in device tree data. Causing meaningless warning info output on variants that do not support DCDC frequency modification. So only try to set DCDC frequency when there is frequency property. Signed-off-by: Shengyu Qu <wiagn233@outlook.com> --- drivers/regulator/axp20x-regulator.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)