* [PATCH v6 0/2] Add Spreadtrum Sharkl64 Platform support
[not found] <sprd-dt-v6>
@ 2015-01-23 10:21 ` Chunyan Zhang
2015-01-23 10:21 ` [PATCH v6 1/2] arm64: dts: Add support for Spreadtrum SC9836 SoC in dts and Makefile Chunyan Zhang
2015-01-23 10:21 ` [PATCH v6 2/2] arm64: Add support for Spreadtrum's Sharkl64 Platform in Kconfig and defconfig Chunyan Zhang
0 siblings, 2 replies; 7+ messages in thread
From: Chunyan Zhang @ 2015-01-23 10:21 UTC (permalink / raw)
To: linux-arm-kernel
This patch-set split the last version, and addressed the review comments from
last version on serial driver code.
Changes from v5:
- Added maintenance interrupt for gic
- Removed reg property from 'soc' and 'apb' nodes
Zhizhou Zhang (2):
arm64: dts: Add support for Spreadtrum SC9836 SoC in dts and Makefile
arm64: Add support for Spreadtrum's Sharkl64 Platform in Kconfig and
defconfig
arch/arm64/Kconfig | 5 ++
arch/arm64/boot/dts/Makefile | 1 +
arch/arm64/boot/dts/sprd/Makefile | 5 ++
arch/arm64/boot/dts/sprd/sc9836-openphone.dts | 49 ++++++++++++++++
arch/arm64/boot/dts/sprd/sc9836.dtsi | 74 +++++++++++++++++++++++++
arch/arm64/boot/dts/sprd/sharkl64.dtsi | 65 ++++++++++++++++++++++
arch/arm64/configs/defconfig | 1 +
7 files changed, 200 insertions(+)
create mode 100644 arch/arm64/boot/dts/sprd/Makefile
create mode 100644 arch/arm64/boot/dts/sprd/sc9836-openphone.dts
create mode 100644 arch/arm64/boot/dts/sprd/sc9836.dtsi
create mode 100644 arch/arm64/boot/dts/sprd/sharkl64.dtsi
--
1.7.9.5
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v6 1/2] arm64: dts: Add support for Spreadtrum SC9836 SoC in dts and Makefile
2015-01-23 10:21 ` [PATCH v6 0/2] Add Spreadtrum Sharkl64 Platform support Chunyan Zhang
@ 2015-01-23 10:21 ` Chunyan Zhang
2015-01-23 10:36 ` Mark Rutland
2015-01-23 10:21 ` [PATCH v6 2/2] arm64: Add support for Spreadtrum's Sharkl64 Platform in Kconfig and defconfig Chunyan Zhang
1 sibling, 1 reply; 7+ messages in thread
From: Chunyan Zhang @ 2015-01-23 10:21 UTC (permalink / raw)
To: linux-arm-kernel
From: Zhizhou Zhang <zhizhou.zhang@spreadtrum.com>
Adds the device tree support for Spreadtrum SC9836 SoC which is based on
Sharkl64 platform.
Sharkl64 platform contains the common nodes of Spreadtrum's arm64-based SoCs.
Signed-off-by: Zhizhou Zhang <zhizhou.zhang@spreadtrum.com>
Signed-off-by: Orson Zhai <orson.zhai@spreadtrum.com>
Signed-off-by: Chunyan Zhang <chunyan.zhang@spreadtrum.com>
---
arch/arm64/boot/dts/Makefile | 1 +
arch/arm64/boot/dts/sprd/Makefile | 5 ++
arch/arm64/boot/dts/sprd/sc9836-openphone.dts | 49 ++++++++++++++++
arch/arm64/boot/dts/sprd/sc9836.dtsi | 74 +++++++++++++++++++++++++
arch/arm64/boot/dts/sprd/sharkl64.dtsi | 65 ++++++++++++++++++++++
5 files changed, 194 insertions(+)
create mode 100644 arch/arm64/boot/dts/sprd/Makefile
create mode 100644 arch/arm64/boot/dts/sprd/sc9836-openphone.dts
create mode 100644 arch/arm64/boot/dts/sprd/sc9836.dtsi
create mode 100644 arch/arm64/boot/dts/sprd/sharkl64.dtsi
diff --git a/arch/arm64/boot/dts/Makefile b/arch/arm64/boot/dts/Makefile
index 3b8d427..806a717 100644
--- a/arch/arm64/boot/dts/Makefile
+++ b/arch/arm64/boot/dts/Makefile
@@ -2,6 +2,7 @@ dts-dirs += amd
dts-dirs += apm
dts-dirs += arm
dts-dirs += cavium
+dts-dirs += sprd
always := $(dtb-y)
subdir-y := $(dts-dirs)
diff --git a/arch/arm64/boot/dts/sprd/Makefile b/arch/arm64/boot/dts/sprd/Makefile
new file mode 100644
index 0000000..b658c5e
--- /dev/null
+++ b/arch/arm64/boot/dts/sprd/Makefile
@@ -0,0 +1,5 @@
+dtb-$(CONFIG_ARCH_SPRD) += sc9836-openphone.dtb
+
+always := $(dtb-y)
+subdir-y := $(dts-dirs)
+clean-files := *.dtb
diff --git a/arch/arm64/boot/dts/sprd/sc9836-openphone.dts b/arch/arm64/boot/dts/sprd/sc9836-openphone.dts
new file mode 100644
index 0000000..b8a69b2
--- /dev/null
+++ b/arch/arm64/boot/dts/sprd/sc9836-openphone.dts
@@ -0,0 +1,49 @@
+/*
+ * Spreadtrum SC9836 openphone board DTS file
+ *
+ * Copyright (C) 2014, Spreadtrum Communications Inc.
+ *
+ * This file is licensed under a dual GPLv2 or X11 license.
+ */
+
+/dts-v1/;
+
+#include "sc9836.dtsi"
+
+/ {
+ model = "Spreadtrum SC9836 Openphone Board";
+
+ compatible = "sprd,sc9836-openphone", "sprd,sc9836";
+
+ aliases {
+ serial0 = &uart0;
+ serial1 = &uart1;
+ serial2 = &uart2;
+ serial3 = &uart3;
+ };
+
+ memory at 80000000 {
+ device_type = "memory";
+ reg = <0 0x80000000 0 0x20000000>;
+ };
+
+ chosen {
+ stdout-path = &uart0;
+ };
+};
+
+&uart0 {
+ status = "okay";
+};
+
+&uart1 {
+ status = "okay";
+};
+
+&uart2 {
+ status = "okay";
+};
+
+&uart3 {
+ status = "okay";
+};
diff --git a/arch/arm64/boot/dts/sprd/sc9836.dtsi b/arch/arm64/boot/dts/sprd/sc9836.dtsi
new file mode 100644
index 0000000..c646123
--- /dev/null
+++ b/arch/arm64/boot/dts/sprd/sc9836.dtsi
@@ -0,0 +1,74 @@
+/*
+ * Spreadtrum SC9836 SoC DTS file
+ *
+ * Copyright (C) 2014, Spreadtrum Communications Inc.
+ *
+ * This file is licensed under a dual GPLv2 or X11 license.
+ */
+
+#include "sharkl64.dtsi"
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+
+/ {
+ compatible = "sprd,sc9836";
+
+ cpus {
+ #address-cells = <2>;
+ #size-cells = <0>;
+
+ cpu at 0 {
+ device_type = "cpu";
+ compatible = "arm,cortex-a53", "arm,armv8";
+ reg = <0x0 0x0>;
+ enable-method = "psci";
+ };
+
+ cpu at 1 {
+ device_type = "cpu";
+ compatible = "arm,cortex-a53", "arm,armv8";
+ reg = <0x0 0x1>;
+ enable-method = "psci";
+ };
+
+ cpu at 2 {
+ device_type = "cpu";
+ compatible = "arm,cortex-a53", "arm,armv8";
+ reg = <0x0 0x2>;
+ enable-method = "psci";
+ };
+
+ cpu at 3 {
+ device_type = "cpu";
+ compatible = "arm,cortex-a53", "arm,armv8";
+ reg = <0x0 0x3>;
+ enable-method = "psci";
+ };
+ };
+
+ gic: interrupt-controller at 12001000 {
+ compatible = "arm,gic-400";
+ reg = <0 0x12001000 0 0x1000>,
+ <0 0x12002000 0 0x2000>,
+ <0 0x12004000 0 0x2000>,
+ <0 0x12006000 0 0x2000>;
+ #interrupt-cells = <3>;
+ interrupt-controller;
+ interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
+ };
+
+ psci {
+ compatible = "arm,psci";
+ method = "smc";
+ cpu_on = <0xc4000003>;
+ cpu_off = <0x84000002>;
+ cpu_suspend = <0xc4000001>;
+ };
+
+ timer {
+ compatible = "arm,armv8-timer";
+ interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+ <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+ <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+ <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
+ };
+};
diff --git a/arch/arm64/boot/dts/sprd/sharkl64.dtsi b/arch/arm64/boot/dts/sprd/sharkl64.dtsi
new file mode 100644
index 0000000..6b4bdc5
--- /dev/null
+++ b/arch/arm64/boot/dts/sprd/sharkl64.dtsi
@@ -0,0 +1,65 @@
+/*
+ * Spreadtrum Sharkl64 platform DTS file
+ *
+ * Copyright (C) 2014, Spreadtrum Communications Inc.
+ *
+ * This file is licensed under a dual GPLv2 or X11 license.
+ */
+
+/ {
+ interrupt-parent = <&gic>;
+ #address-cells = <2>;
+ #size-cells = <2>;
+
+ soc {
+ compatible = "simple-bus";
+ #address-cells = <2>;
+ #size-cells = <2>;
+ ranges;
+
+ ap-apb {
+ compatible = "simple-bus";
+ #address-cells = <2>;
+ #size-cells = <2>;
+ ranges;
+
+ uart0: serial at 70000000 {
+ compatible = "sprd,sc9836-uart";
+ reg = <0 0x70000000 0 0x100>;
+ interrupts = <0 2 0xf04>;
+ clocks = <&clk26mhz>;
+ status = "disabled";
+ };
+
+ uart1: serial at 70100000 {
+ compatible = "sprd,sc9836-uart";
+ reg = <0 0x70100000 0 0x100>;
+ interrupts = <0 3 0xf04>;
+ clocks = <&clk26mhz>;
+ status = "disabled";
+ };
+
+ uart2: serial at 70200000 {
+ compatible = "sprd,sc9836-uart";
+ reg = <0 0x70200000 0 0x100>;
+ interrupts = <0 2 0xf04>;
+ clocks = <&clk26mhz>;
+ status = "disabled";
+ };
+
+ uart3: serial at 70300000 {
+ compatible = "sprd,sc9836-uart";
+ reg = <0 0x70300000 0 0x100>;
+ interrupts = <0 3 0xf04>;
+ clocks = <&clk26mhz>;
+ status = "disabled";
+ };
+ };
+ };
+
+ clk26mhz: clk26mhz {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <26000000>;
+ };
+};
--
1.7.9.5
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v6 2/2] arm64: Add support for Spreadtrum's Sharkl64 Platform in Kconfig and defconfig
2015-01-23 10:21 ` [PATCH v6 0/2] Add Spreadtrum Sharkl64 Platform support Chunyan Zhang
2015-01-23 10:21 ` [PATCH v6 1/2] arm64: dts: Add support for Spreadtrum SC9836 SoC in dts and Makefile Chunyan Zhang
@ 2015-01-23 10:21 ` Chunyan Zhang
1 sibling, 0 replies; 7+ messages in thread
From: Chunyan Zhang @ 2015-01-23 10:21 UTC (permalink / raw)
To: linux-arm-kernel
From: Zhizhou Zhang <zhizhou.zhang@spreadtrum.com>
Adds support for Spreadtrum's SoC Platform in the arm64 Kconfig and
defconfig files.
Signed-off-by: Zhizhou Zhang <zhizhou.zhang@spreadtrum.com>
Signed-off-by: Orson Zhai <orson.zhai@spreadtrum.com>
Signed-off-by: Chunyan Zhang <chunyan.zhang@spreadtrum.com>
---
arch/arm64/Kconfig | 5 +++++
arch/arm64/configs/defconfig | 1 +
2 files changed, 6 insertions(+)
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index b1f9a20..885c1f4 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -153,6 +153,11 @@ config ARCH_SEATTLE
help
This enables support for AMD Seattle SOC Family
+config ARCH_SPRD
+ bool "Spreadtrum SoC platform"
+ help
+ Support for Spreadtrum ARM based SoCs
+
config ARCH_THUNDER
bool "Cavium Inc. Thunder SoC Family"
help
diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index dd301be..c1677ca 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -33,6 +33,7 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_DEADLINE is not set
CONFIG_ARCH_THUNDER=y
+CONFIG_ARCH_SPRD=y
CONFIG_ARCH_VEXPRESS=y
CONFIG_ARCH_XGENE=y
CONFIG_PCI=y
--
1.7.9.5
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v6 1/2] arm64: dts: Add support for Spreadtrum SC9836 SoC in dts and Makefile
2015-01-23 10:21 ` [PATCH v6 1/2] arm64: dts: Add support for Spreadtrum SC9836 SoC in dts and Makefile Chunyan Zhang
@ 2015-01-23 10:36 ` Mark Rutland
2015-01-23 11:13 ` Lyra Zhang
0 siblings, 1 reply; 7+ messages in thread
From: Mark Rutland @ 2015-01-23 10:36 UTC (permalink / raw)
To: linux-arm-kernel
On Fri, Jan 23, 2015 at 10:21:30AM +0000, Chunyan Zhang wrote:
> From: Zhizhou Zhang <zhizhou.zhang@spreadtrum.com>
>
> Adds the device tree support for Spreadtrum SC9836 SoC which is based on
> Sharkl64 platform.
>
> Sharkl64 platform contains the common nodes of Spreadtrum's arm64-based SoCs.
>
> Signed-off-by: Zhizhou Zhang <zhizhou.zhang@spreadtrum.com>
> Signed-off-by: Orson Zhai <orson.zhai@spreadtrum.com>
> Signed-off-by: Chunyan Zhang <chunyan.zhang@spreadtrum.com>
> ---
> arch/arm64/boot/dts/Makefile | 1 +
> arch/arm64/boot/dts/sprd/Makefile | 5 ++
> arch/arm64/boot/dts/sprd/sc9836-openphone.dts | 49 ++++++++++++++++
> arch/arm64/boot/dts/sprd/sc9836.dtsi | 74 +++++++++++++++++++++++++
> arch/arm64/boot/dts/sprd/sharkl64.dtsi | 65 ++++++++++++++++++++++
> 5 files changed, 194 insertions(+)
> create mode 100644 arch/arm64/boot/dts/sprd/Makefile
> create mode 100644 arch/arm64/boot/dts/sprd/sc9836-openphone.dts
> create mode 100644 arch/arm64/boot/dts/sprd/sc9836.dtsi
> create mode 100644 arch/arm64/boot/dts/sprd/sharkl64.dtsi
>
> diff --git a/arch/arm64/boot/dts/Makefile b/arch/arm64/boot/dts/Makefile
> index 3b8d427..806a717 100644
> --- a/arch/arm64/boot/dts/Makefile
> +++ b/arch/arm64/boot/dts/Makefile
> @@ -2,6 +2,7 @@ dts-dirs += amd
> dts-dirs += apm
> dts-dirs += arm
> dts-dirs += cavium
> +dts-dirs += sprd
>
> always := $(dtb-y)
> subdir-y := $(dts-dirs)
> diff --git a/arch/arm64/boot/dts/sprd/Makefile b/arch/arm64/boot/dts/sprd/Makefile
> new file mode 100644
> index 0000000..b658c5e
> --- /dev/null
> +++ b/arch/arm64/boot/dts/sprd/Makefile
> @@ -0,0 +1,5 @@
> +dtb-$(CONFIG_ARCH_SPRD) += sc9836-openphone.dtb
> +
> +always := $(dtb-y)
> +subdir-y := $(dts-dirs)
> +clean-files := *.dtb
> diff --git a/arch/arm64/boot/dts/sprd/sc9836-openphone.dts b/arch/arm64/boot/dts/sprd/sc9836-openphone.dts
> new file mode 100644
> index 0000000..b8a69b2
> --- /dev/null
> +++ b/arch/arm64/boot/dts/sprd/sc9836-openphone.dts
> @@ -0,0 +1,49 @@
> +/*
> + * Spreadtrum SC9836 openphone board DTS file
> + *
> + * Copyright (C) 2014, Spreadtrum Communications Inc.
> + *
> + * This file is licensed under a dual GPLv2 or X11 license.
> + */
> +
> +/dts-v1/;
> +
> +#include "sc9836.dtsi"
> +
> +/ {
> + model = "Spreadtrum SC9836 Openphone Board";
> +
> + compatible = "sprd,sc9836-openphone", "sprd,sc9836";
> +
> + aliases {
> + serial0 = &uart0;
> + serial1 = &uart1;
> + serial2 = &uart2;
> + serial3 = &uart3;
> + };
> +
> + memory at 80000000 {
> + device_type = "memory";
> + reg = <0 0x80000000 0 0x20000000>;
> + };
> +
> + chosen {
> + stdout-path = &uart0;
> + };
It would be good to use an explicit configuration here. e.g. have:
chosen {
stdout-path = "serial0:115200n8";
};
Where '115200n8' is replaced by whatever the bootloader leaves the UART
configured as on this board.
That means you won't need a 'console=' to get nice consistent serial
output at boot, and won't be relying on implicit defaults all over the
place.
> +};
> +
> +&uart0 {
> + status = "okay";
> +};
> +
> +&uart1 {
> + status = "okay";
> +};
> +
> +&uart2 {
> + status = "okay";
> +};
> +
> +&uart3 {
> + status = "okay";
> +};
> diff --git a/arch/arm64/boot/dts/sprd/sc9836.dtsi b/arch/arm64/boot/dts/sprd/sc9836.dtsi
> new file mode 100644
> index 0000000..c646123
> --- /dev/null
> +++ b/arch/arm64/boot/dts/sprd/sc9836.dtsi
> @@ -0,0 +1,74 @@
> +/*
> + * Spreadtrum SC9836 SoC DTS file
> + *
> + * Copyright (C) 2014, Spreadtrum Communications Inc.
> + *
> + * This file is licensed under a dual GPLv2 or X11 license.
> + */
> +
> +#include "sharkl64.dtsi"
> +#include <dt-bindings/interrupt-controller/arm-gic.h>
> +
> +/ {
> + compatible = "sprd,sc9836";
> +
> + cpus {
> + #address-cells = <2>;
> + #size-cells = <0>;
> +
> + cpu at 0 {
> + device_type = "cpu";
> + compatible = "arm,cortex-a53", "arm,armv8";
> + reg = <0x0 0x0>;
> + enable-method = "psci";
> + };
> +
> + cpu at 1 {
> + device_type = "cpu";
> + compatible = "arm,cortex-a53", "arm,armv8";
> + reg = <0x0 0x1>;
> + enable-method = "psci";
> + };
> +
> + cpu at 2 {
> + device_type = "cpu";
> + compatible = "arm,cortex-a53", "arm,armv8";
> + reg = <0x0 0x2>;
> + enable-method = "psci";
> + };
> +
> + cpu at 3 {
> + device_type = "cpu";
> + compatible = "arm,cortex-a53", "arm,armv8";
> + reg = <0x0 0x3>;
> + enable-method = "psci";
> + };
> + };
> +
> + gic: interrupt-controller at 12001000 {
> + compatible = "arm,gic-400";
> + reg = <0 0x12001000 0 0x1000>,
> + <0 0x12002000 0 0x2000>,
> + <0 0x12004000 0 0x2000>,
> + <0 0x12006000 0 0x2000>;
> + #interrupt-cells = <3>;
> + interrupt-controller;
> + interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
> + };
> +
> + psci {
> + compatible = "arm,psci";
> + method = "smc";
> + cpu_on = <0xc4000003>;
> + cpu_off = <0x84000002>;
> + cpu_suspend = <0xc4000001>;
> + };
Given that there are no suspend states in this dts, the cpu_suspend
property here could be omitted for now (though I guess it doesn't matter
either way).
> +
> + timer {
> + compatible = "arm,armv8-timer";
> + interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
> + <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
> + <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
> + <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
> + };
> +};
> diff --git a/arch/arm64/boot/dts/sprd/sharkl64.dtsi b/arch/arm64/boot/dts/sprd/sharkl64.dtsi
> new file mode 100644
> index 0000000..6b4bdc5
> --- /dev/null
> +++ b/arch/arm64/boot/dts/sprd/sharkl64.dtsi
> @@ -0,0 +1,65 @@
> +/*
> + * Spreadtrum Sharkl64 platform DTS file
> + *
> + * Copyright (C) 2014, Spreadtrum Communications Inc.
> + *
> + * This file is licensed under a dual GPLv2 or X11 license.
> + */
> +
> +/ {
> + interrupt-parent = <&gic>;
> + #address-cells = <2>;
> + #size-cells = <2>;
> +
> + soc {
> + compatible = "simple-bus";
> + #address-cells = <2>;
> + #size-cells = <2>;
> + ranges;
> +
> + ap-apb {
> + compatible = "simple-bus";
> + #address-cells = <2>;
> + #size-cells = <2>;
> + ranges;
> +
> + uart0: serial at 70000000 {
> + compatible = "sprd,sc9836-uart";
> + reg = <0 0x70000000 0 0x100>;
> + interrupts = <0 2 0xf04>;
> + clocks = <&clk26mhz>;
> + status = "disabled";
> + };
> +
> + uart1: serial at 70100000 {
> + compatible = "sprd,sc9836-uart";
> + reg = <0 0x70100000 0 0x100>;
> + interrupts = <0 3 0xf04>;
> + clocks = <&clk26mhz>;
> + status = "disabled";
> + };
> +
> + uart2: serial at 70200000 {
> + compatible = "sprd,sc9836-uart";
> + reg = <0 0x70200000 0 0x100>;
> + interrupts = <0 2 0xf04>;
> + clocks = <&clk26mhz>;
> + status = "disabled";
> + };
> +
> + uart3: serial at 70300000 {
> + compatible = "sprd,sc9836-uart";
> + reg = <0 0x70300000 0 0x100>;
> + interrupts = <0 3 0xf04>;
> + clocks = <&clk26mhz>;
> + status = "disabled";
> + };
> + };
> + };
> +
> + clk26mhz: clk26mhz {
> + compatible = "fixed-clock";
> + #clock-cells = <0>;
> + clock-frequency = <26000000>;
> + };
> +};
Other than my comments above, this looks fine to me. I assume the UART
binding and driver are already queued somewhere else?
If so:
Acked-by: Mark Rutland <mark.rutland@arm.com>
Thanks,
Mark.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v6 1/2] arm64: dts: Add support for Spreadtrum SC9836 SoC in dts and Makefile
2015-01-23 10:36 ` Mark Rutland
@ 2015-01-23 11:13 ` Lyra Zhang
2015-01-23 11:17 ` Mark Rutland
0 siblings, 1 reply; 7+ messages in thread
From: Lyra Zhang @ 2015-01-23 11:13 UTC (permalink / raw)
To: linux-arm-kernel
On Fri, Jan 23, 2015 at 6:36 PM, Mark Rutland <mark.rutland@arm.com> wrote:
> On Fri, Jan 23, 2015 at 10:21:30AM +0000, Chunyan Zhang wrote:
>> From: Zhizhou Zhang <zhizhou.zhang@spreadtrum.com>
>>
>> Adds the device tree support for Spreadtrum SC9836 SoC which is based on
>> Sharkl64 platform.
>>
>> Sharkl64 platform contains the common nodes of Spreadtrum's arm64-based SoCs.
>>
>> Signed-off-by: Zhizhou Zhang <zhizhou.zhang@spreadtrum.com>
>> Signed-off-by: Orson Zhai <orson.zhai@spreadtrum.com>
>> Signed-off-by: Chunyan Zhang <chunyan.zhang@spreadtrum.com>
>> ---
>> arch/arm64/boot/dts/Makefile | 1 +
>> arch/arm64/boot/dts/sprd/Makefile | 5 ++
>> arch/arm64/boot/dts/sprd/sc9836-openphone.dts | 49 ++++++++++++++++
>> arch/arm64/boot/dts/sprd/sc9836.dtsi | 74 +++++++++++++++++++++++++
>> arch/arm64/boot/dts/sprd/sharkl64.dtsi | 65 ++++++++++++++++++++++
>> 5 files changed, 194 insertions(+)
>> create mode 100644 arch/arm64/boot/dts/sprd/Makefile
>> create mode 100644 arch/arm64/boot/dts/sprd/sc9836-openphone.dts
>> create mode 100644 arch/arm64/boot/dts/sprd/sc9836.dtsi
>> create mode 100644 arch/arm64/boot/dts/sprd/sharkl64.dtsi
>>
>> diff --git a/arch/arm64/boot/dts/Makefile b/arch/arm64/boot/dts/Makefile
>> index 3b8d427..806a717 100644
>> --- a/arch/arm64/boot/dts/Makefile
>> +++ b/arch/arm64/boot/dts/Makefile
>> @@ -2,6 +2,7 @@ dts-dirs += amd
>> dts-dirs += apm
>> dts-dirs += arm
>> dts-dirs += cavium
>> +dts-dirs += sprd
>>
>> always := $(dtb-y)
>> subdir-y := $(dts-dirs)
>> diff --git a/arch/arm64/boot/dts/sprd/Makefile b/arch/arm64/boot/dts/sprd/Makefile
>> new file mode 100644
>> index 0000000..b658c5e
>> --- /dev/null
>> +++ b/arch/arm64/boot/dts/sprd/Makefile
>> @@ -0,0 +1,5 @@
>> +dtb-$(CONFIG_ARCH_SPRD) += sc9836-openphone.dtb
>> +
>> +always := $(dtb-y)
>> +subdir-y := $(dts-dirs)
>> +clean-files := *.dtb
>> diff --git a/arch/arm64/boot/dts/sprd/sc9836-openphone.dts b/arch/arm64/boot/dts/sprd/sc9836-openphone.dts
>> new file mode 100644
>> index 0000000..b8a69b2
>> --- /dev/null
>> +++ b/arch/arm64/boot/dts/sprd/sc9836-openphone.dts
>> @@ -0,0 +1,49 @@
>> +/*
>> + * Spreadtrum SC9836 openphone board DTS file
>> + *
>> + * Copyright (C) 2014, Spreadtrum Communications Inc.
>> + *
>> + * This file is licensed under a dual GPLv2 or X11 license.
>> + */
>> +
>> +/dts-v1/;
>> +
>> +#include "sc9836.dtsi"
>> +
>> +/ {
>> + model = "Spreadtrum SC9836 Openphone Board";
>> +
>> + compatible = "sprd,sc9836-openphone", "sprd,sc9836";
>> +
>> + aliases {
>> + serial0 = &uart0;
>> + serial1 = &uart1;
>> + serial2 = &uart2;
>> + serial3 = &uart3;
>> + };
>> +
>> + memory at 80000000 {
>> + device_type = "memory";
>> + reg = <0 0x80000000 0 0x20000000>;
>> + };
>> +
>> + chosen {
>> + stdout-path = &uart0;
>> + };
>
> It would be good to use an explicit configuration here. e.g. have:
>
> chosen {
> stdout-path = "serial0:115200n8";
> };
>
> Where '115200n8' is replaced by whatever the bootloader leaves the UART
> configured as on this board.
>
> That means you won't need a 'console=' to get nice consistent serial
> output at boot, and won't be relying on implicit defaults all over the
> place.
>
ok, I've changed and tested pass.
>> +};
>> +
>> +&uart0 {
>> + status = "okay";
>> +};
>> +
>> +&uart1 {
>> + status = "okay";
>> +};
>> +
>> +&uart2 {
>> + status = "okay";
>> +};
>> +
>> +&uart3 {
>> + status = "okay";
>> +};
>> diff --git a/arch/arm64/boot/dts/sprd/sc9836.dtsi b/arch/arm64/boot/dts/sprd/sc9836.dtsi
>> new file mode 100644
>> index 0000000..c646123
>> --- /dev/null
>> +++ b/arch/arm64/boot/dts/sprd/sc9836.dtsi
>> @@ -0,0 +1,74 @@
>> +/*
>> + * Spreadtrum SC9836 SoC DTS file
>> + *
>> + * Copyright (C) 2014, Spreadtrum Communications Inc.
>> + *
>> + * This file is licensed under a dual GPLv2 or X11 license.
>> + */
>> +
>> +#include "sharkl64.dtsi"
>> +#include <dt-bindings/interrupt-controller/arm-gic.h>
>> +
>> +/ {
>> + compatible = "sprd,sc9836";
>> +
>> + cpus {
>> + #address-cells = <2>;
>> + #size-cells = <0>;
>> +
>> + cpu at 0 {
>> + device_type = "cpu";
>> + compatible = "arm,cortex-a53", "arm,armv8";
>> + reg = <0x0 0x0>;
>> + enable-method = "psci";
>> + };
>> +
>> + cpu at 1 {
>> + device_type = "cpu";
>> + compatible = "arm,cortex-a53", "arm,armv8";
>> + reg = <0x0 0x1>;
>> + enable-method = "psci";
>> + };
>> +
>> + cpu at 2 {
>> + device_type = "cpu";
>> + compatible = "arm,cortex-a53", "arm,armv8";
>> + reg = <0x0 0x2>;
>> + enable-method = "psci";
>> + };
>> +
>> + cpu at 3 {
>> + device_type = "cpu";
>> + compatible = "arm,cortex-a53", "arm,armv8";
>> + reg = <0x0 0x3>;
>> + enable-method = "psci";
>> + };
>> + };
>> +
>> + gic: interrupt-controller at 12001000 {
>> + compatible = "arm,gic-400";
>> + reg = <0 0x12001000 0 0x1000>,
>> + <0 0x12002000 0 0x2000>,
>> + <0 0x12004000 0 0x2000>,
>> + <0 0x12006000 0 0x2000>;
>> + #interrupt-cells = <3>;
>> + interrupt-controller;
>> + interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
>> + };
>> +
>> + psci {
>> + compatible = "arm,psci";
>> + method = "smc";
>> + cpu_on = <0xc4000003>;
>> + cpu_off = <0x84000002>;
>> + cpu_suspend = <0xc4000001>;
>> + };
>
> Given that there are no suspend states in this dts, the cpu_suspend
> property here could be omitted for now (though I guess it doesn't matter
> either way).
>
>> +
>> + timer {
>> + compatible = "arm,armv8-timer";
>> + interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
>> + <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
>> + <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
>> + <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
>> + };
>> +};
>> diff --git a/arch/arm64/boot/dts/sprd/sharkl64.dtsi b/arch/arm64/boot/dts/sprd/sharkl64.dtsi
>> new file mode 100644
>> index 0000000..6b4bdc5
>> --- /dev/null
>> +++ b/arch/arm64/boot/dts/sprd/sharkl64.dtsi
>> @@ -0,0 +1,65 @@
>> +/*
>> + * Spreadtrum Sharkl64 platform DTS file
>> + *
>> + * Copyright (C) 2014, Spreadtrum Communications Inc.
>> + *
>> + * This file is licensed under a dual GPLv2 or X11 license.
>> + */
>> +
>> +/ {
>> + interrupt-parent = <&gic>;
>> + #address-cells = <2>;
>> + #size-cells = <2>;
>> +
>> + soc {
>> + compatible = "simple-bus";
>> + #address-cells = <2>;
>> + #size-cells = <2>;
>> + ranges;
>> +
>> + ap-apb {
>> + compatible = "simple-bus";
>> + #address-cells = <2>;
>> + #size-cells = <2>;
>> + ranges;
>> +
>> + uart0: serial at 70000000 {
>> + compatible = "sprd,sc9836-uart";
>> + reg = <0 0x70000000 0 0x100>;
>> + interrupts = <0 2 0xf04>;
>> + clocks = <&clk26mhz>;
>> + status = "disabled";
>> + };
>> +
>> + uart1: serial at 70100000 {
>> + compatible = "sprd,sc9836-uart";
>> + reg = <0 0x70100000 0 0x100>;
>> + interrupts = <0 3 0xf04>;
>> + clocks = <&clk26mhz>;
>> + status = "disabled";
>> + };
>> +
>> + uart2: serial at 70200000 {
>> + compatible = "sprd,sc9836-uart";
>> + reg = <0 0x70200000 0 0x100>;
>> + interrupts = <0 2 0xf04>;
>> + clocks = <&clk26mhz>;
>> + status = "disabled";
>> + };
>> +
>> + uart3: serial at 70300000 {
>> + compatible = "sprd,sc9836-uart";
>> + reg = <0 0x70300000 0 0x100>;
>> + interrupts = <0 3 0xf04>;
>> + clocks = <&clk26mhz>;
>> + status = "disabled";
>> + };
>> + };
>> + };
>> +
>> + clk26mhz: clk26mhz {
>> + compatible = "fixed-clock";
>> + #clock-cells = <0>;
>> + clock-frequency = <26000000>;
>> + };
>> +};
>
> Other than my comments above, this looks fine to me. I assume the UART
> binding and driver are already queued somewhere else?
>
Since the last version patch series must be split for applying.
I'll send the UART bindings with UART driver soon.
For this case, can I still add your Acked-by and send these two patch
to Greg right now?
Thanks a lot,
Chunyan
> If so:
>
> Acked-by: Mark Rutland <mark.rutland@arm.com>
>
> Thanks,
> Mark.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v6 1/2] arm64: dts: Add support for Spreadtrum SC9836 SoC in dts and Makefile
2015-01-23 11:13 ` Lyra Zhang
@ 2015-01-23 11:17 ` Mark Rutland
2015-01-23 11:22 ` Lyra Zhang
0 siblings, 1 reply; 7+ messages in thread
From: Mark Rutland @ 2015-01-23 11:17 UTC (permalink / raw)
To: linux-arm-kernel
On Fri, Jan 23, 2015 at 11:13:29AM +0000, Lyra Zhang wrote:
> On Fri, Jan 23, 2015 at 6:36 PM, Mark Rutland <mark.rutland@arm.com> wrote:
> > On Fri, Jan 23, 2015 at 10:21:30AM +0000, Chunyan Zhang wrote:
> >> From: Zhizhou Zhang <zhizhou.zhang@spreadtrum.com>
> >>
> >> Adds the device tree support for Spreadtrum SC9836 SoC which is based on
> >> Sharkl64 platform.
> >>
> >> Sharkl64 platform contains the common nodes of Spreadtrum's arm64-based SoCs.
> >>
> >> Signed-off-by: Zhizhou Zhang <zhizhou.zhang@spreadtrum.com>
> >> Signed-off-by: Orson Zhai <orson.zhai@spreadtrum.com>
> >> Signed-off-by: Chunyan Zhang <chunyan.zhang@spreadtrum.com>
> >> ---
> >> arch/arm64/boot/dts/Makefile | 1 +
> >> arch/arm64/boot/dts/sprd/Makefile | 5 ++
> >> arch/arm64/boot/dts/sprd/sc9836-openphone.dts | 49 ++++++++++++++++
> >> arch/arm64/boot/dts/sprd/sc9836.dtsi | 74 +++++++++++++++++++++++++
> >> arch/arm64/boot/dts/sprd/sharkl64.dtsi | 65 ++++++++++++++++++++++
> >> 5 files changed, 194 insertions(+)
> >> create mode 100644 arch/arm64/boot/dts/sprd/Makefile
> >> create mode 100644 arch/arm64/boot/dts/sprd/sc9836-openphone.dts
> >> create mode 100644 arch/arm64/boot/dts/sprd/sc9836.dtsi
> >> create mode 100644 arch/arm64/boot/dts/sprd/sharkl64.dtsi
> >>
> >> diff --git a/arch/arm64/boot/dts/Makefile b/arch/arm64/boot/dts/Makefile
> >> index 3b8d427..806a717 100644
> >> --- a/arch/arm64/boot/dts/Makefile
> >> +++ b/arch/arm64/boot/dts/Makefile
> >> @@ -2,6 +2,7 @@ dts-dirs += amd
> >> dts-dirs += apm
> >> dts-dirs += arm
> >> dts-dirs += cavium
> >> +dts-dirs += sprd
> >>
> >> always := $(dtb-y)
> >> subdir-y := $(dts-dirs)
> >> diff --git a/arch/arm64/boot/dts/sprd/Makefile b/arch/arm64/boot/dts/sprd/Makefile
> >> new file mode 100644
> >> index 0000000..b658c5e
> >> --- /dev/null
> >> +++ b/arch/arm64/boot/dts/sprd/Makefile
> >> @@ -0,0 +1,5 @@
> >> +dtb-$(CONFIG_ARCH_SPRD) += sc9836-openphone.dtb
> >> +
> >> +always := $(dtb-y)
> >> +subdir-y := $(dts-dirs)
> >> +clean-files := *.dtb
> >> diff --git a/arch/arm64/boot/dts/sprd/sc9836-openphone.dts b/arch/arm64/boot/dts/sprd/sc9836-openphone.dts
> >> new file mode 100644
> >> index 0000000..b8a69b2
> >> --- /dev/null
> >> +++ b/arch/arm64/boot/dts/sprd/sc9836-openphone.dts
> >> @@ -0,0 +1,49 @@
> >> +/*
> >> + * Spreadtrum SC9836 openphone board DTS file
> >> + *
> >> + * Copyright (C) 2014, Spreadtrum Communications Inc.
> >> + *
> >> + * This file is licensed under a dual GPLv2 or X11 license.
> >> + */
> >> +
> >> +/dts-v1/;
> >> +
> >> +#include "sc9836.dtsi"
> >> +
> >> +/ {
> >> + model = "Spreadtrum SC9836 Openphone Board";
> >> +
> >> + compatible = "sprd,sc9836-openphone", "sprd,sc9836";
> >> +
> >> + aliases {
> >> + serial0 = &uart0;
> >> + serial1 = &uart1;
> >> + serial2 = &uart2;
> >> + serial3 = &uart3;
> >> + };
> >> +
> >> + memory at 80000000 {
> >> + device_type = "memory";
> >> + reg = <0 0x80000000 0 0x20000000>;
> >> + };
> >> +
> >> + chosen {
> >> + stdout-path = &uart0;
> >> + };
> >
> > It would be good to use an explicit configuration here. e.g. have:
> >
> > chosen {
> > stdout-path = "serial0:115200n8";
> > };
> >
> > Where '115200n8' is replaced by whatever the bootloader leaves the UART
> > configured as on this board.
> >
> > That means you won't need a 'console=' to get nice consistent serial
> > output at boot, and won't be relying on implicit defaults all over the
> > place.
> >
>
> ok, I've changed and tested pass.
>
> >> +};
> >> +
> >> +&uart0 {
> >> + status = "okay";
> >> +};
> >> +
> >> +&uart1 {
> >> + status = "okay";
> >> +};
> >> +
> >> +&uart2 {
> >> + status = "okay";
> >> +};
> >> +
> >> +&uart3 {
> >> + status = "okay";
> >> +};
> >> diff --git a/arch/arm64/boot/dts/sprd/sc9836.dtsi b/arch/arm64/boot/dts/sprd/sc9836.dtsi
> >> new file mode 100644
> >> index 0000000..c646123
> >> --- /dev/null
> >> +++ b/arch/arm64/boot/dts/sprd/sc9836.dtsi
> >> @@ -0,0 +1,74 @@
> >> +/*
> >> + * Spreadtrum SC9836 SoC DTS file
> >> + *
> >> + * Copyright (C) 2014, Spreadtrum Communications Inc.
> >> + *
> >> + * This file is licensed under a dual GPLv2 or X11 license.
> >> + */
> >> +
> >> +#include "sharkl64.dtsi"
> >> +#include <dt-bindings/interrupt-controller/arm-gic.h>
> >> +
> >> +/ {
> >> + compatible = "sprd,sc9836";
> >> +
> >> + cpus {
> >> + #address-cells = <2>;
> >> + #size-cells = <0>;
> >> +
> >> + cpu at 0 {
> >> + device_type = "cpu";
> >> + compatible = "arm,cortex-a53", "arm,armv8";
> >> + reg = <0x0 0x0>;
> >> + enable-method = "psci";
> >> + };
> >> +
> >> + cpu at 1 {
> >> + device_type = "cpu";
> >> + compatible = "arm,cortex-a53", "arm,armv8";
> >> + reg = <0x0 0x1>;
> >> + enable-method = "psci";
> >> + };
> >> +
> >> + cpu at 2 {
> >> + device_type = "cpu";
> >> + compatible = "arm,cortex-a53", "arm,armv8";
> >> + reg = <0x0 0x2>;
> >> + enable-method = "psci";
> >> + };
> >> +
> >> + cpu at 3 {
> >> + device_type = "cpu";
> >> + compatible = "arm,cortex-a53", "arm,armv8";
> >> + reg = <0x0 0x3>;
> >> + enable-method = "psci";
> >> + };
> >> + };
> >> +
> >> + gic: interrupt-controller at 12001000 {
> >> + compatible = "arm,gic-400";
> >> + reg = <0 0x12001000 0 0x1000>,
> >> + <0 0x12002000 0 0x2000>,
> >> + <0 0x12004000 0 0x2000>,
> >> + <0 0x12006000 0 0x2000>;
> >> + #interrupt-cells = <3>;
> >> + interrupt-controller;
> >> + interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
> >> + };
> >> +
> >> + psci {
> >> + compatible = "arm,psci";
> >> + method = "smc";
> >> + cpu_on = <0xc4000003>;
> >> + cpu_off = <0x84000002>;
> >> + cpu_suspend = <0xc4000001>;
> >> + };
> >
> > Given that there are no suspend states in this dts, the cpu_suspend
> > property here could be omitted for now (though I guess it doesn't matter
> > either way).
> >
> >> +
> >> + timer {
> >> + compatible = "arm,armv8-timer";
> >> + interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
> >> + <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
> >> + <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
> >> + <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
> >> + };
> >> +};
> >> diff --git a/arch/arm64/boot/dts/sprd/sharkl64.dtsi b/arch/arm64/boot/dts/sprd/sharkl64.dtsi
> >> new file mode 100644
> >> index 0000000..6b4bdc5
> >> --- /dev/null
> >> +++ b/arch/arm64/boot/dts/sprd/sharkl64.dtsi
> >> @@ -0,0 +1,65 @@
> >> +/*
> >> + * Spreadtrum Sharkl64 platform DTS file
> >> + *
> >> + * Copyright (C) 2014, Spreadtrum Communications Inc.
> >> + *
> >> + * This file is licensed under a dual GPLv2 or X11 license.
> >> + */
> >> +
> >> +/ {
> >> + interrupt-parent = <&gic>;
> >> + #address-cells = <2>;
> >> + #size-cells = <2>;
> >> +
> >> + soc {
> >> + compatible = "simple-bus";
> >> + #address-cells = <2>;
> >> + #size-cells = <2>;
> >> + ranges;
> >> +
> >> + ap-apb {
> >> + compatible = "simple-bus";
> >> + #address-cells = <2>;
> >> + #size-cells = <2>;
> >> + ranges;
> >> +
> >> + uart0: serial at 70000000 {
> >> + compatible = "sprd,sc9836-uart";
> >> + reg = <0 0x70000000 0 0x100>;
> >> + interrupts = <0 2 0xf04>;
> >> + clocks = <&clk26mhz>;
> >> + status = "disabled";
> >> + };
> >> +
> >> + uart1: serial at 70100000 {
> >> + compatible = "sprd,sc9836-uart";
> >> + reg = <0 0x70100000 0 0x100>;
> >> + interrupts = <0 3 0xf04>;
> >> + clocks = <&clk26mhz>;
> >> + status = "disabled";
> >> + };
> >> +
> >> + uart2: serial at 70200000 {
> >> + compatible = "sprd,sc9836-uart";
> >> + reg = <0 0x70200000 0 0x100>;
> >> + interrupts = <0 2 0xf04>;
> >> + clocks = <&clk26mhz>;
> >> + status = "disabled";
> >> + };
> >> +
> >> + uart3: serial at 70300000 {
> >> + compatible = "sprd,sc9836-uart";
> >> + reg = <0 0x70300000 0 0x100>;
> >> + interrupts = <0 3 0xf04>;
> >> + clocks = <&clk26mhz>;
> >> + status = "disabled";
> >> + };
> >> + };
> >> + };
> >> +
> >> + clk26mhz: clk26mhz {
> >> + compatible = "fixed-clock";
> >> + #clock-cells = <0>;
> >> + clock-frequency = <26000000>;
> >> + };
> >> +};
> >
> > Other than my comments above, this looks fine to me. I assume the UART
> > binding and driver are already queued somewhere else?
> >
>
> Since the last version patch series must be split for applying.
> I'll send the UART bindings with UART driver soon.
>
> For this case, can I still add your Acked-by and send these two patch
> to Greg right now?
If the UART patches aren't queued yet then I'd like to take a look at
their next posting first.
Surely these 2 patches (with parts under arch/arm64) should go via
arm-soc?
Thanks,
Mark.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v6 1/2] arm64: dts: Add support for Spreadtrum SC9836 SoC in dts and Makefile
2015-01-23 11:17 ` Mark Rutland
@ 2015-01-23 11:22 ` Lyra Zhang
0 siblings, 0 replies; 7+ messages in thread
From: Lyra Zhang @ 2015-01-23 11:22 UTC (permalink / raw)
To: linux-arm-kernel
On Fri, Jan 23, 2015 at 7:17 PM, Mark Rutland <mark.rutland@arm.com> wrote:
> On Fri, Jan 23, 2015 at 11:13:29AM +0000, Lyra Zhang wrote:
>> On Fri, Jan 23, 2015 at 6:36 PM, Mark Rutland <mark.rutland@arm.com> wrote:
>> > On Fri, Jan 23, 2015 at 10:21:30AM +0000, Chunyan Zhang wrote:
>> >> From: Zhizhou Zhang <zhizhou.zhang@spreadtrum.com>
>> >>
>> >> Adds the device tree support for Spreadtrum SC9836 SoC which is based on
>> >> Sharkl64 platform.
>> >>
>> >> Sharkl64 platform contains the common nodes of Spreadtrum's arm64-based SoCs.
>> >>
>> >> Signed-off-by: Zhizhou Zhang <zhizhou.zhang@spreadtrum.com>
>> >> Signed-off-by: Orson Zhai <orson.zhai@spreadtrum.com>
>> >> Signed-off-by: Chunyan Zhang <chunyan.zhang@spreadtrum.com>
>> >> ---
>> >> arch/arm64/boot/dts/Makefile | 1 +
>> >> arch/arm64/boot/dts/sprd/Makefile | 5 ++
>> >> arch/arm64/boot/dts/sprd/sc9836-openphone.dts | 49 ++++++++++++++++
>> >> arch/arm64/boot/dts/sprd/sc9836.dtsi | 74 +++++++++++++++++++++++++
>> >> arch/arm64/boot/dts/sprd/sharkl64.dtsi | 65 ++++++++++++++++++++++
>> >> 5 files changed, 194 insertions(+)
>> >> create mode 100644 arch/arm64/boot/dts/sprd/Makefile
>> >> create mode 100644 arch/arm64/boot/dts/sprd/sc9836-openphone.dts
>> >> create mode 100644 arch/arm64/boot/dts/sprd/sc9836.dtsi
>> >> create mode 100644 arch/arm64/boot/dts/sprd/sharkl64.dtsi
>> >>
>> >> diff --git a/arch/arm64/boot/dts/Makefile b/arch/arm64/boot/dts/Makefile
>> >> index 3b8d427..806a717 100644
>> >> --- a/arch/arm64/boot/dts/Makefile
>> >> +++ b/arch/arm64/boot/dts/Makefile
>> >> @@ -2,6 +2,7 @@ dts-dirs += amd
>> >> dts-dirs += apm
>> >> dts-dirs += arm
>> >> dts-dirs += cavium
>> >> +dts-dirs += sprd
>> >>
>> >> always := $(dtb-y)
>> >> subdir-y := $(dts-dirs)
>> >> diff --git a/arch/arm64/boot/dts/sprd/Makefile b/arch/arm64/boot/dts/sprd/Makefile
>> >> new file mode 100644
>> >> index 0000000..b658c5e
>> >> --- /dev/null
>> >> +++ b/arch/arm64/boot/dts/sprd/Makefile
>> >> @@ -0,0 +1,5 @@
>> >> +dtb-$(CONFIG_ARCH_SPRD) += sc9836-openphone.dtb
>> >> +
>> >> +always := $(dtb-y)
>> >> +subdir-y := $(dts-dirs)
>> >> +clean-files := *.dtb
>> >> diff --git a/arch/arm64/boot/dts/sprd/sc9836-openphone.dts b/arch/arm64/boot/dts/sprd/sc9836-openphone.dts
>> >> new file mode 100644
>> >> index 0000000..b8a69b2
>> >> --- /dev/null
>> >> +++ b/arch/arm64/boot/dts/sprd/sc9836-openphone.dts
>> >> @@ -0,0 +1,49 @@
>> >> +/*
>> >> + * Spreadtrum SC9836 openphone board DTS file
>> >> + *
>> >> + * Copyright (C) 2014, Spreadtrum Communications Inc.
>> >> + *
>> >> + * This file is licensed under a dual GPLv2 or X11 license.
>> >> + */
>> >> +
>> >> +/dts-v1/;
>> >> +
>> >> +#include "sc9836.dtsi"
>> >> +
>> >> +/ {
>> >> + model = "Spreadtrum SC9836 Openphone Board";
>> >> +
>> >> + compatible = "sprd,sc9836-openphone", "sprd,sc9836";
>> >> +
>> >> + aliases {
>> >> + serial0 = &uart0;
>> >> + serial1 = &uart1;
>> >> + serial2 = &uart2;
>> >> + serial3 = &uart3;
>> >> + };
>> >> +
>> >> + memory at 80000000 {
>> >> + device_type = "memory";
>> >> + reg = <0 0x80000000 0 0x20000000>;
>> >> + };
>> >> +
>> >> + chosen {
>> >> + stdout-path = &uart0;
>> >> + };
>> >
>> > It would be good to use an explicit configuration here. e.g. have:
>> >
>> > chosen {
>> > stdout-path = "serial0:115200n8";
>> > };
>> >
>> > Where '115200n8' is replaced by whatever the bootloader leaves the UART
>> > configured as on this board.
>> >
>> > That means you won't need a 'console=' to get nice consistent serial
>> > output at boot, and won't be relying on implicit defaults all over the
>> > place.
>> >
>>
>> ok, I've changed and tested pass.
>>
>> >> +};
>> >> +
>> >> +&uart0 {
>> >> + status = "okay";
>> >> +};
>> >> +
>> >> +&uart1 {
>> >> + status = "okay";
>> >> +};
>> >> +
>> >> +&uart2 {
>> >> + status = "okay";
>> >> +};
>> >> +
>> >> +&uart3 {
>> >> + status = "okay";
>> >> +};
>> >> diff --git a/arch/arm64/boot/dts/sprd/sc9836.dtsi b/arch/arm64/boot/dts/sprd/sc9836.dtsi
>> >> new file mode 100644
>> >> index 0000000..c646123
>> >> --- /dev/null
>> >> +++ b/arch/arm64/boot/dts/sprd/sc9836.dtsi
>> >> @@ -0,0 +1,74 @@
>> >> +/*
>> >> + * Spreadtrum SC9836 SoC DTS file
>> >> + *
>> >> + * Copyright (C) 2014, Spreadtrum Communications Inc.
>> >> + *
>> >> + * This file is licensed under a dual GPLv2 or X11 license.
>> >> + */
>> >> +
>> >> +#include "sharkl64.dtsi"
>> >> +#include <dt-bindings/interrupt-controller/arm-gic.h>
>> >> +
>> >> +/ {
>> >> + compatible = "sprd,sc9836";
>> >> +
>> >> + cpus {
>> >> + #address-cells = <2>;
>> >> + #size-cells = <0>;
>> >> +
>> >> + cpu at 0 {
>> >> + device_type = "cpu";
>> >> + compatible = "arm,cortex-a53", "arm,armv8";
>> >> + reg = <0x0 0x0>;
>> >> + enable-method = "psci";
>> >> + };
>> >> +
>> >> + cpu at 1 {
>> >> + device_type = "cpu";
>> >> + compatible = "arm,cortex-a53", "arm,armv8";
>> >> + reg = <0x0 0x1>;
>> >> + enable-method = "psci";
>> >> + };
>> >> +
>> >> + cpu at 2 {
>> >> + device_type = "cpu";
>> >> + compatible = "arm,cortex-a53", "arm,armv8";
>> >> + reg = <0x0 0x2>;
>> >> + enable-method = "psci";
>> >> + };
>> >> +
>> >> + cpu at 3 {
>> >> + device_type = "cpu";
>> >> + compatible = "arm,cortex-a53", "arm,armv8";
>> >> + reg = <0x0 0x3>;
>> >> + enable-method = "psci";
>> >> + };
>> >> + };
>> >> +
>> >> + gic: interrupt-controller at 12001000 {
>> >> + compatible = "arm,gic-400";
>> >> + reg = <0 0x12001000 0 0x1000>,
>> >> + <0 0x12002000 0 0x2000>,
>> >> + <0 0x12004000 0 0x2000>,
>> >> + <0 0x12006000 0 0x2000>;
>> >> + #interrupt-cells = <3>;
>> >> + interrupt-controller;
>> >> + interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
>> >> + };
>> >> +
>> >> + psci {
>> >> + compatible = "arm,psci";
>> >> + method = "smc";
>> >> + cpu_on = <0xc4000003>;
>> >> + cpu_off = <0x84000002>;
>> >> + cpu_suspend = <0xc4000001>;
>> >> + };
>> >
>> > Given that there are no suspend states in this dts, the cpu_suspend
>> > property here could be omitted for now (though I guess it doesn't matter
>> > either way).
>> >
>> >> +
>> >> + timer {
>> >> + compatible = "arm,armv8-timer";
>> >> + interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
>> >> + <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
>> >> + <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
>> >> + <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
>> >> + };
>> >> +};
>> >> diff --git a/arch/arm64/boot/dts/sprd/sharkl64.dtsi b/arch/arm64/boot/dts/sprd/sharkl64.dtsi
>> >> new file mode 100644
>> >> index 0000000..6b4bdc5
>> >> --- /dev/null
>> >> +++ b/arch/arm64/boot/dts/sprd/sharkl64.dtsi
>> >> @@ -0,0 +1,65 @@
>> >> +/*
>> >> + * Spreadtrum Sharkl64 platform DTS file
>> >> + *
>> >> + * Copyright (C) 2014, Spreadtrum Communications Inc.
>> >> + *
>> >> + * This file is licensed under a dual GPLv2 or X11 license.
>> >> + */
>> >> +
>> >> +/ {
>> >> + interrupt-parent = <&gic>;
>> >> + #address-cells = <2>;
>> >> + #size-cells = <2>;
>> >> +
>> >> + soc {
>> >> + compatible = "simple-bus";
>> >> + #address-cells = <2>;
>> >> + #size-cells = <2>;
>> >> + ranges;
>> >> +
>> >> + ap-apb {
>> >> + compatible = "simple-bus";
>> >> + #address-cells = <2>;
>> >> + #size-cells = <2>;
>> >> + ranges;
>> >> +
>> >> + uart0: serial at 70000000 {
>> >> + compatible = "sprd,sc9836-uart";
>> >> + reg = <0 0x70000000 0 0x100>;
>> >> + interrupts = <0 2 0xf04>;
>> >> + clocks = <&clk26mhz>;
>> >> + status = "disabled";
>> >> + };
>> >> +
>> >> + uart1: serial at 70100000 {
>> >> + compatible = "sprd,sc9836-uart";
>> >> + reg = <0 0x70100000 0 0x100>;
>> >> + interrupts = <0 3 0xf04>;
>> >> + clocks = <&clk26mhz>;
>> >> + status = "disabled";
>> >> + };
>> >> +
>> >> + uart2: serial at 70200000 {
>> >> + compatible = "sprd,sc9836-uart";
>> >> + reg = <0 0x70200000 0 0x100>;
>> >> + interrupts = <0 2 0xf04>;
>> >> + clocks = <&clk26mhz>;
>> >> + status = "disabled";
>> >> + };
>> >> +
>> >> + uart3: serial at 70300000 {
>> >> + compatible = "sprd,sc9836-uart";
>> >> + reg = <0 0x70300000 0 0x100>;
>> >> + interrupts = <0 3 0xf04>;
>> >> + clocks = <&clk26mhz>;
>> >> + status = "disabled";
>> >> + };
>> >> + };
>> >> + };
>> >> +
>> >> + clk26mhz: clk26mhz {
>> >> + compatible = "fixed-clock";
>> >> + #clock-cells = <0>;
>> >> + clock-frequency = <26000000>;
>> >> + };
>> >> +};
>> >
>> > Other than my comments above, this looks fine to me. I assume the UART
>> > binding and driver are already queued somewhere else?
>> >
>>
>> Since the last version patch series must be split for applying.
>> I'll send the UART bindings with UART driver soon.
>>
>> For this case, can I still add your Acked-by and send these two patch
>> to Greg right now?
>
> If the UART patches aren't queued yet then I'd like to take a look at
> their next posting first.
>
ok, they have been ready, I'll send them right now.
> Surely these 2 patches (with parts under arch/arm64) should go via
> arm-soc?
>
yes, should be 'arm at kernel.org', right?
> Thanks,
> Mark.
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2015-01-23 11:22 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <sprd-dt-v6>
2015-01-23 10:21 ` [PATCH v6 0/2] Add Spreadtrum Sharkl64 Platform support Chunyan Zhang
2015-01-23 10:21 ` [PATCH v6 1/2] arm64: dts: Add support for Spreadtrum SC9836 SoC in dts and Makefile Chunyan Zhang
2015-01-23 10:36 ` Mark Rutland
2015-01-23 11:13 ` Lyra Zhang
2015-01-23 11:17 ` Mark Rutland
2015-01-23 11:22 ` Lyra Zhang
2015-01-23 10:21 ` [PATCH v6 2/2] arm64: Add support for Spreadtrum's Sharkl64 Platform in Kconfig and defconfig Chunyan Zhang
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).