2020-06-30 14:10:07

by Iskren Chernev

[permalink] [raw]
Subject: [PATCH 0/7] ARM: dts: qcom: msm8974: klte: Enable some hardware

Enable support for various hw found on the Samsung Galaxy S5:
- touchkey (the two buttons around the home button)
- touchscreen
- notification led
- wifi
- external SD card

Please note that for working wifi the correct firmware is needed. Check [1]
for links and locations.

Also note, that to actually run a mainline kernel on the klte, you'd need
to apply this patch [2]. Any feedback on getting this to run on pure
mainline are welcome.

[1] https://gitlab.com/postmarketOS/pmaports/-/blob/master/firmware/firmware-samsung-klte/APKBUILD
[2] https://gitlab.com/postmarketOS/linux-postmarketos/-/commit/765f55b248cd3b231af8431fe2f2aeca263b4e4b

Iskren Chernev (7):
ARM: dts: qcom: msm8974-klte: Merge pinctrl nodes
ARM: dts: qcom: msm8974-klte: Add support for touchkey
ARM: dts: qcom: msm8974-klte: Add support for touchscreen
ARM: dts: qcom: msm8974-klte: Add support for led
ARM: dts: qcom: msm8974-klte: Add gpio expander chip
ARM: dts: qcom: msm8974-klte: Add support for wifi
ARM: dts: qcom: msm8974-klte: Add support for SD card

.../boot/dts/qcom-msm8974-samsung-klte.dts | 301 +++++++++++++++++-
1 file changed, 292 insertions(+), 9 deletions(-)


base-commit: c28e58ee9dadc99f79cf16ca805221feddd432ad
--
2.27.0


2020-06-30 14:10:21

by Iskren Chernev

[permalink] [raw]
Subject: [PATCH 2/7] ARM: dts: qcom: msm8974-klte: Add support for touchkey

Add support for the touchkey found on the Samsung Galaxy S5. The
touchkey is responsible for handling the application and back buttons
found around the home button.

Signed-off-by: Iskren Chernev <[email protected]>
---
.../boot/dts/qcom-msm8974-samsung-klte.dts | 44 ++++++++++++++++++-
1 file changed, 43 insertions(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts b/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts
index 9520c6e7910ce..750e2f261139a 100644
--- a/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts
+++ b/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts
@@ -145,7 +145,7 @@ pma8084_l18: l18 {
};

pma8084_l19: l19 {
- regulator-min-microvolt = <2900000>;
+ regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};

@@ -203,6 +203,31 @@ pma8084_l27: l27 {
};
};

+ i2c-gpio-touchkey {
+ compatible = "i2c-gpio";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ sda-gpios = <&msmgpio 95 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+ scl-gpios = <&msmgpio 96 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c_touchkey_pins>;
+
+ touchkey@20 {
+ compatible = "cypress,tm2-touchkey";
+ reg = <0x20>;
+
+ interrupt-parent = <&pma8084_gpios>;
+ interrupts = <6 IRQ_TYPE_EDGE_FALLING>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&touchkey_pin>;
+
+ vcc-supply = <&max77826_ldo15>;
+ vdd-supply = <&pma8084_l19>;
+
+ linux,keycodes = <KEY_APPSELECT KEY_BACK>;
+ };
+ };
+
/delete-node/ vreg-boost;
};

@@ -268,6 +293,15 @@ mux {
bias-disable;
};
};
+
+ i2c_touchkey_pins: i2c-touchkey {
+ mux {
+ pins = "gpio95", "gpio96";
+ function = "gpio";
+ input-enable;
+ bias-pull-up;
+ };
+ };
};

sdhci@f9824900 {
@@ -418,6 +452,14 @@ gpio_keys_pin_a: gpio-keys-active {
bias-pull-up;
power-source = <PMA8084_GPIO_S4>;
};
+
+ touchkey_pin: touchkey-int-pin {
+ pins = "gpio6";
+ function = "normal";
+ bias-disable;
+ input-enable;
+ power-source = <PMA8084_GPIO_S4>;
+ };
};
};
};
--
2.27.0

2020-06-30 14:10:28

by Iskren Chernev

[permalink] [raw]
Subject: [PATCH 4/7] ARM: dts: qcom: msm8974-klte: Add support for led

The klte uses a Panasonic AN30259A LED controller for it's indicator
led.

Signed-off-by: Iskren Chernev <[email protected]>
---
.../boot/dts/qcom-msm8974-samsung-klte.dts | 48 +++++++++++++++++++
1 file changed, 48 insertions(+)

diff --git a/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts b/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts
index 085636f182d01..7b398da9b75ed 100644
--- a/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts
+++ b/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts
@@ -4,6 +4,7 @@
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
+#include <dt-bindings/leds/common.h>

/ {
model = "Samsung Galaxy S5";
@@ -228,6 +229,44 @@ touchkey@20 {
};
};

+ i2c-gpio-led {
+ compatible = "i2c-gpio";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ scl-gpios = <&msmgpio 121 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+ sda-gpios = <&msmgpio 120 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c_led_pins>;
+
+ i2c-gpio,delay-us = <2>;
+
+ led-controller@30 {
+ compatible = "panasonic,an30259a";
+ reg = <0x30>;
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ led@1 {
+ reg = <1>;
+ function = LED_FUNCTION_STATUS;
+ color = <LED_COLOR_ID_RED>;
+ };
+
+ led@2 {
+ reg = <2>;
+ function = LED_FUNCTION_STATUS;
+ color = <LED_COLOR_ID_GREEN>;
+ };
+
+ led@3 {
+ reg = <3>;
+ function = LED_FUNCTION_STATUS;
+ color = <LED_COLOR_ID_BLUE>;
+ };
+ };
+ };
+
/delete-node/ vreg-boost;
};

@@ -312,6 +351,15 @@ mux {
bias-pull-up;
};
};
+
+ i2c_led_pins: i2c-led {
+ mux {
+ pins = "gpio120", "gpio121";
+ function = "gpio";
+ input-enable;
+ bias-pull-down;
+ };
+ };
};

sdhci@f9824900 {
--
2.27.0

2020-06-30 14:10:59

by Iskren Chernev

[permalink] [raw]
Subject: [PATCH 5/7] ARM: dts: qcom: msm8974-klte: Add gpio expander chip

The Samsung Galaxy S5 has a GPIO Expander chip, the PCAL6416A with 16
ports on a i2c bus. These pins are used for WiFi, NFC, IR among other
things.

Signed-off-by: Iskren Chernev <[email protected]>
---
.../boot/dts/qcom-msm8974-samsung-klte.dts | 29 +++++++++++++++++--
1 file changed, 27 insertions(+), 2 deletions(-)

diff --git a/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts b/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts
index 7b398da9b75ed..29099b83b231d 100644
--- a/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts
+++ b/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts
@@ -236,10 +236,25 @@ i2c-gpio-led {
scl-gpios = <&msmgpio 121 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
sda-gpios = <&msmgpio 120 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
pinctrl-names = "default";
- pinctrl-0 = <&i2c_led_pins>;
+ pinctrl-0 = <&i2c_led_gpioex_pins>;

i2c-gpio,delay-us = <2>;

+ gpio_expander: gpio@20 {
+ compatible = "nxp,pcal6416";
+ reg = <0x20>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+
+ vcc-supply = <&pma8084_s4>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&gpioex_pin>;
+
+ reset-gpios = <&msmgpio 145 GPIO_ACTIVE_LOW>;
+ };
+
led-controller@30 {
compatible = "panasonic,an30259a";
reg = <0x30>;
@@ -352,7 +367,7 @@ mux {
};
};

- i2c_led_pins: i2c-led {
+ i2c_led_gpioex_pins: i2c-led-gpioex {
mux {
pins = "gpio120", "gpio121";
function = "gpio";
@@ -360,6 +375,16 @@ mux {
bias-pull-down;
};
};
+
+ gpioex_pin: gpioex {
+ res {
+ pins = "gpio145";
+ function = "gpio";
+
+ bias-pull-up;
+ drive-strength = <2>;
+ };
+ };
};

sdhci@f9824900 {
--
2.27.0

2020-06-30 14:11:04

by Iskren Chernev

[permalink] [raw]
Subject: [PATCH 7/7] ARM: dts: qcom: msm8974-klte: Add support for SD card

The Samsung Galaxy S5 (klte), has 3 SDHCI nodes used for internal
storage, WiFi, external SD card slot. The external SD card slot is
similar to the internal storage.

The device has support for CD (card detect), but if enabled, the card is
not initialized properly if present during startup. That is why CD is
disabled and polling is used instead. Related thread [1]

[1] https://lore.kernel.org/linux-mmc/[email protected]/

Signed-off-by: Iskren Chernev <[email protected]>
---
.../boot/dts/qcom-msm8974-samsung-klte.dts | 44 ++++++++++++++++++-
1 file changed, 43 insertions(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts b/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts
index 989447beb4319..b0899107f3ced 100644
--- a/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts
+++ b/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts
@@ -12,6 +12,8 @@ / {

aliases {
serial0 = &blsp1_uart1;
+ sdhc1 = &sdhc_1; /* SDC1 eMMC slot */
+ sdhc2 = &sdhc_2; /* SDC2 SD card slot */
};

chosen {
@@ -161,6 +163,9 @@ pma8084_l20: l20 {
pma8084_l21: l21 {
regulator-min-microvolt = <2950000>;
regulator-max-microvolt = <2950000>;
+
+ regulator-allow-set-load;
+ regulator-system-load = <200000>;
};

pma8084_l22: l22 {
@@ -349,6 +354,24 @@ cmd-data {
};
};

+ sdhc2_pin_a: sdhc2-pin-active {
+ clk-cmd-data {
+ pins = "gpio35", "gpio36", "gpio37", "gpio38",
+ "gpio39", "gpio40";
+ function = "sdc3";
+ drive-strength = <8>;
+ bias-disable;
+ };
+ };
+
+ sdhc2_cd_pin: sdhc2-cd {
+ pins = "gpio62";
+ function = "gpio";
+
+ drive-strength = <2>;
+ bias-disable;
+ };
+
sdhc3_pin_a: sdhc3-pin-active {
clk {
pins = "sdc2_clk";
@@ -422,7 +445,7 @@ int {
};
};

- sdhci@f9824900 {
+ sdhc_1: sdhci@f9824900 {
status = "ok";

vmmc-supply = <&pma8084_l20>;
@@ -435,6 +458,25 @@ sdhci@f9824900 {
pinctrl-0 = <&sdhc1_pin_a>;
};

+ sdhc_2: sdhci@f9864900 {
+ status = "ok";
+
+ max-frequency = <100000000>;
+
+ vmmc-supply = <&pma8084_l21>;
+ vqmmc-supply = <&pma8084_l13>;
+
+ bus-width = <4>;
+
+ /* cd-gpio is intentionally disabled. If enabled, an SD card
+ * present during boot is not initialized correctly. Without
+ * cd-gpios the driver resorts to polling, so hotplug works.
+ */
+ pinctrl-names = "default";
+ pinctrl-0 = <&sdhc2_pin_a /* &sdhc2_cd_pin */>;
+ // cd-gpios = <&msmgpio 62 GPIO_ACTIVE_LOW>;
+ };
+
sdhci@f98a4900 {
status = "okay";

--
2.27.0

2020-06-30 14:11:19

by Iskren Chernev

[permalink] [raw]
Subject: [PATCH 6/7] ARM: dts: qcom: msm8974-klte: Add support for wifi

The Samsung Galaxy S5 (klte), uses a Broadcom 4354 Chip connected on the
SDIO bus. The chip also requires a corresponding firmware + txt file[1].

[1] https://gitlab.com/postmarketOS/pmaports/-/blob/master/firmware/firmware-samsung-klte/APKBUILD

Signed-off-by: Iskren Chernev <[email protected]>
---
.../boot/dts/qcom-msm8974-samsung-klte.dts | 74 +++++++++++++++++++
1 file changed, 74 insertions(+)

diff --git a/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts b/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts
index 29099b83b231d..989447beb4319 100644
--- a/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts
+++ b/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts
@@ -282,6 +282,17 @@ led@3 {
};
};

+ vreg_wlan: wlan-regulator {
+ compatible = "regulator-fixed";
+
+ regulator-name = "wl-reg";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+
+ gpio = <&gpio_expander 8 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+
/delete-node/ vreg-boost;
};

@@ -338,6 +349,20 @@ cmd-data {
};
};

+ sdhc3_pin_a: sdhc3-pin-active {
+ clk {
+ pins = "sdc2_clk";
+ drive-strength = <6>;
+ bias-disable;
+ };
+
+ cmd-data {
+ pins = "sdc2_cmd", "sdc2_data";
+ drive-strength = <6>;
+ bias-pull-up;
+ };
+ };
+
i2c2_pins: i2c2 {
mux {
pins = "gpio6", "gpio7";
@@ -385,6 +410,16 @@ res {
drive-strength = <2>;
};
};
+
+ wifi_pin: wifi {
+ int {
+ pins = "gpio92";
+ function = "gpio";
+
+ input-enable;
+ bias-pull-down;
+ };
+ };
};

sdhci@f9824900 {
@@ -400,6 +435,36 @@ sdhci@f9824900 {
pinctrl-0 = <&sdhc1_pin_a>;
};

+ sdhci@f98a4900 {
+ status = "okay";
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ max-frequency = <100000000>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&sdhc3_pin_a>;
+
+ vmmc-supply = <&vreg_wlan>;
+ vqmmc-supply = <&pma8084_s4>;
+
+ bus-width = <4>;
+ non-removable;
+
+ wifi@1 {
+ reg = <1>;
+ compatible = "brcm,bcm4329-fmac";
+
+ interrupt-parent = <&msmgpio>;
+ interrupts = <92 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "host-wake";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&wlan_sleep_clk_pin &wifi_pin>;
+ };
+ };
+
usb@f9a55000 {
status = "ok";

@@ -587,6 +652,15 @@ touch_pin: touchscreen-int-pin {
input-enable;
power-source = <PMA8084_GPIO_S4>;
};
+
+ wlan_sleep_clk_pin: wlan-sleep-clk-pin {
+ pins = "gpio16";
+ function = "func2";
+
+ output-high;
+ power-source = <PMA8084_GPIO_S4>;
+ qcom,drive-strength = <PMIC_GPIO_STRENGTH_HIGH>;
+ };
};
};
};
--
2.27.0

2020-06-30 14:12:25

by Iskren Chernev

[permalink] [raw]
Subject: [PATCH 1/7] ARM: dts: qcom: msm8974-klte: Merge pinctrl nodes

commit cd13c72c1853 ("ARM: dts: qcom: msm8974-klte: Add max77826 pmic
node") and commit 8bf7a360a92c ("ARM: dts: qcom: msm8974-klte: Add sdhci1
node") both added pinctrl node. This patch merges the two nodes.

Signed-off-by: Iskren Chernev <[email protected]>
---
.../boot/dts/qcom-msm8974-samsung-klte.dts | 22 +++++++++----------
1 file changed, 10 insertions(+), 12 deletions(-)

diff --git a/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts b/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts
index d4dc98214225a..9520c6e7910ce 100644
--- a/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts
+++ b/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts
@@ -258,6 +258,16 @@ cmd-data {
bias-pull-up;
};
};
+
+ i2c6_pins: i2c6 {
+ mux {
+ pins = "gpio29", "gpio30";
+ function = "blsp_i2c6";
+
+ drive-strength = <2>;
+ bias-disable;
+ };
+ };
};

sdhci@f9824900 {
@@ -298,18 +308,6 @@ phy@a {
};
};

- pinctrl@fd510000 {
- i2c6_pins: i2c6 {
- mux {
- pins = "gpio29", "gpio30";
- function = "blsp_i2c6";
-
- drive-strength = <2>;
- bias-disable;
- };
- };
- };
-
i2c@f9928000 {
status = "okay";

--
2.27.0

2020-06-30 14:13:08

by Iskren Chernev

[permalink] [raw]
Subject: [PATCH 3/7] ARM: dts: qcom: msm8974-klte: Add support for touchscreen

Add support for the touchscreen found on the Samsung Galaxy S5.

Signed-off-by: Iskren Chernev <[email protected]>
---
.../boot/dts/qcom-msm8974-samsung-klte.dts | 54 +++++++++++++++++++
1 file changed, 54 insertions(+)

diff --git a/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts b/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts
index 750e2f261139a..085636f182d01 100644
--- a/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts
+++ b/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts
@@ -284,6 +284,16 @@ cmd-data {
};
};

+ i2c2_pins: i2c2 {
+ mux {
+ pins = "gpio6", "gpio7";
+ function = "blsp_i2c2";
+
+ drive-strength = <2>;
+ bias-disable;
+ };
+ };
+
i2c6_pins: i2c6 {
mux {
pins = "gpio29", "gpio30";
@@ -342,6 +352,42 @@ phy@a {
};
};

+ i2c@f9924000 {
+ status = "okay";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c2_pins>;
+
+ touchscreen@20 {
+ compatible = "syna,rmi4-i2c";
+ reg = <0x20>;
+
+ interrupt-parent = <&pma8084_gpios>;
+ interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
+
+ vdd-supply = <&max77826_ldo13>;
+ vio-supply = <&pma8084_lvs2>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&touch_pin>;
+
+ syna,startup-delay-ms = <100>;
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ rmi4-f01@1 {
+ reg = <0x1>;
+ syna,nosleep-mode = <1>;
+ };
+
+ rmi4-f12@12 {
+ reg = <0x12>;
+ syna,sensor-type = <1>;
+ };
+ };
+ };
+
i2c@f9928000 {
status = "okay";

@@ -460,6 +506,14 @@ touchkey_pin: touchkey-int-pin {
input-enable;
power-source = <PMA8084_GPIO_S4>;
};
+
+ touch_pin: touchscreen-int-pin {
+ pins = "gpio8";
+ function = "normal";
+ bias-disable;
+ input-enable;
+ power-source = <PMA8084_GPIO_S4>;
+ };
};
};
};
--
2.27.0

2020-07-01 10:37:55

by Brian Masney

[permalink] [raw]
Subject: Re: [PATCH 0/7] ARM: dts: qcom: msm8974: klte: Enable some hardware

Hi Iskren,

On Tue, Jun 30, 2020 at 05:09:05PM +0300, Iskren Chernev wrote:
> Enable support for various hw found on the Samsung Galaxy S5:
> - touchkey (the two buttons around the home button)
> - touchscreen
> - notification led
> - wifi
> - external SD card
>
> Please note that for working wifi the correct firmware is needed. Check [1]
> for links and locations.
>
> Also note, that to actually run a mainline kernel on the klte, you'd need
> to apply this patch [2]. Any feedback on getting this to run on pure
> mainline are welcome.
>
> [1] https://gitlab.com/postmarketOS/pmaports/-/blob/master/firmware/firmware-samsung-klte/APKBUILD
> [2] https://gitlab.com/postmarketOS/linux-postmarketos/-/commit/765f55b248cd3b231af8431fe2f2aeca263b4e4b

Good to see more msm8974 support upstream!

Regarding the second patch, that should only be needed in order to
use the GPU on these devices. I hope that patch won't be needed once
IOMMU support is added, which is the last major missing piece in order
to have the GPU working upstream. I posted a RFC patch [3] in January
but didn't get any suggestions. I suspect some kind of memory corruption
since the board gets unstable with that patch.

If that hack patch is still needed to use the GPU once IOMMU support is
in place, then I planned to troubleshoot it further by adding some log
statements to various probe functions with and without that patch to see
the probe order between the various subsystems. I suspect the issue is
that a clock isn't ticking yet.

[3] https://lore.kernel.org/lkml/[email protected]/T/#u

Brian

2020-07-01 13:51:21

by Iskren Chernev

[permalink] [raw]
Subject: Re: [PATCH 0/7] ARM: dts: qcom: msm8974: klte: Enable some hardware


On 7/1/20 1:30 PM, Brian Masney wrote:
> Hi Iskren,
>
> On Tue, Jun 30, 2020 at 05:09:05PM +0300, Iskren Chernev wrote:
>> Enable support for various hw found on the Samsung Galaxy S5:
>> - touchkey (the two buttons around the home button)
>> - touchscreen
>> - notification led
>> - wifi
>> - external SD card
>>
>> Please note that for working wifi the correct firmware is needed. Check [1]
>> for links and locations.
>>
>> Also note, that to actually run a mainline kernel on the klte, you'd need
>> to apply this patch [2]. Any feedback on getting this to run on pure
>> mainline are welcome.
>>
>> [1] https://gitlab.com/postmarketOS/pmaports/-/blob/master/firmware/firmware-samsung-klte/APKBUILD
>> [2] https://gitlab.com/postmarketOS/linux-postmarketos/-/commit/765f55b248cd3b231af8431fe2f2aeca263b4e4b
>
> Good to see more msm8974 support upstream!
>
> Regarding the second patch, that should only be needed in order to
> use the GPU on these devices.

For the klte, without this delay rpm init patch, the device reboots soon
after being booted. I tested with pure v5.8 and next-20200701 (both have
basic klte support, including usb ethernet for ssh). With the patch
applied, it works like a charm.

Note that there is no GPU enabled in this setup (unless I'm missing some
piece from the SOC dtsi).

> I hope that patch won't be needed once
> IOMMU support is added, which is the last major missing piece in order
> to have the GPU working upstream. I posted a RFC patch [3] in January
> but didn't get any suggestions. I suspect some kind of memory corruption
> since the board gets unstable with that patch.

If the IOMMU is only used for graphics, then the problem remains for klte.

> If that hack patch is still needed to use the GPU once IOMMU support is
> in place, then I planned to troubleshoot it further by adding some log
> statements to various probe functions with and without that patch to see
> the probe order between the various subsystems. I suspect the issue is
> that a clock isn't ticking yet.
>
> [3] https://lore.kernel.org/lkml/[email protected]/T/#u

I'll be happy to help with that.

> Brian

Iskren