[PATCH 5/6] SoC: qcom: add support for SDM845

Stephan Gerhold stephan at gerhold.net
Fri Sep 24 12:55:33 CEST 2021


Hi,

On Thu, Sep 23, 2021 at 09:57:31PM +0300, dsankouski at gmail.com wrote:
> From: Dzmitry Sankouski <dsankouski at gmail.com>
> 
> Hi-end qualcomm chip, introduced in late 2017.
> Mostly used in flagship phones and tablets of 2018.
> Features:
> - arm64 arch
> - total of 8 Kryo 385 Gold / Silver cores
> - Hexagon 685 DSP
> - Adreno 630 GPU
> 
> Tested only as second-stage bootloader.
> 
> Signed-off-by: Dzmitry Sankouski <dsankouski at gmail.com>
> Cc: Ramon Fried <rfried.dev at gmail.com>
> Cc: Tom Rini <trini at konsulko.com>
> ---
>  arch/arm/dts/sdm845.dtsi                      | 118 ++++++++++++++++++
>  arch/arm/mach-snapdragon/Kconfig              |   4 +
>  arch/arm/mach-snapdragon/Makefile             |   4 +
>  .../include/mach/sysmap-sdm845.h              |  42 +++++++
>  arch/arm/mach-snapdragon/init_sdm845.c        |  82 ++++++++++++
>  arch/arm/mach-snapdragon/sysmap-sdm845.c      |  31 +++++
>  include/configs/sdm845.h                      |  33 +++++
>  7 files changed, 314 insertions(+)
>  create mode 100644 arch/arm/dts/sdm845.dtsi
>  create mode 100644 arch/arm/mach-snapdragon/include/mach/sysmap-sdm845.h
>  create mode 100644 arch/arm/mach-snapdragon/init_sdm845.c
>  create mode 100644 arch/arm/mach-snapdragon/sysmap-sdm845.c
>  create mode 100644 include/configs/sdm845.h
> 
> diff --git a/arch/arm/dts/sdm845.dtsi b/arch/arm/dts/sdm845.dtsi
> new file mode 100644
> index 0000000000..bf32c6995d
> --- /dev/null
> +++ b/arch/arm/dts/sdm845.dtsi
> @@ -0,0 +1,118 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Qualcomm SDM845 chip device tree source
> + *
> + * (C) Copyright 2021 Dzmitry Sankouski <dsankouski at gmail.com>
> + *
> + */
> +
> +/dts-v1/;
> +
> +#include "skeleton64.dtsi"
> +
> +/ {
> +	soc: soc {
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +		ranges = <0 0 0 0xffffffff>;
> +		compatible = "simple-bus";
> +
> +		gcc: clock-controller at 100000 {
> +			u-boot,dm-pre-reloc;
> +			compatible = "qcom,gcc-sdm845";
> +			reg = <0x00100000 0x1f0000>;
> +			#clock-cells = <1>;
> +			#reset-cells = <1>;
> +			#power-domain-cells = <1>;
> +		};
> +
> +		gpio_north: gpio_north at 3900000 {
> +			u-boot,dm-pre-reloc;
> +			#gpio-cells = <2>;
> +			compatible = "qcom,sdm845-pinctrl";
> +			reg = <0x3900000 0x400000>;
> +			gpio-count = <150>;
> +			gpio-controller;
> +			gpio-ranges = <&gpio_north 0 0 150>;
> +			gpio-bank-name = "soc_north.";
> +		};
> +
> +		tlmm_north: pinctrl_north at 3900000 {
> +			u-boot,dm-pre-reloc;
> +			compatible = "qcom,tlmm-sdm845";
> +			reg = <0x03900000 0x400000>;

Can you consistently pad "reg" with zeroes or not?
"gcc" is padded with zeroes to 8 digits, gpio_north is not,
then this is suddenly again. This makes it look like gpio_north
and tlmm_north have a different address when it's actually the same.

> +			gpio-count = <150>;
> +			gpio-controller;
> +			#gpio-cells = <2>;
> +			gpio-ranges = <&tlmm_north 0 0 150>;
> +
> +			/* DEBUG UART */
> +			qup_uart9: qup-uart9-default {
> +				pinmux {
> +					pins = "GPIO_4", "GPIO_5";
> +					function = "qup9";
> +				};
> +			};
> +		};
> +
> +		debug_uart: serial at 0xa84000 {

The 0x should not be in the unit name (after @).

> +			compatible = "qcom,msm-geni-uart";
> +			reg = <0xa84000 0x4000>;
> +			reg-names = "se_phys";
> +			clock-names = "se-clk";
> +			clocks = <&gcc 0x58>;
> +			pinctrl-names = "default";
> +			pinctrl-0 = <&qup_uart9>;
> +			qcom,wrapper-core = <0x8a>;
> +			status = "disabled";
> +		};
> +
> +		spmi at c440000 {
> +			compatible = "qcom,spmi-pmic-arb";
> +			reg = <0xc440000 0x1100>,
> +			      <0xc600000 0x2000000>,
> +			      <0xe600000 0x100000>;
> +			reg-names = "cnfg", "core", "obsrvr";
> +			#address-cells = <0x1>;
> +			#size-cells = <0x1>;
> +
> +			qcom,revid at 100 {
> +				compatible = "qcom,qpnp-revid";
> +				reg = <0x100 0x100>;
> +				linux,phandle = <0x3ac>;
> +				phandle = <0x3ac>;
> +			};
> +

What is this used for? With the linux,phandle this looks a bit like
something copied from a decompiled downstream dtb.

> +			pmic0: pm8998 at 0 {
> +				compatible = "qcom,spmi-pmic";
> +				reg = <0x0 0x1>;
> +				#address-cells = <0x1>;
> +				#size-cells = <0x1>;
> +
> +				pm8998_pon: pm8998_pon at 800 {
> +					compatible = "qcom,pm8998-pwrkey";
> +					reg = <0x800 0x100>;
> +					#gpio-cells = <2>;
> +					gpio-controller;
> +					gpio-bank-name="pm8998_key.";
> +				};
> +
> +				pm8998_gpios: pm8998_gpios at c000 {
> +					compatible = "qcom,pm8998-gpio";
> +					reg = <0xc000 0x1a00>;
> +					gpio-controller;
> +					gpio-count = <21>;
> +					#gpio-cells = <2>;
> +					gpio-bank-name="pm8998.";

Can you add spaces around '=' (gpio-bank-name = "pm8998.";), same for pm8998_pon.

Thanks,
Stephan


More information about the U-Boot mailing list