Thread (9 messages) flat view 9 messages, 2 authors, 2016-09-12
STALE3633d

Revision v4 of 12 in this series.

Revisions (12)
  1. v2 [diff vs current]
  2. v2 [diff vs current]
  3. v3 [diff vs current]
  4. v3 [diff vs current]
  5. v4 [diff vs current]
  6. v4 [diff vs current]
  7. v4 [diff vs current]
  8. v4 current
  9. v4 [diff vs current]
  10. v4 [diff vs current]
  11. v5 [diff vs current]
  12. v5 [diff vs current]

[PATCH v4 2/3] arm64: dts: Add ZTE ZX296718 SoC dts and Makefile

From: Jun Nie <hidden>
Date: 2016-09-12 07:13:58

2016-09-08 17:11 GMT+08:00 Shawn Guo [off-list ref]:
This version looks pretty good to me.  Some nit-picks below though ...

On Tue, Sep 06, 2016 at 02:04:20PM +0800, Jun Nie wrote:
quoted
Add device tree support for ZX296718 SoC and evaluation board based on it.
Please wrap the commit log around column 70.
quoted
Also document new values.

Signed-off-by: Jun Nie <redacted>
---
 Documentation/devicetree/bindings/arm/zte.txt |  24 +++
 arch/arm64/boot/dts/Makefile                  |   1 +
 arch/arm64/boot/dts/zte/Makefile              |   5 +
 arch/arm64/boot/dts/zte/zx296718-evb.dts      |  25 +++
 arch/arm64/boot/dts/zte/zx296718.dtsi         | 254 ++++++++++++++++++++++++++
 5 files changed, 309 insertions(+)
 create mode 100644 arch/arm64/boot/dts/zte/Makefile
 create mode 100644 arch/arm64/boot/dts/zte/zx296718-evb.dts
 create mode 100644 arch/arm64/boot/dts/zte/zx296718.dtsi
<snip>
quoted
diff --git a/arch/arm64/boot/dts/zte/Makefile b/arch/arm64/boot/dts/zte/Makefile
new file mode 100644
index 0000000..6678066
--- /dev/null
+++ b/arch/arm64/boot/dts/zte/Makefile
@@ -0,0 +1,5 @@
+dtb-$(CONFIG_ARCH_ZX) += zx296718-evb.dtb
+
+always               := $(dtb-y)
+subdir-y     := $(dts-dirs)
+clean-files  := *.dtb
diff --git a/arch/arm64/boot/dts/zte/zx296718-evb.dts b/arch/arm64/boot/dts/zte/zx296718-evb.dts
new file mode 100644
index 0000000..d7cefb4
--- /dev/null
+++ b/arch/arm64/boot/dts/zte/zx296718-evb.dts
@@ -0,0 +1,25 @@
+/*
+ * ZTE Ltd. zx296718 Plaform
+ *
+ */
We should probably consider to add a proper licence.  GPL/X11 dual is
mostly used and recommended, and there are quite a lot examples in the
DTS folder.
Will do.
quoted
+/dts-v1/;
+#include "zx296718.dtsi"
+
+/ {
+     model = "ZTE zx296718 evaluation board";
+     compatible = "zte,zx296718-evb", "zte,zx296718";
+
+     chosen {
+             stdout-path = "serial0:115200n8";
+     };
+
+     memory at 40000000 {
+             device_type = "memory";
+             reg = <0x40000000 0x40000000>;
+     };
+
+};
+
+&uart0 {
+     status = "okay";
+};
diff --git a/arch/arm64/boot/dts/zte/zx296718.dtsi b/arch/arm64/boot/dts/zte/zx296718.dtsi
new file mode 100644
index 0000000..c75a819
--- /dev/null
+++ b/arch/arm64/boot/dts/zte/zx296718.dtsi
@@ -0,0 +1,254 @@
+/*
+ * DTS File for ZTE ZX296718 Plaform
+ *
+ * Copyright (c) 2016 ZTE Semiconductor Co., Ltd.
+ */
Ditto
Will do.
quoted
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+     compatible = "zte,zx296718";
+     #address-cells = <1>;
+     #size-cells = <1>;
+
+     aliases {
+             serial0 = &uart0;
+     };
+
+     cpus {
+             #address-cells = <2>;
+             #size-cells = <0>;
+
+             cpu-map {
+                     cluster0 {
+                             core0 {
+                                     cpu = <&cpu0>;
+                             };
+                             core1 {
+                                     cpu = <&cpu1>;
+                             };
+                             core2 {
+                                     cpu = <&cpu2>;
+                             };
+                             core3 {
+                                     cpu = <&cpu3>;
+                             };
+                     };
+             };
+
+             cpu0: cpu at 0 {
+                     device_type = "cpu";
+                     compatible = "arm,cortex-a53","arm,armv8";
+                     reg = <0x0 0x0>;
+                     enable-method = "psci";
+             };
+
+             cpu1: cpu at 1 {
+                     device_type = "cpu";
+                     compatible = "arm,cortex-a53","arm,armv8";
+                     reg = <0x0 0x1>;
+                     enable-method = "psci";
+             };
+
+             cpu2: cpu at 2 {
+                     device_type = "cpu";
+                     compatible = "arm,cortex-a53","arm,armv8";
+                     reg = <0x0 0x2>;
+                     enable-method = "psci";
+             };
+
+             cpu3: cpu at 3 {
+                     device_type = "cpu";
+                     compatible = "arm,cortex-a53","arm,armv8";
+                     reg = <0x0 0x3>;
+                     enable-method = "psci";
+             };
+     };
+
+     osc12m: osc12m-clk {
+             compatible = "fixed-clock";
+             #clock-cells = <0>;
+             clock-frequency = <12000000>;
+             clock-output-names = "osc12m";
+     };
+
+     osc24m: osc24m-clk {
+             compatible = "fixed-clock";
+             #clock-cells = <0>;
+             clock-frequency = <24000000>;
+             clock-output-names = "osc24m";
+     };
+
+     osc25m: osc25m-clk {
+             compatible = "fixed-clock";
+             #clock-cells = <0>;
+             clock-frequency = <25000000>;
+             clock-output-names = "osc25m";
+     };
+
+     clk24k: clk-24k {
I would suggest we name node of fixed rate clock in an unified way like
clock-xxx.
Will do.
quoted
+             compatible = "fixed-clock";
+             #clock-cells = <0>;
+             clock-frequency = <24000>;
+             clock-output-names = "rtcclk";
+     };
+
+     osc32k: osc32k-clk {
+             compatible = "fixed-clock";
+             #clock-cells = <0>;
+             clock-frequency = <32000>;
+             clock-output-names = "osc32k";
+     };
+
+     osc60m: osc60m-clk {
+             compatible = "fixed-clock";
+             #clock-cells = <0>;
+             clock-frequency = <60000000>;
+             clock-output-names = "osc60m";
+     };
+
+     osc99m: osc99m-clk {
+             compatible = "fixed-clock";
+             #clock-cells = <0>;
+             clock-frequency = <99000000>;
+             clock-output-names = "osc99m";
+     };
+
+     osc125m: osc125m-clk {
+             compatible = "fixed-clock";
+             #clock-cells = <0>;
+             clock-frequency = <125000000>;
+             clock-output-names = "osc125m";
+     };
+
+     osc198m: osc198m-clk {
+             compatible = "fixed-clock";
+             #clock-cells = <0>;
+             clock-frequency = <198000000>;
+             clock-output-names = "osc198m";
+     };
+
+     pll_vga: pll-1073m-clk {
+             compatible = "fixed-clock";
+             #clock-cells = <0>;
+             clock-frequency = <1073000000>;
+             clock-output-names = "pll_vga";
+     };
+
+     pll_ddr: pll-932m-clk {
+             compatible = "fixed-clock";
+             #clock-cells = <0>;
+             clock-frequency = <932000000>;
+             clock-output-names = "pll_ddr";
+     };
+
+     pll_mac: pll-1000m-clk {
+             compatible = "fixed-clock";
+             #clock-cells = <0>;
+             clock-frequency = <1000000000>;
+             clock-output-names = "pll_mac";
+     };
+
+     pll_mm0: pll-1188m-clk {
+             compatible = "fixed-clock";
+             #clock-cells = <0>;
+             clock-frequency = <1188000000>;
+             clock-output-names = "pll_mm0";
+     };
+
+     pll_mm1: pll-1296m-clk {
+             compatible = "fixed-clock";
+             #clock-cells = <0>;
+             clock-frequency = <1296000000>;
+             clock-output-names = "pll_mm1";
+     };
+
+     pll_audio: pll-884m-clk {
+             compatible = "fixed-clock";
+             #clock-cells = <0>;
+             clock-frequency = <884000000>;
+             clock-output-names = "pll_audio";
+     };
+
+     pll_hsic: pll-960m-clk {
+             compatible = "fixed-clock";
+             #clock-cells = <0>;
+             clock-frequency = <960000000>;
+             clock-output-names = "pll_hsic";
+     };
Do we really have so many uncontrolled clocks with fixed rate in the
SoC?
PLL clocks can be configured actually according to register. But I
prefer to keep them as fixed clocks due to two reasons:
 1. ZTE do not want to expose too much information of PLL.
 2. All clients blocks, such as MMC and video codec, assume the
related input clock's frequency as a derivation from PLL default
frequency value in block clock control register description.
Shawn
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help