2020-12-14 09:19:19

by Guido Günther

[permalink] [raw]
Subject: [PATCH 0/4] Config and device tree updates for the Librem5 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-20201209 and i made sure the
defconfig changes also apply on top of shawnguo/imx/defconfig.

Guido Günther (4):
arm64: defconfig: Enable Librem5 Devkit components
arm64: dts: imx8mq-librem5-devkit: Disable snvs_rtc
arm64: dts: imx8mq-librem5-devkit: Mark more regulators as always-on
arm64: dts: imx8mq-librem5-devkit: Drop custom clock settings

.../dts/freescale/imx8mq-librem5-devkit.dts | 28 +++++++++----------
arch/arm64/configs/defconfig | 8 ++++++
2 files changed, 22 insertions(+), 14 deletions(-)

--
2.29.2


2020-12-14 13:23:01

by Guido Günther

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

The board has it's own rtc chip.

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 af139b283daf..12f5d75a5e44 100644
--- a/arch/arm64/boot/dts/freescale/imx8mq-librem5-devkit.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mq-librem5-devkit.dts
@@ -886,6 +886,10 @@ &snvs_pwrkey {
status = "okay";
};

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

2020-12-14 13:23:03

by Guido Günther

[permalink] [raw]
Subject: [PATCH 3/4] arm64: dts: imx8mq-librem5-devkit: Mark more regulators as always-on

They power vital parts of the board and low power consumption is not
really an issue here. It also brings things more in line with what
Purism is using downstream.

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

diff --git a/arch/arm64/boot/dts/freescale/imx8mq-librem5-devkit.dts b/arch/arm64/boot/dts/freescale/imx8mq-librem5-devkit.dts
index 12f5d75a5e44..5fdea6b74ed5 100644
--- a/arch/arm64/boot/dts/freescale/imx8mq-librem5-devkit.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mq-librem5-devkit.dts
@@ -297,7 +297,7 @@ buck1_reg: BUCK1 {
regulator-name = "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>;
@@ -308,7 +308,7 @@ buck2_reg: BUCK2 {
regulator-name = "buck2";
regulator-min-microvolt = <700000>;
regulator-max-microvolt = <1300000>;
- regulator-boot-on;
+ regulator-always-on;
regulator-ramp-delay = <1250>;
rohm,dvs-run-voltage = <1000000>;
rohm,dvs-idle-voltage = <900000>;
@@ -318,7 +318,7 @@ buck3_reg: BUCK3 {
regulator-name = "buck3";
regulator-min-microvolt = <700000>;
regulator-max-microvolt = <1300000>;
- regulator-boot-on;
+ regulator-always-on;
rohm,dvs-run-voltage = <900000>;
};

@@ -333,7 +333,7 @@ buck5_reg: BUCK5 {
regulator-name = "buck5";
regulator-min-microvolt = <700000>;
regulator-max-microvolt = <1350000>;
- regulator-boot-on;
+ regulator-always-on;
};

buck6_reg: BUCK6 {
@@ -354,7 +354,7 @@ buck8_reg: BUCK8 {
regulator-name = "buck8";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <1400000>;
- regulator-boot-on;
+ regulator-always-on;
};

ldo1_reg: LDO1 {
@@ -379,34 +379,35 @@ ldo3_reg: LDO3 {
regulator-name = "ldo3";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
- regulator-boot-on;
+ regulator-always-on;
};

ldo4_reg: LDO4 {
regulator-name = "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 {
regulator-name = "ldo6";
regulator-min-microvolt = <900000>;
regulator-max-microvolt = <1800000>;
- regulator-boot-on;
+ regulator-always-on;
};

ldo7_reg: LDO7 {
regulator-name = "ldo7";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
- regulator-boot-on;
+ regulator-always-on;
};
};
};
--
2.29.2

2020-12-14 13:23:35

by Guido Günther

[permalink] [raw]
Subject: [PATCH 4/4] arm64: dts: imx8mq-librem5-devkit: Drop custom clock settings

Otherwise the boot hangs early on.

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

diff --git a/arch/arm64/boot/dts/freescale/imx8mq-librem5-devkit.dts b/arch/arm64/boot/dts/freescale/imx8mq-librem5-devkit.dts
index 5fdea6b74ed5..b913a2aee328 100644
--- a/arch/arm64/boot/dts/freescale/imx8mq-librem5-devkit.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mq-librem5-devkit.dts
@@ -244,11 +244,6 @@ &A53_3 {
cpu-supply = <&buck2_reg>;
};

-&clk {
- assigned-clocks = <&clk IMX8MQ_AUDIO_PLL1>, <&clk IMX8MQ_AUDIO_PLL2>;
- assigned-clock-rates = <786432000>, <722534400>;
-};
-
&dphy {
status = "okay";
};
--
2.29.2

2020-12-15 09:24:13

by Krzysztof Kozlowski

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

On Sun, Dec 13, 2020 at 06:17:12PM +0100, Guido Günther wrote:
> The board has it's own rtc chip.

s/rtc/RTC/

Even if you have on-board RTC, why disabling the SNVS?

Best regards,
Krzysztof


>
> 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 af139b283daf..12f5d75a5e44 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mq-librem5-devkit.dts
> +++ b/arch/arm64/boot/dts/freescale/imx8mq-librem5-devkit.dts
> @@ -886,6 +886,10 @@ &snvs_pwrkey {
> status = "okay";
> };
>
> +&snvs_rtc {
> + status = "disabled";
> +};
> +
> &sai2 {
> pinctrl-names = "default";
> pinctrl-0 = <&pinctrl_sai2>;
> --
> 2.29.2
>

2020-12-15 09:24:39

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH 3/4] arm64: dts: imx8mq-librem5-devkit: Mark more regulators as always-on

On Sun, Dec 13, 2020 at 06:17:13PM +0100, Guido Günther wrote:
> They power vital parts of the board and low power consumption is not
> really an issue here. It also brings things more in line with what
> Purism is using downstream.

I don't find it a proper explanation. Not all regulators power vital
parts of board. Having regulators always on makes people to skip adding
proper supplies thus not describing the HW properly.

Aligning with downstream without clear reason (just because) is also not
a good reason.

Please reduce the choice only to core regulators or describe it really
why they have to be always on.

Best regards,
Krzysztof

2020-12-15 09:27:48

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH 4/4] arm64: dts: imx8mq-librem5-devkit: Drop custom clock settings

On Sun, Dec 13, 2020 at 06:17:14PM +0100, Guido Günther wrote:
> Otherwise the boot hangs early on.

And previously it was booting or maybe never tested? Maybe the issue is
actually different, e.g. you miss some power domains?

Best regards,
Krzysztof