diff mbox series

[4/4] arm64: dts: sprd: Add support for Unisoc's UMS9620

Message ID 20231215085630.984892-5-chunyan.zhang@unisoc.com
State Superseded
Headers show
Series Add DTS and bindings for Unisoc's UMS9620 | expand

Commit Message

Chunyan Zhang Dec. 15, 2023, 8:56 a.m. UTC
Add basic support for Unisoc's UMS9620, with this patch,
the board ums9620-2h10 can run into console.

Signed-off-by: Chunyan Zhang <chunyan.zhang@unisoc.com>
---
 arch/arm64/boot/dts/sprd/Makefile         |   3 +-
 arch/arm64/boot/dts/sprd/ums9620-2h10.dts |  38 ++++
 arch/arm64/boot/dts/sprd/ums9620.dtsi     | 247 ++++++++++++++++++++++
 3 files changed, 287 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm64/boot/dts/sprd/ums9620-2h10.dts
 create mode 100644 arch/arm64/boot/dts/sprd/ums9620.dtsi

Comments

Chunyan Zhang Dec. 18, 2023, 2:31 a.m. UTC | #1
On Fri, 15 Dec 2023 at 18:36, Krzysztof Kozlowski
<krzysztof.kozlowski@linaro.org> wrote:
>
> On 15/12/2023 09:56, Chunyan Zhang wrote:
> > Add basic support for Unisoc's UMS9620, with this patch,
> > the board ums9620-2h10 can run into console.
> >
>
> ...
>
> > +
> > +     soc: soc {
>
> Are you sure you do not have here W=1 warnings?

Do you mean warnings generated by running "make W=1"? I tried just now
and didn't see warnings on this dts.

Thanks,
Chunyan
Krzysztof Kozlowski Dec. 18, 2023, 7 a.m. UTC | #2
On 18/12/2023 03:31, Chunyan Zhang wrote:
> On Fri, 15 Dec 2023 at 18:36, Krzysztof Kozlowski
> <krzysztof.kozlowski@linaro.org> wrote:
>>
>> On 15/12/2023 09:56, Chunyan Zhang wrote:
>>> Add basic support for Unisoc's UMS9620, with this patch,
>>> the board ums9620-2h10 can run into console.
>>>
>>
>> ...
>>
>>> +
>>> +     soc: soc {
>>
>> Are you sure you do not have here W=1 warnings?
> 
> Do you mean warnings generated by running "make W=1"? I tried just now
> and didn't see warnings on this dts.

No, I meant `dtbs_check W=1` or W=1 coming from dtc (dtbs).

Best regards,
Krzysztof
Chunyan Zhang Dec. 18, 2023, 7:18 a.m. UTC | #3
On Mon, 18 Dec 2023 at 15:00, Krzysztof Kozlowski
<krzysztof.kozlowski@linaro.org> wrote:
>
> On 18/12/2023 03:31, Chunyan Zhang wrote:
> > On Fri, 15 Dec 2023 at 18:36, Krzysztof Kozlowski
> > <krzysztof.kozlowski@linaro.org> wrote:
> >>
> >> On 15/12/2023 09:56, Chunyan Zhang wrote:
> >>> Add basic support for Unisoc's UMS9620, with this patch,
> >>> the board ums9620-2h10 can run into console.
> >>>
> >>
> >> ...
> >>
> >>> +
> >>> +     soc: soc {
> >>
> >> Are you sure you do not have here W=1 warnings?
> >
> > Do you mean warnings generated by running "make W=1"? I tried just now
> > and didn't see warnings on this dts.
>
> No, I meant `dtbs_check W=1` or W=1 coming from dtc (dtbs).

Yes, I just run "make W=1 dtbs",  also have tried `dtbs_check W=1`,
didn't see warnings on ums9620-2h10.dtb
Krzysztof Kozlowski Dec. 18, 2023, 7:31 a.m. UTC | #4
On 18/12/2023 08:18, Chunyan Zhang wrote:
> On Mon, 18 Dec 2023 at 15:00, Krzysztof Kozlowski
> <krzysztof.kozlowski@linaro.org> wrote:
>>
>> On 18/12/2023 03:31, Chunyan Zhang wrote:
>>> On Fri, 15 Dec 2023 at 18:36, Krzysztof Kozlowski
>>> <krzysztof.kozlowski@linaro.org> wrote:
>>>>
>>>> On 15/12/2023 09:56, Chunyan Zhang wrote:
>>>>> Add basic support for Unisoc's UMS9620, with this patch,
>>>>> the board ums9620-2h10 can run into console.
>>>>>
>>>>
>>>> ...
>>>>
>>>>> +
>>>>> +     soc: soc {
>>>>
>>>> Are you sure you do not have here W=1 warnings?
>>>
>>> Do you mean warnings generated by running "make W=1"? I tried just now
>>> and didn't see warnings on this dts.
>>
>> No, I meant `dtbs_check W=1` or W=1 coming from dtc (dtbs).
> 
> Yes, I just run "make W=1 dtbs",  also have tried `dtbs_check W=1`,
> didn't see warnings on ums9620-2h10.dtb

Ah, because it does not even compile!

ums9620.dtsi:8:10: fatal error: dt-bindings/clock/sprd,ums9620-clk.h: No
such file or directory


Best regards,
Krzysztof
Chunyan Zhang Dec. 18, 2023, 7:37 a.m. UTC | #5
On Mon, 18 Dec 2023 at 15:31, Krzysztof Kozlowski
<krzysztof.kozlowski@linaro.org> wrote:
>
> On 18/12/2023 08:18, Chunyan Zhang wrote:
> > On Mon, 18 Dec 2023 at 15:00, Krzysztof Kozlowski
> > <krzysztof.kozlowski@linaro.org> wrote:
> >>
> >> On 18/12/2023 03:31, Chunyan Zhang wrote:
> >>> On Fri, 15 Dec 2023 at 18:36, Krzysztof Kozlowski
> >>> <krzysztof.kozlowski@linaro.org> wrote:
> >>>>
> >>>> On 15/12/2023 09:56, Chunyan Zhang wrote:
> >>>>> Add basic support for Unisoc's UMS9620, with this patch,
> >>>>> the board ums9620-2h10 can run into console.
> >>>>>
> >>>>
> >>>> ...
> >>>>
> >>>>> +
> >>>>> +     soc: soc {
> >>>>
> >>>> Are you sure you do not have here W=1 warnings?
> >>>
> >>> Do you mean warnings generated by running "make W=1"? I tried just now
> >>> and didn't see warnings on this dts.
> >>
> >> No, I meant `dtbs_check W=1` or W=1 coming from dtc (dtbs).
> >
> > Yes, I just run "make W=1 dtbs",  also have tried `dtbs_check W=1`,
> > didn't see warnings on ums9620-2h10.dtb
>
> Ah, because it does not even compile!

The patch was generated from a middle commit (that was my mistake of course).

But I've fixed the issue. I ran the command just now according to your
comments, and didn't see the warnings on this dtb.

If I'm missing something, please correct me.

Thanks,
Chunyan
Krzysztof Kozlowski Dec. 18, 2023, 9:17 a.m. UTC | #6
On 18/12/2023 08:37, Chunyan Zhang wrote:
> On Mon, 18 Dec 2023 at 15:31, Krzysztof Kozlowski
> <krzysztof.kozlowski@linaro.org> wrote:
>>
>> On 18/12/2023 08:18, Chunyan Zhang wrote:
>>> On Mon, 18 Dec 2023 at 15:00, Krzysztof Kozlowski
>>> <krzysztof.kozlowski@linaro.org> wrote:
>>>>
>>>> On 18/12/2023 03:31, Chunyan Zhang wrote:
>>>>> On Fri, 15 Dec 2023 at 18:36, Krzysztof Kozlowski
>>>>> <krzysztof.kozlowski@linaro.org> wrote:
>>>>>>
>>>>>> On 15/12/2023 09:56, Chunyan Zhang wrote:
>>>>>>> Add basic support for Unisoc's UMS9620, with this patch,
>>>>>>> the board ums9620-2h10 can run into console.
>>>>>>>
>>>>>>
>>>>>> ...
>>>>>>
>>>>>>> +
>>>>>>> +     soc: soc {
>>>>>>
>>>>>> Are you sure you do not have here W=1 warnings?
>>>>>
>>>>> Do you mean warnings generated by running "make W=1"? I tried just now
>>>>> and didn't see warnings on this dts.
>>>>
>>>> No, I meant `dtbs_check W=1` or W=1 coming from dtc (dtbs).
>>>
>>> Yes, I just run "make W=1 dtbs",  also have tried `dtbs_check W=1`,
>>> didn't see warnings on ums9620-2h10.dtb
>>
>> Ah, because it does not even compile!
> 
> The patch was generated from a middle commit (that was my mistake of course).
> 
> But I've fixed the issue. I ran the command just now according to your
> comments, and didn't see the warnings on this dtb.
> 
> If I'm missing something, please correct me.

You don't have unit address for soc node, but could be fine if
address/size cells match. Don't remember, but also cannot verify because
it does not build. :(

Best regards,
Krzysztof
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/sprd/Makefile b/arch/arm64/boot/dts/sprd/Makefile
index 97522fb0bf66..3ce81ad7116f 100644
--- a/arch/arm64/boot/dts/sprd/Makefile
+++ b/arch/arm64/boot/dts/sprd/Makefile
@@ -2,4 +2,5 @@ 
 dtb-$(CONFIG_ARCH_SPRD) += sc9836-openphone.dtb \
 			sp9860g-1h10.dtb	\
 			sp9863a-1h10.dtb	\
-			ums512-1h10.dtb
+			ums512-1h10.dtb		\
+			ums9620-2h10.dtb
diff --git a/arch/arm64/boot/dts/sprd/ums9620-2h10.dts b/arch/arm64/boot/dts/sprd/ums9620-2h10.dts
new file mode 100644
index 000000000000..b35671192a72
--- /dev/null
+++ b/arch/arm64/boot/dts/sprd/ums9620-2h10.dts
@@ -0,0 +1,38 @@ 
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Unisoc UMS9620-2h10 board DTS file
+ *
+ * Copyright (C) 2023, Unisoc Inc.
+ */
+
+/dts-v1/;
+
+#include "ums9620.dtsi"
+
+/ {
+	model = "Unisoc UMS9620-2H10 Board";
+
+	compatible = "sprd,ums9620-2h10", "sprd,ums9620";
+
+	aliases {
+		serial0 = &uart0;
+		serial1 = &uart1;
+	};
+
+	memory@80000000 {
+		device_type = "memory";
+		reg = <0x0 0x80000000 0x2 0x00000000>;
+	};
+
+	chosen {
+		stdout-path = "serial1:921600n8";
+	};
+};
+
+&uart0 {
+	status = "okay";
+};
+
+&uart1 {
+	status = "okay";
+};
diff --git a/arch/arm64/boot/dts/sprd/ums9620.dtsi b/arch/arm64/boot/dts/sprd/ums9620.dtsi
new file mode 100644
index 000000000000..c63019b2fe51
--- /dev/null
+++ b/arch/arm64/boot/dts/sprd/ums9620.dtsi
@@ -0,0 +1,247 @@ 
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Unisoc UMS9620 DTS file
+ *
+ * Copyright (C) 2023, Unisoc Inc.
+ */
+
+#include <dt-bindings/clock/sprd,ums9620-clk.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+
+/ {
+	interrupt-parent = <&gic>;
+	#address-cells = <2>;
+	#size-cells = <2>;
+
+	cpus {
+		#address-cells = <2>;
+		#size-cells = <0>;
+
+		cpu-map {
+			cluster0 {
+				core0 {
+					cpu = <&CPU0>;
+				};
+				core1 {
+					cpu = <&CPU1>;
+				};
+				core2 {
+					cpu = <&CPU2>;
+				};
+				core3 {
+					cpu = <&CPU3>;
+				};
+				core4 {
+					cpu = <&CPU4>;
+				};
+				core5 {
+					cpu = <&CPU5>;
+				};
+				core6 {
+					cpu = <&CPU6>;
+				};
+				core7 {
+					cpu = <&CPU7>;
+				};
+			};
+		};
+
+		CPU0: cpu@0 {
+			device_type = "cpu";
+			compatible = "arm,cortex-a55";
+			reg = <0x0 0x0>;
+			enable-method = "psci";
+			cpu-idle-states = <&LIT_CORE_PD>;
+		};
+
+		CPU1: cpu@100 {
+			device_type = "cpu";
+			compatible = "arm,cortex-a55";
+			reg = <0x0 0x100>;
+			enable-method = "psci";
+			cpu-idle-states = <&LIT_CORE_PD>;
+		};
+
+		CPU2: cpu@200 {
+			device_type = "cpu";
+			compatible = "arm,cortex-a55";
+			reg = <0x0 0x200>;
+			enable-method = "psci";
+			cpu-idle-states = <&LIT_CORE_PD>;
+		};
+
+		CPU3: cpu@300 {
+			device_type = "cpu";
+			compatible = "arm,cortex-a55";
+			reg = <0x0 0x300>;
+			enable-method = "psci";
+			cpu-idle-states = <&LIT_CORE_PD>;
+		};
+
+		CPU4: cpu@400 {
+			device_type = "cpu";
+			compatible = "arm,cortex-a76";
+			reg = <0x0 0x400>;
+			enable-method = "psci";
+			cpu-idle-states = <&BIG_CORE_PD>;
+		};
+
+		CPU5: cpu@500 {
+			device_type = "cpu";
+			compatible = "arm,cortex-a76";
+			reg = <0x0 0x500>;
+			enable-method = "psci";
+			cpu-idle-states = <&BIG_CORE_PD>;
+		};
+
+		CPU6: cpu@600 {
+			device_type = "cpu";
+			compatible = "arm,cortex-a76";
+			reg = <0x0 0x600>;
+			enable-method = "psci";
+			cpu-idle-states = <&BIG_CORE_PD>;
+		};
+
+		CPU7: cpu@700 {
+			device_type = "cpu";
+			compatible = "arm,cortex-a76";
+			reg = <0x0 0x700>;
+			enable-method = "psci";
+			cpu-idle-states = <&BIG_CORE_PD>;
+		};
+	};
+
+	idle-states {
+		entry-method = "psci";
+		LIT_CORE_PD: cpu-pd-lit {
+			compatible = "arm,idle-state";
+			entry-latency-us = <1000>;
+			exit-latency-us = <500>;
+			min-residency-us = <2500>;
+			local-timer-stop;
+			arm,psci-suspend-param = <0x00010000>;
+		};
+
+		BIG_CORE_PD: cpu-pd-big {
+			compatible = "arm,idle-state";
+			entry-latency-us = <4000>;
+			exit-latency-us = <4000>;
+			min-residency-us = <10000>;
+			local-timer-stop;
+			arm,psci-suspend-param = <0x00010000>;
+		};
+	};
+
+	psci {
+		compatible = "arm,psci-0.2";
+		method = "smc";
+	};
+
+	timer {
+		compatible = "arm,armv8-timer";
+		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>, /* Physical Secure PPI */
+			     <GIC_PPI 14 IRQ_TYPE_LEVEL_HIGH>, /* Physical Non-Secure PPI */
+			     <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>, /* Virtual PPI */
+			     <GIC_PPI 10 IRQ_TYPE_LEVEL_HIGH>; /* Hipervisor PPI */
+	};
+
+	pmu {
+		compatible = "arm,armv8-pmuv3";
+		interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 179 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
+	};
+
+	soc: soc {
+		compatible = "simple-bus";
+		#address-cells = <2>;
+		#size-cells = <2>;
+		ranges;
+
+		gic: interrupt-controller@12000000 {
+			compatible = "arm,gic-v3";
+			reg = <0x0 0x12000000 0 0x20000>,	/* GICD */
+			      <0x0 0x12040000 0 0x100000>;	/* GICR */
+			#interrupt-cells = <3>;
+			#address-cells = <2>;
+			#size-cells = <2>;
+			ranges;
+			redistributor-stride = <0x0 0x20000>;	/* 128KB stride */
+			#redistributor-regions = <1>;
+			interrupt-controller;
+			interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
+		};
+
+		apb@20200000 {
+			compatible = "simple-bus";
+			#address-cells = <1>;
+			#size-cells = <1>;
+			ranges = <0 0 0x20200000 0x100000>;
+
+			uart0: serial@0 {
+				compatible = "sprd,ums9620-uart",
+					     "sprd,sc9836-uart";
+				reg = <0 0x100>;
+				interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&ext_26m>;
+				status = "disabled";
+			};
+
+			uart1: serial@10000 {
+				compatible = "sprd,ums9620-uart",
+					     "sprd,sc9836-uart";
+				reg = <0x10000 0x100>;
+				interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&ext_26m>;
+				status = "disabled";
+			};
+		};
+	};
+
+	ext_26m: clk-26m {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		clock-frequency = <26000000>;
+		clock-output-names = "ext-26m";
+	};
+
+	ext_4m: clk-4m {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		clock-frequency = <4000000>;
+		clock-output-names = "ext-4m";
+	};
+
+	ext_32k: clk-32k {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		clock-frequency = <32768>;
+		clock-output-names = "ext-32k";
+	};
+
+	rco_100m: clk-100m {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		clock-frequency = <100000000>;
+		clock-output-names = "rco-100m";
+	};
+
+	dphy_312m5: dphy-312m5 {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		clock-frequency = <312500000>;
+		clock-output-names = "dphy-312m5";
+	};
+
+	dphy_416m7: dphy-416m7 {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		clock-frequency = <416700000>;
+		clock-output-names = "dphy-416m7";
+	};
+};