Message ID | 20170425164224.26537-1-marex@denx.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 04/25/2017 06:42 PM, Marek Vasut wrote: > The imx6sx-sdb has one power supply that drives both VDDARM_IN > and VDDSOC_IN, which is the sw1a regulator on the PFUZE PMIC. > Connect both inputs to the sw1a regulator on the PMIC and drop > the OPP hackery which is no longer needed as the power framework > will take care of the regulator configuration as needed. > > Signed-off-by: Marek Vasut <marex@denx.de> > Cc: Fabio Estevam <fabio.estevam@nxp.com> > Cc: Shawn Guo <shawnguo@kernel.org> +CC Leonard > --- > Note: Fabio, if you have a chance, please give this a spin and see > if this works. > --- > arch/arm/boot/dts/imx6sx-sdb.dts | 25 ++++++++----------------- > 1 file changed, 8 insertions(+), 17 deletions(-) > > diff --git a/arch/arm/boot/dts/imx6sx-sdb.dts b/arch/arm/boot/dts/imx6sx-sdb.dts > index 5bb8fd57e7f5..c0139d7e497a 100644 > --- a/arch/arm/boot/dts/imx6sx-sdb.dts > +++ b/arch/arm/boot/dts/imx6sx-sdb.dts > @@ -12,23 +12,6 @@ > model = "Freescale i.MX6 SoloX SDB RevB Board"; > }; > > -&cpu0 { > - operating-points = < > - /* kHz uV */ > - 996000 1250000 > - 792000 1175000 > - 396000 1175000 > - 198000 1175000 > - >; > - fsl,soc-operating-points = < > - /* ARM kHz SOC uV */ > - 996000 1250000 > - 792000 1175000 > - 396000 1175000 > - 198000 1175000 > - >; > -}; > - > &i2c1 { > clock-frequency = <100000>; > pinctrl-names = "default"; > @@ -145,3 +128,11 @@ > reg = <1>; > }; > }; > + > +®_arm { > + vin-supply = <&sw1a_reg>; > +}; > + > +®_soc { > + vin-supply = <&sw1a_reg>; > +}; >
On Tue, 2017-04-25 at 21:30 +0200, Marek Vasut wrote: > On 04/25/2017 06:42 PM, Marek Vasut wrote: > > The imx6sx-sdb has one power supply that drives both VDDARM_IN > > and VDDSOC_IN, which is the sw1a regulator on the PFUZE PMIC. > > Connect both inputs to the sw1a regulator on the PMIC and drop > > the OPP hackery which is no longer needed as the power framework > > will take care of the regulator configuration as needed. > > > > Signed-off-by: Marek Vasut <marex@denx.de> > > Cc: Fabio Estevam <fabio.estevam@nxp.com> > > Cc: Shawn Guo <shawnguo@kernel.org> > > +CC Leonard Tested-by: Leonard Crestez <leonard.crestez@nxp.com> The OPP hack only applies to LDO bypass mode and that is not in upstream. When LDOs are enabled the effect is to use higher voltages than necessary for no good reason. Setting these higher voltages can make some boards (for example Rev B) fail to boot with ugly semi-random crashes reminiscent of memory corruption. These failures happen the first time the lowest idle state is used. This patch fixes those crashes. It's not clear exactly why the crashes happen. Perhaps waking up from idle draws more power than is available? I don't think it matters. I sent a very similar patch a few minutes after this one: http://lists.infradead.org/pipermail/linux-arm-kernel/2017-April/503241 .html > > @@ -145,3 +128,11 @@ > > reg = <1>; > > }; > > }; > > + > > +®_arm { > > + vin-supply = <&sw1a_reg>; > > +}; > > + > > +®_soc { > > + vin-supply = <&sw1a_reg>; > > +}; This is also good, it will result in lower voltages will result in lower voltages on VDD_ARM_SOC_IN rather than a fixed 1375 mV.
On Tue, 2017-04-25 at 22:39 +0300, Leonard Crestez wrote: > On Tue, 2017-04-25 at 21:30 +0200, Marek Vasut wrote: > > > > On 04/25/2017 06:42 PM, Marek Vasut wrote: > > > > > > The imx6sx-sdb has one power supply that drives both VDDARM_IN > > > and VDDSOC_IN, which is the sw1a regulator on the PFUZE PMIC. > > > Connect both inputs to the sw1a regulator on the PMIC and drop > > > the OPP hackery which is no longer needed as the power framework > > > will take care of the regulator configuration as needed. > > > > > > Signed-off-by: Marek Vasut <marex@denx.de> > > > Cc: Fabio Estevam <fabio.estevam@nxp.com> > > > Cc: Shawn Guo <shawnguo@kernel.org> > > +CC Leonard > Tested-by: Leonard Crestez <leonard.crestez@nxp.com> > > The OPP hack only applies to LDO bypass mode and that is not in > upstream. When LDOs are enabled the effect is to use higher voltages > than necessary for no good reason. > > Setting these higher voltages can make some boards (for example Rev B) > fail to boot with ugly semi-random crashes reminiscent of memory > corruption. These failures happen the first time the lowest idle state > is used. This patch fixes those crashes. > > It's not clear exactly why the crashes happen. Perhaps waking up from > idle draws more power than is available? I don't think it matters. > > I sent a very similar patch a few minutes after this one: > > http://lists.infradead.org/pipermail/linux-arm-kernel/2017-April/503241 > .html Adding Henri Roosen because he reported something very similar. Henri: Can you please check if this patch fixes your issue? -- Regards, Leonard
On 05/03/2017 03:32 PM, Leonard Crestez wrote: > On Tue, 2017-04-25 at 22:39 +0300, Leonard Crestez wrote: >> On Tue, 2017-04-25 at 21:30 +0200, Marek Vasut wrote: >>> >>> On 04/25/2017 06:42 PM, Marek Vasut wrote: >>>> >>>> The imx6sx-sdb has one power supply that drives both VDDARM_IN >>>> and VDDSOC_IN, which is the sw1a regulator on the PFUZE PMIC. >>>> Connect both inputs to the sw1a regulator on the PMIC and drop >>>> the OPP hackery which is no longer needed as the power framework >>>> will take care of the regulator configuration as needed. >>>> >>>> Signed-off-by: Marek Vasut <marex@denx.de> >>>> Cc: Fabio Estevam <fabio.estevam@nxp.com> >>>> Cc: Shawn Guo <shawnguo@kernel.org> >>> +CC Leonard >> Tested-by: Leonard Crestez <leonard.crestez@nxp.com> >> >> The OPP hack only applies to LDO bypass mode and that is not in >> upstream. When LDOs are enabled the effect is to use higher voltages >> than necessary for no good reason. >> >> Setting these higher voltages can make some boards (for example Rev B) >> fail to boot with ugly semi-random crashes reminiscent of memory >> corruption. These failures happen the first time the lowest idle state >> is used. This patch fixes those crashes. >> >> It's not clear exactly why the crashes happen. Perhaps waking up from >> idle draws more power than is available? I don't think it matters. >> >> I sent a very similar patch a few minutes after this one: >> >> http://lists.infradead.org/pipermail/linux-arm-kernel/2017-April/503241 >> .html > > Adding Henri Roosen because he reported something very similar. > > Henri: Can you please check if this patch fixes your issue? I've been successfully running a similar patch (reverting operating points, without reg_arm/reg_soc) as provided by Anson for about a month on an iMX6SX-SDB RevC board. I'm sorry for not copying the mailing list on this before. This patch, with the regulators setup as provided by Marek, has been tested successfully on the iMX6SX-SDB RevC board as well. Feel free to add my Tested-by: Henri Roosen <henri.roosen@ginzinger.com>
On Tue, Apr 25, 2017 at 1:42 PM, Marek Vasut <marex@denx.de> wrote: > The imx6sx-sdb has one power supply that drives both VDDARM_IN > and VDDSOC_IN, which is the sw1a regulator on the PFUZE PMIC. > Connect both inputs to the sw1a regulator on the PMIC and drop > the OPP hackery which is no longer needed as the power framework > will take care of the regulator configuration as needed. > > Signed-off-by: Marek Vasut <marex@denx.de> > Cc: Fabio Estevam <fabio.estevam@nxp.com> > Cc: Shawn Guo <shawnguo@kernel.org> Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
diff --git a/arch/arm/boot/dts/imx6sx-sdb.dts b/arch/arm/boot/dts/imx6sx-sdb.dts index 5bb8fd57e7f5..c0139d7e497a 100644 --- a/arch/arm/boot/dts/imx6sx-sdb.dts +++ b/arch/arm/boot/dts/imx6sx-sdb.dts @@ -12,23 +12,6 @@ model = "Freescale i.MX6 SoloX SDB RevB Board"; }; -&cpu0 { - operating-points = < - /* kHz uV */ - 996000 1250000 - 792000 1175000 - 396000 1175000 - 198000 1175000 - >; - fsl,soc-operating-points = < - /* ARM kHz SOC uV */ - 996000 1250000 - 792000 1175000 - 396000 1175000 - 198000 1175000 - >; -}; - &i2c1 { clock-frequency = <100000>; pinctrl-names = "default"; @@ -145,3 +128,11 @@ reg = <1>; }; }; + +®_arm { + vin-supply = <&sw1a_reg>; +}; + +®_soc { + vin-supply = <&sw1a_reg>; +};
The imx6sx-sdb has one power supply that drives both VDDARM_IN and VDDSOC_IN, which is the sw1a regulator on the PFUZE PMIC. Connect both inputs to the sw1a regulator on the PMIC and drop the OPP hackery which is no longer needed as the power framework will take care of the regulator configuration as needed. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Fabio Estevam <fabio.estevam@nxp.com> Cc: Shawn Guo <shawnguo@kernel.org> --- Note: Fabio, if you have a chance, please give this a spin and see if this works. --- arch/arm/boot/dts/imx6sx-sdb.dts | 25 ++++++++----------------- 1 file changed, 8 insertions(+), 17 deletions(-)