Re: [PATCH 03/16] arm64: dts: imx8mm-beacon-som.dtsi: Align regulator names with schema

From: krzk@xxxxxxxxxx
Date: Tue Aug 25 2020 - 03:25:47 EST


On Tue, Aug 25, 2020 at 06:51:33AM +0000, Vaittinen, Matti wrote:
> Hello Krzysztof,
>
> Just some questions - please ignore if I misunderstood the impact of
> the change.
>
> On Mon, 2020-08-24 at 21:06 +0200, Krzysztof Kozlowski wrote:
> > Device tree schema expects regulator names to be lowercase. This
> > fixes
> > dtbs_check warnings like:
> >
> > arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dt.yaml: pmic@4b:
> > regulators:LDO1:regulator-name:0: 'LDO1' does not match '^ldo[1-6]$'
> >
> > Signed-off-by: Krzysztof Kozlowski <krzk@xxxxxxxxxx>
> > ---
> > .../boot/dts/freescale/imx8mn-ddr4-evk.dts | 22 +++++++++------
> > ----
> > 1 file changed, 11 insertions(+), 11 deletions(-)
> >
> > diff --git a/arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
> > b/arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
> > index a1e5483dbbbe..299caed5d46e 100644
> > --- a/arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
> > +++ b/arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
> > @@ -60,7 +60,7 @@
> >
> > regulators {
> > buck1_reg: BUCK1 {
> > - regulator-name = "BUCK1";
> > + regulator-name = "buck1";
>
> I am not against this change but I would expect seeing some other
> patches too? I guess this will change the regulator name in regulator
> core, right? So maybe I am mistaken but it looks to me this change is
> visible in suppliers, sysfs and debugfs too? Thus changing this sounds
> a bit like asking for a nose bleed :) Am I right that the impact of
> this change has been thoroughly tested? Are there any other patches
> (that I have not seen) related to this change?

Oh, crap, the names of regulators in the driver are lowercase, but they
use of_match_ptr for upper case. Seriously, why making a binding which
is contradictory to the driver implementation on the first day?

The driver goes with binding, right? One expects uppercase, other
lowercase...

And tell me, what is now the ABI? The binding or the incorrect
implementation?

>
> > regulator-min-microvolt = <700000>;
> > regulator-max-microvolt = <1300000>;
> > regulator-boot-on;
> > @@ -69,7 +69,7 @@
> > };
> >
> > buck2_reg: BUCK2 {
> > - regulator-name = "BUCK2";
> > + regulator-name = "buck2";
> > regulator-min-microvolt = <700000>;
> > regulator-max-microvolt = <1300000>;
> > regulator-boot-on;
> > @@ -79,14 +79,14 @@
> >
> > buck3_reg: BUCK3 {
> > // BUCK5 in datasheet
> > - regulator-name = "BUCK3";
> > + regulator-name = "buck3";
> > regulator-min-microvolt = <700000>;
> > regulator-max-microvolt = <1350000>;
> > };
> >
> > buck4_reg: BUCK4 {
> > // BUCK6 in datasheet
> > - regulator-name = "BUCK4";
> > + regulator-name = "buck4";
> > regulator-min-microvolt = <3000000>;
> > regulator-max-microvolt = <3300000>;
> > regulator-boot-on;
> > @@ -95,7 +95,7 @@
> >
> > buck5_reg: BUCK5 {
> > // BUCK7 in datasheet
> > - regulator-name = "BUCK5";
> > + regulator-name = "buck5";
>
> What I see in bd718x7-regulator.c for LDO6 desc is:
>
> /* LDO6 is supplied by buck5 */
> .supply_name = "buck5",
>
> So, is this change going to change the supply-chain for the board? Is
> this intended? (Or am I mistaken on what is the impact of regulator-
> name property?)

The names will take regulator names from the driver. The problem is with
matching the of_node.


Dear Rob,

Maybe you have an idea how to fix this driver-binding ABI
incompatibility? Or better just leave it?


Best regards,
Krzysztof