linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/4] ARM: dts: qcom: msm8974: Add Samsung Galaxy S5 China support
@ 2024-02-13 10:58 Rong Zhang
  2024-02-13 10:58 ` [PATCH v3 1/4] ARM: dts: qcom: msm8974: Split out common part of samsung-klte Rong Zhang
                   ` (4 more replies)
  0 siblings, 5 replies; 13+ messages in thread
From: Rong Zhang @ 2024-02-13 10:58 UTC (permalink / raw)
  To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley
  Cc: Rong Zhang, linux-arm-msm, devicetree, linux-kernel, Icenowy Zheng

Samsung Galaxy S5 has many variants. Currently, the only supported one
is klte. Samsung Galaxy S5 China (kltechn) is the China edition of
klte, and it can mostly work with the klte DTB, with only LEDs and WiFi
missing.

This patchset splits out the common part of klte DTS into klte-common
DTSI, and adds DTS for kltechn by fixing up the GPIO pins for the LEDs
and GPIO expander connected by the WiFi module. A "brcm,board-type"
property is added into the wifi@1 node of the common DTSI to allow all
klte* variants to load the same NVRAM file.

Signed-off-by: Rong Zhang <i@rong.moe>
---
Changes in v3:
- Regenerate the patchset with code move detection (-B -M -C).
- Fix "changes in v2" below to state why a tag was not added.
- Link to v2: https://lore.kernel.org/r/20240127172155.63624-1-i@rong.moe/

Changes in v2:
- Split out the common part of klte DTS into klte-common DTSI.
- Fix dt-binding to make it consistent with the compatible chain in
kltechn DTS. In other words, make kltechn a subvariant of klte.
  - [PATCH 3/4] in v1 had received "Acked-by: Krzysztof Kozlowski
  <krzysztof.kozlowski@linaro.org>" but this was not added in the v2
  patch due to the change.
- Link to v1: https://lore.kernel.org/r/20240121154010.168440-1-i@rong.moe/

Rong Zhang (4):
  ARM: dts: qcom: msm8974: Split out common part of samsung-klte
  ARM: dts: qcom: msm8974-klte-common: Pin WiFi board type
  dt-bindings: arm: qcom: Add Samsung Galaxy S5 China (kltechn)
  ARM: dts: qcom: msm8974: Add DTS for Samsung Galaxy S5 China (kltechn)

 .../devicetree/bindings/arm/qcom.yaml         |   7 +
 arch/arm/boot/dts/qcom/Makefile               |   1 +
 ... qcom-msm8974pro-samsung-klte-common.dtsi} |  13 +-
 .../dts/qcom/qcom-msm8974pro-samsung-klte.dts | 833 +-----------------
 .../qcom/qcom-msm8974pro-samsung-kltechn.dts  |  16 +
 5 files changed, 47 insertions(+), 823 deletions(-)
 copy arch/arm/boot/dts/qcom/{qcom-msm8974pro-samsung-klte.dts => qcom-msm8974pro-samsung-klte-common.dtsi} (98%)
 rewrite arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte.dts (99%)
 create mode 100644 arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-kltechn.dts


base-commit: c664e16bb1ba1c8cf1d7ecf3df5fd83bbb8ac15a
-- 
2.43.0


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

* [PATCH v3 1/4] ARM: dts: qcom: msm8974: Split out common part of samsung-klte
  2024-02-13 10:58 [PATCH v3 0/4] ARM: dts: qcom: msm8974: Add Samsung Galaxy S5 China support Rong Zhang
@ 2024-02-13 10:58 ` Rong Zhang
  2024-02-13 11:21   ` Krzysztof Kozlowski
                     ` (2 more replies)
  2024-02-13 10:58 ` [PATCH v3 2/4] ARM: dts: qcom: msm8974-klte-common: Pin WiFi board type Rong Zhang
                   ` (3 subsequent siblings)
  4 siblings, 3 replies; 13+ messages in thread
From: Rong Zhang @ 2024-02-13 10:58 UTC (permalink / raw)
  To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley
  Cc: Rong Zhang, linux-arm-msm, devicetree, linux-kernel, Icenowy Zheng

Samsung Galaxy S5 has many variants. Variants that support LTE use klte*
as their codename. Currently, the only supported one is the one without
any suffix, namely, klte. It is known that other klte* variants have
only minor differences compared to klte and can mostly work with the
klte DTB.

Split the common part into a common DTSI so that it can be imported in
the DTS of klte and other klte* variants.

Signed-off-by: Rong Zhang <i@rong.moe>
---
 ... qcom-msm8974pro-samsung-klte-common.dtsi} |   7 +-
 .../dts/qcom/qcom-msm8974pro-samsung-klte.dts | 833 +-----------------
 2 files changed, 17 insertions(+), 823 deletions(-)
 copy arch/arm/boot/dts/qcom/{qcom-msm8974pro-samsung-klte.dts => qcom-msm8974pro-samsung-klte-common.dtsi} (98%)
 rewrite arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte.dts (99%)

diff --git a/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte.dts b/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte-common.dtsi
similarity index 98%
copy from arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte.dts
copy to arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte-common.dtsi
index b93539e2b87e..11e35b34ebd6 100644
--- a/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte.dts
+++ b/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte-common.dtsi
@@ -6,8 +6,6 @@
 #include <dt-bindings/leds/common.h>
 
 / {
-	model = "Samsung Galaxy S5";
-	compatible = "samsung,klte", "qcom,msm8974pro", "qcom,msm8974";
 	chassis-type = "handset";
 
 	aliases {
@@ -77,12 +75,10 @@ touchkey@20 {
 		};
 	};
 
-	i2c-gpio-led {
+	i2c_led_gpio: i2c-gpio-led {
 		compatible = "i2c-gpio";
 		#address-cells = <1>;
 		#size-cells = <0>;
-		scl-gpios = <&tlmm 121 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
-		sda-gpios = <&tlmm 120 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
 		pinctrl-names = "default";
 		pinctrl-0 = <&i2c_led_gpioex_pins>;
 
@@ -770,7 +766,6 @@ i2c_touchkey_pins: i2c-touchkey-state {
 	};
 
 	i2c_led_gpioex_pins: i2c-led-gpioex-state {
-		pins = "gpio120", "gpio121";
 		function = "gpio";
 		bias-pull-down;
 	};
diff --git a/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte.dts b/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte.dts
dissimilarity index 99%
index b93539e2b87e..954665f3a9dd 100644
--- a/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte.dts
+++ b/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte.dts
@@ -1,817 +1,16 @@
-// SPDX-License-Identifier: GPL-2.0
-#include "qcom-msm8974pro.dtsi"
-#include "pma8084.dtsi"
-#include <dt-bindings/input/input.h>
-#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
-#include <dt-bindings/leds/common.h>
-
-/ {
-	model = "Samsung Galaxy S5";
-	compatible = "samsung,klte", "qcom,msm8974pro", "qcom,msm8974";
-	chassis-type = "handset";
-
-	aliases {
-		serial0 = &blsp1_uart1;
-		mmc0 = &sdhc_1; /* SDC1 eMMC slot */
-		mmc1 = &sdhc_3; /* SDC2 SD card slot */
-	};
-
-	chosen {
-		stdout-path = "serial0:115200n8";
-	};
-
-	gpio-keys {
-		compatible = "gpio-keys";
-
-		pinctrl-names = "default";
-		pinctrl-0 = <&gpio_keys_pin_a>;
-
-		key-volume-down {
-			label = "volume_down";
-			gpios = <&pma8084_gpios 2 GPIO_ACTIVE_LOW>;
-			linux,input-type = <1>;
-			linux,code = <KEY_VOLUMEDOWN>;
-			debounce-interval = <15>;
-		};
-
-		key-home {
-			label = "home_key";
-			gpios = <&pma8084_gpios 3 GPIO_ACTIVE_LOW>;
-			linux,input-type = <1>;
-			linux,code = <KEY_HOMEPAGE>;
-			wakeup-source;
-			debounce-interval = <15>;
-		};
-
-		key-volume-up {
-			label = "volume_up";
-			gpios = <&pma8084_gpios 5 GPIO_ACTIVE_LOW>;
-			linux,input-type = <1>;
-			linux,code = <KEY_VOLUMEUP>;
-			debounce-interval = <15>;
-		};
-	};
-
-	i2c-gpio-touchkey {
-		compatible = "i2c-gpio";
-		#address-cells = <1>;
-		#size-cells = <0>;
-		sda-gpios = <&tlmm 95 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
-		scl-gpios = <&tlmm 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>;
-		};
-	};
-
-	i2c-gpio-led {
-		compatible = "i2c-gpio";
-		#address-cells = <1>;
-		#size-cells = <0>;
-		scl-gpios = <&tlmm 121 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
-		sda-gpios = <&tlmm 120 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
-		pinctrl-names = "default";
-		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 = <&tlmm 145 GPIO_ACTIVE_LOW>;
-		};
-
-		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>;
-			};
-		};
-	};
-
-	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;
-	};
-
-	vreg_panel: panel-regulator {
-		compatible = "regulator-fixed";
-
-		pinctrl-names = "default";
-		pinctrl-0 = <&panel_en_pin>;
-
-		regulator-name = "panel-vddr-reg";
-		regulator-min-microvolt = <1500000>;
-		regulator-max-microvolt = <1500000>;
-
-		gpio = <&pma8084_gpios 14 GPIO_ACTIVE_HIGH>;
-		enable-active-high;
-	};
-
-	vreg_vph_pwr: vreg-vph-pwr {
-		compatible = "regulator-fixed";
-		regulator-name = "vph-pwr";
-
-		regulator-min-microvolt = <3600000>;
-		regulator-max-microvolt = <3600000>;
-
-		regulator-always-on;
-	};
-};
-
-&blsp1_i2c2 {
-	status = "okay";
-
-	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>;
-		};
-	};
-};
-
-&blsp1_i2c6 {
-	status = "okay";
-
-	pmic@60 {
-		reg = <0x60>;
-		compatible = "maxim,max77826";
-
-		regulators {
-			max77826_ldo1: LDO1 {
-				regulator-min-microvolt = <1200000>;
-				regulator-max-microvolt = <1200000>;
-			};
-
-			max77826_ldo2: LDO2 {
-				regulator-min-microvolt = <1000000>;
-				regulator-max-microvolt = <1000000>;
-			};
-
-			max77826_ldo3: LDO3 {
-				regulator-min-microvolt = <1200000>;
-				regulator-max-microvolt = <1200000>;
-			};
-
-			max77826_ldo4: LDO4 {
-				regulator-min-microvolt = <1800000>;
-				regulator-max-microvolt = <1800000>;
-			};
-
-			max77826_ldo5: LDO5 {
-				regulator-min-microvolt = <1800000>;
-				regulator-max-microvolt = <1800000>;
-			};
-
-			max77826_ldo6: LDO6 {
-				regulator-min-microvolt = <1800000>;
-				regulator-max-microvolt = <3300000>;
-			};
-
-			max77826_ldo7: LDO7 {
-				regulator-min-microvolt = <1800000>;
-				regulator-max-microvolt = <1800000>;
-			};
-
-			max77826_ldo8: LDO8 {
-				regulator-min-microvolt = <1800000>;
-				regulator-max-microvolt = <3300000>;
-			};
-
-			max77826_ldo9: LDO9 {
-				regulator-min-microvolt = <1800000>;
-				regulator-max-microvolt = <1800000>;
-			};
-
-			max77826_ldo10: LDO10 {
-				regulator-min-microvolt = <2800000>;
-				regulator-max-microvolt = <2950000>;
-			};
-
-			max77826_ldo11: LDO11 {
-				regulator-min-microvolt = <2700000>;
-				regulator-max-microvolt = <2950000>;
-			};
-
-			max77826_ldo12: LDO12 {
-				regulator-min-microvolt = <2500000>;
-				regulator-max-microvolt = <3300000>;
-			};
-
-			max77826_ldo13: LDO13 {
-				regulator-min-microvolt = <3300000>;
-				regulator-max-microvolt = <3300000>;
-			};
-
-			max77826_ldo14: LDO14 {
-				regulator-min-microvolt = <3300000>;
-				regulator-max-microvolt = <3300000>;
-			};
-
-			max77826_ldo15: LDO15 {
-				regulator-min-microvolt = <1800000>;
-				regulator-max-microvolt = <1800000>;
-			};
-
-			max77826_buck: BUCK {
-				regulator-min-microvolt = <1225000>;
-				regulator-max-microvolt = <1225000>;
-			};
-
-			max77826_buckboost: BUCKBOOST {
-				regulator-min-microvolt = <3400000>;
-				regulator-max-microvolt = <3400000>;
-			};
-		};
-	};
-};
-
-&blsp1_uart2 {
-	status = "okay";
-};
-
-&blsp2_i2c6 {
-	status = "okay";
-
-	fuelgauge@36 {
-		compatible = "maxim,max17048";
-		reg = <0x36>;
-
-		maxim,double-soc;
-		maxim,rcomp = /bits/ 8 <0x56>;
-
-		interrupt-parent = <&pma8084_gpios>;
-		interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
-
-		pinctrl-names = "default";
-		pinctrl-0 = <&fuelgauge_pin>;
-	};
-};
-
-&blsp2_uart2 {
-	status = "okay";
-
-	pinctrl-names = "default", "sleep";
-	pinctrl-0 = <&blsp2_uart2_pins_active>;
-	pinctrl-1 = <&blsp2_uart2_pins_sleep>;
-
-	bluetooth {
-		compatible = "brcm,bcm43540-bt";
-		max-speed = <3000000>;
-		pinctrl-names = "default";
-		pinctrl-0 = <&bt_pins>;
-		device-wakeup-gpios = <&tlmm 91 GPIO_ACTIVE_HIGH>;
-		shutdown-gpios = <&gpio_expander 9 GPIO_ACTIVE_HIGH>;
-		interrupt-parent = <&tlmm>;
-		interrupts = <75 IRQ_TYPE_LEVEL_HIGH>;
-		interrupt-names = "host-wakeup";
-	};
-};
-
-&gpu {
-	status = "okay";
-};
-
-&mdss {
-	status = "okay";
-};
-
-&mdss_dsi0 {
-	status = "okay";
-
-	vdda-supply = <&pma8084_l2>;
-	vdd-supply = <&pma8084_l22>;
-	vddio-supply = <&pma8084_l12>;
-
-	panel: panel@0 {
-		reg = <0>;
-		compatible = "samsung,s6e3fa2";
-
-		pinctrl-names = "default";
-		pinctrl-0 = <&panel_te_pin &panel_rst_pin>;
-
-		iovdd-supply = <&pma8084_lvs4>;
-		vddr-supply = <&vreg_panel>;
-
-		reset-gpios = <&pma8084_gpios 17 GPIO_ACTIVE_LOW>;
-
-		port {
-			panel_in: endpoint {
-				remote-endpoint = <&mdss_dsi0_out>;
-			};
-		};
-	};
-};
-
-&mdss_dsi0_out {
-	remote-endpoint = <&panel_in>;
-	data-lanes = <0 1 2 3>;
-};
-
-&mdss_dsi0_phy {
-	status = "okay";
-
-	vddio-supply = <&pma8084_l12>;
-};
-
-&pma8084_gpios {
-	gpio_keys_pin_a: gpio-keys-active-state {
-		pins = "gpio2", "gpio3", "gpio5";
-		function = "normal";
-
-		bias-pull-up;
-		power-source = <PMA8084_GPIO_S4>;
-	};
-
-	touchkey_pin: touchkey-int-state {
-		pins = "gpio6";
-		function = "normal";
-		bias-disable;
-		input-enable;
-		power-source = <PMA8084_GPIO_S4>;
-	};
-
-	touch_pin: touchscreen-int-state {
-		pins = "gpio8";
-		function = "normal";
-		bias-disable;
-		input-enable;
-		power-source = <PMA8084_GPIO_S4>;
-	};
-
-	panel_en_pin: panel-en-state {
-		pins = "gpio14";
-		function = "normal";
-		bias-pull-up;
-		power-source = <PMA8084_GPIO_S4>;
-		qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
-	};
-
-	wlan_sleep_clk_pin: wlan-sleep-clk-state {
-		pins = "gpio16";
-		function = "func2";
-
-		output-high;
-		power-source = <PMA8084_GPIO_S4>;
-		qcom,drive-strength = <PMIC_GPIO_STRENGTH_HIGH>;
-	};
-
-	panel_rst_pin: panel-rst-state {
-		pins = "gpio17";
-		function = "normal";
-		bias-disable;
-		power-source = <PMA8084_GPIO_S4>;
-		qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
-	};
-
-	fuelgauge_pin: fuelgauge-int-state {
-		pins = "gpio21";
-		function = "normal";
-		bias-disable;
-		input-enable;
-		power-source = <PMA8084_GPIO_S4>;
-	};
-};
-
-&remoteproc_adsp {
-	status = "okay";
-	cx-supply = <&pma8084_s2>;
-};
-
-&remoteproc_mss {
-	status = "okay";
-	cx-supply = <&pma8084_s2>;
-	mss-supply = <&pma8084_s6>;
-	mx-supply = <&pma8084_s1>;
-	pll-supply = <&pma8084_l12>;
-};
-
-&rpm_requests {
-	regulators-0 {
-		compatible = "qcom,rpm-pma8084-regulators";
-
-		pma8084_s1: s1 {
-			regulator-min-microvolt = <675000>;
-			regulator-max-microvolt = <1050000>;
-			regulator-always-on;
-		};
-
-		pma8084_s2: s2 {
-			regulator-min-microvolt = <500000>;
-			regulator-max-microvolt = <1050000>;
-		};
-
-		pma8084_s3: s3 {
-			regulator-min-microvolt = <1300000>;
-			regulator-max-microvolt = <1300000>;
-		};
-
-		pma8084_s4: s4 {
-			regulator-min-microvolt = <1800000>;
-			regulator-max-microvolt = <1800000>;
-		};
-
-		pma8084_s5: s5 {
-			regulator-min-microvolt = <2150000>;
-			regulator-max-microvolt = <2150000>;
-		};
-
-		pma8084_s6: s6 {
-			regulator-min-microvolt = <1050000>;
-			regulator-max-microvolt = <1050000>;
-		};
-
-		pma8084_l1: l1 {
-			regulator-min-microvolt = <1225000>;
-			regulator-max-microvolt = <1225000>;
-		};
-
-		pma8084_l2: l2 {
-			regulator-min-microvolt = <1200000>;
-			regulator-max-microvolt = <1200000>;
-		};
-
-		pma8084_l3: l3 {
-			regulator-min-microvolt = <1050000>;
-			regulator-max-microvolt = <1200000>;
-		};
-
-		pma8084_l4: l4 {
-			regulator-min-microvolt = <1200000>;
-			regulator-max-microvolt = <1225000>;
-		};
-
-		pma8084_l5: l5 {
-			regulator-min-microvolt = <1800000>;
-			regulator-max-microvolt = <1800000>;
-		};
-
-		pma8084_l6: l6 {
-			regulator-min-microvolt = <1800000>;
-			regulator-max-microvolt = <1800000>;
-		};
-
-		pma8084_l7: l7 {
-			regulator-min-microvolt = <1800000>;
-			regulator-max-microvolt = <1800000>;
-		};
-
-		pma8084_l8: l8 {
-			regulator-min-microvolt = <1800000>;
-			regulator-max-microvolt = <1800000>;
-		};
-
-		pma8084_l9: l9 {
-			regulator-min-microvolt = <1800000>;
-			regulator-max-microvolt = <2950000>;
-		};
-
-		pma8084_l10: l10 {
-			regulator-min-microvolt = <1800000>;
-			regulator-max-microvolt = <2950000>;
-		};
-
-		pma8084_l11: l11 {
-			regulator-min-microvolt = <1300000>;
-			regulator-max-microvolt = <1300000>;
-		};
-
-		pma8084_l12: l12 {
-			regulator-min-microvolt = <1800000>;
-			regulator-max-microvolt = <1800000>;
-			regulator-always-on;
-		};
-
-		pma8084_l13: l13 {
-			regulator-min-microvolt = <1800000>;
-			regulator-max-microvolt = <2950000>;
-		};
-
-		pma8084_l14: l14 {
-			regulator-min-microvolt = <1800000>;
-			regulator-max-microvolt = <1800000>;
-		};
-
-		pma8084_l15: l15 {
-			regulator-min-microvolt = <2050000>;
-			regulator-max-microvolt = <2050000>;
-		};
-
-		pma8084_l16: l16 {
-			regulator-min-microvolt = <2700000>;
-			regulator-max-microvolt = <2700000>;
-		};
-
-		pma8084_l17: l17 {
-			regulator-min-microvolt = <2850000>;
-			regulator-max-microvolt = <2850000>;
-		};
-
-		pma8084_l18: l18 {
-			regulator-min-microvolt = <2850000>;
-			regulator-max-microvolt = <2850000>;
-		};
-
-		pma8084_l19: l19 {
-			regulator-min-microvolt = <3300000>;
-			regulator-max-microvolt = <3300000>;
-		};
-
-		pma8084_l20: l20 {
-			regulator-min-microvolt = <2950000>;
-			regulator-max-microvolt = <2950000>;
-			regulator-system-load = <200000>;
-			regulator-allow-set-load;
-		};
-
-		pma8084_l21: l21 {
-			regulator-min-microvolt = <2950000>;
-			regulator-max-microvolt = <2950000>;
-			regulator-system-load = <200000>;
-			regulator-allow-set-load;
-		};
-
-		pma8084_l22: l22 {
-			regulator-min-microvolt = <3000000>;
-			regulator-max-microvolt = <3300000>;
-		};
-
-		pma8084_l23: l23 {
-			regulator-min-microvolt = <3000000>;
-			regulator-max-microvolt = <3000000>;
-		};
-
-		pma8084_l24: l24 {
-			regulator-min-microvolt = <3075000>;
-			regulator-max-microvolt = <3075000>;
-		};
-
-		pma8084_l25: l25 {
-			regulator-min-microvolt = <2100000>;
-			regulator-max-microvolt = <2100000>;
-		};
-
-		pma8084_l26: l26 {
-			regulator-min-microvolt = <1800000>;
-			regulator-max-microvolt = <2050000>;
-		};
-
-		pma8084_l27: l27 {
-			regulator-min-microvolt = <1000000>;
-			regulator-max-microvolt = <1225000>;
-		};
-
-		pma8084_lvs1: lvs1 {};
-		pma8084_lvs2: lvs2 {};
-		pma8084_lvs3: lvs3 {};
-		pma8084_lvs4: lvs4 {};
-
-		pma8084_5vs1: 5vs1 {};
-	};
-};
-
-&sdhc_1 {
-	status = "okay";
-
-	vmmc-supply = <&pma8084_l20>;
-	vqmmc-supply = <&pma8084_s4>;
-
-	pinctrl-names = "default", "sleep";
-	pinctrl-0 = <&sdc1_on>;
-	pinctrl-1 = <&sdc1_off>;
-};
-
-&sdhc_2 {
-	status = "okay";
-	max-frequency = <100000000>;
-	vmmc-supply = <&vreg_wlan>;
-	vqmmc-supply = <&pma8084_s4>;
-	non-removable;
-
-	pinctrl-names = "default", "sleep";
-	pinctrl-0 = <&sdc2_on>;
-	pinctrl-1 = <&sdc2_off>;
-
-	wifi@1 {
-		reg = <1>;
-		compatible = "brcm,bcm4329-fmac";
-
-		interrupt-parent = <&tlmm>;
-		interrupts = <92 IRQ_TYPE_LEVEL_HIGH>;
-		interrupt-names = "host-wake";
-
-		pinctrl-names = "default";
-		pinctrl-0 = <&wlan_sleep_clk_pin &wifi_pin>;
-	};
-};
-
-&sdhc_3 {
-	status = "okay";
-	max-frequency = <100000000>;
-	vmmc-supply = <&pma8084_l21>;
-	vqmmc-supply = <&pma8084_l13>;
-
-	/*
-	 * 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 = <&sdc3_on /* &sdhc3_cd_pin */>;
-	/* cd-gpios = <&tlmm 62 GPIO_ACTIVE_LOW>; */
-};
-
-&tlmm {
-	/* This seems suspicious, but somebody with this device should look into it. */
-	blsp2_uart2_pins_active: blsp2-uart2-pins-active-state {
-		pins = "gpio45", "gpio46", "gpio47", "gpio48";
-		function = "blsp_uart8";
-		drive-strength = <8>;
-		bias-disable;
-	};
-
-	blsp2_uart2_pins_sleep: blsp2-uart2-pins-sleep-state {
-		pins = "gpio45", "gpio46", "gpio47", "gpio48";
-		function = "gpio";
-		drive-strength = <2>;
-		bias-pull-down;
-	};
-
-	bt_pins: bt-pins-state {
-		hostwake-pins {
-			pins = "gpio75";
-			function = "gpio";
-			drive-strength = <16>;
-		};
-
-		devwake-pins {
-			pins = "gpio91";
-			function = "gpio";
-			drive-strength = <2>;
-		};
-	};
-
-	sdc1_on: sdhc1-on-state {
-		clk-pins {
-			pins = "sdc1_clk";
-			drive-strength = <4>;
-			bias-disable;
-		};
-
-		cmd-data-pins {
-			pins = "sdc1_cmd", "sdc1_data";
-			drive-strength = <4>;
-			bias-pull-up;
-		};
-	};
-
-	sdc3_on: sdc3-on-state {
-		pins = "gpio35", "gpio36", "gpio37", "gpio38", "gpio39", "gpio40";
-		function = "sdc3";
-		drive-strength = <8>;
-		bias-disable;
-	};
-
-	sdhc3_cd_pin: sdc3-cd-on-state {
-		pins = "gpio62";
-		function = "gpio";
-
-		drive-strength = <2>;
-		bias-disable;
-	};
-
-	sdc2_on: sdhc2-on-state {
-		clk-pins {
-			pins = "sdc2_clk";
-			drive-strength = <6>;
-			bias-disable;
-		};
-
-		cmd-data-pins {
-			pins = "sdc2_cmd", "sdc2_data";
-			drive-strength = <6>;
-			bias-pull-up;
-		};
-	};
-
-	i2c_touchkey_pins: i2c-touchkey-state {
-		pins = "gpio95", "gpio96";
-		function = "gpio";
-		bias-pull-up;
-	};
-
-	i2c_led_gpioex_pins: i2c-led-gpioex-state {
-		pins = "gpio120", "gpio121";
-		function = "gpio";
-		bias-pull-down;
-	};
-
-	gpioex_pin: gpioex-state {
-		pins = "gpio145";
-		function = "gpio";
-		bias-pull-up;
-		drive-strength = <2>;
-	};
-
-	wifi_pin: wifi-state {
-		pins = "gpio92";
-		function = "gpio";
-		bias-pull-down;
-	};
-
-	panel_te_pin: panel-state {
-		pins = "gpio12";
-		function = "mdp_vsync";
-		drive-strength = <2>;
-		bias-disable;
-	};
-};
-
-&usb {
-	status = "okay";
-
-	phys = <&usb_hs1_phy>;
-	phy-select = <&tcsr 0xb000 0>;
-
-	hnp-disable;
-	srp-disable;
-	adp-disable;
-};
-
-&usb_hs1_phy {
-	status = "okay";
-
-	v1p8-supply = <&pma8084_l6>;
-	v3p3-supply = <&pma8084_l24>;
-
-	qcom,init-seq = /bits/ 8 <0x1 0x64>;
-};
+// SPDX-License-Identifier: GPL-2.0
+#include "qcom-msm8974pro-samsung-klte-common.dtsi"
+
+/ {
+	model = "Samsung Galaxy S5";
+	compatible = "samsung,klte", "qcom,msm8974pro", "qcom,msm8974";
+};
+
+&i2c_led_gpio {
+	scl-gpios = <&tlmm 121 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+	sda-gpios = <&tlmm 120 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+};
+
+&i2c_led_gpioex_pins {
+	pins = "gpio120", "gpio121";
+};
-- 
2.43.0


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

* [PATCH v3 2/4] ARM: dts: qcom: msm8974-klte-common: Pin WiFi board type
  2024-02-13 10:58 [PATCH v3 0/4] ARM: dts: qcom: msm8974: Add Samsung Galaxy S5 China support Rong Zhang
  2024-02-13 10:58 ` [PATCH v3 1/4] ARM: dts: qcom: msm8974: Split out common part of samsung-klte Rong Zhang
@ 2024-02-13 10:58 ` Rong Zhang
  2024-02-14 21:25   ` Konrad Dybcio
  2024-02-13 10:58 ` [PATCH v3 3/4] dt-bindings: arm: qcom: Add Samsung Galaxy S5 China (kltechn) Rong Zhang
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 13+ messages in thread
From: Rong Zhang @ 2024-02-13 10:58 UTC (permalink / raw)
  To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley
  Cc: Rong Zhang, linux-arm-msm, devicetree, linux-kernel, Icenowy Zheng

klte* variants have little difference in the WiFi part. Without
"brcm,board-type", variant-specific NVRAM file will be probed (e.g.,
klte probes samsung,klte). Pin it to "samsung,klte" to allow klte* to
load the same NVRAM file as klte.

Signed-off-by: Rong Zhang <i@rong.moe>
---
 .../boot/dts/qcom/qcom-msm8974pro-samsung-klte-common.dtsi  | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte-common.dtsi b/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte-common.dtsi
index 11e35b34ebd6..b5443fd5b425 100644
--- a/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte-common.dtsi
+++ b/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte-common.dtsi
@@ -661,6 +661,12 @@ wifi@1 {
 		reg = <1>;
 		compatible = "brcm,bcm4329-fmac";
 
+		/*
+		 * Allow all klte* variants to load the same NVRAM file,
+		 * as they have little difference in the WiFi part.
+		 */
+		brcm,board-type = "samsung,klte";
+
 		interrupt-parent = <&tlmm>;
 		interrupts = <92 IRQ_TYPE_LEVEL_HIGH>;
 		interrupt-names = "host-wake";
-- 
2.43.0


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

* [PATCH v3 3/4] dt-bindings: arm: qcom: Add Samsung Galaxy S5 China (kltechn)
  2024-02-13 10:58 [PATCH v3 0/4] ARM: dts: qcom: msm8974: Add Samsung Galaxy S5 China support Rong Zhang
  2024-02-13 10:58 ` [PATCH v3 1/4] ARM: dts: qcom: msm8974: Split out common part of samsung-klte Rong Zhang
  2024-02-13 10:58 ` [PATCH v3 2/4] ARM: dts: qcom: msm8974-klte-common: Pin WiFi board type Rong Zhang
@ 2024-02-13 10:58 ` Rong Zhang
  2024-02-13 11:17   ` Krzysztof Kozlowski
  2024-02-13 10:58 ` [PATCH v3 4/4] ARM: dts: qcom: msm8974: Add DTS for " Rong Zhang
  2024-04-23 13:17 ` (subset) [PATCH v3 0/4] ARM: dts: qcom: msm8974: Add Samsung Galaxy S5 China support Bjorn Andersson
  4 siblings, 1 reply; 13+ messages in thread
From: Rong Zhang @ 2024-02-13 10:58 UTC (permalink / raw)
  To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley
  Cc: Rong Zhang, linux-arm-msm, devicetree, linux-kernel, Icenowy Zheng

Document Samsung Galaxy S5 China (kltechn) as a klte variant based on
msm8974pro. Also including "samsung,klte" in the compatible chain as
kltechn works fine with the klte DTB except for LEDs and WiFi missing.

Signed-off-by: Rong Zhang <i@rong.moe>
---
 Documentation/devicetree/bindings/arm/qcom.yaml | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml
index 1a5fb889a444..4979ccae2b64 100644
--- a/Documentation/devicetree/bindings/arm/qcom.yaml
+++ b/Documentation/devicetree/bindings/arm/qcom.yaml
@@ -227,6 +227,13 @@ properties:
           - const: qcom,msm8974pro
           - const: qcom,msm8974
 
+      - items:
+          - enum:
+              - samsung,kltechn
+          - const: samsung,klte
+          - const: qcom,msm8974pro
+          - const: qcom,msm8974
+
       - items:
           - const: qcom,msm8916-mtp
           - const: qcom,msm8916-mtp/1
-- 
2.43.0


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

* [PATCH v3 4/4] ARM: dts: qcom: msm8974: Add DTS for Samsung Galaxy S5 China (kltechn)
  2024-02-13 10:58 [PATCH v3 0/4] ARM: dts: qcom: msm8974: Add Samsung Galaxy S5 China support Rong Zhang
                   ` (2 preceding siblings ...)
  2024-02-13 10:58 ` [PATCH v3 3/4] dt-bindings: arm: qcom: Add Samsung Galaxy S5 China (kltechn) Rong Zhang
@ 2024-02-13 10:58 ` Rong Zhang
  2024-02-13 11:22   ` Krzysztof Kozlowski
  2024-04-23 13:17 ` (subset) [PATCH v3 0/4] ARM: dts: qcom: msm8974: Add Samsung Galaxy S5 China support Bjorn Andersson
  4 siblings, 1 reply; 13+ messages in thread
From: Rong Zhang @ 2024-02-13 10:58 UTC (permalink / raw)
  To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley
  Cc: Rong Zhang, linux-arm-msm, devicetree, linux-kernel, Icenowy Zheng

The only difference between Samsung Galaxy S5 China (kltechn) and klte
is the gpio pins of i2c_led_gpio. With pins corrected, the LEDs and WiFi
are able to work properly.

Signed-off-by: Rong Zhang <i@rong.moe>
---
 arch/arm/boot/dts/qcom/Makefile                  |  1 +
 .../dts/qcom/qcom-msm8974pro-samsung-kltechn.dts | 16 ++++++++++++++++
 2 files changed, 17 insertions(+)
 create mode 100644 arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-kltechn.dts

diff --git a/arch/arm/boot/dts/qcom/Makefile b/arch/arm/boot/dts/qcom/Makefile
index 9cc1e14e6cd0..5d7a34adf826 100644
--- a/arch/arm/boot/dts/qcom/Makefile
+++ b/arch/arm/boot/dts/qcom/Makefile
@@ -44,6 +44,7 @@ dtb-$(CONFIG_ARCH_QCOM) += \
 	qcom-msm8974pro-fairphone-fp2.dtb \
 	qcom-msm8974pro-oneplus-bacon.dtb \
 	qcom-msm8974pro-samsung-klte.dtb \
+	qcom-msm8974pro-samsung-kltechn.dtb \
 	qcom-msm8974pro-sony-xperia-shinano-castor.dtb \
 	qcom-mdm9615-wp8548-mangoh-green.dtb \
 	qcom-sdx55-mtp.dtb \
diff --git a/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-kltechn.dts b/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-kltechn.dts
new file mode 100644
index 000000000000..b902e31b16c2
--- /dev/null
+++ b/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-kltechn.dts
@@ -0,0 +1,16 @@
+// SPDX-License-Identifier: GPL-2.0
+#include "qcom-msm8974pro-samsung-klte-common.dtsi"
+
+/ {
+	model = "Samsung Galaxy S5 China";
+	compatible = "samsung,kltechn", "samsung,klte", "qcom,msm8974pro", "qcom,msm8974";
+};
+
+&i2c_led_gpio {
+	scl-gpios = <&tlmm 61 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+	sda-gpios = <&tlmm 60 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+};
+
+&i2c_led_gpioex_pins {
+	pins = "gpio60", "gpio61";
+};
-- 
2.43.0


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

* Re: [PATCH v3 3/4] dt-bindings: arm: qcom: Add Samsung Galaxy S5 China (kltechn)
  2024-02-13 10:58 ` [PATCH v3 3/4] dt-bindings: arm: qcom: Add Samsung Galaxy S5 China (kltechn) Rong Zhang
@ 2024-02-13 11:17   ` Krzysztof Kozlowski
  0 siblings, 0 replies; 13+ messages in thread
From: Krzysztof Kozlowski @ 2024-02-13 11:17 UTC (permalink / raw)
  To: Rong Zhang, Bjorn Andersson, Konrad Dybcio, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley
  Cc: linux-arm-msm, devicetree, linux-kernel, Icenowy Zheng

On 13/02/2024 11:58, Rong Zhang wrote:
> Document Samsung Galaxy S5 China (kltechn) as a klte variant based on
> msm8974pro. Also including "samsung,klte" in the compatible chain as
> kltechn works fine with the klte DTB except for LEDs and WiFi missing.
> 
> Signed-off-by: Rong Zhang <i@rong.moe>
> ---

Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

Best regards,
Krzysztof


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

* Re: [PATCH v3 1/4] ARM: dts: qcom: msm8974: Split out common part of samsung-klte
  2024-02-13 10:58 ` [PATCH v3 1/4] ARM: dts: qcom: msm8974: Split out common part of samsung-klte Rong Zhang
@ 2024-02-13 11:21   ` Krzysztof Kozlowski
  2024-04-14 13:58   ` Icenowy Zheng
  2024-04-17 20:25   ` Alexey Minnekhanov
  2 siblings, 0 replies; 13+ messages in thread
From: Krzysztof Kozlowski @ 2024-02-13 11:21 UTC (permalink / raw)
  To: Rong Zhang, Bjorn Andersson, Konrad Dybcio, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley
  Cc: linux-arm-msm, devicetree, linux-kernel, Icenowy Zheng

On 13/02/2024 11:58, Rong Zhang wrote:
> Samsung Galaxy S5 has many variants. Variants that support LTE use klte*
> as their codename. Currently, the only supported one is the one without
> any suffix, namely, klte. It is known that other klte* variants have
> only minor differences compared to klte and can mostly work with the
> klte DTB.
> 
> Split the common part into a common DTSI so that it can be imported in
> the DTS of klte and other klte* variants.
> 
> Signed-off-by: Rong Zhang <i@rong.moe>
> ---
>  ... qcom-msm8974pro-samsung-klte-common.dtsi} |   7 +-
>  .../dts/qcom/qcom-msm8974pro-samsung-klte.dts | 833 +-----------------

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

Best regards,
Krzysztof


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

* Re: [PATCH v3 4/4] ARM: dts: qcom: msm8974: Add DTS for Samsung Galaxy S5 China (kltechn)
  2024-02-13 10:58 ` [PATCH v3 4/4] ARM: dts: qcom: msm8974: Add DTS for " Rong Zhang
@ 2024-02-13 11:22   ` Krzysztof Kozlowski
  0 siblings, 0 replies; 13+ messages in thread
From: Krzysztof Kozlowski @ 2024-02-13 11:22 UTC (permalink / raw)
  To: Rong Zhang, Bjorn Andersson, Konrad Dybcio, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley
  Cc: linux-arm-msm, devicetree, linux-kernel, Icenowy Zheng

On 13/02/2024 11:58, Rong Zhang wrote:
> The only difference between Samsung Galaxy S5 China (kltechn) and klte
> is the gpio pins of i2c_led_gpio. With pins corrected, the LEDs and WiFi
> are able to work properly.
> 
> Signed-off-by: Rong Zhang <i@rong.moe>
> ---
>  arch/arm/boot/dts/qcom/Makefile                  |  1 +
>  .../dts/qcom/qcom-msm8974pro-samsung-kltechn.dts | 16 ++++++++++++++++
>  2 files changed, 17 insertions(+)
>  create mode 100644 arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-kltechn.dts
> 

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

Best regards,
Krzysztof


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

* Re: [PATCH v3 2/4] ARM: dts: qcom: msm8974-klte-common: Pin WiFi board type
  2024-02-13 10:58 ` [PATCH v3 2/4] ARM: dts: qcom: msm8974-klte-common: Pin WiFi board type Rong Zhang
@ 2024-02-14 21:25   ` Konrad Dybcio
  0 siblings, 0 replies; 13+ messages in thread
From: Konrad Dybcio @ 2024-02-14 21:25 UTC (permalink / raw)
  To: Rong Zhang, Bjorn Andersson, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley
  Cc: linux-arm-msm, devicetree, linux-kernel, Icenowy Zheng

On 13.02.2024 11:58, Rong Zhang wrote:
> klte* variants have little difference in the WiFi part. Without
> "brcm,board-type", variant-specific NVRAM file will be probed (e.g.,
> klte probes samsung,klte). Pin it to "samsung,klte" to allow klte* to
> load the same NVRAM file as klte.
> 
> Signed-off-by: Rong Zhang <i@rong.moe>
> ---

Acked-by: Konrad Dybcio <konrad.dybcio@linaro.org>

Konrad

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

* Re: [PATCH v3 1/4] ARM: dts: qcom: msm8974: Split out common part of samsung-klte
  2024-02-13 10:58 ` [PATCH v3 1/4] ARM: dts: qcom: msm8974: Split out common part of samsung-klte Rong Zhang
  2024-02-13 11:21   ` Krzysztof Kozlowski
@ 2024-04-14 13:58   ` Icenowy Zheng
  2024-04-14 14:48     ` Icenowy Zheng
  2024-04-17 20:25   ` Alexey Minnekhanov
  2 siblings, 1 reply; 13+ messages in thread
From: Icenowy Zheng @ 2024-04-14 13:58 UTC (permalink / raw)
  To: Rong Zhang, Bjorn Andersson, Konrad Dybcio, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley
  Cc: linux-arm-msm, devicetree, linux-kernel

在 2024-02-13星期二的 18:58 +0800,Rong Zhang写道:
> Samsung Galaxy S5 has many variants. Variants that support LTE use
> klte*
> as their codename. Currently, the only supported one is the one
> without
> any suffix, namely, klte. It is known that other klte* variants have
> only minor differences compared to klte and can mostly work with the
> klte DTB.
> 
> Split the common part into a common DTSI so that it can be imported
> in
> the DTS of klte and other klte* variants.
> 
> Signed-off-by: Rong Zhang <i@rong.moe>
> ---
>  ... qcom-msm8974pro-samsung-klte-common.dtsi} |   7 +-
>  .../dts/qcom/qcom-msm8974pro-samsung-klte.dts | 833

Patched tested by picking into postmarketOS (a kltechn kernel variant
is already added there).

Tested-by: Icenowy Zheng <uwu@icenowy.me>

> +-----------------
>  2 files changed, 17 insertions(+), 823 deletions(-)
>  copy arch/arm/boot/dts/qcom/{qcom-msm8974pro-samsung-klte.dts =>
> qcom-msm8974pro-samsung-klte-common.dtsi} (98%)
>  rewrite arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte.dts
> (99%)
> 
> diff --git a/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte.dts
> b/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte-common.dtsi
> similarity index 98%
> copy from arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte.dts
> copy to arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte-
> common.dtsi
> index b93539e2b87e..11e35b34ebd6 100644
> --- a/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte.dts
> +++ b/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte-common.dtsi
> @@ -6,8 +6,6 @@
>  #include <dt-bindings/leds/common.h>
>  
>  / {
> -       model = "Samsung Galaxy S5";
> -       compatible = "samsung,klte", "qcom,msm8974pro",
> "qcom,msm8974";
>         chassis-type = "handset";
>  
>         aliases {
> @@ -77,12 +75,10 @@ touchkey@20 {
>                 };
>         };
>  
> -       i2c-gpio-led {
> +       i2c_led_gpio: i2c-gpio-led {
>                 compatible = "i2c-gpio";
>                 #address-cells = <1>;
>                 #size-cells = <0>;
> -               scl-gpios = <&tlmm 121 (GPIO_ACTIVE_HIGH |
> GPIO_OPEN_DRAIN)>;
> -               sda-gpios = <&tlmm 120 (GPIO_ACTIVE_HIGH |
> GPIO_OPEN_DRAIN)>;
>                 pinctrl-names = "default";
>                 pinctrl-0 = <&i2c_led_gpioex_pins>;
>  
> @@ -770,7 +766,6 @@ i2c_touchkey_pins: i2c-touchkey-state {
>         };
>  
>         i2c_led_gpioex_pins: i2c-led-gpioex-state {
> -               pins = "gpio120", "gpio121";
>                 function = "gpio";
>                 bias-pull-down;
>         };
> diff --git a/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte.dts
> b/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte.dts
> dissimilarity index 99%
> index b93539e2b87e..954665f3a9dd 100644
> --- a/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte.dts
> +++ b/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte.dts
> @@ -1,817 +1,16 @@
> -// SPDX-License-Identifier: GPL-2.0
> -#include "qcom-msm8974pro.dtsi"
> -#include "pma8084.dtsi"
> -#include <dt-bindings/input/input.h>
> -#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
> -#include <dt-bindings/leds/common.h>
> -
> -/ {
> -       model = "Samsung Galaxy S5";
> -       compatible = "samsung,klte", "qcom,msm8974pro",
> "qcom,msm8974";
> -       chassis-type = "handset";
> -
> -       aliases {
> -               serial0 = &blsp1_uart1;
> -               mmc0 = &sdhc_1; /* SDC1 eMMC slot */
> -               mmc1 = &sdhc_3; /* SDC2 SD card slot */
> -       };
> -
> -       chosen {
> -               stdout-path = "serial0:115200n8";
> -       };
> -
> -       gpio-keys {
> -               compatible = "gpio-keys";
> -
> -               pinctrl-names = "default";
> -               pinctrl-0 = <&gpio_keys_pin_a>;
> -
> -               key-volume-down {
> -                       label = "volume_down";
> -                       gpios = <&pma8084_gpios 2 GPIO_ACTIVE_LOW>;
> -                       linux,input-type = <1>;
> -                       linux,code = <KEY_VOLUMEDOWN>;
> -                       debounce-interval = <15>;
> -               };
> -
> -               key-home {
> -                       label = "home_key";
> -                       gpios = <&pma8084_gpios 3 GPIO_ACTIVE_LOW>;
> -                       linux,input-type = <1>;
> -                       linux,code = <KEY_HOMEPAGE>;
> -                       wakeup-source;
> -                       debounce-interval = <15>;
> -               };
> -
> -               key-volume-up {
> -                       label = "volume_up";
> -                       gpios = <&pma8084_gpios 5 GPIO_ACTIVE_LOW>;
> -                       linux,input-type = <1>;
> -                       linux,code = <KEY_VOLUMEUP>;
> -                       debounce-interval = <15>;
> -               };
> -       };
> -
> -       i2c-gpio-touchkey {
> -               compatible = "i2c-gpio";
> -               #address-cells = <1>;
> -               #size-cells = <0>;
> -               sda-gpios = <&tlmm 95 (GPIO_ACTIVE_HIGH |
> GPIO_OPEN_DRAIN)>;
> -               scl-gpios = <&tlmm 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>;
> -               };
> -       };
> -
> -       i2c-gpio-led {
> -               compatible = "i2c-gpio";
> -               #address-cells = <1>;
> -               #size-cells = <0>;
> -               scl-gpios = <&tlmm 121 (GPIO_ACTIVE_HIGH |
> GPIO_OPEN_DRAIN)>;
> -               sda-gpios = <&tlmm 120 (GPIO_ACTIVE_HIGH |
> GPIO_OPEN_DRAIN)>;
> -               pinctrl-names = "default";
> -               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 = <&tlmm 145 GPIO_ACTIVE_LOW>;
> -               };
> -
> -               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>;
> -                       };
> -               };
> -       };
> -
> -       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;
> -       };
> -
> -       vreg_panel: panel-regulator {
> -               compatible = "regulator-fixed";
> -
> -               pinctrl-names = "default";
> -               pinctrl-0 = <&panel_en_pin>;
> -
> -               regulator-name = "panel-vddr-reg";
> -               regulator-min-microvolt = <1500000>;
> -               regulator-max-microvolt = <1500000>;
> -
> -               gpio = <&pma8084_gpios 14 GPIO_ACTIVE_HIGH>;
> -               enable-active-high;
> -       };
> -
> -       vreg_vph_pwr: vreg-vph-pwr {
> -               compatible = "regulator-fixed";
> -               regulator-name = "vph-pwr";
> -
> -               regulator-min-microvolt = <3600000>;
> -               regulator-max-microvolt = <3600000>;
> -
> -               regulator-always-on;
> -       };
> -};
> -
> -&blsp1_i2c2 {
> -       status = "okay";
> -
> -       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>;
> -               };
> -       };
> -};
> -
> -&blsp1_i2c6 {
> -       status = "okay";
> -
> -       pmic@60 {
> -               reg = <0x60>;
> -               compatible = "maxim,max77826";
> -
> -               regulators {
> -                       max77826_ldo1: LDO1 {
> -                               regulator-min-microvolt = <1200000>;
> -                               regulator-max-microvolt = <1200000>;
> -                       };
> -
> -                       max77826_ldo2: LDO2 {
> -                               regulator-min-microvolt = <1000000>;
> -                               regulator-max-microvolt = <1000000>;
> -                       };
> -
> -                       max77826_ldo3: LDO3 {
> -                               regulator-min-microvolt = <1200000>;
> -                               regulator-max-microvolt = <1200000>;
> -                       };
> -
> -                       max77826_ldo4: LDO4 {
> -                               regulator-min-microvolt = <1800000>;
> -                               regulator-max-microvolt = <1800000>;
> -                       };
> -
> -                       max77826_ldo5: LDO5 {
> -                               regulator-min-microvolt = <1800000>;
> -                               regulator-max-microvolt = <1800000>;
> -                       };
> -
> -                       max77826_ldo6: LDO6 {
> -                               regulator-min-microvolt = <1800000>;
> -                               regulator-max-microvolt = <3300000>;
> -                       };
> -
> -                       max77826_ldo7: LDO7 {
> -                               regulator-min-microvolt = <1800000>;
> -                               regulator-max-microvolt = <1800000>;
> -                       };
> -
> -                       max77826_ldo8: LDO8 {
> -                               regulator-min-microvolt = <1800000>;
> -                               regulator-max-microvolt = <3300000>;
> -                       };
> -
> -                       max77826_ldo9: LDO9 {
> -                               regulator-min-microvolt = <1800000>;
> -                               regulator-max-microvolt = <1800000>;
> -                       };
> -
> -                       max77826_ldo10: LDO10 {
> -                               regulator-min-microvolt = <2800000>;
> -                               regulator-max-microvolt = <2950000>;
> -                       };
> -
> -                       max77826_ldo11: LDO11 {
> -                               regulator-min-microvolt = <2700000>;
> -                               regulator-max-microvolt = <2950000>;
> -                       };
> -
> -                       max77826_ldo12: LDO12 {
> -                               regulator-min-microvolt = <2500000>;
> -                               regulator-max-microvolt = <3300000>;
> -                       };
> -
> -                       max77826_ldo13: LDO13 {
> -                               regulator-min-microvolt = <3300000>;
> -                               regulator-max-microvolt = <3300000>;
> -                       };
> -
> -                       max77826_ldo14: LDO14 {
> -                               regulator-min-microvolt = <3300000>;
> -                               regulator-max-microvolt = <3300000>;
> -                       };
> -
> -                       max77826_ldo15: LDO15 {
> -                               regulator-min-microvolt = <1800000>;
> -                               regulator-max-microvolt = <1800000>;
> -                       };
> -
> -                       max77826_buck: BUCK {
> -                               regulator-min-microvolt = <1225000>;
> -                               regulator-max-microvolt = <1225000>;
> -                       };
> -
> -                       max77826_buckboost: BUCKBOOST {
> -                               regulator-min-microvolt = <3400000>;
> -                               regulator-max-microvolt = <3400000>;
> -                       };
> -               };
> -       };
> -};
> -
> -&blsp1_uart2 {
> -       status = "okay";
> -};
> -
> -&blsp2_i2c6 {
> -       status = "okay";
> -
> -       fuelgauge@36 {
> -               compatible = "maxim,max17048";
> -               reg = <0x36>;
> -
> -               maxim,double-soc;
> -               maxim,rcomp = /bits/ 8 <0x56>;
> -
> -               interrupt-parent = <&pma8084_gpios>;
> -               interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
> -
> -               pinctrl-names = "default";
> -               pinctrl-0 = <&fuelgauge_pin>;
> -       };
> -};
> -
> -&blsp2_uart2 {
> -       status = "okay";
> -
> -       pinctrl-names = "default", "sleep";
> -       pinctrl-0 = <&blsp2_uart2_pins_active>;
> -       pinctrl-1 = <&blsp2_uart2_pins_sleep>;
> -
> -       bluetooth {
> -               compatible = "brcm,bcm43540-bt";
> -               max-speed = <3000000>;
> -               pinctrl-names = "default";
> -               pinctrl-0 = <&bt_pins>;
> -               device-wakeup-gpios = <&tlmm 91 GPIO_ACTIVE_HIGH>;
> -               shutdown-gpios = <&gpio_expander 9 GPIO_ACTIVE_HIGH>;
> -               interrupt-parent = <&tlmm>;
> -               interrupts = <75 IRQ_TYPE_LEVEL_HIGH>;
> -               interrupt-names = "host-wakeup";
> -       };
> -};
> -
> -&gpu {
> -       status = "okay";
> -};
> -
> -&mdss {
> -       status = "okay";
> -};
> -
> -&mdss_dsi0 {
> -       status = "okay";
> -
> -       vdda-supply = <&pma8084_l2>;
> -       vdd-supply = <&pma8084_l22>;
> -       vddio-supply = <&pma8084_l12>;
> -
> -       panel: panel@0 {
> -               reg = <0>;
> -               compatible = "samsung,s6e3fa2";
> -
> -               pinctrl-names = "default";
> -               pinctrl-0 = <&panel_te_pin &panel_rst_pin>;
> -
> -               iovdd-supply = <&pma8084_lvs4>;
> -               vddr-supply = <&vreg_panel>;
> -
> -               reset-gpios = <&pma8084_gpios 17 GPIO_ACTIVE_LOW>;
> -
> -               port {
> -                       panel_in: endpoint {
> -                               remote-endpoint = <&mdss_dsi0_out>;
> -                       };
> -               };
> -       };
> -};
> -
> -&mdss_dsi0_out {
> -       remote-endpoint = <&panel_in>;
> -       data-lanes = <0 1 2 3>;
> -};
> -
> -&mdss_dsi0_phy {
> -       status = "okay";
> -
> -       vddio-supply = <&pma8084_l12>;
> -};
> -
> -&pma8084_gpios {
> -       gpio_keys_pin_a: gpio-keys-active-state {
> -               pins = "gpio2", "gpio3", "gpio5";
> -               function = "normal";
> -
> -               bias-pull-up;
> -               power-source = <PMA8084_GPIO_S4>;
> -       };
> -
> -       touchkey_pin: touchkey-int-state {
> -               pins = "gpio6";
> -               function = "normal";
> -               bias-disable;
> -               input-enable;
> -               power-source = <PMA8084_GPIO_S4>;
> -       };
> -
> -       touch_pin: touchscreen-int-state {
> -               pins = "gpio8";
> -               function = "normal";
> -               bias-disable;
> -               input-enable;
> -               power-source = <PMA8084_GPIO_S4>;
> -       };
> -
> -       panel_en_pin: panel-en-state {
> -               pins = "gpio14";
> -               function = "normal";
> -               bias-pull-up;
> -               power-source = <PMA8084_GPIO_S4>;
> -               qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
> -       };
> -
> -       wlan_sleep_clk_pin: wlan-sleep-clk-state {
> -               pins = "gpio16";
> -               function = "func2";
> -
> -               output-high;
> -               power-source = <PMA8084_GPIO_S4>;
> -               qcom,drive-strength = <PMIC_GPIO_STRENGTH_HIGH>;
> -       };
> -
> -       panel_rst_pin: panel-rst-state {
> -               pins = "gpio17";
> -               function = "normal";
> -               bias-disable;
> -               power-source = <PMA8084_GPIO_S4>;
> -               qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
> -       };
> -
> -       fuelgauge_pin: fuelgauge-int-state {
> -               pins = "gpio21";
> -               function = "normal";
> -               bias-disable;
> -               input-enable;
> -               power-source = <PMA8084_GPIO_S4>;
> -       };
> -};
> -
> -&remoteproc_adsp {
> -       status = "okay";
> -       cx-supply = <&pma8084_s2>;
> -};
> -
> -&remoteproc_mss {
> -       status = "okay";
> -       cx-supply = <&pma8084_s2>;
> -       mss-supply = <&pma8084_s6>;
> -       mx-supply = <&pma8084_s1>;
> -       pll-supply = <&pma8084_l12>;
> -};
> -
> -&rpm_requests {
> -       regulators-0 {
> -               compatible = "qcom,rpm-pma8084-regulators";
> -
> -               pma8084_s1: s1 {
> -                       regulator-min-microvolt = <675000>;
> -                       regulator-max-microvolt = <1050000>;
> -                       regulator-always-on;
> -               };
> -
> -               pma8084_s2: s2 {
> -                       regulator-min-microvolt = <500000>;
> -                       regulator-max-microvolt = <1050000>;
> -               };
> -
> -               pma8084_s3: s3 {
> -                       regulator-min-microvolt = <1300000>;
> -                       regulator-max-microvolt = <1300000>;
> -               };
> -
> -               pma8084_s4: s4 {
> -                       regulator-min-microvolt = <1800000>;
> -                       regulator-max-microvolt = <1800000>;
> -               };
> -
> -               pma8084_s5: s5 {
> -                       regulator-min-microvolt = <2150000>;
> -                       regulator-max-microvolt = <2150000>;
> -               };
> -
> -               pma8084_s6: s6 {
> -                       regulator-min-microvolt = <1050000>;
> -                       regulator-max-microvolt = <1050000>;
> -               };
> -
> -               pma8084_l1: l1 {
> -                       regulator-min-microvolt = <1225000>;
> -                       regulator-max-microvolt = <1225000>;
> -               };
> -
> -               pma8084_l2: l2 {
> -                       regulator-min-microvolt = <1200000>;
> -                       regulator-max-microvolt = <1200000>;
> -               };
> -
> -               pma8084_l3: l3 {
> -                       regulator-min-microvolt = <1050000>;
> -                       regulator-max-microvolt = <1200000>;
> -               };
> -
> -               pma8084_l4: l4 {
> -                       regulator-min-microvolt = <1200000>;
> -                       regulator-max-microvolt = <1225000>;
> -               };
> -
> -               pma8084_l5: l5 {
> -                       regulator-min-microvolt = <1800000>;
> -                       regulator-max-microvolt = <1800000>;
> -               };
> -
> -               pma8084_l6: l6 {
> -                       regulator-min-microvolt = <1800000>;
> -                       regulator-max-microvolt = <1800000>;
> -               };
> -
> -               pma8084_l7: l7 {
> -                       regulator-min-microvolt = <1800000>;
> -                       regulator-max-microvolt = <1800000>;
> -               };
> -
> -               pma8084_l8: l8 {
> -                       regulator-min-microvolt = <1800000>;
> -                       regulator-max-microvolt = <1800000>;
> -               };
> -
> -               pma8084_l9: l9 {
> -                       regulator-min-microvolt = <1800000>;
> -                       regulator-max-microvolt = <2950000>;
> -               };
> -
> -               pma8084_l10: l10 {
> -                       regulator-min-microvolt = <1800000>;
> -                       regulator-max-microvolt = <2950000>;
> -               };
> -
> -               pma8084_l11: l11 {
> -                       regulator-min-microvolt = <1300000>;
> -                       regulator-max-microvolt = <1300000>;
> -               };
> -
> -               pma8084_l12: l12 {
> -                       regulator-min-microvolt = <1800000>;
> -                       regulator-max-microvolt = <1800000>;
> -                       regulator-always-on;
> -               };
> -
> -               pma8084_l13: l13 {
> -                       regulator-min-microvolt = <1800000>;
> -                       regulator-max-microvolt = <2950000>;
> -               };
> -
> -               pma8084_l14: l14 {
> -                       regulator-min-microvolt = <1800000>;
> -                       regulator-max-microvolt = <1800000>;
> -               };
> -
> -               pma8084_l15: l15 {
> -                       regulator-min-microvolt = <2050000>;
> -                       regulator-max-microvolt = <2050000>;
> -               };
> -
> -               pma8084_l16: l16 {
> -                       regulator-min-microvolt = <2700000>;
> -                       regulator-max-microvolt = <2700000>;
> -               };
> -
> -               pma8084_l17: l17 {
> -                       regulator-min-microvolt = <2850000>;
> -                       regulator-max-microvolt = <2850000>;
> -               };
> -
> -               pma8084_l18: l18 {
> -                       regulator-min-microvolt = <2850000>;
> -                       regulator-max-microvolt = <2850000>;
> -               };
> -
> -               pma8084_l19: l19 {
> -                       regulator-min-microvolt = <3300000>;
> -                       regulator-max-microvolt = <3300000>;
> -               };
> -
> -               pma8084_l20: l20 {
> -                       regulator-min-microvolt = <2950000>;
> -                       regulator-max-microvolt = <2950000>;
> -                       regulator-system-load = <200000>;
> -                       regulator-allow-set-load;
> -               };
> -
> -               pma8084_l21: l21 {
> -                       regulator-min-microvolt = <2950000>;
> -                       regulator-max-microvolt = <2950000>;
> -                       regulator-system-load = <200000>;
> -                       regulator-allow-set-load;
> -               };
> -
> -               pma8084_l22: l22 {
> -                       regulator-min-microvolt = <3000000>;
> -                       regulator-max-microvolt = <3300000>;
> -               };
> -
> -               pma8084_l23: l23 {
> -                       regulator-min-microvolt = <3000000>;
> -                       regulator-max-microvolt = <3000000>;
> -               };
> -
> -               pma8084_l24: l24 {
> -                       regulator-min-microvolt = <3075000>;
> -                       regulator-max-microvolt = <3075000>;
> -               };
> -
> -               pma8084_l25: l25 {
> -                       regulator-min-microvolt = <2100000>;
> -                       regulator-max-microvolt = <2100000>;
> -               };
> -
> -               pma8084_l26: l26 {
> -                       regulator-min-microvolt = <1800000>;
> -                       regulator-max-microvolt = <2050000>;
> -               };
> -
> -               pma8084_l27: l27 {
> -                       regulator-min-microvolt = <1000000>;
> -                       regulator-max-microvolt = <1225000>;
> -               };
> -
> -               pma8084_lvs1: lvs1 {};
> -               pma8084_lvs2: lvs2 {};
> -               pma8084_lvs3: lvs3 {};
> -               pma8084_lvs4: lvs4 {};
> -
> -               pma8084_5vs1: 5vs1 {};
> -       };
> -};
> -
> -&sdhc_1 {
> -       status = "okay";
> -
> -       vmmc-supply = <&pma8084_l20>;
> -       vqmmc-supply = <&pma8084_s4>;
> -
> -       pinctrl-names = "default", "sleep";
> -       pinctrl-0 = <&sdc1_on>;
> -       pinctrl-1 = <&sdc1_off>;
> -};
> -
> -&sdhc_2 {
> -       status = "okay";
> -       max-frequency = <100000000>;
> -       vmmc-supply = <&vreg_wlan>;
> -       vqmmc-supply = <&pma8084_s4>;
> -       non-removable;
> -
> -       pinctrl-names = "default", "sleep";
> -       pinctrl-0 = <&sdc2_on>;
> -       pinctrl-1 = <&sdc2_off>;
> -
> -       wifi@1 {
> -               reg = <1>;
> -               compatible = "brcm,bcm4329-fmac";
> -
> -               interrupt-parent = <&tlmm>;
> -               interrupts = <92 IRQ_TYPE_LEVEL_HIGH>;
> -               interrupt-names = "host-wake";
> -
> -               pinctrl-names = "default";
> -               pinctrl-0 = <&wlan_sleep_clk_pin &wifi_pin>;
> -       };
> -};
> -
> -&sdhc_3 {
> -       status = "okay";
> -       max-frequency = <100000000>;
> -       vmmc-supply = <&pma8084_l21>;
> -       vqmmc-supply = <&pma8084_l13>;
> -
> -       /*
> -        * 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 = <&sdc3_on /* &sdhc3_cd_pin */>;
> -       /* cd-gpios = <&tlmm 62 GPIO_ACTIVE_LOW>; */
> -};
> -
> -&tlmm {
> -       /* This seems suspicious, but somebody with this device
> should look into it. */
> -       blsp2_uart2_pins_active: blsp2-uart2-pins-active-state {
> -               pins = "gpio45", "gpio46", "gpio47", "gpio48";
> -               function = "blsp_uart8";
> -               drive-strength = <8>;
> -               bias-disable;
> -       };
> -
> -       blsp2_uart2_pins_sleep: blsp2-uart2-pins-sleep-state {
> -               pins = "gpio45", "gpio46", "gpio47", "gpio48";
> -               function = "gpio";
> -               drive-strength = <2>;
> -               bias-pull-down;
> -       };
> -
> -       bt_pins: bt-pins-state {
> -               hostwake-pins {
> -                       pins = "gpio75";
> -                       function = "gpio";
> -                       drive-strength = <16>;
> -               };
> -
> -               devwake-pins {
> -                       pins = "gpio91";
> -                       function = "gpio";
> -                       drive-strength = <2>;
> -               };
> -       };
> -
> -       sdc1_on: sdhc1-on-state {
> -               clk-pins {
> -                       pins = "sdc1_clk";
> -                       drive-strength = <4>;
> -                       bias-disable;
> -               };
> -
> -               cmd-data-pins {
> -                       pins = "sdc1_cmd", "sdc1_data";
> -                       drive-strength = <4>;
> -                       bias-pull-up;
> -               };
> -       };
> -
> -       sdc3_on: sdc3-on-state {
> -               pins = "gpio35", "gpio36", "gpio37", "gpio38",
> "gpio39", "gpio40";
> -               function = "sdc3";
> -               drive-strength = <8>;
> -               bias-disable;
> -       };
> -
> -       sdhc3_cd_pin: sdc3-cd-on-state {
> -               pins = "gpio62";
> -               function = "gpio";
> -
> -               drive-strength = <2>;
> -               bias-disable;
> -       };
> -
> -       sdc2_on: sdhc2-on-state {
> -               clk-pins {
> -                       pins = "sdc2_clk";
> -                       drive-strength = <6>;
> -                       bias-disable;
> -               };
> -
> -               cmd-data-pins {
> -                       pins = "sdc2_cmd", "sdc2_data";
> -                       drive-strength = <6>;
> -                       bias-pull-up;
> -               };
> -       };
> -
> -       i2c_touchkey_pins: i2c-touchkey-state {
> -               pins = "gpio95", "gpio96";
> -               function = "gpio";
> -               bias-pull-up;
> -       };
> -
> -       i2c_led_gpioex_pins: i2c-led-gpioex-state {
> -               pins = "gpio120", "gpio121";
> -               function = "gpio";
> -               bias-pull-down;
> -       };
> -
> -       gpioex_pin: gpioex-state {
> -               pins = "gpio145";
> -               function = "gpio";
> -               bias-pull-up;
> -               drive-strength = <2>;
> -       };
> -
> -       wifi_pin: wifi-state {
> -               pins = "gpio92";
> -               function = "gpio";
> -               bias-pull-down;
> -       };
> -
> -       panel_te_pin: panel-state {
> -               pins = "gpio12";
> -               function = "mdp_vsync";
> -               drive-strength = <2>;
> -               bias-disable;
> -       };
> -};
> -
> -&usb {
> -       status = "okay";
> -
> -       phys = <&usb_hs1_phy>;
> -       phy-select = <&tcsr 0xb000 0>;
> -
> -       hnp-disable;
> -       srp-disable;
> -       adp-disable;
> -};
> -
> -&usb_hs1_phy {
> -       status = "okay";
> -
> -       v1p8-supply = <&pma8084_l6>;
> -       v3p3-supply = <&pma8084_l24>;
> -
> -       qcom,init-seq = /bits/ 8 <0x1 0x64>;
> -};
> +// SPDX-License-Identifier: GPL-2.0
> +#include "qcom-msm8974pro-samsung-klte-common.dtsi"
> +
> +/ {
> +       model = "Samsung Galaxy S5";
> +       compatible = "samsung,klte", "qcom,msm8974pro",
> "qcom,msm8974";
> +};
> +
> +&i2c_led_gpio {
> +       scl-gpios = <&tlmm 121 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
> +       sda-gpios = <&tlmm 120 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
> +};
> +
> +&i2c_led_gpioex_pins {
> +       pins = "gpio120", "gpio121";
> +};


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

* Re: [PATCH v3 1/4] ARM: dts: qcom: msm8974: Split out common part of samsung-klte
  2024-04-14 13:58   ` Icenowy Zheng
@ 2024-04-14 14:48     ` Icenowy Zheng
  0 siblings, 0 replies; 13+ messages in thread
From: Icenowy Zheng @ 2024-04-14 14:48 UTC (permalink / raw)
  To: Rong Zhang, Bjorn Andersson, Konrad Dybcio, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley
  Cc: linux-arm-msm, devicetree, linux-kernel

在 2024-04-14星期日的 21:58 +0800,Icenowy Zheng写道:
> 在 2024-02-13星期二的 18:58 +0800,Rong Zhang写道:
> > Samsung Galaxy S5 has many variants. Variants that support LTE use
> > klte*
> > as their codename. Currently, the only supported one is the one
> > without
> > any suffix, namely, klte. It is known that other klte* variants
> > have
> > only minor differences compared to klte and can mostly work with
> > the
> > klte DTB.
> > 
> > Split the common part into a common DTSI so that it can be imported
> > in
> > the DTS of klte and other klte* variants.
> > 
> > Signed-off-by: Rong Zhang <i@rong.moe>
> > ---
> >  ... qcom-msm8974pro-samsung-klte-common.dtsi} |   7 +-
> >  .../dts/qcom/qcom-msm8974pro-samsung-klte.dts | 833
> 
> Patched tested by picking into postmarketOS (a kltechn kernel variant
> is already added there).
> 
> Tested-by: Icenowy Zheng <uwu@icenowy.me>

Sorry I wrongly sent it to the 1/4 patch, this should be sent to the
cover letter, and this Tested-by tag applies to all 4 patches.

> 
> > +-----------------
> >  2 files changed, 17 insertions(+), 823 deletions(-)
> >  copy arch/arm/boot/dts/qcom/{qcom-msm8974pro-samsung-klte.dts =>
> > qcom-msm8974pro-samsung-klte-common.dtsi} (98%)
> >  rewrite arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte.dts
> > (99%)
> > 
> > diff --git a/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-
> > klte.dts
> > b/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte-common.dtsi
> > similarity index 98%
> > copy from arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte.dts
> > copy to arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte-
> > common.dtsi
> > index b93539e2b87e..11e35b34ebd6 100644
> > --- a/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte.dts
> > +++ b/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte-
> > common.dtsi
> > @@ -6,8 +6,6 @@
> >  #include <dt-bindings/leds/common.h>
> >  
> >  / {
> > -       model = "Samsung Galaxy S5";
> > -       compatible = "samsung,klte", "qcom,msm8974pro",
> > "qcom,msm8974";
> >         chassis-type = "handset";
> >  
> >         aliases {
> > @@ -77,12 +75,10 @@ touchkey@20 {
> >                 };
> >         };
> >  
> > -       i2c-gpio-led {
> > +       i2c_led_gpio: i2c-gpio-led {
> >                 compatible = "i2c-gpio";
> >                 #address-cells = <1>;
> >                 #size-cells = <0>;
> > -               scl-gpios = <&tlmm 121 (GPIO_ACTIVE_HIGH |
> > GPIO_OPEN_DRAIN)>;
> > -               sda-gpios = <&tlmm 120 (GPIO_ACTIVE_HIGH |
> > GPIO_OPEN_DRAIN)>;
> >                 pinctrl-names = "default";
> >                 pinctrl-0 = <&i2c_led_gpioex_pins>;
> >  
> > @@ -770,7 +766,6 @@ i2c_touchkey_pins: i2c-touchkey-state {
> >         };
> >  
> >         i2c_led_gpioex_pins: i2c-led-gpioex-state {
> > -               pins = "gpio120", "gpio121";
> >                 function = "gpio";
> >                 bias-pull-down;
> >         };
> > diff --git a/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-
> > klte.dts
> > b/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte.dts
> > dissimilarity index 99%
> > index b93539e2b87e..954665f3a9dd 100644
> > --- a/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte.dts
> > +++ b/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte.dts
> > @@ -1,817 +1,16 @@
> > -// SPDX-License-Identifier: GPL-2.0
> > -#include "qcom-msm8974pro.dtsi"
> > -#include "pma8084.dtsi"
> > -#include <dt-bindings/input/input.h>
> > -#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
> > -#include <dt-bindings/leds/common.h>
> > -
> > -/ {
> > -       model = "Samsung Galaxy S5";
> > -       compatible = "samsung,klte", "qcom,msm8974pro",
> > "qcom,msm8974";
> > -       chassis-type = "handset";
> > -
> > -       aliases {
> > -               serial0 = &blsp1_uart1;
> > -               mmc0 = &sdhc_1; /* SDC1 eMMC slot */
> > -               mmc1 = &sdhc_3; /* SDC2 SD card slot */
> > -       };
> > -
> > -       chosen {
> > -               stdout-path = "serial0:115200n8";
> > -       };
> > -
> > -       gpio-keys {
> > -               compatible = "gpio-keys";
> > -
> > -               pinctrl-names = "default";
> > -               pinctrl-0 = <&gpio_keys_pin_a>;
> > -
> > -               key-volume-down {
> > -                       label = "volume_down";
> > -                       gpios = <&pma8084_gpios 2 GPIO_ACTIVE_LOW>;
> > -                       linux,input-type = <1>;
> > -                       linux,code = <KEY_VOLUMEDOWN>;
> > -                       debounce-interval = <15>;
> > -               };
> > -
> > -               key-home {
> > -                       label = "home_key";
> > -                       gpios = <&pma8084_gpios 3 GPIO_ACTIVE_LOW>;
> > -                       linux,input-type = <1>;
> > -                       linux,code = <KEY_HOMEPAGE>;
> > -                       wakeup-source;
> > -                       debounce-interval = <15>;
> > -               };
> > -
> > -               key-volume-up {
> > -                       label = "volume_up";
> > -                       gpios = <&pma8084_gpios 5 GPIO_ACTIVE_LOW>;
> > -                       linux,input-type = <1>;
> > -                       linux,code = <KEY_VOLUMEUP>;
> > -                       debounce-interval = <15>;
> > -               };
> > -       };
> > -
> > -       i2c-gpio-touchkey {
> > -               compatible = "i2c-gpio";
> > -               #address-cells = <1>;
> > -               #size-cells = <0>;
> > -               sda-gpios = <&tlmm 95 (GPIO_ACTIVE_HIGH |
> > GPIO_OPEN_DRAIN)>;
> > -               scl-gpios = <&tlmm 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>;
> > -               };
> > -       };
> > -
> > -       i2c-gpio-led {
> > -               compatible = "i2c-gpio";
> > -               #address-cells = <1>;
> > -               #size-cells = <0>;
> > -               scl-gpios = <&tlmm 121 (GPIO_ACTIVE_HIGH |
> > GPIO_OPEN_DRAIN)>;
> > -               sda-gpios = <&tlmm 120 (GPIO_ACTIVE_HIGH |
> > GPIO_OPEN_DRAIN)>;
> > -               pinctrl-names = "default";
> > -               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 = <&tlmm 145 GPIO_ACTIVE_LOW>;
> > -               };
> > -
> > -               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>;
> > -                       };
> > -               };
> > -       };
> > -
> > -       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;
> > -       };
> > -
> > -       vreg_panel: panel-regulator {
> > -               compatible = "regulator-fixed";
> > -
> > -               pinctrl-names = "default";
> > -               pinctrl-0 = <&panel_en_pin>;
> > -
> > -               regulator-name = "panel-vddr-reg";
> > -               regulator-min-microvolt = <1500000>;
> > -               regulator-max-microvolt = <1500000>;
> > -
> > -               gpio = <&pma8084_gpios 14 GPIO_ACTIVE_HIGH>;
> > -               enable-active-high;
> > -       };
> > -
> > -       vreg_vph_pwr: vreg-vph-pwr {
> > -               compatible = "regulator-fixed";
> > -               regulator-name = "vph-pwr";
> > -
> > -               regulator-min-microvolt = <3600000>;
> > -               regulator-max-microvolt = <3600000>;
> > -
> > -               regulator-always-on;
> > -       };
> > -};
> > -
> > -&blsp1_i2c2 {
> > -       status = "okay";
> > -
> > -       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>;
> > -               };
> > -       };
> > -};
> > -
> > -&blsp1_i2c6 {
> > -       status = "okay";
> > -
> > -       pmic@60 {
> > -               reg = <0x60>;
> > -               compatible = "maxim,max77826";
> > -
> > -               regulators {
> > -                       max77826_ldo1: LDO1 {
> > -                               regulator-min-microvolt =
> > <1200000>;
> > -                               regulator-max-microvolt =
> > <1200000>;
> > -                       };
> > -
> > -                       max77826_ldo2: LDO2 {
> > -                               regulator-min-microvolt =
> > <1000000>;
> > -                               regulator-max-microvolt =
> > <1000000>;
> > -                       };
> > -
> > -                       max77826_ldo3: LDO3 {
> > -                               regulator-min-microvolt =
> > <1200000>;
> > -                               regulator-max-microvolt =
> > <1200000>;
> > -                       };
> > -
> > -                       max77826_ldo4: LDO4 {
> > -                               regulator-min-microvolt =
> > <1800000>;
> > -                               regulator-max-microvolt =
> > <1800000>;
> > -                       };
> > -
> > -                       max77826_ldo5: LDO5 {
> > -                               regulator-min-microvolt =
> > <1800000>;
> > -                               regulator-max-microvolt =
> > <1800000>;
> > -                       };
> > -
> > -                       max77826_ldo6: LDO6 {
> > -                               regulator-min-microvolt =
> > <1800000>;
> > -                               regulator-max-microvolt =
> > <3300000>;
> > -                       };
> > -
> > -                       max77826_ldo7: LDO7 {
> > -                               regulator-min-microvolt =
> > <1800000>;
> > -                               regulator-max-microvolt =
> > <1800000>;
> > -                       };
> > -
> > -                       max77826_ldo8: LDO8 {
> > -                               regulator-min-microvolt =
> > <1800000>;
> > -                               regulator-max-microvolt =
> > <3300000>;
> > -                       };
> > -
> > -                       max77826_ldo9: LDO9 {
> > -                               regulator-min-microvolt =
> > <1800000>;
> > -                               regulator-max-microvolt =
> > <1800000>;
> > -                       };
> > -
> > -                       max77826_ldo10: LDO10 {
> > -                               regulator-min-microvolt =
> > <2800000>;
> > -                               regulator-max-microvolt =
> > <2950000>;
> > -                       };
> > -
> > -                       max77826_ldo11: LDO11 {
> > -                               regulator-min-microvolt =
> > <2700000>;
> > -                               regulator-max-microvolt =
> > <2950000>;
> > -                       };
> > -
> > -                       max77826_ldo12: LDO12 {
> > -                               regulator-min-microvolt =
> > <2500000>;
> > -                               regulator-max-microvolt =
> > <3300000>;
> > -                       };
> > -
> > -                       max77826_ldo13: LDO13 {
> > -                               regulator-min-microvolt =
> > <3300000>;
> > -                               regulator-max-microvolt =
> > <3300000>;
> > -                       };
> > -
> > -                       max77826_ldo14: LDO14 {
> > -                               regulator-min-microvolt =
> > <3300000>;
> > -                               regulator-max-microvolt =
> > <3300000>;
> > -                       };
> > -
> > -                       max77826_ldo15: LDO15 {
> > -                               regulator-min-microvolt =
> > <1800000>;
> > -                               regulator-max-microvolt =
> > <1800000>;
> > -                       };
> > -
> > -                       max77826_buck: BUCK {
> > -                               regulator-min-microvolt =
> > <1225000>;
> > -                               regulator-max-microvolt =
> > <1225000>;
> > -                       };
> > -
> > -                       max77826_buckboost: BUCKBOOST {
> > -                               regulator-min-microvolt =
> > <3400000>;
> > -                               regulator-max-microvolt =
> > <3400000>;
> > -                       };
> > -               };
> > -       };
> > -};
> > -
> > -&blsp1_uart2 {
> > -       status = "okay";
> > -};
> > -
> > -&blsp2_i2c6 {
> > -       status = "okay";
> > -
> > -       fuelgauge@36 {
> > -               compatible = "maxim,max17048";
> > -               reg = <0x36>;
> > -
> > -               maxim,double-soc;
> > -               maxim,rcomp = /bits/ 8 <0x56>;
> > -
> > -               interrupt-parent = <&pma8084_gpios>;
> > -               interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
> > -
> > -               pinctrl-names = "default";
> > -               pinctrl-0 = <&fuelgauge_pin>;
> > -       };
> > -};
> > -
> > -&blsp2_uart2 {
> > -       status = "okay";
> > -
> > -       pinctrl-names = "default", "sleep";
> > -       pinctrl-0 = <&blsp2_uart2_pins_active>;
> > -       pinctrl-1 = <&blsp2_uart2_pins_sleep>;
> > -
> > -       bluetooth {
> > -               compatible = "brcm,bcm43540-bt";
> > -               max-speed = <3000000>;
> > -               pinctrl-names = "default";
> > -               pinctrl-0 = <&bt_pins>;
> > -               device-wakeup-gpios = <&tlmm 91 GPIO_ACTIVE_HIGH>;
> > -               shutdown-gpios = <&gpio_expander 9
> > GPIO_ACTIVE_HIGH>;
> > -               interrupt-parent = <&tlmm>;
> > -               interrupts = <75 IRQ_TYPE_LEVEL_HIGH>;
> > -               interrupt-names = "host-wakeup";
> > -       };
> > -};
> > -
> > -&gpu {
> > -       status = "okay";
> > -};
> > -
> > -&mdss {
> > -       status = "okay";
> > -};
> > -
> > -&mdss_dsi0 {
> > -       status = "okay";
> > -
> > -       vdda-supply = <&pma8084_l2>;
> > -       vdd-supply = <&pma8084_l22>;
> > -       vddio-supply = <&pma8084_l12>;
> > -
> > -       panel: panel@0 {
> > -               reg = <0>;
> > -               compatible = "samsung,s6e3fa2";
> > -
> > -               pinctrl-names = "default";
> > -               pinctrl-0 = <&panel_te_pin &panel_rst_pin>;
> > -
> > -               iovdd-supply = <&pma8084_lvs4>;
> > -               vddr-supply = <&vreg_panel>;
> > -
> > -               reset-gpios = <&pma8084_gpios 17 GPIO_ACTIVE_LOW>;
> > -
> > -               port {
> > -                       panel_in: endpoint {
> > -                               remote-endpoint = <&mdss_dsi0_out>;
> > -                       };
> > -               };
> > -       };
> > -};
> > -
> > -&mdss_dsi0_out {
> > -       remote-endpoint = <&panel_in>;
> > -       data-lanes = <0 1 2 3>;
> > -};
> > -
> > -&mdss_dsi0_phy {
> > -       status = "okay";
> > -
> > -       vddio-supply = <&pma8084_l12>;
> > -};
> > -
> > -&pma8084_gpios {
> > -       gpio_keys_pin_a: gpio-keys-active-state {
> > -               pins = "gpio2", "gpio3", "gpio5";
> > -               function = "normal";
> > -
> > -               bias-pull-up;
> > -               power-source = <PMA8084_GPIO_S4>;
> > -       };
> > -
> > -       touchkey_pin: touchkey-int-state {
> > -               pins = "gpio6";
> > -               function = "normal";
> > -               bias-disable;
> > -               input-enable;
> > -               power-source = <PMA8084_GPIO_S4>;
> > -       };
> > -
> > -       touch_pin: touchscreen-int-state {
> > -               pins = "gpio8";
> > -               function = "normal";
> > -               bias-disable;
> > -               input-enable;
> > -               power-source = <PMA8084_GPIO_S4>;
> > -       };
> > -
> > -       panel_en_pin: panel-en-state {
> > -               pins = "gpio14";
> > -               function = "normal";
> > -               bias-pull-up;
> > -               power-source = <PMA8084_GPIO_S4>;
> > -               qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
> > -       };
> > -
> > -       wlan_sleep_clk_pin: wlan-sleep-clk-state {
> > -               pins = "gpio16";
> > -               function = "func2";
> > -
> > -               output-high;
> > -               power-source = <PMA8084_GPIO_S4>;
> > -               qcom,drive-strength = <PMIC_GPIO_STRENGTH_HIGH>;
> > -       };
> > -
> > -       panel_rst_pin: panel-rst-state {
> > -               pins = "gpio17";
> > -               function = "normal";
> > -               bias-disable;
> > -               power-source = <PMA8084_GPIO_S4>;
> > -               qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
> > -       };
> > -
> > -       fuelgauge_pin: fuelgauge-int-state {
> > -               pins = "gpio21";
> > -               function = "normal";
> > -               bias-disable;
> > -               input-enable;
> > -               power-source = <PMA8084_GPIO_S4>;
> > -       };
> > -};
> > -
> > -&remoteproc_adsp {
> > -       status = "okay";
> > -       cx-supply = <&pma8084_s2>;
> > -};
> > -
> > -&remoteproc_mss {
> > -       status = "okay";
> > -       cx-supply = <&pma8084_s2>;
> > -       mss-supply = <&pma8084_s6>;
> > -       mx-supply = <&pma8084_s1>;
> > -       pll-supply = <&pma8084_l12>;
> > -};
> > -
> > -&rpm_requests {
> > -       regulators-0 {
> > -               compatible = "qcom,rpm-pma8084-regulators";
> > -
> > -               pma8084_s1: s1 {
> > -                       regulator-min-microvolt = <675000>;
> > -                       regulator-max-microvolt = <1050000>;
> > -                       regulator-always-on;
> > -               };
> > -
> > -               pma8084_s2: s2 {
> > -                       regulator-min-microvolt = <500000>;
> > -                       regulator-max-microvolt = <1050000>;
> > -               };
> > -
> > -               pma8084_s3: s3 {
> > -                       regulator-min-microvolt = <1300000>;
> > -                       regulator-max-microvolt = <1300000>;
> > -               };
> > -
> > -               pma8084_s4: s4 {
> > -                       regulator-min-microvolt = <1800000>;
> > -                       regulator-max-microvolt = <1800000>;
> > -               };
> > -
> > -               pma8084_s5: s5 {
> > -                       regulator-min-microvolt = <2150000>;
> > -                       regulator-max-microvolt = <2150000>;
> > -               };
> > -
> > -               pma8084_s6: s6 {
> > -                       regulator-min-microvolt = <1050000>;
> > -                       regulator-max-microvolt = <1050000>;
> > -               };
> > -
> > -               pma8084_l1: l1 {
> > -                       regulator-min-microvolt = <1225000>;
> > -                       regulator-max-microvolt = <1225000>;
> > -               };
> > -
> > -               pma8084_l2: l2 {
> > -                       regulator-min-microvolt = <1200000>;
> > -                       regulator-max-microvolt = <1200000>;
> > -               };
> > -
> > -               pma8084_l3: l3 {
> > -                       regulator-min-microvolt = <1050000>;
> > -                       regulator-max-microvolt = <1200000>;
> > -               };
> > -
> > -               pma8084_l4: l4 {
> > -                       regulator-min-microvolt = <1200000>;
> > -                       regulator-max-microvolt = <1225000>;
> > -               };
> > -
> > -               pma8084_l5: l5 {
> > -                       regulator-min-microvolt = <1800000>;
> > -                       regulator-max-microvolt = <1800000>;
> > -               };
> > -
> > -               pma8084_l6: l6 {
> > -                       regulator-min-microvolt = <1800000>;
> > -                       regulator-max-microvolt = <1800000>;
> > -               };
> > -
> > -               pma8084_l7: l7 {
> > -                       regulator-min-microvolt = <1800000>;
> > -                       regulator-max-microvolt = <1800000>;
> > -               };
> > -
> > -               pma8084_l8: l8 {
> > -                       regulator-min-microvolt = <1800000>;
> > -                       regulator-max-microvolt = <1800000>;
> > -               };
> > -
> > -               pma8084_l9: l9 {
> > -                       regulator-min-microvolt = <1800000>;
> > -                       regulator-max-microvolt = <2950000>;
> > -               };
> > -
> > -               pma8084_l10: l10 {
> > -                       regulator-min-microvolt = <1800000>;
> > -                       regulator-max-microvolt = <2950000>;
> > -               };
> > -
> > -               pma8084_l11: l11 {
> > -                       regulator-min-microvolt = <1300000>;
> > -                       regulator-max-microvolt = <1300000>;
> > -               };
> > -
> > -               pma8084_l12: l12 {
> > -                       regulator-min-microvolt = <1800000>;
> > -                       regulator-max-microvolt = <1800000>;
> > -                       regulator-always-on;
> > -               };
> > -
> > -               pma8084_l13: l13 {
> > -                       regulator-min-microvolt = <1800000>;
> > -                       regulator-max-microvolt = <2950000>;
> > -               };
> > -
> > -               pma8084_l14: l14 {
> > -                       regulator-min-microvolt = <1800000>;
> > -                       regulator-max-microvolt = <1800000>;
> > -               };
> > -
> > -               pma8084_l15: l15 {
> > -                       regulator-min-microvolt = <2050000>;
> > -                       regulator-max-microvolt = <2050000>;
> > -               };
> > -
> > -               pma8084_l16: l16 {
> > -                       regulator-min-microvolt = <2700000>;
> > -                       regulator-max-microvolt = <2700000>;
> > -               };
> > -
> > -               pma8084_l17: l17 {
> > -                       regulator-min-microvolt = <2850000>;
> > -                       regulator-max-microvolt = <2850000>;
> > -               };
> > -
> > -               pma8084_l18: l18 {
> > -                       regulator-min-microvolt = <2850000>;
> > -                       regulator-max-microvolt = <2850000>;
> > -               };
> > -
> > -               pma8084_l19: l19 {
> > -                       regulator-min-microvolt = <3300000>;
> > -                       regulator-max-microvolt = <3300000>;
> > -               };
> > -
> > -               pma8084_l20: l20 {
> > -                       regulator-min-microvolt = <2950000>;
> > -                       regulator-max-microvolt = <2950000>;
> > -                       regulator-system-load = <200000>;
> > -                       regulator-allow-set-load;
> > -               };
> > -
> > -               pma8084_l21: l21 {
> > -                       regulator-min-microvolt = <2950000>;
> > -                       regulator-max-microvolt = <2950000>;
> > -                       regulator-system-load = <200000>;
> > -                       regulator-allow-set-load;
> > -               };
> > -
> > -               pma8084_l22: l22 {
> > -                       regulator-min-microvolt = <3000000>;
> > -                       regulator-max-microvolt = <3300000>;
> > -               };
> > -
> > -               pma8084_l23: l23 {
> > -                       regulator-min-microvolt = <3000000>;
> > -                       regulator-max-microvolt = <3000000>;
> > -               };
> > -
> > -               pma8084_l24: l24 {
> > -                       regulator-min-microvolt = <3075000>;
> > -                       regulator-max-microvolt = <3075000>;
> > -               };
> > -
> > -               pma8084_l25: l25 {
> > -                       regulator-min-microvolt = <2100000>;
> > -                       regulator-max-microvolt = <2100000>;
> > -               };
> > -
> > -               pma8084_l26: l26 {
> > -                       regulator-min-microvolt = <1800000>;
> > -                       regulator-max-microvolt = <2050000>;
> > -               };
> > -
> > -               pma8084_l27: l27 {
> > -                       regulator-min-microvolt = <1000000>;
> > -                       regulator-max-microvolt = <1225000>;
> > -               };
> > -
> > -               pma8084_lvs1: lvs1 {};
> > -               pma8084_lvs2: lvs2 {};
> > -               pma8084_lvs3: lvs3 {};
> > -               pma8084_lvs4: lvs4 {};
> > -
> > -               pma8084_5vs1: 5vs1 {};
> > -       };
> > -};
> > -
> > -&sdhc_1 {
> > -       status = "okay";
> > -
> > -       vmmc-supply = <&pma8084_l20>;
> > -       vqmmc-supply = <&pma8084_s4>;
> > -
> > -       pinctrl-names = "default", "sleep";
> > -       pinctrl-0 = <&sdc1_on>;
> > -       pinctrl-1 = <&sdc1_off>;
> > -};
> > -
> > -&sdhc_2 {
> > -       status = "okay";
> > -       max-frequency = <100000000>;
> > -       vmmc-supply = <&vreg_wlan>;
> > -       vqmmc-supply = <&pma8084_s4>;
> > -       non-removable;
> > -
> > -       pinctrl-names = "default", "sleep";
> > -       pinctrl-0 = <&sdc2_on>;
> > -       pinctrl-1 = <&sdc2_off>;
> > -
> > -       wifi@1 {
> > -               reg = <1>;
> > -               compatible = "brcm,bcm4329-fmac";
> > -
> > -               interrupt-parent = <&tlmm>;
> > -               interrupts = <92 IRQ_TYPE_LEVEL_HIGH>;
> > -               interrupt-names = "host-wake";
> > -
> > -               pinctrl-names = "default";
> > -               pinctrl-0 = <&wlan_sleep_clk_pin &wifi_pin>;
> > -       };
> > -};
> > -
> > -&sdhc_3 {
> > -       status = "okay";
> > -       max-frequency = <100000000>;
> > -       vmmc-supply = <&pma8084_l21>;
> > -       vqmmc-supply = <&pma8084_l13>;
> > -
> > -       /*
> > -        * 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 = <&sdc3_on /* &sdhc3_cd_pin */>;
> > -       /* cd-gpios = <&tlmm 62 GPIO_ACTIVE_LOW>; */
> > -};
> > -
> > -&tlmm {
> > -       /* This seems suspicious, but somebody with this device
> > should look into it. */
> > -       blsp2_uart2_pins_active: blsp2-uart2-pins-active-state {
> > -               pins = "gpio45", "gpio46", "gpio47", "gpio48";
> > -               function = "blsp_uart8";
> > -               drive-strength = <8>;
> > -               bias-disable;
> > -       };
> > -
> > -       blsp2_uart2_pins_sleep: blsp2-uart2-pins-sleep-state {
> > -               pins = "gpio45", "gpio46", "gpio47", "gpio48";
> > -               function = "gpio";
> > -               drive-strength = <2>;
> > -               bias-pull-down;
> > -       };
> > -
> > -       bt_pins: bt-pins-state {
> > -               hostwake-pins {
> > -                       pins = "gpio75";
> > -                       function = "gpio";
> > -                       drive-strength = <16>;
> > -               };
> > -
> > -               devwake-pins {
> > -                       pins = "gpio91";
> > -                       function = "gpio";
> > -                       drive-strength = <2>;
> > -               };
> > -       };
> > -
> > -       sdc1_on: sdhc1-on-state {
> > -               clk-pins {
> > -                       pins = "sdc1_clk";
> > -                       drive-strength = <4>;
> > -                       bias-disable;
> > -               };
> > -
> > -               cmd-data-pins {
> > -                       pins = "sdc1_cmd", "sdc1_data";
> > -                       drive-strength = <4>;
> > -                       bias-pull-up;
> > -               };
> > -       };
> > -
> > -       sdc3_on: sdc3-on-state {
> > -               pins = "gpio35", "gpio36", "gpio37", "gpio38",
> > "gpio39", "gpio40";
> > -               function = "sdc3";
> > -               drive-strength = <8>;
> > -               bias-disable;
> > -       };
> > -
> > -       sdhc3_cd_pin: sdc3-cd-on-state {
> > -               pins = "gpio62";
> > -               function = "gpio";
> > -
> > -               drive-strength = <2>;
> > -               bias-disable;
> > -       };
> > -
> > -       sdc2_on: sdhc2-on-state {
> > -               clk-pins {
> > -                       pins = "sdc2_clk";
> > -                       drive-strength = <6>;
> > -                       bias-disable;
> > -               };
> > -
> > -               cmd-data-pins {
> > -                       pins = "sdc2_cmd", "sdc2_data";
> > -                       drive-strength = <6>;
> > -                       bias-pull-up;
> > -               };
> > -       };
> > -
> > -       i2c_touchkey_pins: i2c-touchkey-state {
> > -               pins = "gpio95", "gpio96";
> > -               function = "gpio";
> > -               bias-pull-up;
> > -       };
> > -
> > -       i2c_led_gpioex_pins: i2c-led-gpioex-state {
> > -               pins = "gpio120", "gpio121";
> > -               function = "gpio";
> > -               bias-pull-down;
> > -       };
> > -
> > -       gpioex_pin: gpioex-state {
> > -               pins = "gpio145";
> > -               function = "gpio";
> > -               bias-pull-up;
> > -               drive-strength = <2>;
> > -       };
> > -
> > -       wifi_pin: wifi-state {
> > -               pins = "gpio92";
> > -               function = "gpio";
> > -               bias-pull-down;
> > -       };
> > -
> > -       panel_te_pin: panel-state {
> > -               pins = "gpio12";
> > -               function = "mdp_vsync";
> > -               drive-strength = <2>;
> > -               bias-disable;
> > -       };
> > -};
> > -
> > -&usb {
> > -       status = "okay";
> > -
> > -       phys = <&usb_hs1_phy>;
> > -       phy-select = <&tcsr 0xb000 0>;
> > -
> > -       hnp-disable;
> > -       srp-disable;
> > -       adp-disable;
> > -};
> > -
> > -&usb_hs1_phy {
> > -       status = "okay";
> > -
> > -       v1p8-supply = <&pma8084_l6>;
> > -       v3p3-supply = <&pma8084_l24>;
> > -
> > -       qcom,init-seq = /bits/ 8 <0x1 0x64>;
> > -};
> > +// SPDX-License-Identifier: GPL-2.0
> > +#include "qcom-msm8974pro-samsung-klte-common.dtsi"
> > +
> > +/ {
> > +       model = "Samsung Galaxy S5";
> > +       compatible = "samsung,klte", "qcom,msm8974pro",
> > "qcom,msm8974";
> > +};
> > +
> > +&i2c_led_gpio {
> > +       scl-gpios = <&tlmm 121 (GPIO_ACTIVE_HIGH |
> > GPIO_OPEN_DRAIN)>;
> > +       sda-gpios = <&tlmm 120 (GPIO_ACTIVE_HIGH |
> > GPIO_OPEN_DRAIN)>;
> > +};
> > +
> > +&i2c_led_gpioex_pins {
> > +       pins = "gpio120", "gpio121";
> > +};
> 


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

* Re: [PATCH v3 1/4] ARM: dts: qcom: msm8974: Split out common part of samsung-klte
  2024-02-13 10:58 ` [PATCH v3 1/4] ARM: dts: qcom: msm8974: Split out common part of samsung-klte Rong Zhang
  2024-02-13 11:21   ` Krzysztof Kozlowski
  2024-04-14 13:58   ` Icenowy Zheng
@ 2024-04-17 20:25   ` Alexey Minnekhanov
  2 siblings, 0 replies; 13+ messages in thread
From: Alexey Minnekhanov @ 2024-04-17 20:25 UTC (permalink / raw)
  To: Rong Zhang, Bjorn Andersson, Konrad Dybcio, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley
  Cc: linux-arm-msm, devicetree, linux-kernel, Icenowy Zheng



On 13.02.2024 13:58, Rong Zhang wrote:
> Samsung Galaxy S5 has many variants. Variants that support LTE use klte*
> as their codename. Currently, the only supported one is the one without
> any suffix, namely, klte. It is known that other klte* variants have
> only minor differences compared to klte and can mostly work with the
> klte DTB.
> 
> Split the common part into a common DTSI so that it can be imported in
> the DTS of klte and other klte* variants.
> 
> Signed-off-by: Rong Zhang <i@rong.moe>
> ---
>   ... qcom-msm8974pro-samsung-klte-common.dtsi} |   7 +-
>   .../dts/qcom/qcom-msm8974pro-samsung-klte.dts | 833 +-----------------
>   2 files changed, 17 insertions(+), 823 deletions(-)
>   copy arch/arm/boot/dts/qcom/{qcom-msm8974pro-samsung-klte.dts => qcom-msm8974pro-samsung-klte-common.dtsi} (98%)
>   rewrite arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte.dts (99%)
> 

Tested on regular Samsung Galaxy S5 (qcom-msm8974pro-samsung-klte).

Tested-by: Alexey Minnekhanov <alexeymin@postmarketos.org>

-- 
Regards,
Alexey Minnekhanov
postmarketOS developer

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

* Re: (subset) [PATCH v3 0/4] ARM: dts: qcom: msm8974: Add Samsung Galaxy S5 China support
  2024-02-13 10:58 [PATCH v3 0/4] ARM: dts: qcom: msm8974: Add Samsung Galaxy S5 China support Rong Zhang
                   ` (3 preceding siblings ...)
  2024-02-13 10:58 ` [PATCH v3 4/4] ARM: dts: qcom: msm8974: Add DTS for " Rong Zhang
@ 2024-04-23 13:17 ` Bjorn Andersson
  4 siblings, 0 replies; 13+ messages in thread
From: Bjorn Andersson @ 2024-04-23 13:17 UTC (permalink / raw)
  To: Konrad Dybcio, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Rong Zhang
  Cc: linux-arm-msm, devicetree, linux-kernel, Icenowy Zheng


On Tue, 13 Feb 2024 18:58:35 +0800, Rong Zhang wrote:
> Samsung Galaxy S5 has many variants. Currently, the only supported one
> is klte. Samsung Galaxy S5 China (kltechn) is the China edition of
> klte, and it can mostly work with the klte DTB, with only LEDs and WiFi
> missing.
> 
> This patchset splits out the common part of klte DTS into klte-common
> DTSI, and adds DTS for kltechn by fixing up the GPIO pins for the LEDs
> and GPIO expander connected by the WiFi module. A "brcm,board-type"
> property is added into the wifi@1 node of the common DTSI to allow all
> klte* variants to load the same NVRAM file.
> 
> [...]

Applied, thanks!

[1/4] ARM: dts: qcom: msm8974: Split out common part of samsung-klte
      commit: 16dcf57734620edea32339df2ff8875da00a34c1
[2/4] ARM: dts: qcom: msm8974-klte-common: Pin WiFi board type
      commit: a730364f16ddc65268d828acdbf17f2a762e84be
[4/4] ARM: dts: qcom: msm8974: Add DTS for Samsung Galaxy S5 China (kltechn)
      commit: 01088e255a27f396dcbc412e10b26cd14be5ff19

Best regards,
-- 
Bjorn Andersson <andersson@kernel.org>

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

end of thread, other threads:[~2024-04-23 13:17 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-02-13 10:58 [PATCH v3 0/4] ARM: dts: qcom: msm8974: Add Samsung Galaxy S5 China support Rong Zhang
2024-02-13 10:58 ` [PATCH v3 1/4] ARM: dts: qcom: msm8974: Split out common part of samsung-klte Rong Zhang
2024-02-13 11:21   ` Krzysztof Kozlowski
2024-04-14 13:58   ` Icenowy Zheng
2024-04-14 14:48     ` Icenowy Zheng
2024-04-17 20:25   ` Alexey Minnekhanov
2024-02-13 10:58 ` [PATCH v3 2/4] ARM: dts: qcom: msm8974-klte-common: Pin WiFi board type Rong Zhang
2024-02-14 21:25   ` Konrad Dybcio
2024-02-13 10:58 ` [PATCH v3 3/4] dt-bindings: arm: qcom: Add Samsung Galaxy S5 China (kltechn) Rong Zhang
2024-02-13 11:17   ` Krzysztof Kozlowski
2024-02-13 10:58 ` [PATCH v3 4/4] ARM: dts: qcom: msm8974: Add DTS for " Rong Zhang
2024-02-13 11:22   ` Krzysztof Kozlowski
2024-04-23 13:17 ` (subset) [PATCH v3 0/4] ARM: dts: qcom: msm8974: Add Samsung Galaxy S5 China support Bjorn Andersson

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).