2022-09-28 18:49:52

by Lin, Meng-Bo

[permalink] [raw]
Subject: [PATCH v5 0/4] arm64: dts: qcom: msm8916-samsung-j5: Use common device tree

v5: Fix address typo tz-apps@85a00000 in msm8916-samsung-j3.dts
v4: Try "git format-patch -B -C -M -D" to fix errors.
v3: Drop msm8916-samsung-j5.dts temporarily before moving it.
Minor rewords.
v2: Reword and resend. Split common dtsi patch.
Add missing suffix state in pinctrl.

The smartphones below are using the MSM8916 SoC,
which are released in 2015-2016:

Samsung Galaxy J5 2015 (SM-J500*)
Samsung Galaxy J5 2016 (SM-J510*)
Samsung Galaxy J3 2016
- SM-J3109/SM-J320Y/SM-J320YZ
- SM-J320N0/SM-J320ZN
- SM-J320P/SM-J320R4/SM-J320V/SM-S320VL

Add a common device tree for with initial support for:

- GPIO keys
- SDHCI (internal and external storage)
- USB Device Mode
- UART (on USB connector via the SM5703 MUIC)
- WCNSS (WiFi/BT)
- Regulators

The three devices (some varints of J3, all other variants of J5 released
in 2015 and J5X released in 2016) are very similar, with some differences
in display and GPIO pins. The common parts are shared in
msm8916-samsung-j5-common.dtsi to reduce duplication.


2022-09-28 18:50:43

by Lin, Meng-Bo

[permalink] [raw]
Subject: [PATCH v5 3/4] arm64: dts: qcom: msm8916-samsung-j5-common: Add new device trees

After moving msm8916-samsung-j5.dts to msm8916-samsung-j5-common.dtsi,
Add new J3 and J5 2016 device trees.

[Add j5x device tree]
Co-developed-by: Josef W Menad <[email protected]>
Signed-off-by: Josef W Menad <[email protected]>
[Use &pm8916_usbin as USB extcon and add chassis-type for j5x]
Co-developed-by: Stephan Gerhold <[email protected]>
Signed-off-by: Stephan Gerhold <[email protected]>
[Use common init device tree and add j3 device tree]
Signed-off-by: Lin, Meng-Bo <[email protected]>
---
arch/arm64/boot/dts/qcom/Makefile | 2 ++
.../boot/dts/qcom/msm8916-samsung-j3.dts | 21 +++++++++++++++++++
.../boot/dts/qcom/msm8916-samsung-j5x.dts | 11 ++++++++++
3 files changed, 34 insertions(+)
create mode 100644 arch/arm64/boot/dts/qcom/msm8916-samsung-j3.dts
create mode 100644 arch/arm64/boot/dts/qcom/msm8916-samsung-j5x.dts

diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 1d86a33de528..357a2529fe74 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -15,7 +15,9 @@ dtb-$(CONFIG_ARCH_QCOM) += msm8916-longcheer-l8910.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8916-mtp.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8916-samsung-a3u-eur.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8916-samsung-a5u-eur.dtb
+dtb-$(CONFIG_ARCH_QCOM) += msm8916-samsung-j3.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8916-samsung-j5.dtb
+dtb-$(CONFIG_ARCH_QCOM) += msm8916-samsung-j5x.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8916-samsung-serranove.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8916-wingtech-wt88047.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8992-lg-bullhead-rev-10.dtb
diff --git a/arch/arm64/boot/dts/qcom/msm8916-samsung-j3.dts b/arch/arm64/boot/dts/qcom/msm8916-samsung-j3.dts
new file mode 100644
index 000000000000..35d3e9c6d012
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/msm8916-samsung-j3.dts
@@ -0,0 +1,21 @@
+// SPDX-License-Identifier: GPL-2.0-only
+
+/dts-v1/;
+
+#include "msm8916-samsung-j5-common.dtsi"
+
+/ {
+ model = "Samsung Galaxy J3 (2016)";
+ compatible = "samsung,j3", "qcom,msm8916";
+ chassis-type = "handset";
+
+ reserved-memory {
+ /delete-node/ tz-apps@85500000;
+
+ /* Additional memory used by Samsung firmware modifications */
+ tz-apps@85800000 {
+ reg = <0x0 0x85800000 0x0 0x800000>;
+ no-map;
+ };
+ };
+};
diff --git a/arch/arm64/boot/dts/qcom/msm8916-samsung-j5x.dts b/arch/arm64/boot/dts/qcom/msm8916-samsung-j5x.dts
new file mode 100644
index 000000000000..7656ac4508cf
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/msm8916-samsung-j5x.dts
@@ -0,0 +1,11 @@
+// SPDX-License-Identifier: GPL-2.0-only
+
+/dts-v1/;
+
+#include "msm8916-samsung-j5-common.dtsi"
+
+/ {
+ model = "Samsung Galaxy J5 (2016)";
+ compatible = "samsung,j5x", "qcom,msm8916";
+ chassis-type = "handset";
+};
--
2.30.2


2022-09-28 18:50:43

by Lin, Meng-Bo

[permalink] [raw]
Subject: [PATCH v5 2/4] arm64: dts: qcom: msm8916-samsung-j5-common: Add initial common device tree

The smartphones below are using the MSM8916 SoC,
which are released in 2015-2016:

Samsung Galaxy J5 2015 (SM-J500*)
Samsung Galaxy J5 2016 (SM-J510*)
Samsung Galaxy J3 2016
- SM-J3109/SM-J320Y/SM-J320YZ
- SM-J320N0/SM-J320ZN
- SM-J320P/SM-J320R4/SM-J320V/SM-S320VL

Add a common device tree for with initial support for:

- GPIO keys
- SDHCI (internal and external storage)
- USB Device Mode
- UART (on USB connector via the SM5703 MUIC)
- WCNSS (WiFi/BT)
- Regulators

The three devices (some varints of J3, all other variants of J5 released
in 2015 and J5X released in 2016) are very similar, with some differences
in display and GPIO pins. The common parts are shared in
msm8916-samsung-j5-common.dtsi to reduce duplication.

Signed-off-by: Lin, Meng-Bo <[email protected]>
---
...-j5.dts => msm8916-samsung-j5-common.dtsi} | 9 +-
.../boot/dts/qcom/msm8916-samsung-j5.dts | 224 ++----------------
2 files changed, 16 insertions(+), 217 deletions(-)
copy arch/arm64/boot/dts/qcom/{msm8916-samsung-j5.dts => msm8916-samsung-j5-common.dtsi} (94%)
rewrite arch/arm64/boot/dts/qcom/msm8916-samsung-j5.dts (93%)

diff --git a/arch/arm64/boot/dts/qcom/msm8916-samsung-j5.dts b/arch/arm64/boot/dts/qcom/msm8916-samsung-j5-common.dtsi
similarity index 94%
copy from arch/arm64/boot/dts/qcom/msm8916-samsung-j5.dts
copy to arch/arm64/boot/dts/qcom/msm8916-samsung-j5-common.dtsi
index eabeed18cfaa..502b38d4a61e 100644
--- a/arch/arm64/boot/dts/qcom/msm8916-samsung-j5.dts
+++ b/arch/arm64/boot/dts/qcom/msm8916-samsung-j5-common.dtsi
@@ -1,15 +1,9 @@
// SPDX-License-Identifier: GPL-2.0-only

-/dts-v1/;
-
#include "msm8916-pm8916.dtsi"
#include <dt-bindings/gpio/gpio.h>

/ {
- model = "Samsung Galaxy J5 (2015)";
- compatible = "samsung,j5", "qcom,msm8916";
- chassis-type = "handset";
-
aliases {
serial0 = &blsp1_uart2;
};
@@ -92,7 +86,6 @@ &usb {

&usb_hs_phy {
extcon = <&pm8916_usbin>;
- qcom,init-seq = /bits/ 8 <0x1 0x19 0x2 0x0b>;
};

&smd_rpm_regulators {
@@ -199,7 +192,7 @@ l18 {
};

&msmgpio {
- gpio_keys_default: gpio-keys-default {
+ gpio_keys_default: gpio-keys-default-state {
pins = "gpio107", "gpio109";
function = "gpio";

diff --git a/arch/arm64/boot/dts/qcom/msm8916-samsung-j5.dts b/arch/arm64/boot/dts/qcom/msm8916-samsung-j5.dts
dissimilarity index 93%
index eabeed18cfaa..0a32d33e9778 100644
--- a/arch/arm64/boot/dts/qcom/msm8916-samsung-j5.dts
+++ b/arch/arm64/boot/dts/qcom/msm8916-samsung-j5.dts
@@ -?,? +1,15 @@
+// SPDX-License-Identifier: GPL-2.0-only
+
+/dts-v1/;
+
+#include "msm8916-samsung-j5-common.dtsi"
+
+/ {
+ model = "Samsung Galaxy J5 (2015)";
+ compatible = "samsung,j5", "qcom,msm8916";
+ chassis-type = "handset";
+};
+
+&usb_hs_phy {
+ qcom,init-seq = /bits/ 8 <0x1 0x19 0x2 0x0b>;
+};
--
2.30.2


2022-09-28 19:14:25

by Lin, Meng-Bo

[permalink] [raw]
Subject: [PATCH v5 1/4] dt-bindings: qcom: Document bindings for new msm8916-samsung-j5 devices

Document the new samsung-j3/j5x device tree bindings used in their
device trees.

Signed-off-by: Lin, Meng-Bo <[email protected]>
Acked-by: Krzysztof Kozlowski <[email protected]>
---
Documentation/devicetree/bindings/arm/qcom.yaml | 2 ++
1 file changed, 2 insertions(+)

diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml
index fb1d00bcc847..b1c69d4d9a9a 100644
--- a/Documentation/devicetree/bindings/arm/qcom.yaml
+++ b/Documentation/devicetree/bindings/arm/qcom.yaml
@@ -176,7 +176,9 @@ properties:
- longcheer,l8910
- samsung,a3u-eur
- samsung,a5u-eur
+ - samsung,j3
- samsung,j5
+ - samsung,j5x
- samsung,serranove
- wingtech,wt88047
- const: qcom,msm8916
--
2.30.2


2022-09-28 19:16:34

by Lin, Meng-Bo

[permalink] [raw]
Subject: [PATCH v5 4/4] arm64: dts: qcom: msm8916-samsung-j5-common: Add Hall sensor

Samsung Galaxy J5 2015 and 2016 have a Hall sensor on GPIO pin 52.
Add GPIO Hall sensor for them.

Signed-off-by: Lin, Meng-Bo <[email protected]>
---
.../boot/dts/qcom/msm8916-samsung-j3.dts | 4 +++
.../dts/qcom/msm8916-samsung-j5-common.dtsi | 26 +++++++++++++++++++
2 files changed, 30 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/msm8916-samsung-j3.dts b/arch/arm64/boot/dts/qcom/msm8916-samsung-j3.dts
index 35d3e9c6d012..7cfc6f8f5fcf 100644
--- a/arch/arm64/boot/dts/qcom/msm8916-samsung-j3.dts
+++ b/arch/arm64/boot/dts/qcom/msm8916-samsung-j3.dts
@@ -19,3 +19,7 @@ tz-apps@85800000 {
};
};
};
+
+&gpio_hall_sensor {
+ status = "disabled";
+};
diff --git a/arch/arm64/boot/dts/qcom/msm8916-samsung-j5-common.dtsi b/arch/arm64/boot/dts/qcom/msm8916-samsung-j5-common.dtsi
index 502b38d4a61e..5755b360c6ed 100644
--- a/arch/arm64/boot/dts/qcom/msm8916-samsung-j5-common.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8916-samsung-j5-common.dtsi
@@ -2,6 +2,7 @@

#include "msm8916-pm8916.dtsi"
#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>

/ {
aliases {
@@ -20,6 +21,23 @@ tz-apps@85500000 {
};
};

+ gpio_hall_sensor: gpio-hall-sensor {
+ compatible = "gpio-keys";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&gpio_hall_sensor_default>;
+
+ label = "GPIO Hall Effect Sensor";
+
+ event-hall-sensor {
+ label = "Hall Effect Sensor";
+ gpios = <&msmgpio 52 GPIO_ACTIVE_LOW>;
+ linux,input-type = <EV_SW>;
+ linux,code = <SW_LID>;
+ linux,can-disable;
+ };
+ };
+
gpio-keys {
compatible = "gpio-keys";

@@ -192,6 +210,14 @@ l18 {
};

&msmgpio {
+ gpio_hall_sensor_default: gpio-hall-sensor-default-state {
+ pins = "gpio52";
+ function = "gpio";
+
+ drive-strength = <2>;
+ bias-disable;
+ };
+
gpio_keys_default: gpio-keys-default-state {
pins = "gpio107", "gpio109";
function = "gpio";
--
2.30.2


2022-09-29 09:35:17

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v5 3/4] arm64: dts: qcom: msm8916-samsung-j5-common: Add new device trees

On 28/09/2022 20:44, Lin, Meng-Bo wrote:
> After moving msm8916-samsung-j5.dts to msm8916-samsung-j5-common.dtsi,
> Add new J3 and J5 2016 device trees.
>
> [Add j5x device tree]
> Co-developed-by: Josef W Menad <[email protected]>
> Signed-off-by: Josef W Menad <[email protected]>
> [Use &pm8916_usbin as USB extcon and add chassis-type for j5x]
> Co-developed-by: Stephan Gerhold <[email protected]>
> Signed-off-by: Stephan Gerhold <[email protected]>
> [Use common init device tree and add j3 device tree]
> Signed-off-by: Lin, Meng-Bo <[email protected]>


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

Best regards,
Krzysztof

2022-09-29 09:45:39

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v5 4/4] arm64: dts: qcom: msm8916-samsung-j5-common: Add Hall sensor

On 28/09/2022 20:44, Lin, Meng-Bo wrote:
> Samsung Galaxy J5 2015 and 2016 have a Hall sensor on GPIO pin 52.
> Add GPIO Hall sensor for them.
>
> Signed-off-by: Lin, Meng-Bo <[email protected]>
> ---


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

Best regards,
Krzysztof

2022-09-29 10:16:27

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v5 2/4] arm64: dts: qcom: msm8916-samsung-j5-common: Add initial common device tree

On 28/09/2022 20:44, Lin, Meng-Bo wrote:
> The smartphones below are using the MSM8916 SoC,
> which are released in 2015-2016:
>
> Samsung Galaxy J5 2015 (SM-J500*)
> Samsung Galaxy J5 2016 (SM-J510*)
> Samsung Galaxy J3 2016
> - SM-J3109/SM-J320Y/SM-J320YZ
> - SM-J320N0/SM-J320ZN
> - SM-J320P/SM-J320R4/SM-J320V/SM-S320VL
>
> Add a common device tree for with initial support for:
>
> - GPIO keys
> - SDHCI (internal and external storage)
> - USB Device Mode
> - UART (on USB connector via the SM5703 MUIC)
> - WCNSS (WiFi/BT)
> - Regulators
>
> The three devices (some varints of J3, all other variants of J5 released
> in 2015 and J5X released in 2016) are very similar, with some differences
> in display and GPIO pins. The common parts are shared in
> msm8916-samsung-j5-common.dtsi to reduce duplication.
>
> Signed-off-by: Lin, Meng-Bo <[email protected]>
> ---
> ...-j5.dts => msm8916-samsung-j5-common.dtsi} | 9 +-
> .../boot/dts/qcom/msm8916-samsung-j5.dts | 224 ++----------------
> 2 files changed, 16 insertions(+), 217 deletions(-)
> copy arch/arm64/boot/dts/qcom/{msm8916-samsung-j5.dts => msm8916-samsung-j5-common.dtsi} (94%)
> rewrite arch/arm64/boot/dts/qcom/msm8916-samsung-j5.dts (93%)
>
> diff --git a/arch/arm64/boot/dts/qcom/msm8916-samsung-j5.dts b/arch/arm64/boot/dts/qcom/msm8916-samsung-j5-common.dtsi
> similarity index 94%
> copy from arch/arm64/boot/dts/qcom/msm8916-samsung-j5.dts
> copy to arch/arm64/boot/dts/qcom/msm8916-samsung-j5-common.dtsi
> index eabeed18cfaa..502b38d4a61e 100644
> --- a/arch/arm64/boot/dts/qcom/msm8916-samsung-j5.dts
> +++ b/arch/arm64/boot/dts/qcom/msm8916-samsung-j5-common.dtsi
> @@ -1,15 +1,9 @@
> // SPDX-License-Identifier: GPL-2.0-only
>
> -/dts-v1/;
> -
> #include "msm8916-pm8916.dtsi"
> #include <dt-bindings/gpio/gpio.h>
>
> / {
> - model = "Samsung Galaxy J5 (2015)";
> - compatible = "samsung,j5", "qcom,msm8916";
> - chassis-type = "handset";
> -
> aliases {
> serial0 = &blsp1_uart2;
> };
> @@ -92,7 +86,6 @@ &usb {
>
> &usb_hs_phy {
> extcon = <&pm8916_usbin>;
> - qcom,init-seq = /bits/ 8 <0x1 0x19 0x2 0x0b>;
> };
>
> &smd_rpm_regulators {
> @@ -199,7 +192,7 @@ l18 {
> };
>
> &msmgpio {
> - gpio_keys_default: gpio-keys-default {
> + gpio_keys_default: gpio-keys-default-state {
> pins = "gpio107", "gpio109";

This change looks unrelated, so probably should be a separate patch. I
requested name change on your previous version when you were duplicating
diff hunks, so it was not clear that it is a copy.

The truth is that msm8916 bindings were not yet converted to schema and
other nodes were not aligned with common Qualcomm pinctrl schema, thus
this is not actually necessary if you simply copy files.

Anyway, fine by me:

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

Best regards,
Krzysztof