linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [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).