Re: [PATCH 1/3] arm64: dts: qcom: msm8916-samsung-e2015: Add initial common dtsi

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 14/07/2022 22:05, Lin, Meng-Bo wrote:
> Samsung Galaxy E5, E7 and Grand Max are smartphones using the MSM8916 SoC
> released in 2015.
> 
> e2015 and a2015 are similar, with some differences in accelerometer,
> MUIC and Vibrator. The common parts are shared in
> msm8916-samsung-a2015-common.dtsi to reduce duplication.
> 
> Add a common device tree for with initial support for:
> 
> - GPIO keys and vibrator
> - Hall sensor (except Grand Max)
> - SDHCI (internal and external storage)
> - USB Device Mode
> - UART (on USB connector via the SM5504 MUIC)
> - WCNSS (WiFi/BT)
> - Regulators
> - S3FWRN5 NFC (except Grand Max)
> 
> The three devices (and all other variants of E5/E7/Grand Max released in
> 2015) are very similar, with some differences in display, touchscreen,
> sensors and NFC. The common parts are shared in
> msm8916-samsung-e2015-common.dtsi to reduce duplication.
> 
> Unfortunately, some E5/E7/Grand Max were released with outdated 32-bit
> only firmware and never received any update from Samsung. Since the 32-bit
> TrustZone firmware is signed there seems to be no way currently to
> actually boot this device tree on arm64 Linux on those variants at the
> moment.
> 
> However, it is possible to use this device tree by compiling an ARM32
> kernel instead. The device tree can be easily built on ARM32 with
> an #include and it works really well there. To avoid confusion for others
> it is still better to add this device tree on arm64. Otherwise it's easy
> to forget to update this one when making some changes that affect all
> MSM8916 devices.
> 
> Maybe someone finds a way to boot ARM64 Linux on those device at some
> point. In this case I expect that this device tree can be simply used
> as-is.
> 
> Co-developed-by: Stephan Gerhold <stephan@xxxxxxxxxxx>
> Signed-off-by: Stephan Gerhold <stephan@xxxxxxxxxxx>
> Signed-off-by: Lin, Meng-Bo <linmengbo0689@xxxxxxxxxxxxxx>

Please thread your patches (which is by default with git-send-email, so
just don't disable it). Without it you are making life of reviewer much
more difficult.

> ---
>  arch/arm64/boot/dts/qcom/Makefile             |  3 ++
>  .../qcom/msm8916-samsung-e2015-common.dtsi    | 39 +++++++++++++++++++
>  .../boot/dts/qcom/msm8916-samsung-e5.dts      | 24 ++++++++++++
>  .../boot/dts/qcom/msm8916-samsung-e7.dts      | 29 ++++++++++++++
>  .../dts/qcom/msm8916-samsung-grandmax.dts     | 36 +++++++++++++++++
>  5 files changed, 131 insertions(+)
>  create mode 100644 arch/arm64/boot/dts/qcom/msm8916-samsung-e2015-common.dtsi
>  create mode 100644 arch/arm64/boot/dts/qcom/msm8916-samsung-e5.dts
>  create mode 100644 arch/arm64/boot/dts/qcom/msm8916-samsung-e7.dts
>  create mode 100644 arch/arm64/boot/dts/qcom/msm8916-samsung-grandmax.dts
> 
> diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
> index 2f8aec2cc6db..941494553b9e 100644
> --- a/arch/arm64/boot/dts/qcom/Makefile
> +++ b/arch/arm64/boot/dts/qcom/Makefile
> @@ -15,6 +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-e5.dtb
> +dtb-$(CONFIG_ARCH_QCOM)	+= msm8916-samsung-e7.dtb
> +dtb-$(CONFIG_ARCH_QCOM)	+= msm8916-samsung-grandmax.dtb
>  dtb-$(CONFIG_ARCH_QCOM)	+= msm8916-samsung-j5.dtb
>  dtb-$(CONFIG_ARCH_QCOM)	+= msm8916-samsung-serranove.dtb
>  dtb-$(CONFIG_ARCH_QCOM)	+= msm8916-wingtech-wt88047.dtb
> diff --git a/arch/arm64/boot/dts/qcom/msm8916-samsung-e2015-common.dtsi b/arch/arm64/boot/dts/qcom/msm8916-samsung-e2015-common.dtsi
> new file mode 100644
> index 000000000000..373154ee2643
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/msm8916-samsung-e2015-common.dtsi
> @@ -0,0 +1,39 @@
> +// SPDX-License-Identifier: GPL-2.0-only
> +
> +#include "msm8916-samsung-a2015-common.dtsi"
> +
> +/ {
> +	i2c-muic {
> +		/* SM5504 MUIC instead of SM5502 */
> +		/delete-node/ extcon@25;
> +
> +		muic: extcon@14 {
> +			compatible = "siliconmitus,sm5504-muic";
> +			reg = <0x14>;
> +
> +			interrupt-parent = <&msmgpio>;
> +			interrupts = <12 IRQ_TYPE_EDGE_FALLING>;
> +
> +			pinctrl-names = "default";
> +			pinctrl-0 = <&muic_int_default>;
> +		};
> +	};
> +
> +	vibrator: vibrator {
> +		compatible = "gpio-vibrator";
> +		enable-gpios = <&msmgpio 76 GPIO_ACTIVE_HIGH>;
> +
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&motor_en_default>;
> +	};
> +};
> +
> +&msmgpio {
> +	motor_en_default: motor-en-default {
> +		pins = "gpio76";
> +		function = "gpio";
> +
> +		drive-strength = <2>;
> +		bias-disable;
> +	};
> +};
> diff --git a/arch/arm64/boot/dts/qcom/msm8916-samsung-e5.dts b/arch/arm64/boot/dts/qcom/msm8916-samsung-e5.dts
> new file mode 100644
> index 000000000000..777eb934eb4b
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/msm8916-samsung-e5.dts
> @@ -0,0 +1,24 @@
> +// SPDX-License-Identifier: GPL-2.0-only
> +
> +/dts-v1/;
> +
> +#include "msm8916-samsung-e2015-common.dtsi"
> +
> +/*
> + * NOTE: The original firmware from Samsung can only boot ARM32 kernels on some
> + * variants.
> + * Unfortunately, the firmware is signed and cannot be replaced easily.
> + * There seems to be no way to boot ARM64 kernels on 32-bit devices at the
> + * moment, even though the hardware would support it.
> + *
> + * However, it is possible to use this device tree by compiling an ARM32 kernel
> + * instead. For clarity and build testing this device tree is maintained next
> + * to the other MSM8916 device trees. However, it is actually used through
> + * arch/arm/boot/dts/qcom-msm8916-samsung-e5.dts
> + */
> +
> +/ {
> +	model = "Samsung Galaxy E5";
> +	compatible = "samsung,e5", "qcom,msm8916";

You miss bindings document.

Best regards,
Krzysztof



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [Linux for Sparc]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux