Skip to contentSkip to conversation

Add DTS for SDM845 SoC and MTP

PATCH Superseded Rajendra Nayak 5 participants 12 messages Feb 22, 2018 – Mar 20, 2018

Subsystems (3)

v5 of 7 Superseded Latest is v7 →

lore
Share & tools
lore
#0 lore raw

v5 cover Add DTS for SDM845 SoC and MTP

These are basic device tree files needed to boot a SDM845 MTP board to a ramfs based serial console shell

Bindings are based on whats proposed for pinctrl/serial/clock drivers for SDM845 SoC
pinctrl: https://patchwork.kernel.org/patch/10157143/ (This is now pulled in by Linus Walleij for 4.17)
clocks: https://lkml.org/lkml/2018/1/31/209 (under review)
serial: https://patchwork.ozlabs.org/cover/860251/ (under review)

'PATCH 4/4' is based on v2 of serial patches, will need an update if v3 (still in the works) has further binding updates

Since 'PATCH 3/4' also adds an ITS node and keeps it disabled, we also depend on https://lkml.org/lkml/2018/1/29/383

changes in v5:
* Removed all instances of IRQ_TYPE_NONE

changes in v4:
* pull config changes to uart pins
* License in device tree files is still GPL-2.0

changes in v3:
* split the pinmux/pinconf nodes across SoC/Board files
* Fixes for issues reported with 'make dtbs W=2'
* other minor fixes based on review

changes in v2:
* dropped cpu-map
* dropped GIC_CPU_MASK_SIMPLE()
* Added new cpu compatible for kryo385
* added ITS node, marked as disabled

Rajendra Nayak (4):
dt-bindings: arm: Document kryo385 cpu
dt-bindings: qcom: Add SDM845 bindings
arm64: dts: sdm845: Add minimal dts/dtsi files for sdm845 SoC and MTP
arm64: dts: sdm845: Add serial console support

 Documentation/devicetree/bindings/arm/cpus.txt |   1 +
 Documentation/devicetree/bindings/arm/qcom.txt |   1 +
 arch/arm64/boot/dts/qcom/Makefile              |   1 +
 arch/arm64/boot/dts/qcom/sdm845-mtp.dts        |  54 +++++
 arch/arm64/boot/dts/qcom/sdm845.dtsi           | 316 +++++++++++++++++++++++++
 5 files changed, 373 insertions(+)
 create mode 100644 arch/arm64/boot/dts/qcom/sdm845-mtp.dts
 create mode 100644 arch/arm64/boot/dts/qcom/sdm845.dtsi
Signature · 2 lines
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
of Code Aurora Forum, hosted by The Linux Foundation
#1 lore raw

PATCH v5 1/4 dt-bindings: arm: Document kryo385 cpu

Document the compatible string for the Kryo385 cpus found in qualcomm SoCs.

---
 Documentation/devicetree/bindings/arm/cpus.txt | 1 +
 1 file changed, 1 insertion(+)
Documentation/devicetree/bindings/arm/cpus.txt +1 -0
index a0009b72e9be..19611ccb61d9 100644
@@ -184,6 +184,7 @@ described below.
 			    "nvidia,tegra186-denver"
 			    "qcom,krait"
 			    "qcom,kryo"
+			    "qcom,kryo385"
 			    "qcom,scorpion"
 	- enable-method
 		Value type: <stringlist>
Signature · 2 lines
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
of Code Aurora Forum, hosted by The Linux Foundation
#3 lore raw

PATCH v5 2/4 dt-bindings: qcom: Add SDM845 bindings

In reply to Rajendra Nayak

Add a SoC string 'sdm845' for the qualcomm SDM845 SoC

---
 Documentation/devicetree/bindings/arm/qcom.txt | 1 +
 1 file changed, 1 insertion(+)
Documentation/devicetree/bindings/arm/qcom.txt +1 -0
index 0ed4d39d7fe1..ee532e705d6c 100644
@@ -26,6 +26,7 @@ The 'SoC' element must be one of the following strings:
 	msm8996
 	mdm9615
 	ipq8074
+	sdm845
 
 The 'board' element must be one of the following strings:
 
Signature · 2 lines
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
of Code Aurora Forum, hosted by The Linux Foundation
#5 lore raw

PATCH v5 3/4 arm64: dts: sdm845: Add minimal dts/dtsi files for sdm845 SoC and MTP

In reply to Rajendra Nayak

Add a skeletal sdm845 SoC dtsi and MTP board dts/dtsi files

---
 arch/arm64/boot/dts/qcom/Makefile       |   1 +
 arch/arm64/boot/dts/qcom/sdm845-mtp.dts |  15 ++
 arch/arm64/boot/dts/qcom/sdm845.dtsi    | 277 ++++++++++++++++++++++++++++++++
 3 files changed, 293 insertions(+)
 create mode 100644 arch/arm64/boot/dts/qcom/sdm845-mtp.dts
 create mode 100644 arch/arm64/boot/dts/qcom/sdm845.dtsi
arch/arm64/boot/dts/qcom/Makefile +1 -0
index 55ec5ee7f7e8..9319e74b8906 100644
@@ -6,3 +6,4 @@ dtb-$(CONFIG_ARCH_QCOM)	+= msm8916-mtp.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= msm8992-bullhead-rev-101.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= msm8994-angler-rev-101.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= msm8996-mtp.dtb
+dtb-$(CONFIG_ARCH_QCOM)	+= sdm845-mtp.dtb
arch/arm64/boot/dts/qcom/sdm845-mtp.dts new file +15 -0
new file mode 100644
index 000000000000..979ab49913f1
@@ -0,0 +1,15 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * SDM845 MTP board device tree source
+ *
+ * Copyright (c) 2018, The Linux Foundation. All rights reserved.
+ */
+
+/dts-v1/;
+
+#include "sdm845.dtsi"
+
+/ {
+	model = "Qualcomm Technologies, Inc. SDM845 MTP";
+	compatible = "qcom,sdm845-mtp";
+};
arch/arm64/boot/dts/qcom/sdm845.dtsi new file +277 -0

277 lines not on this page · raw message

Signature · 2 lines
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
of Code Aurora Forum, hosted by The Linux Foundation
#6 lore raw

Re: [PATCH v5 3/4] arm64: dts: sdm845: Add minimal dts/dtsi files for sdm845 SoC and MTP

Hi,

arch/arm64/boot/dts/qcom/sdm845.dtsi line 188

Quoted 6 lines · Rajendra Nayak
arch/arm64/boot/dts/qcom/sdm845.dtsi new file +6 -0
+               gcc: clock-controller at 100000 {
+                       compatible = "qcom,gcc-sdm845";
+                       reg = <0x100000 0x1f0000>;
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+               };

Seems like we need "#power-domain-cells = <1>;" in the gcc node.

It is true that the property is listed as "optional" in the bindings, but we certainly know that the "include/dt-bindings/clock/qcom,gcc-sdm845.h" that's posted [1] contains several defines ending in "_GDSC" and once we start referencing those we'll need "#power-domain-cells". Seems like we should just have it from the beginning.

NOTE: IMHO adding "#power-domain-cells" could be done as a follow-on patch, but since (I think) this series still hasn't landed I guess we could just send up v6?

[1] https://patchwork.kernel.org/patch/10267093/

-Doug

#7 lore raw

Re: [PATCH v5 3/4] arm64: dts: sdm845: Add minimal dts/dtsi files for sdm845 SoC and MTP

Quoted 19 lines · Doug Anderson

Hi,

arch/arm64/boot/dts/qcom/sdm845.dtsi line 188

Quoted 6 lines · Rajendra Nayak
arch/arm64/boot/dts/qcom/sdm845.dtsi new file +6 -0
+               gcc: clock-controller at 100000 {
+                       compatible = "qcom,gcc-sdm845";
+                       reg = <0x100000 0x1f0000>;
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+               };

Seems like we need "#power-domain-cells = <1>;" in the gcc node.

It is true that the property is listed as "optional" in the bindings, but we certainly know that the "include/dt-bindings/clock/qcom,gcc-sdm845.h" that's posted [1] contains several defines ending in "_GDSC" and once we start referencing those we'll need "#power-domain-cells". Seems like we should just have it from the beginning.

Quoted 3 lines

NOTE: IMHO adding "#power-domain-cells" could be done as a follow-on patch, but since (I think) this series still hasn't landed I guess we could just send up v6?

thanks for catching this, I'll send out v6 in a bit.

Quoted 10 lines

[1] https://patchwork.kernel.org/patch/10267093/

-Doug
--
To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in the body of a message to majordomo at vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html

Signature · 2 lines
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation
#8 lore raw

PATCH v5 4/4 arm64: dts: sdm845: Add serial console support

In reply to Rajendra Nayak

Add the qup uart node and geni se instance needed to support the serial console on the MTP.

---
 arch/arm64/boot/dts/qcom/sdm845-mtp.dts | 39 +++++++++++++++++++++++++++++++++
 arch/arm64/boot/dts/qcom/sdm845.dtsi    | 39 +++++++++++++++++++++++++++++++++
 2 files changed, 78 insertions(+)
arch/arm64/boot/dts/qcom/sdm845-mtp.dts +39 -0
index 979ab49913f1..2a1ed55b703e 100644
@@ -12,4 +12,43 @@
 / {
 	model = "Qualcomm Technologies, Inc. SDM845 MTP";
 	compatible = "qcom,sdm845-mtp";
+
+	aliases {
+		serial0 = &qup_uart2;
+	};
+
+	chosen {
+		stdout-path = "serial0";
+	};
+};
+
+&soc {
+	geni-se at ac0000 {
+		serial at a84000 {
+			status = "okay";
+		};
+	};
+
+	pinctrl at 3400000 {
+		qup-uart2-default {
+			pinconf_tx {
+				pins = "gpio4";
+				drive-strength = <2>;
+				bias-disable;
+			};
+
+			pinconf_rx {
+				pins = "gpio5";
+				drive-strength = <2>;
+				bias-pull-up;
+			};
+		};
+
+		qup-uart2-sleep {
+			pinconf {
+				pins = "gpio4", "gpio5";
+				bias-pull-down;
+			};
+		};
+	};
 };
arch/arm64/boot/dts/qcom/sdm845.dtsi +39 -0
index da3d6ac906c8..0acd6c51115d 100644
@@ -6,6 +6,7 @@
  */
 
 #include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/clock/qcom,gcc-sdm845.h>
 
 / {
 	interrupt-parent = <&intc>;
@@ -195,6 +196,20 @@
 			#gpio-cells = <2>;
 			interrupt-controller;
 			#interrupt-cells = <2>;
+
+			qup_uart2_default: qup-uart2-default {
+				pinmux {
+					function = "qup9";
+					pins = "gpio4", "gpio5";
+				};
+			};
+
+			qup_uart2_sleep: qup-uart2-sleep {
+				pinmux {
+					function = "gpio";
+					pins = "gpio4", "gpio5";
+				};
+			};
 		};
 
 		timer at 17c90000 {
@@ -273,5 +288,29 @@
 			#interrupt-cells = <4>;
 			cell-index = <0>;
 		};
+
+		geni-se at ac0000 {
+			compatible = "qcom,geni-se-qup";
+			#address-cells = <1>;
+			#size-cells = <1>;
+			ranges;
+			reg = <0xac0000 0x6000>;
+			clocks = <&gcc GCC_QUPV3_WRAP_1_M_AHB_CLK>,
+				 <&gcc GCC_QUPV3_WRAP_1_S_AHB_CLK>;
+			clock-names = "m-ahb", "s-ahb";
+
+			qup_uart2: serial at a84000 {
+				compatible = "qcom,geni-debug-uart";
+				reg = <0xa84000 0x4000>;
+				reg-names = "se-phys";
+				clock-names = "se-clk";
+				clocks = <&gcc GCC_QUPV3_WRAP1_S1_CLK>;
+				pinctrl-names = "default", "sleep";
+				pinctrl-0 = <&qup_uart2_default>;
+				pinctrl-1 = <&qup_uart2_sleep>;
+				interrupts = <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>;
+				status = "disabled";
+			};
+		};
 	};
 };
Signature · 2 lines
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
of Code Aurora Forum, hosted by The Linux Foundation
#9 lore raw

Re: [PATCH v5 4/4] arm64: dts: sdm845: Add serial console support

Quoted 1 line · Rajendra Nayak
arch/arm64/boot/dts/qcom/sdm845.dtsi +0 -0

[..]

arch/arm64/boot/dts/qcom/sdm845.dtsi line 306

Quoted 5 lines
arch/arm64/boot/dts/qcom/sdm845.dtsi +5 -0
+			qup_uart2: serial at a84000 {
+				compatible = "qcom,geni-debug-uart";
+				reg = <0xa84000 0x4000>;
+				reg-names = "se-phys";
+				clock-names = "se-clk";

This was changed to "se" in v3 of the GENI patchset, with that this boots nicely again.

Regards,
Bjorn

#10 lore raw

Re: [PATCH v5 4/4] arm64: dts: sdm845: Add serial console support

Quoted 11 lines · Bjorn Andersson
Quoted 1 line · Rajendra Nayak
arch/arm64/boot/dts/qcom/sdm845.dtsi +0 -0

[..]

arch/arm64/boot/dts/qcom/sdm845.dtsi line 306

Quoted 5 lines
arch/arm64/boot/dts/qcom/sdm845.dtsi +5 -0
+			qup_uart2: serial at a84000 {
+				compatible = "qcom,geni-debug-uart";
+				reg = <0xa84000 0x4000>;
+				reg-names = "se-phys";
+				clock-names = "se-clk";

This was changed to "se" in v3 of the GENI patchset, with that this boots nicely again.

Thanks Bjorn for testing.

Karthik, it would be good if you could include just this patch from this series as part of your GENI series for the next (and subsequent) repost, with updates as needed based on binding changes?

Signature · 2 lines
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation
#11 lore raw

Re: [PATCH v5 4/4] arm64: dts: sdm845: Add serial console support

Quoted 15 lines · Rajendra Nayak
Quoted 11 lines · Bjorn Andersson
Quoted 1 line · Rajendra Nayak
arch/arm64/boot/dts/qcom/sdm845.dtsi +0 -0

[..]

arch/arm64/boot/dts/qcom/sdm845.dtsi line 306

Quoted 5 lines
arch/arm64/boot/dts/qcom/sdm845.dtsi +5 -0
+			qup_uart2: serial at a84000 {
+				compatible = "qcom,geni-debug-uart";
+				reg = <0xa84000 0x4000>;
+				reg-names = "se-phys";
+				clock-names = "se-clk";

This was changed to "se" in v3 of the GENI patchset, with that this boots nicely again.

Quoted 6 lines

Thanks Bjorn for testing.

Karthik, it would be good if you could include just this patch from this series as part of your GENI series for the next (and subsequent) repost, with updates as needed based on binding changes?

I will include this patch in my next submission.

Regards,
Karthik.

Signature · 2 lines
Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project