diff options
-rw-r--r-- | Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt | 25 | ||||
-rw-r--r-- | arch/arm/boot/dts/Makefile | 2 | ||||
-rw-r--r-- | arch/arm/boot/dts/hip01-ca9x2.dts | 51 | ||||
-rw-r--r-- | arch/arm/boot/dts/hip01.dtsi | 110 |
4 files changed, 188 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt b/Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt index f717c7b48603..35b1bd49cfa1 100644 --- a/Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt +++ b/Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt | |||
@@ -9,6 +9,10 @@ HiP04 D01 Board | |||
9 | Required root node properties: | 9 | Required root node properties: |
10 | - compatible = "hisilicon,hip04-d01"; | 10 | - compatible = "hisilicon,hip04-d01"; |
11 | 11 | ||
12 | HiP01 ca9x2 Board | ||
13 | Required root node properties: | ||
14 | - compatible = "hisilicon,hip01-ca9x2"; | ||
15 | |||
12 | 16 | ||
13 | Hisilicon system controller | 17 | Hisilicon system controller |
14 | 18 | ||
@@ -37,6 +41,27 @@ Example: | |||
37 | }; | 41 | }; |
38 | 42 | ||
39 | ----------------------------------------------------------------------- | 43 | ----------------------------------------------------------------------- |
44 | Hisilicon HiP01 system controller | ||
45 | |||
46 | Required properties: | ||
47 | - compatible : "hisilicon,hip01-sysctrl" | ||
48 | - reg : Register address and size | ||
49 | |||
50 | The HiP01 system controller is mostly compatible with hisilicon | ||
51 | system controller,but it has some specific control registers for | ||
52 | HIP01 SoC family, such as slave core boot, and also some same | ||
53 | registers located at different offset. | ||
54 | |||
55 | Example: | ||
56 | |||
57 | /* for hip01-ca9x2 */ | ||
58 | sysctrl: system-controller@10000000 { | ||
59 | compatible = "hisilicon,hip01-sysctrl", "hisilicon,sysctrl"; | ||
60 | reg = <0x10000000 0x1000>; | ||
61 | reboot-offset = <0x4>; | ||
62 | }; | ||
63 | |||
64 | ----------------------------------------------------------------------- | ||
40 | Hisilicon CPU controller | 65 | Hisilicon CPU controller |
41 | 66 | ||
42 | Required properties: | 67 | Required properties: |
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index 31065cc01df3..293b80e196b7 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile | |||
@@ -123,6 +123,8 @@ dtb-$(CONFIG_ARCH_HIX5HD2) += \ | |||
123 | dtb-$(CONFIG_ARCH_HIGHBANK) += \ | 123 | dtb-$(CONFIG_ARCH_HIGHBANK) += \ |
124 | highbank.dtb \ | 124 | highbank.dtb \ |
125 | ecx-2000.dtb | 125 | ecx-2000.dtb |
126 | dtb-$(CONFIG_ARCH_HIP01) += \ | ||
127 | hip01-ca9x2.dtb | ||
126 | dtb-$(CONFIG_ARCH_HIP04) += \ | 128 | dtb-$(CONFIG_ARCH_HIP04) += \ |
127 | hip04-d01.dtb | 129 | hip04-d01.dtb |
128 | dtb-$(CONFIG_ARCH_INTEGRATOR) += \ | 130 | dtb-$(CONFIG_ARCH_INTEGRATOR) += \ |
diff --git a/arch/arm/boot/dts/hip01-ca9x2.dts b/arch/arm/boot/dts/hip01-ca9x2.dts new file mode 100644 index 000000000000..eca5e42770fe --- /dev/null +++ b/arch/arm/boot/dts/hip01-ca9x2.dts | |||
@@ -0,0 +1,51 @@ | |||
1 | /* | ||
2 | * Hisilicon Ltd. HiP01 SoC | ||
3 | * | ||
4 | * Copyright (C) 2014 Hisilicon Ltd. | ||
5 | * Copyright (C) 2014 Huawei Ltd. | ||
6 | * | ||
7 | * Author: Wang Long <long.wanglong@huawei.com> | ||
8 | * | ||
9 | * This program is free software; you can redistribute it and/or modify | ||
10 | * it under the terms of the GNU General Public License version 2 as | ||
11 | * published by the Free Software Foundation. | ||
12 | */ | ||
13 | |||
14 | /dts-v1/; | ||
15 | |||
16 | /* First 8KB reserved for secondary core boot */ | ||
17 | /memreserve/ 0x80000000 0x00002000; | ||
18 | |||
19 | #include "hip01.dtsi" | ||
20 | |||
21 | / { | ||
22 | model = "Hisilicon HIP01 Development Board"; | ||
23 | compatible = "hisilicon,hip01-ca9x2", "hisilicon,hip01"; | ||
24 | |||
25 | cpus { | ||
26 | #address-cells = <1>; | ||
27 | #size-cells = <0>; | ||
28 | enable-method = "hisilicon,hip01-smp"; | ||
29 | |||
30 | cpu@0 { | ||
31 | device_type = "cpu"; | ||
32 | compatible = "arm,cortex-a9"; | ||
33 | reg = <0>; | ||
34 | }; | ||
35 | |||
36 | cpu@1 { | ||
37 | device_type = "cpu"; | ||
38 | compatible = "arm,cortex-a9"; | ||
39 | reg = <1>; | ||
40 | }; | ||
41 | }; | ||
42 | |||
43 | memory { | ||
44 | device_type = "memory"; | ||
45 | reg = <0x80000000 0x80000000>; | ||
46 | }; | ||
47 | }; | ||
48 | |||
49 | &uart0 { | ||
50 | status = "okay"; | ||
51 | }; | ||
diff --git a/arch/arm/boot/dts/hip01.dtsi b/arch/arm/boot/dts/hip01.dtsi new file mode 100644 index 000000000000..33130f8461c3 --- /dev/null +++ b/arch/arm/boot/dts/hip01.dtsi | |||
@@ -0,0 +1,110 @@ | |||
1 | /* | ||
2 | * Hisilicon Ltd. HiP01 SoC | ||
3 | * | ||
4 | * Copyright (c) 2014 Hisilicon Ltd. | ||
5 | * Copyright (c) 2014 Huawei Ltd. | ||
6 | * | ||
7 | * Author: Wang Long <long.wanglong@huawei.com> | ||
8 | * | ||
9 | * This program is free software; you can redistribute it and/or modify | ||
10 | * it under the terms of the GNU General Public License version 2 as | ||
11 | * published by the Free Software Foundation. | ||
12 | */ | ||
13 | |||
14 | #include "skeleton.dtsi" | ||
15 | |||
16 | / { | ||
17 | interrupt-parent = <&gic>; | ||
18 | #address-cells = <1>; | ||
19 | #size-cells = <1>; | ||
20 | |||
21 | gic: interrupt-controller@1e001000 { | ||
22 | compatible = "arm,cortex-a9-gic"; | ||
23 | #interrupt-cells = <3>; | ||
24 | #address-cells = <0>; | ||
25 | interrupt-controller; | ||
26 | reg = <0x1a001000 0x1000>, <0x1a000100 0x1000>; | ||
27 | }; | ||
28 | |||
29 | hisi_refclk144mhz: refclk144mkhz { | ||
30 | compatible = "fixed-clock"; | ||
31 | #clock-cells = <0>; | ||
32 | clock-frequency = <144000000>; | ||
33 | clock-output-names = "hisi:refclk144khz"; | ||
34 | }; | ||
35 | |||
36 | soc { | ||
37 | #address-cells = <1>; | ||
38 | #size-cells = <1>; | ||
39 | compatible = "simple-bus"; | ||
40 | interrupt-parent = <&gic>; | ||
41 | ranges = <0 0x10000000 0x20000000>; | ||
42 | |||
43 | amba { | ||
44 | #address-cells = <1>; | ||
45 | #size-cells = <1>; | ||
46 | compatible = "arm,amba-bus"; | ||
47 | ranges; | ||
48 | |||
49 | uart0: uart@10001000 { | ||
50 | compatible = "snps,dw-apb-uart"; | ||
51 | reg = <0x10001000 0x1000>; | ||
52 | clocks = <&hisi_refclk144mhz>; | ||
53 | clock-names = "apb_pclk"; | ||
54 | reg-shift = <2>; | ||
55 | interrupts = <0 32 4>; | ||
56 | status = "disabled"; | ||
57 | }; | ||
58 | |||
59 | uart1: uart@10002000 { | ||
60 | compatible = "snps,dw-apb-uart"; | ||
61 | reg = <0x10002000 0x1000>; | ||
62 | clocks = <&hisi_refclk144mhz>; | ||
63 | clock-names = "apb_pclk"; | ||
64 | reg-shift = <2>; | ||
65 | interrupts = <0 33 4>; | ||
66 | status = "disabled"; | ||
67 | }; | ||
68 | |||
69 | uart2: uart@10003000 { | ||
70 | compatible = "snps,dw-apb-uart"; | ||
71 | reg = <0x10003000 0x1000>; | ||
72 | clocks = <&hisi_refclk144mhz>; | ||
73 | clock-names = "apb_pclk"; | ||
74 | reg-shift = <2>; | ||
75 | interrupts = <0 34 4>; | ||
76 | status = "disabled"; | ||
77 | }; | ||
78 | |||
79 | uart3: uart@10006000 { | ||
80 | compatible = "snps,dw-apb-uart"; | ||
81 | reg = <0x10006000 0x1000>; | ||
82 | clocks = <&hisi_refclk144mhz>; | ||
83 | clock-names = "apb_pclk"; | ||
84 | reg-shift = <2>; | ||
85 | interrupts = <0 4 4>; | ||
86 | status = "disabled"; | ||
87 | }; | ||
88 | }; | ||
89 | |||
90 | system-controller@10000000 { | ||
91 | compatible = "hisilicon,hip01-sysctrl", "hisilicon,sysctrl"; | ||
92 | reg = <0x10000000 0x1000>; | ||
93 | reboot-offset = <0x4>; | ||
94 | }; | ||
95 | |||
96 | global_timer@0a000200 { | ||
97 | compatible = "arm,cortex-a9-global-timer"; | ||
98 | reg = <0x0a000200 0x100>; | ||
99 | interrupts = <1 11 0xf04>; | ||
100 | clocks = <&hisi_refclk144mhz>; | ||
101 | }; | ||
102 | |||
103 | local_timer@0a000600 { | ||
104 | compatible = "arm,cortex-a9-twd-timer"; | ||
105 | reg = <0x0a000600 0x100>; | ||
106 | interrupts = <1 13 0xf04>; | ||
107 | clocks = <&hisi_refclk144mhz>; | ||
108 | }; | ||
109 | }; | ||
110 | }; | ||