2022-09-28 11:58:07

by Lin, Meng-Bo

[permalink] [raw]
Subject: arm64: dts: qcom: msm8916-samsung-j5: Use common init 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.


2022-09-28 12:57:20

by Lin, Meng-Bo

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

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 13:00:01

by Lin, Meng-Bo

[permalink] [raw]
Subject: [PATCH v2 3/4] arm64: dts: qcom: msm8916-samsung-j5: Use 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

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]>

[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-j5.dts | 15 +++++++++++++
.../boot/dts/qcom/msm8916-samsung-j5x.dts | 11 ++++++++++
4 files changed, 49 insertions(+)
create mode 100644 arch/arm64/boot/dts/qcom/msm8916-samsung-j3.dts
create mode 100644 arch/arm64/boot/dts/qcom/msm8916-samsung-j5.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..bf8672ebedcd
--- /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@85a00000 {
+ reg = <0x0 0x85800000 0x0 0x800000>;
+ no-map;
+ };
+ };
+};
diff --git a/arch/arm64/boot/dts/qcom/msm8916-samsung-j5.dts b/arch/arm64/boot/dts/qcom/msm8916-samsung-j5.dts
new file mode 100644
index 000000000000..0a32d33e9778
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/msm8916-samsung-j5.dts
@@ -0,0 +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>;
+};
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 13:23:23

by Lin, Meng-Bo

[permalink] [raw]
Subject: [PATCH v2 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 bf8672ebedcd..7fd357b7f728 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@85a00000 {
};
};
};
+
+&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 4f71609bf6f8..54190144f823 100644
--- a/arch/arm64/boot/dts/qcom/msm8916-samsung-j5-common.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8916-samsung-j5-common.dtsi
@@ -3,6 +3,7 @@
#include "msm8916-pm8916.dtsi"

#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>

/ {
aliases {
@@ -21,6 +22,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";

@@ -193,6 +211,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-28 13:24:16

by Lin, Meng-Bo

[permalink] [raw]
Subject: [PATCH v2 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]>
---
...6-samsung-j5.dts => msm8916-samsung-j5-common.dtsi} | 10 ++--------
1 file changed, 2 insertions(+), 8 deletions(-)
rename arch/arm64/boot/dts/qcom/{msm8916-samsung-j5.dts => msm8916-samsung-j5-common.dtsi} (94%)

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%
rename from arch/arm64/boot/dts/qcom/msm8916-samsung-j5.dts
rename to arch/arm64/boot/dts/qcom/msm8916-samsung-j5-common.dtsi
index eabeed18cfaa..4f71609bf6f8 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,10 @@
// 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 +87,6 @@ &usb {

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

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

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

--
2.30.2


2022-09-28 14:51:40

by Krzysztof Kozlowski

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

On 28/09/2022 14:19, Lin, Meng-Bo wrote:
> 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:

Thanks for the changes. Do not attach further versions to some other
threads, because it messes up with our inboxes. Each patchset is a
separate thread.

Best regards,
Krzysztof

2022-09-28 14:52:44

by Krzysztof Kozlowski

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

On 28/09/2022 14:39, 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

No need to repeat it in every commit.

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

The same.

>
> Signed-off-by: Lin, Meng-Bo <[email protected]>
> ---
> ...6-samsung-j5.dts => msm8916-samsung-j5-common.dtsi} | 10 ++--------

Thanks for using proper format options. However your patch is not
bisectable - kernel is broken here.


Best regards,
Krzysztof

2022-11-06 03:15:34

by Bjorn Andersson

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

On Wed, Sep 28, 2022 at 12:39:46PM +0000, 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:
>

I'm afraid I don't think this, or the $subject, reflects what you're
actually doing in this change.

This should say something about moving the J5 device definition to a
common file, so that it could be reused in other related devices.

> - 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]>
> ---
> ...6-samsung-j5.dts => msm8916-samsung-j5-common.dtsi} | 10 ++--------
> 1 file changed, 2 insertions(+), 8 deletions(-)
> rename arch/arm64/boot/dts/qcom/{msm8916-samsung-j5.dts => msm8916-samsung-j5-common.dtsi} (94%)
>
> 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%
> rename from arch/arm64/boot/dts/qcom/msm8916-samsung-j5.dts
> rename to arch/arm64/boot/dts/qcom/msm8916-samsung-j5-common.dtsi
> index eabeed18cfaa..4f71609bf6f8 100644
> --- a/arch/arm64/boot/dts/qcom/msm8916-samsung-j5.dts
> +++ b/arch/arm64/boot/dts/qcom/msm8916-samsung-j5-common.dtsi

With this movewe have the Makefile referencing a file that doesn't
exist. Please introduce msm8916-samsung-j5.dts in the same commit.

> @@ -1,15 +1,10 @@
> // 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 +87,6 @@ &usb {
>
>
> &usb_hs_phy {
> extcon = <&pm8916_usbin>;
> - qcom,init-seq = /bits/ 8 <0x1 0x19 0x2 0x0b>;
> };
>
>
> &smd_rpm_regulators {
> @@ -199,7 +193,7 @@ l18 {
> };
>
>
> &msmgpio {
> - gpio_keys_default: gpio-keys-default {
> + gpio_keys_default: gpio-keys-default-state {

This is a good, but unrelated change.

Thanks,
Bjorn

> pins = "gpio107", "gpio109";
> function = "gpio";
>
>
> --
>
> 2.30.2
>