diff options
author | Jun Nie <jun.nie@linaro.org> | 2015-06-03 23:21:02 -0400 |
---|---|---|
committer | Kevin Hilman <khilman@linaro.org> | 2015-06-11 19:18:30 -0400 |
commit | d5553cb05a041d7c31e4e70950ecbb4ee52049cb (patch) | |
tree | 8db1e92dfe8841fdf55e52f0bd8986c81b5a450d | |
parent | 5a46580812266c85a2cd0ee530e4039ea5f76a19 (diff) |
ARM: dts: zx: add an initial zx296702 dts and doc
Add initial dts file and document for ZX296702 and board ZX296702-AD1.
More peripherals will be added later.
Signed-off-by: Jun Nie <jun.nie@linaro.org>
Signed-off-by: Kevin Hilman <khilman@linaro.org>
-rw-r--r-- | Documentation/devicetree/bindings/arm/zte.txt | 15 | ||||
-rw-r--r-- | Documentation/devicetree/bindings/clock/zx296702-clk.txt | 35 | ||||
-rw-r--r-- | Documentation/devicetree/bindings/serial/pl011.txt | 2 | ||||
-rw-r--r-- | Documentation/devicetree/bindings/vendor-prefixes.txt | 1 | ||||
-rw-r--r-- | arch/arm/boot/dts/Makefile | 1 | ||||
-rw-r--r-- | arch/arm/boot/dts/zx296702-ad1.dts | 48 | ||||
-rw-r--r-- | arch/arm/boot/dts/zx296702.dtsi | 139 |
7 files changed, 240 insertions, 1 deletions
diff --git a/Documentation/devicetree/bindings/arm/zte.txt b/Documentation/devicetree/bindings/arm/zte.txt new file mode 100644 index 000000000000..3ff5c9e85c1c --- /dev/null +++ b/Documentation/devicetree/bindings/arm/zte.txt | |||
@@ -0,0 +1,15 @@ | |||
1 | ZTE platforms device tree bindings | ||
2 | --------------------------------------- | ||
3 | |||
4 | - ZX296702 board: | ||
5 | Required root node properties: | ||
6 | - compatible = "zte,zx296702-ad1", "zte,zx296702" | ||
7 | |||
8 | System management required properties: | ||
9 | - compatible = "zte,sysctrl" | ||
10 | |||
11 | Low power management required properties: | ||
12 | - compatible = "zte,zx296702-pcu" | ||
13 | |||
14 | Bus matrix required properties: | ||
15 | - compatible = "zte,zx-bus-matrix" | ||
diff --git a/Documentation/devicetree/bindings/clock/zx296702-clk.txt b/Documentation/devicetree/bindings/clock/zx296702-clk.txt new file mode 100644 index 000000000000..750442b65505 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/zx296702-clk.txt | |||
@@ -0,0 +1,35 @@ | |||
1 | Device Tree Clock bindings for ZTE zx296702 | ||
2 | |||
3 | This binding uses the common clock binding[1]. | ||
4 | |||
5 | [1] Documentation/devicetree/bindings/clock/clock-bindings.txt | ||
6 | |||
7 | Required properties: | ||
8 | - compatible : shall be one of the following: | ||
9 | "zte,zx296702-topcrm-clk": | ||
10 | zx296702 top clock selection, divider and gating | ||
11 | |||
12 | "zte,zx296702-lsp0crpm-clk" and | ||
13 | "zte,zx296702-lsp1crpm-clk": | ||
14 | zx296702 device level clock selection and gating | ||
15 | |||
16 | - reg: Address and length of the register set | ||
17 | |||
18 | The clock consumer should specify the desired clock by having the clock | ||
19 | ID in its "clocks" phandle cell. See include/dt-bindings/clock/zx296702-clock.h | ||
20 | for the full list of zx296702 clock IDs. | ||
21 | |||
22 | |||
23 | topclk: topcrm@0x09800000 { | ||
24 | compatible = "zte,zx296702-topcrm-clk"; | ||
25 | reg = <0x09800000 0x1000>; | ||
26 | #clock-cells = <1>; | ||
27 | }; | ||
28 | |||
29 | uart0: serial@0x09405000 { | ||
30 | compatible = "zte,zx296702-uart"; | ||
31 | reg = <0x09405000 0x1000>; | ||
32 | interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; | ||
33 | clocks = <&lsp1clk ZX296702_UART0_PCLK>; | ||
34 | status = "disabled"; | ||
35 | }; | ||
diff --git a/Documentation/devicetree/bindings/serial/pl011.txt b/Documentation/devicetree/bindings/serial/pl011.txt index ba3ecb8cb5a1..cbae3d9a0278 100644 --- a/Documentation/devicetree/bindings/serial/pl011.txt +++ b/Documentation/devicetree/bindings/serial/pl011.txt | |||
@@ -1,7 +1,7 @@ | |||
1 | * ARM AMBA Primecell PL011 serial UART | 1 | * ARM AMBA Primecell PL011 serial UART |
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible: must be "arm,primecell", "arm,pl011" | 4 | - compatible: must be "arm,primecell", "arm,pl011", "zte,zx296702-uart" |
5 | - reg: exactly one register range with length 0x1000 | 5 | - reg: exactly one register range with length 0x1000 |
6 | - interrupts: exactly one interrupt specifier | 6 | - interrupts: exactly one interrupt specifier |
7 | 7 | ||
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt index 80339192c93e..717ffd5a3563 100644 --- a/Documentation/devicetree/bindings/vendor-prefixes.txt +++ b/Documentation/devicetree/bindings/vendor-prefixes.txt | |||
@@ -211,3 +211,4 @@ xillybus Xillybus Ltd. | |||
211 | xlnx Xilinx | 211 | xlnx Xilinx |
212 | zyxel ZyXEL Communications Corp. | 212 | zyxel ZyXEL Communications Corp. |
213 | zarlink Zarlink Semiconductor | 213 | zarlink Zarlink Semiconductor |
214 | zte ZTE Corp. | ||
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index 86217db2937a..4814c6b96b67 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile | |||
@@ -660,6 +660,7 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += \ | |||
660 | mt6592-evb.dtb \ | 660 | mt6592-evb.dtb \ |
661 | mt8127-moose.dtb \ | 661 | mt8127-moose.dtb \ |
662 | mt8135-evbp1.dtb | 662 | mt8135-evbp1.dtb |
663 | dtb-$(CONFIG_ARCH_ZX) += zx296702-ad1.dtb | ||
663 | endif | 664 | endif |
664 | 665 | ||
665 | always := $(dtb-y) | 666 | always := $(dtb-y) |
diff --git a/arch/arm/boot/dts/zx296702-ad1.dts b/arch/arm/boot/dts/zx296702-ad1.dts new file mode 100644 index 000000000000..081f980cfbe6 --- /dev/null +++ b/arch/arm/boot/dts/zx296702-ad1.dts | |||
@@ -0,0 +1,48 @@ | |||
1 | |||
2 | /dts-v1/; | ||
3 | |||
4 | #include "zx296702.dtsi" | ||
5 | |||
6 | / { | ||
7 | model = "ZTE ZX296702 AD1 Board"; | ||
8 | compatible = "zte,zx296702-ad1", "zte,zx296702"; | ||
9 | |||
10 | aliases { | ||
11 | serial0 = &uart0; | ||
12 | serial1 = &uart1; | ||
13 | }; | ||
14 | |||
15 | memory { | ||
16 | reg = <0x50000000 0x20000000>; | ||
17 | }; | ||
18 | }; | ||
19 | |||
20 | &mmc0 { | ||
21 | num-slots = <1>; | ||
22 | supports-highspeed; | ||
23 | non-removable; | ||
24 | disable-wp; | ||
25 | status = "okay"; | ||
26 | |||
27 | slot@0 { | ||
28 | reg = <0>; | ||
29 | bus-width = <4>; | ||
30 | }; | ||
31 | }; | ||
32 | |||
33 | &mmc1 { | ||
34 | num-slots = <1>; | ||
35 | supports-highspeed; | ||
36 | non-removable; | ||
37 | disable-wp; | ||
38 | status = "okay"; | ||
39 | |||
40 | slot@0 { | ||
41 | reg = <0>; | ||
42 | bus-width = <8>; | ||
43 | }; | ||
44 | }; | ||
45 | |||
46 | &uart0 { | ||
47 | status = "okay"; | ||
48 | }; | ||
diff --git a/arch/arm/boot/dts/zx296702.dtsi b/arch/arm/boot/dts/zx296702.dtsi new file mode 100644 index 000000000000..d45c8fcd7ab4 --- /dev/null +++ b/arch/arm/boot/dts/zx296702.dtsi | |||
@@ -0,0 +1,139 @@ | |||
1 | |||
2 | #include "skeleton.dtsi" | ||
3 | #include <dt-bindings/clock/zx296702-clock.h> | ||
4 | #include <dt-bindings/interrupt-controller/arm-gic.h> | ||
5 | |||
6 | / { | ||
7 | cpus { | ||
8 | #address-cells = <1>; | ||
9 | #size-cells = <0>; | ||
10 | enable-method = "zte,zx296702-smp"; | ||
11 | |||
12 | cpu@0 { | ||
13 | compatible = "arm,cortex-a9"; | ||
14 | device_type = "cpu"; | ||
15 | next-level-cache = <&l2cc>; | ||
16 | reg = <0>; | ||
17 | }; | ||
18 | |||
19 | cpu@1 { | ||
20 | compatible = "arm,cortex-a9"; | ||
21 | device_type = "cpu"; | ||
22 | next-level-cache = <&l2cc>; | ||
23 | reg = <1>; | ||
24 | }; | ||
25 | }; | ||
26 | |||
27 | |||
28 | soc { | ||
29 | #address-cells = <1>; | ||
30 | #size-cells = <1>; | ||
31 | compatible = "simple-bus"; | ||
32 | interrupt-parent = <&intc>; | ||
33 | ranges; | ||
34 | |||
35 | matrix: bus-matrix@400000 { | ||
36 | compatible = "zte,zx-bus-matrix"; | ||
37 | reg = <0x00400000 0x1000>; | ||
38 | }; | ||
39 | |||
40 | intc: interrupt-controller@00801000 { | ||
41 | compatible = "arm,cortex-a9-gic"; | ||
42 | #interrupt-cells = <3>; | ||
43 | #address-cells = <1>; | ||
44 | #size-cells = <1>; | ||
45 | interrupt-controller; | ||
46 | reg = <0x00801000 0x1000>, | ||
47 | <0x00800100 0x100>; | ||
48 | }; | ||
49 | |||
50 | global_timer: timer@008000200 { | ||
51 | compatible = "arm,cortex-a9-global-timer"; | ||
52 | reg = <0x00800200 0x20>; | ||
53 | interrupts = <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>; | ||
54 | interrupt-parent = <&intc>; | ||
55 | clocks = <&topclk ZX296702_A9_PERIPHCLK>; | ||
56 | }; | ||
57 | |||
58 | l2cc: l2-cache-controller@0x00c00000 { | ||
59 | compatible = "arm,pl310-cache"; | ||
60 | reg = <0x00c00000 0x1000>; | ||
61 | cache-unified; | ||
62 | cache-level = <2>; | ||
63 | arm,data-latency = <1 1 1>; | ||
64 | arm,tag-latency = <1 1 1>; | ||
65 | arm,double-linefill = <1>; | ||
66 | arm,double-linefill-incr = <0>; | ||
67 | }; | ||
68 | |||
69 | pcu: pcu@0xa0008000 { | ||
70 | compatible = "zte,zx296702-pcu"; | ||
71 | reg = <0xa0008000 0x1000>; | ||
72 | }; | ||
73 | |||
74 | topclk: topclk@0x09800000 { | ||
75 | compatible = "zte,zx296702-topcrm-clk"; | ||
76 | reg = <0x09800000 0x1000>; | ||
77 | #clock-cells = <1>; | ||
78 | }; | ||
79 | |||
80 | lsp1clk: lsp1clk@0x09400000 { | ||
81 | compatible = "zte,zx296702-lsp1crpm-clk"; | ||
82 | reg = <0x09400000 0x1000>; | ||
83 | #clock-cells = <1>; | ||
84 | }; | ||
85 | |||
86 | lsp0clk: lsp0clk@0x0b000000 { | ||
87 | compatible = "zte,zx296702-lsp0crpm-clk"; | ||
88 | reg = <0x0b000000 0x1000>; | ||
89 | #clock-cells = <1>; | ||
90 | }; | ||
91 | |||
92 | uart0: serial@0x09405000 { | ||
93 | compatible = "zte,zx296702-uart"; | ||
94 | reg = <0x09405000 0x1000>; | ||
95 | interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; | ||
96 | clocks = <&lsp1clk ZX296702_UART0_WCLK>; | ||
97 | status = "disabled"; | ||
98 | }; | ||
99 | |||
100 | uart1: serial@0x09406000 { | ||
101 | compatible = "zte,zx296702-uart"; | ||
102 | reg = <0x09406000 0x1000>; | ||
103 | interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>; | ||
104 | clocks = <&lsp1clk ZX296702_UART1_WCLK>; | ||
105 | status = "disabled"; | ||
106 | }; | ||
107 | |||
108 | mmc0: mmc@0x09408000 { | ||
109 | compatible = "snps,dw-mshc"; | ||
110 | #address-cells = <1>; | ||
111 | #size-cells = <0>; | ||
112 | reg = <0x09408000 0x1000>; | ||
113 | interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>; | ||
114 | fifo-depth = <32>; | ||
115 | clocks = <&lsp1clk ZX296702_SDMMC0_PCLK>, | ||
116 | <&lsp1clk ZX296702_SDMMC0_WCLK>; | ||
117 | clock-names = "biu", "ciu"; | ||
118 | status = "disabled"; | ||
119 | }; | ||
120 | |||
121 | mmc1: mmc@0x0b003000 { | ||
122 | compatible = "snps,dw-mshc"; | ||
123 | #address-cells = <1>; | ||
124 | #size-cells = <0>; | ||
125 | reg = <0x0b003000 0x1000>; | ||
126 | interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; | ||
127 | fifo-depth = <32>; | ||
128 | clocks = <&lsp0clk ZX296702_SDMMC1_PCLK>, | ||
129 | <&lsp0clk ZX296702_SDMMC1_WCLK>; | ||
130 | clock-names = "biu", "ciu"; | ||
131 | status = "disabled"; | ||
132 | }; | ||
133 | |||
134 | sysctrl: sysctrl@0xa0007000 { | ||
135 | compatible = "zte,sysctrl", "syscon"; | ||
136 | reg = <0xa0007000 0x1000>; | ||
137 | }; | ||
138 | }; | ||
139 | }; | ||