linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/7] ARM: dts: qcom: msm8974: klte: Enable some hardware
@ 2020-06-30 14:09 Iskren Chernev
  2020-06-30 14:09 ` [PATCH 1/7] ARM: dts: qcom: msm8974-klte: Merge pinctrl nodes Iskren Chernev
                   ` (7 more replies)
  0 siblings, 8 replies; 10+ messages in thread
From: Iskren Chernev @ 2020-06-30 14:09 UTC (permalink / raw)
  To: Rob Herring
  Cc: Andy Gross, Bjorn Andersson, devicetree, linux-kernel,
	~postmarketos/upstreaming, linux-arm-msm, Iskren Chernev

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


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH 1/7] ARM: dts: qcom: msm8974-klte: Merge pinctrl nodes
  2020-06-30 14:09 [PATCH 0/7] ARM: dts: qcom: msm8974: klte: Enable some hardware Iskren Chernev
@ 2020-06-30 14:09 ` Iskren Chernev
  2020-06-30 14:09 ` [PATCH 2/7] ARM: dts: qcom: msm8974-klte: Add support for touchkey Iskren Chernev
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 10+ messages in thread
From: Iskren Chernev @ 2020-06-30 14:09 UTC (permalink / raw)
  To: Rob Herring
  Cc: Andy Gross, Bjorn Andersson, devicetree, linux-kernel,
	~postmarketos/upstreaming, linux-arm-msm, Iskren Chernev

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 <iskren.chernev@gmail.com>
---
 .../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


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 2/7] ARM: dts: qcom: msm8974-klte: Add support for touchkey
  2020-06-30 14:09 [PATCH 0/7] ARM: dts: qcom: msm8974: klte: Enable some hardware Iskren Chernev
  2020-06-30 14:09 ` [PATCH 1/7] ARM: dts: qcom: msm8974-klte: Merge pinctrl nodes Iskren Chernev
@ 2020-06-30 14:09 ` Iskren Chernev
  2020-06-30 14:09 ` [PATCH 3/7] ARM: dts: qcom: msm8974-klte: Add support for touchscreen Iskren Chernev
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 10+ messages in thread
From: Iskren Chernev @ 2020-06-30 14:09 UTC (permalink / raw)
  To: Rob Herring
  Cc: Andy Gross, Bjorn Andersson, devicetree, linux-kernel,
	~postmarketos/upstreaming, linux-arm-msm, Iskren Chernev

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 <iskren.chernev@gmail.com>
---
 .../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


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 3/7] ARM: dts: qcom: msm8974-klte: Add support for touchscreen
  2020-06-30 14:09 [PATCH 0/7] ARM: dts: qcom: msm8974: klte: Enable some hardware Iskren Chernev
  2020-06-30 14:09 ` [PATCH 1/7] ARM: dts: qcom: msm8974-klte: Merge pinctrl nodes Iskren Chernev
  2020-06-30 14:09 ` [PATCH 2/7] ARM: dts: qcom: msm8974-klte: Add support for touchkey Iskren Chernev
@ 2020-06-30 14:09 ` Iskren Chernev
  2020-06-30 14:09 ` [PATCH 4/7] ARM: dts: qcom: msm8974-klte: Add support for led Iskren Chernev
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 10+ messages in thread
From: Iskren Chernev @ 2020-06-30 14:09 UTC (permalink / raw)
  To: Rob Herring
  Cc: Andy Gross, Bjorn Andersson, devicetree, linux-kernel,
	~postmarketos/upstreaming, linux-arm-msm, Iskren Chernev

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

Signed-off-by: Iskren Chernev <iskren.chernev@gmail.com>
---
 .../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


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 4/7] ARM: dts: qcom: msm8974-klte: Add support for led
  2020-06-30 14:09 [PATCH 0/7] ARM: dts: qcom: msm8974: klte: Enable some hardware Iskren Chernev
                   ` (2 preceding siblings ...)
  2020-06-30 14:09 ` [PATCH 3/7] ARM: dts: qcom: msm8974-klte: Add support for touchscreen Iskren Chernev
@ 2020-06-30 14:09 ` Iskren Chernev
  2020-06-30 14:09 ` [PATCH 5/7] ARM: dts: qcom: msm8974-klte: Add gpio expander chip Iskren Chernev
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 10+ messages in thread
From: Iskren Chernev @ 2020-06-30 14:09 UTC (permalink / raw)
  To: Rob Herring
  Cc: Andy Gross, Bjorn Andersson, devicetree, linux-kernel,
	~postmarketos/upstreaming, linux-arm-msm, Iskren Chernev

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

Signed-off-by: Iskren Chernev <iskren.chernev@gmail.com>
---
 .../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


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 5/7] ARM: dts: qcom: msm8974-klte: Add gpio expander chip
  2020-06-30 14:09 [PATCH 0/7] ARM: dts: qcom: msm8974: klte: Enable some hardware Iskren Chernev
                   ` (3 preceding siblings ...)
  2020-06-30 14:09 ` [PATCH 4/7] ARM: dts: qcom: msm8974-klte: Add support for led Iskren Chernev
@ 2020-06-30 14:09 ` Iskren Chernev
  2020-06-30 14:09 ` [PATCH 6/7] ARM: dts: qcom: msm8974-klte: Add support for wifi Iskren Chernev
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 10+ messages in thread
From: Iskren Chernev @ 2020-06-30 14:09 UTC (permalink / raw)
  To: Rob Herring
  Cc: Andy Gross, Bjorn Andersson, devicetree, linux-kernel,
	~postmarketos/upstreaming, linux-arm-msm, Iskren Chernev

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 <iskren.chernev@gmail.com>
---
 .../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


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 6/7] ARM: dts: qcom: msm8974-klte: Add support for wifi
  2020-06-30 14:09 [PATCH 0/7] ARM: dts: qcom: msm8974: klte: Enable some hardware Iskren Chernev
                   ` (4 preceding siblings ...)
  2020-06-30 14:09 ` [PATCH 5/7] ARM: dts: qcom: msm8974-klte: Add gpio expander chip Iskren Chernev
@ 2020-06-30 14:09 ` Iskren Chernev
  2020-06-30 14:09 ` [PATCH 7/7] ARM: dts: qcom: msm8974-klte: Add support for SD card Iskren Chernev
  2020-07-01 10:30 ` [PATCH 0/7] ARM: dts: qcom: msm8974: klte: Enable some hardware Brian Masney
  7 siblings, 0 replies; 10+ messages in thread
From: Iskren Chernev @ 2020-06-30 14:09 UTC (permalink / raw)
  To: Rob Herring
  Cc: Andy Gross, Bjorn Andersson, devicetree, linux-kernel,
	~postmarketos/upstreaming, linux-arm-msm, Iskren Chernev

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 <iskren.chernev@gmail.com>
---
 .../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


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 7/7] ARM: dts: qcom: msm8974-klte: Add support for SD card
  2020-06-30 14:09 [PATCH 0/7] ARM: dts: qcom: msm8974: klte: Enable some hardware Iskren Chernev
                   ` (5 preceding siblings ...)
  2020-06-30 14:09 ` [PATCH 6/7] ARM: dts: qcom: msm8974-klte: Add support for wifi Iskren Chernev
@ 2020-06-30 14:09 ` Iskren Chernev
  2020-07-01 10:30 ` [PATCH 0/7] ARM: dts: qcom: msm8974: klte: Enable some hardware Brian Masney
  7 siblings, 0 replies; 10+ messages in thread
From: Iskren Chernev @ 2020-06-30 14:09 UTC (permalink / raw)
  To: Rob Herring
  Cc: Andy Gross, Bjorn Andersson, devicetree, linux-kernel,
	~postmarketos/upstreaming, linux-arm-msm, Iskren Chernev

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/491cfef4-4a97-b6e8-0f41-d44e1c73eea4@gmail.com/

Signed-off-by: Iskren Chernev <iskren.chernev@gmail.com>
---
 .../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


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH 0/7] ARM: dts: qcom: msm8974: klte: Enable some hardware
  2020-06-30 14:09 [PATCH 0/7] ARM: dts: qcom: msm8974: klte: Enable some hardware Iskren Chernev
                   ` (6 preceding siblings ...)
  2020-06-30 14:09 ` [PATCH 7/7] ARM: dts: qcom: msm8974-klte: Add support for SD card Iskren Chernev
@ 2020-07-01 10:30 ` Brian Masney
  2020-07-01 13:50   ` Iskren Chernev
  7 siblings, 1 reply; 10+ messages in thread
From: Brian Masney @ 2020-07-01 10:30 UTC (permalink / raw)
  To: Iskren Chernev
  Cc: Rob Herring, Andy Gross, Bjorn Andersson, devicetree,
	linux-kernel, ~postmarketos/upstreaming, linux-arm-msm

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/20200109002606.35653-1-masneyb@onstation.org/T/#u

Brian

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 0/7] ARM: dts: qcom: msm8974: klte: Enable some hardware
  2020-07-01 10:30 ` [PATCH 0/7] ARM: dts: qcom: msm8974: klte: Enable some hardware Brian Masney
@ 2020-07-01 13:50   ` Iskren Chernev
  0 siblings, 0 replies; 10+ messages in thread
From: Iskren Chernev @ 2020-07-01 13:50 UTC (permalink / raw)
  To: Brian Masney
  Cc: Rob Herring, Andy Gross, Bjorn Andersson, devicetree,
	linux-kernel, ~postmarketos/upstreaming, linux-arm-msm


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/20200109002606.35653-1-masneyb@onstation.org/T/#u

I'll be happy to help with that.

> Brian

Iskren


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2020-07-01 13:50 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-30 14:09 [PATCH 0/7] ARM: dts: qcom: msm8974: klte: Enable some hardware Iskren Chernev
2020-06-30 14:09 ` [PATCH 1/7] ARM: dts: qcom: msm8974-klte: Merge pinctrl nodes Iskren Chernev
2020-06-30 14:09 ` [PATCH 2/7] ARM: dts: qcom: msm8974-klte: Add support for touchkey Iskren Chernev
2020-06-30 14:09 ` [PATCH 3/7] ARM: dts: qcom: msm8974-klte: Add support for touchscreen Iskren Chernev
2020-06-30 14:09 ` [PATCH 4/7] ARM: dts: qcom: msm8974-klte: Add support for led Iskren Chernev
2020-06-30 14:09 ` [PATCH 5/7] ARM: dts: qcom: msm8974-klte: Add gpio expander chip Iskren Chernev
2020-06-30 14:09 ` [PATCH 6/7] ARM: dts: qcom: msm8974-klte: Add support for wifi Iskren Chernev
2020-06-30 14:09 ` [PATCH 7/7] ARM: dts: qcom: msm8974-klte: Add support for SD card Iskren Chernev
2020-07-01 10:30 ` [PATCH 0/7] ARM: dts: qcom: msm8974: klte: Enable some hardware Brian Masney
2020-07-01 13:50   ` Iskren Chernev

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).