2020-12-17 15:15:02

by Guido Günther

[permalink] [raw]
Subject: [PATCH v2 0/4] Config and device tree updates for the Librem 5 devkit

This enables more components to get a working display, panel, audio and
sensors. It also updates some device tree bits to make mainline boot.

I've skipped wifi (which needs some more driver work) and devfreq (since Martin
is working on that).

The config changes don't depend on the DT parts so could be applied
independently. The series was tested against next-20201214 and i made sure the
defconfig changes also apply on top of shawnguo/imx/defconfig.

changes from v1:
- as per review comments by Krzysztof Kozlowski <[email protected]>
https://lore.kernel.org/linux-arm-kernel/20201215091729.GC29321@kozik-lap/
- describe hardware parts not config options
- rework commit messages to give more details
- don't keep buck3 always on but rather make sure the board
doesn't hang when resuming the gpu power domain.
There's a generic fix pending for that helps all boards
https://lore.kernel.org/lkml/[email protected]/

To: Rob Herring <[email protected]>,Shawn Guo <[email protected]>,Sascha Hauer <[email protected]>,Pengutronix Kernel Team <[email protected]>,Fabio Estevam <[email protected]>,NXP Linux Team <[email protected]>,Catalin Marinas <[email protected]>,Will Deacon <[email protected]>,Martin Kepplinger <[email protected]>,Angus Ainslie <[email protected]>,Krzysztof Kozlowski <[email protected]>,Bjorn Andersson <[email protected]>,Li Yang <[email protected]>,Geert Uytterhoeven <[email protected]>,Vinod Koul <[email protected]>,Anson Huang <[email protected]>,Michael Walle <[email protected]>,[email protected],[email protected],[email protected],[email protected]

Guido Günther (4):
arm64: defconfig: Enable Librem 5 devkit components
arm64: dts: imx8mq-librem5-devkit: Tweak pmic regulators
arm64: dts: imx8mq-librem5-devkit: Disable snvs_rtc
arm64: dts: imx8mq-librem5-devkit: Drop custom clock settings

.../dts/freescale/imx8mq-librem5-devkit.dts | 20 ++++++++++++++-----
arch/arm64/configs/defconfig | 8 ++++++++
2 files changed, 23 insertions(+), 5 deletions(-)

--
2.29.2


2020-12-17 15:15:03

by Guido Günther

[permalink] [raw]
Subject: [PATCH v2 2/4] arm64: dts: imx8mq-librem5-devkit: Tweak pmic regulators

BUCK3 needs a regulator-enable-ramp-delay since otherwise the board
freezes on etnaviv probe. With this pgc_gpu suspends and resumes as
expected. This must have been always broken since gpcv2 support was
enabled.

We also enable all the regulators needed for Deep Sleep Mode (DSM) as
always-on:

- VDD_SOC supplied by BUCK1
- VDDA_1P8 supplied by BUCK7
- VDDA_0P9 supplied by LDO4
- VDDA_DRAM supplied by LDO3
- NVCC_DRAM supplied by BUCK8
- VDD_DRAM supplied by BUCK5

Finally LDO5 and LDO6 provide VDD_PHY_1V8 and VDD_PHY_0V9 used by the
SOCs MIPI, HDMI and USB IP cores. While we would in theory be able to
turn these off (and I've tested that or LDO6 and mipi with USB disabled)
it is of little practical use atm since USB doesn't runtime suspend so
let's revisit this at a later point.

Signed-off-by: Guido Günther <[email protected]>
---
.../boot/dts/freescale/imx8mq-librem5-devkit.dts | 11 +++++++++++
1 file changed, 11 insertions(+)

diff --git a/arch/arm64/boot/dts/freescale/imx8mq-librem5-devkit.dts b/arch/arm64/boot/dts/freescale/imx8mq-librem5-devkit.dts
index af139b283daf..f35d6897fbf7 100644
--- a/arch/arm64/boot/dts/freescale/imx8mq-librem5-devkit.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mq-librem5-devkit.dts
@@ -298,6 +298,7 @@ buck1_reg: BUCK1 {
regulator-min-microvolt = <700000>;
regulator-max-microvolt = <1300000>;
regulator-boot-on;
+ regulator-always-on;
regulator-ramp-delay = <1250>;
rohm,dvs-run-voltage = <900000>;
rohm,dvs-idle-voltage = <850000>;
@@ -319,6 +320,7 @@ buck3_reg: BUCK3 {
regulator-min-microvolt = <700000>;
regulator-max-microvolt = <1300000>;
regulator-boot-on;
+ regulator-enable-ramp-delay = <200>;
rohm,dvs-run-voltage = <900000>;
};

@@ -334,6 +336,7 @@ buck5_reg: BUCK5 {
regulator-min-microvolt = <700000>;
regulator-max-microvolt = <1350000>;
regulator-boot-on;
+ regulator-always-on;
};

buck6_reg: BUCK6 {
@@ -341,6 +344,7 @@ buck6_reg: BUCK6 {
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
+ regulator-always-on;
};

buck7_reg: BUCK7 {
@@ -348,6 +352,7 @@ buck7_reg: BUCK7 {
regulator-min-microvolt = <1605000>;
regulator-max-microvolt = <1995000>;
regulator-boot-on;
+ regulator-always-on;
};

buck8_reg: BUCK8 {
@@ -355,6 +360,7 @@ buck8_reg: BUCK8 {
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <1400000>;
regulator-boot-on;
+ regulator-always-on;
};

ldo1_reg: LDO1 {
@@ -380,6 +386,7 @@ ldo3_reg: LDO3 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
+ regulator-always-on;
};

ldo4_reg: LDO4 {
@@ -387,12 +394,14 @@ ldo4_reg: LDO4 {
regulator-min-microvolt = <900000>;
regulator-max-microvolt = <1800000>;
regulator-boot-on;
+ regulator-always-on;
};

ldo5_reg: LDO5 {
regulator-name = "ldo5";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
+ regulator-always-on;
};

ldo6_reg: LDO6 {
@@ -400,6 +409,7 @@ ldo6_reg: LDO6 {
regulator-min-microvolt = <900000>;
regulator-max-microvolt = <1800000>;
regulator-boot-on;
+ regulator-always-on;
};

ldo7_reg: LDO7 {
@@ -407,6 +417,7 @@ ldo7_reg: LDO7 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
+ regulator-always-on;
};
};
};
--
2.29.2

2020-12-17 15:17:30

by Guido Günther

[permalink] [raw]
Subject: [PATCH v2 3/4] arm64: dts: imx8mq-librem5-devkit: Disable snvs_rtc

The board has it's own RTC chip which is backed by the (optional)
battery and hence preserves data/time on poweroff when that is inserted.

Signed-off-by: Guido Günther <[email protected]>
---
arch/arm64/boot/dts/freescale/imx8mq-librem5-devkit.dts | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/arch/arm64/boot/dts/freescale/imx8mq-librem5-devkit.dts b/arch/arm64/boot/dts/freescale/imx8mq-librem5-devkit.dts
index f35d6897fbf7..05a43ee6d051 100644
--- a/arch/arm64/boot/dts/freescale/imx8mq-librem5-devkit.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mq-librem5-devkit.dts
@@ -897,6 +897,10 @@ &snvs_pwrkey {
status = "okay";
};

+&snvs_rtc {
+ status = "disabled";
+};
+
&sai2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_sai2>;
--
2.29.2

2020-12-19 12:27:27

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v2 2/4] arm64: dts: imx8mq-librem5-devkit: Tweak pmic regulators

On Thu, Dec 17, 2020 at 04:13:13PM +0100, Guido Günther wrote:
> BUCK3 needs a regulator-enable-ramp-delay since otherwise the board
> freezes on etnaviv probe. With this pgc_gpu suspends and resumes as
> expected. This must have been always broken since gpcv2 support was
> enabled.
>
> We also enable all the regulators needed for Deep Sleep Mode (DSM) as
> always-on:
>
> - VDD_SOC supplied by BUCK1
> - VDDA_1P8 supplied by BUCK7
> - VDDA_0P9 supplied by LDO4
> - VDDA_DRAM supplied by LDO3
> - NVCC_DRAM supplied by BUCK8
> - VDD_DRAM supplied by BUCK5
>
> Finally LDO5 and LDO6 provide VDD_PHY_1V8 and VDD_PHY_0V9 used by the
> SOCs MIPI, HDMI and USB IP cores. While we would in theory be able to
> turn these off (and I've tested that or LDO6 and mipi with USB disabled)
> it is of little practical use atm since USB doesn't runtime suspend so
> let's revisit this at a later point.
>
> Signed-off-by: Guido Günther <[email protected]>
> ---
> .../boot/dts/freescale/imx8mq-librem5-devkit.dts | 11 +++++++++++
> 1 file changed, 11 insertions(+)
>

Reviewed-by: Krzysztof Kozlowski <[email protected]>

Best regards,
Krzysztof

2020-12-19 12:28:05

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v2 3/4] arm64: dts: imx8mq-librem5-devkit: Disable snvs_rtc

On Thu, Dec 17, 2020 at 04:13:14PM +0100, Guido Günther wrote:
> The board has it's own RTC chip which is backed by the (optional)
> battery and hence preserves data/time on poweroff when that is inserted.
>
> Signed-off-by: Guido Günther <[email protected]>
> ---
> arch/arm64/boot/dts/freescale/imx8mq-librem5-devkit.dts | 4 ++++
> 1 file changed, 4 insertions(+)
>

Reviewed-by: Krzysztof Kozlowski <[email protected]>

Best regards,
Krzysztof

2021-01-10 12:26:44

by Shawn Guo

[permalink] [raw]
Subject: Re: [PATCH v2 2/4] arm64: dts: imx8mq-librem5-devkit: Tweak pmic regulators

On Thu, Dec 17, 2020 at 04:13:13PM +0100, Guido G?nther wrote:
> BUCK3 needs a regulator-enable-ramp-delay since otherwise the board
> freezes on etnaviv probe. With this pgc_gpu suspends and resumes as
> expected. This must have been always broken since gpcv2 support was
> enabled.
>
> We also enable all the regulators needed for Deep Sleep Mode (DSM) as
> always-on:
>
> - VDD_SOC supplied by BUCK1
> - VDDA_1P8 supplied by BUCK7
> - VDDA_0P9 supplied by LDO4
> - VDDA_DRAM supplied by LDO3
> - NVCC_DRAM supplied by BUCK8
> - VDD_DRAM supplied by BUCK5
>
> Finally LDO5 and LDO6 provide VDD_PHY_1V8 and VDD_PHY_0V9 used by the
> SOCs MIPI, HDMI and USB IP cores. While we would in theory be able to
> turn these off (and I've tested that or LDO6 and mipi with USB disabled)
> it is of little practical use atm since USB doesn't runtime suspend so
> let's revisit this at a later point.
>
> Signed-off-by: Guido G?nther <[email protected]>

Applied, thanks.

2021-01-10 12:27:22

by Shawn Guo

[permalink] [raw]
Subject: Re: [PATCH v2 3/4] arm64: dts: imx8mq-librem5-devkit: Disable snvs_rtc

On Thu, Dec 17, 2020 at 04:13:14PM +0100, Guido G?nther wrote:
> The board has it's own RTC chip which is backed by the (optional)
> battery and hence preserves data/time on poweroff when that is inserted.
>
> Signed-off-by: Guido G?nther <[email protected]>

Applied, thanks.

2021-01-10 12:29:45

by Shawn Guo

[permalink] [raw]
Subject: Re: [PATCH v2 0/4] Config and device tree updates for the Librem 5 devkit

On Thu, Dec 17, 2020 at 04:13:11PM +0100, Guido G?nther wrote:
> This enables more components to get a working display, panel, audio and
> sensors. It also updates some device tree bits to make mainline boot.
>
> I've skipped wifi (which needs some more driver work) and devfreq (since Martin
> is working on that).
>
> The config changes don't depend on the DT parts so could be applied
> independently. The series was tested against next-20201214 and i made sure the
> defconfig changes also apply on top of shawnguo/imx/defconfig.

Sorry. It doesn't apply any more.

Shawn

2021-01-10 15:10:01

by Guido Günther

[permalink] [raw]
Subject: Re: [PATCH v2 0/4] Config and device tree updates for the Librem 5 devkit

Hi Shawn,
On Sun, Jan 10, 2021 at 08:26:18PM +0800, Shawn Guo wrote:
> On Thu, Dec 17, 2020 at 04:13:11PM +0100, Guido G?nther wrote:
> > This enables more components to get a working display, panel, audio and
> > sensors. It also updates some device tree bits to make mainline boot.
> >
> > I've skipped wifi (which needs some more driver work) and devfreq (since Martin
> > is working on that).
> >
> > The config changes don't depend on the DT parts so could be applied
> > independently. The series was tested against next-20201214 and i made sure the
> > defconfig changes also apply on top of shawnguo/imx/defconfig.
>
> Sorry. It doesn't apply any more.

v3 of this patch

https://lore.kernel.org/linux-arm-kernel/5636a3d6e3217475e2a479248250d5c0e0a50e26.1610110514.git.agx@sigxcpu.org/)

applies for me on top of

https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux.git/log/?h=imx/defconfig

(which is at 773fcbcdf9d66b4aec964238b613e93804cba24c) - am i looking at
the wrong tree?

Cheers and sorry for any inconvenience,
-- Guido


>
> Shawn
>