diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-12-09 20:17:47 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-12-09 20:17:47 -0500 |
commit | ed8efd2de75479a175bd21df073d9e97df65a820 (patch) | |
tree | ced8d7eaac311de88c88b5536edeecd4db6b7ae2 /arch/arm64 | |
parent | 151cd97630f87451cab412e40750d0e5f7581c98 (diff) | |
parent | 70bcc9ba15690f1e616fd5f60831f4602dd39670 (diff) |
Merge tag 'arm64-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM64 SoC changes from Arnd Bergmann:
"This adds support for two new ARM64 platforms:
- ARM Juno
- AMD Seattle
We had submissions for a number of additional platforms from Samsung,
Freescale and Spreadtrum but are still working out the best process
for getting these merged"
* tag 'arm64-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
arm64: amd-seattle: Fix PCI bus range due to SMMU limitation
arm64: ARM: Fix the Generic Timers interrupt active level description
arm64: amd-seattle: Adding device tree for AMD Seattle platform
arm64: Add Juno board device tree.
arm64: Create link to include/dt-bindings to enable C preprocessor use.
Diffstat (limited to 'arch/arm64')
-rw-r--r-- | arch/arm64/Kconfig | 5 | ||||
-rw-r--r-- | arch/arm64/boot/dts/Makefile | 1 | ||||
-rw-r--r-- | arch/arm64/boot/dts/amd/Makefile | 5 | ||||
-rw-r--r-- | arch/arm64/boot/dts/amd/amd-overdrive.dts | 66 | ||||
-rw-r--r-- | arch/arm64/boot/dts/amd/amd-seattle-clks.dtsi | 54 | ||||
-rw-r--r-- | arch/arm64/boot/dts/amd/amd-seattle-soc.dtsi | 172 | ||||
-rw-r--r-- | arch/arm64/boot/dts/arm/Makefile | 1 | ||||
-rw-r--r-- | arch/arm64/boot/dts/arm/foundation-v8.dts | 8 | ||||
-rw-r--r-- | arch/arm64/boot/dts/arm/juno-clocks.dtsi | 44 | ||||
-rw-r--r-- | arch/arm64/boot/dts/arm/juno-motherboard.dtsi | 129 | ||||
-rw-r--r-- | arch/arm64/boot/dts/arm/juno.dts | 218 | ||||
-rw-r--r-- | arch/arm64/boot/dts/arm/rtsm_ve-aemv8a.dts | 8 | ||||
l--------- | arch/arm64/boot/dts/include/dt-bindings | 1 |
13 files changed, 704 insertions, 8 deletions
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index 6caad5428178..f385273f4b24 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig | |||
@@ -145,6 +145,11 @@ source "kernel/Kconfig.freezer" | |||
145 | 145 | ||
146 | menu "Platform selection" | 146 | menu "Platform selection" |
147 | 147 | ||
148 | config ARCH_SEATTLE | ||
149 | bool "AMD Seattle SoC Family" | ||
150 | help | ||
151 | This enables support for AMD Seattle SOC Family | ||
152 | |||
148 | config ARCH_THUNDER | 153 | config ARCH_THUNDER |
149 | bool "Cavium Inc. Thunder SoC Family" | 154 | bool "Cavium Inc. Thunder SoC Family" |
150 | help | 155 | help |
diff --git a/arch/arm64/boot/dts/Makefile b/arch/arm64/boot/dts/Makefile index e8efc8ff3d58..3b8d427c3985 100644 --- a/arch/arm64/boot/dts/Makefile +++ b/arch/arm64/boot/dts/Makefile | |||
@@ -1,3 +1,4 @@ | |||
1 | dts-dirs += amd | ||
1 | dts-dirs += apm | 2 | dts-dirs += apm |
2 | dts-dirs += arm | 3 | dts-dirs += arm |
3 | dts-dirs += cavium | 4 | dts-dirs += cavium |
diff --git a/arch/arm64/boot/dts/amd/Makefile b/arch/arm64/boot/dts/amd/Makefile new file mode 100644 index 000000000000..cfdf701e05df --- /dev/null +++ b/arch/arm64/boot/dts/amd/Makefile | |||
@@ -0,0 +1,5 @@ | |||
1 | dtb-$(CONFIG_ARCH_SEATTLE) += amd-overdrive.dtb | ||
2 | |||
3 | always := $(dtb-y) | ||
4 | subdir-y := $(dts-dirs) | ||
5 | clean-files := *.dtb | ||
diff --git a/arch/arm64/boot/dts/amd/amd-overdrive.dts b/arch/arm64/boot/dts/amd/amd-overdrive.dts new file mode 100644 index 000000000000..564a3f7df71d --- /dev/null +++ b/arch/arm64/boot/dts/amd/amd-overdrive.dts | |||
@@ -0,0 +1,66 @@ | |||
1 | /* | ||
2 | * DTS file for AMD Seattle Overdrive Development Board | ||
3 | * | ||
4 | * Copyright (C) 2014 Advanced Micro Devices, Inc. | ||
5 | */ | ||
6 | |||
7 | /dts-v1/; | ||
8 | |||
9 | /include/ "amd-seattle-soc.dtsi" | ||
10 | |||
11 | / { | ||
12 | model = "AMD Seattle Development Board (Overdrive)"; | ||
13 | compatible = "amd,seattle-overdrive", "amd,seattle"; | ||
14 | |||
15 | chosen { | ||
16 | stdout-path = &serial0; | ||
17 | linux,pci-probe-only; | ||
18 | }; | ||
19 | }; | ||
20 | |||
21 | &ccp0 { | ||
22 | status = "ok"; | ||
23 | }; | ||
24 | |||
25 | &gpio0 { | ||
26 | status = "ok"; | ||
27 | }; | ||
28 | |||
29 | &gpio1 { | ||
30 | status = "ok"; | ||
31 | }; | ||
32 | |||
33 | &i2c0 { | ||
34 | status = "ok"; | ||
35 | }; | ||
36 | |||
37 | &pcie0 { | ||
38 | status = "ok"; | ||
39 | }; | ||
40 | |||
41 | &spi0 { | ||
42 | status = "ok"; | ||
43 | }; | ||
44 | |||
45 | &spi1 { | ||
46 | status = "ok"; | ||
47 | sdcard0: sdcard@0 { | ||
48 | compatible = "mmc-spi-slot"; | ||
49 | reg = <0>; | ||
50 | spi-max-frequency = <20000000>; | ||
51 | voltage-ranges = <3200 3400>; | ||
52 | gpios = <&gpio0 7 0>; | ||
53 | interrupt-parent = <&gpio0>; | ||
54 | interrupts = <7 3>; | ||
55 | pl022,hierarchy = <0>; | ||
56 | pl022,interface = <0>; | ||
57 | pl022,com-mode = <0x0>; | ||
58 | pl022,rx-level-trig = <0>; | ||
59 | pl022,tx-level-trig = <0>; | ||
60 | }; | ||
61 | }; | ||
62 | |||
63 | &v2m0 { | ||
64 | arm,msi-base-spi = <64>; | ||
65 | arm,msi-num-spis = <256>; | ||
66 | }; | ||
diff --git a/arch/arm64/boot/dts/amd/amd-seattle-clks.dtsi b/arch/arm64/boot/dts/amd/amd-seattle-clks.dtsi new file mode 100644 index 000000000000..f623c46525a6 --- /dev/null +++ b/arch/arm64/boot/dts/amd/amd-seattle-clks.dtsi | |||
@@ -0,0 +1,54 @@ | |||
1 | /* | ||
2 | * DTS file for AMD Seattle Clocks | ||
3 | * | ||
4 | * Copyright (C) 2014 Advanced Micro Devices, Inc. | ||
5 | */ | ||
6 | |||
7 | adl3clk_100mhz: clk100mhz_0 { | ||
8 | compatible = "fixed-clock"; | ||
9 | #clock-cells = <0>; | ||
10 | clock-frequency = <100000000>; | ||
11 | clock-output-names = "adl3clk_100mhz"; | ||
12 | }; | ||
13 | |||
14 | ccpclk_375mhz: clk375mhz { | ||
15 | compatible = "fixed-clock"; | ||
16 | #clock-cells = <0>; | ||
17 | clock-frequency = <375000000>; | ||
18 | clock-output-names = "ccpclk_375mhz"; | ||
19 | }; | ||
20 | |||
21 | sataclk_333mhz: clk333mhz { | ||
22 | compatible = "fixed-clock"; | ||
23 | #clock-cells = <0>; | ||
24 | clock-frequency = <333000000>; | ||
25 | clock-output-names = "sataclk_333mhz"; | ||
26 | }; | ||
27 | |||
28 | pcieclk_500mhz: clk500mhz_0 { | ||
29 | compatible = "fixed-clock"; | ||
30 | #clock-cells = <0>; | ||
31 | clock-frequency = <500000000>; | ||
32 | clock-output-names = "pcieclk_500mhz"; | ||
33 | }; | ||
34 | |||
35 | dmaclk_500mhz: clk500mhz_1 { | ||
36 | compatible = "fixed-clock"; | ||
37 | #clock-cells = <0>; | ||
38 | clock-frequency = <500000000>; | ||
39 | clock-output-names = "dmaclk_500mhz"; | ||
40 | }; | ||
41 | |||
42 | miscclk_250mhz: clk250mhz_4 { | ||
43 | compatible = "fixed-clock"; | ||
44 | #clock-cells = <0>; | ||
45 | clock-frequency = <250000000>; | ||
46 | clock-output-names = "miscclk_250mhz"; | ||
47 | }; | ||
48 | |||
49 | uartspiclk_100mhz: clk100mhz_1 { | ||
50 | compatible = "fixed-clock"; | ||
51 | #clock-cells = <0>; | ||
52 | clock-frequency = <100000000>; | ||
53 | clock-output-names = "uartspiclk_100mhz"; | ||
54 | }; | ||
diff --git a/arch/arm64/boot/dts/amd/amd-seattle-soc.dtsi b/arch/arm64/boot/dts/amd/amd-seattle-soc.dtsi new file mode 100644 index 000000000000..2874d92881fd --- /dev/null +++ b/arch/arm64/boot/dts/amd/amd-seattle-soc.dtsi | |||
@@ -0,0 +1,172 @@ | |||
1 | /* | ||
2 | * DTS file for AMD Seattle SoC | ||
3 | * | ||
4 | * Copyright (C) 2014 Advanced Micro Devices, Inc. | ||
5 | */ | ||
6 | |||
7 | / { | ||
8 | compatible = "amd,seattle"; | ||
9 | interrupt-parent = <&gic0>; | ||
10 | #address-cells = <2>; | ||
11 | #size-cells = <2>; | ||
12 | |||
13 | gic0: interrupt-controller@e1101000 { | ||
14 | compatible = "arm,gic-400", "arm,cortex-a15-gic"; | ||
15 | interrupt-controller; | ||
16 | #interrupt-cells = <3>; | ||
17 | #address-cells = <2>; | ||
18 | #size-cells = <2>; | ||
19 | reg = <0x0 0xe1110000 0 0x1000>, | ||
20 | <0x0 0xe112f000 0 0x2000>, | ||
21 | <0x0 0xe1140000 0 0x10000>, | ||
22 | <0x0 0xe1160000 0 0x10000>; | ||
23 | interrupts = <1 9 0xf04>; | ||
24 | ranges = <0 0 0 0xe1100000 0 0x100000>; | ||
25 | v2m0: v2m@e0080000 { | ||
26 | compatible = "arm,gic-v2m-frame"; | ||
27 | msi-controller; | ||
28 | reg = <0x0 0x00080000 0 0x1000>; | ||
29 | }; | ||
30 | }; | ||
31 | |||
32 | timer { | ||
33 | compatible = "arm,armv8-timer"; | ||
34 | interrupts = <1 13 0xff04>, | ||
35 | <1 14 0xff04>, | ||
36 | <1 11 0xff04>, | ||
37 | <1 10 0xff04>; | ||
38 | }; | ||
39 | |||
40 | pmu { | ||
41 | compatible = "arm,armv8-pmuv3"; | ||
42 | interrupts = <0 7 4>, | ||
43 | <0 8 4>, | ||
44 | <0 9 4>, | ||
45 | <0 10 4>, | ||
46 | <0 11 4>, | ||
47 | <0 12 4>, | ||
48 | <0 13 4>, | ||
49 | <0 14 4>; | ||
50 | }; | ||
51 | |||
52 | smb0: smb { | ||
53 | compatible = "simple-bus"; | ||
54 | #address-cells = <2>; | ||
55 | #size-cells = <2>; | ||
56 | ranges; | ||
57 | |||
58 | /* DDR range is 40-bit addressing */ | ||
59 | dma-ranges = <0x80 0x0 0x80 0x0 0x7f 0xffffffff>; | ||
60 | |||
61 | /include/ "amd-seattle-clks.dtsi" | ||
62 | |||
63 | sata0: sata@e0300000 { | ||
64 | compatible = "snps,dwc-ahci"; | ||
65 | reg = <0 0xe0300000 0 0x800>; | ||
66 | interrupts = <0 355 4>; | ||
67 | clocks = <&sataclk_333mhz>; | ||
68 | dma-coherent; | ||
69 | }; | ||
70 | |||
71 | i2c0: i2c@e1000000 { | ||
72 | status = "disabled"; | ||
73 | compatible = "snps,designware-i2c"; | ||
74 | reg = <0 0xe1000000 0 0x1000>; | ||
75 | interrupts = <0 357 4>; | ||
76 | clocks = <&uartspiclk_100mhz>; | ||
77 | }; | ||
78 | |||
79 | serial0: serial@e1010000 { | ||
80 | compatible = "arm,pl011", "arm,primecell"; | ||
81 | reg = <0 0xe1010000 0 0x1000>; | ||
82 | interrupts = <0 328 4>; | ||
83 | clocks = <&uartspiclk_100mhz>, <&uartspiclk_100mhz>; | ||
84 | clock-names = "uartclk", "apb_pclk"; | ||
85 | }; | ||
86 | |||
87 | spi0: ssp@e1020000 { | ||
88 | status = "disabled"; | ||
89 | compatible = "arm,pl022", "arm,primecell"; | ||
90 | #gpio-cells = <2>; | ||
91 | reg = <0 0xe1020000 0 0x1000>; | ||
92 | spi-controller; | ||
93 | interrupts = <0 330 4>; | ||
94 | clocks = <&uartspiclk_100mhz>; | ||
95 | clock-names = "apb_pclk"; | ||
96 | }; | ||
97 | |||
98 | spi1: ssp@e1030000 { | ||
99 | status = "disabled"; | ||
100 | compatible = "arm,pl022", "arm,primecell"; | ||
101 | #gpio-cells = <2>; | ||
102 | reg = <0 0xe1030000 0 0x1000>; | ||
103 | spi-controller; | ||
104 | interrupts = <0 329 4>; | ||
105 | clocks = <&uartspiclk_100mhz>; | ||
106 | clock-names = "apb_pclk"; | ||
107 | num-cs = <1>; | ||
108 | #address-cells = <1>; | ||
109 | #size-cells = <0>; | ||
110 | }; | ||
111 | |||
112 | gpio0: gpio@e1040000 { | ||
113 | status = "disabled"; | ||
114 | compatible = "arm,pl061", "arm,primecell"; | ||
115 | #gpio-cells = <2>; | ||
116 | reg = <0 0xe1040000 0 0x1000>; | ||
117 | gpio-controller; | ||
118 | interrupts = <0 359 4>; | ||
119 | interrupt-controller; | ||
120 | #interrupt-cells = <2>; | ||
121 | clocks = <&uartspiclk_100mhz>; | ||
122 | clock-names = "apb_pclk"; | ||
123 | }; | ||
124 | |||
125 | gpio1: gpio@e1050000 { | ||
126 | status = "disabled"; | ||
127 | compatible = "arm,pl061", "arm,primecell"; | ||
128 | #gpio-cells = <2>; | ||
129 | reg = <0 0xe1050000 0 0x1000>; | ||
130 | gpio-controller; | ||
131 | interrupts = <0 358 4>; | ||
132 | clocks = <&uartspiclk_100mhz>; | ||
133 | clock-names = "apb_pclk"; | ||
134 | }; | ||
135 | |||
136 | ccp0: ccp@e0100000 { | ||
137 | status = "disabled"; | ||
138 | compatible = "amd,ccp-seattle-v1a"; | ||
139 | reg = <0 0xe0100000 0 0x10000>; | ||
140 | interrupts = <0 3 4>; | ||
141 | dma-coherent; | ||
142 | }; | ||
143 | |||
144 | pcie0: pcie@f0000000 { | ||
145 | compatible = "pci-host-ecam-generic"; | ||
146 | #address-cells = <3>; | ||
147 | #size-cells = <2>; | ||
148 | #interrupt-cells = <1>; | ||
149 | device_type = "pci"; | ||
150 | bus-range = <0 0x7f>; | ||
151 | msi-parent = <&v2m0>; | ||
152 | reg = <0 0xf0000000 0 0x10000000>; | ||
153 | |||
154 | interrupt-map-mask = <0xf800 0x0 0x0 0x7>; | ||
155 | interrupt-map = | ||
156 | <0x1000 0x0 0x0 0x1 &gic0 0x0 0x0 0x0 0x120 0x1>, | ||
157 | <0x1000 0x0 0x0 0x2 &gic0 0x0 0x0 0x0 0x121 0x1>, | ||
158 | <0x1000 0x0 0x0 0x3 &gic0 0x0 0x0 0x0 0x122 0x1>, | ||
159 | <0x1000 0x0 0x0 0x4 &gic0 0x0 0x0 0x0 0x123 0x1>; | ||
160 | |||
161 | dma-coherent; | ||
162 | dma-ranges = <0x43000000 0x80 0x0 0x80 0x0 0x7f 0xffffffff>; | ||
163 | ranges = | ||
164 | /* I/O Memory (size=64K) */ | ||
165 | <0x01000000 0x00 0x00000000 0x00 0xefff0000 0x00 0x00010000>, | ||
166 | /* 32-bit MMIO (size=2G) */ | ||
167 | <0x02000000 0x00 0x40000000 0x00 0x40000000 0x00 0x80000000>, | ||
168 | /* 64-bit MMIO (size= 124G) */ | ||
169 | <0x03000000 0x01 0x00000000 0x01 0x00000000 0x7f 0x00000000>; | ||
170 | }; | ||
171 | }; | ||
172 | }; | ||
diff --git a/arch/arm64/boot/dts/arm/Makefile b/arch/arm64/boot/dts/arm/Makefile index 43d1404bb3c1..301a0dada1fe 100644 --- a/arch/arm64/boot/dts/arm/Makefile +++ b/arch/arm64/boot/dts/arm/Makefile | |||
@@ -1,4 +1,5 @@ | |||
1 | dtb-$(CONFIG_ARCH_VEXPRESS) += foundation-v8.dtb | 1 | dtb-$(CONFIG_ARCH_VEXPRESS) += foundation-v8.dtb |
2 | dtb-$(CONFIG_ARCH_VEXPRESS) += juno.dtb | ||
2 | dtb-$(CONFIG_ARCH_VEXPRESS) += rtsm_ve-aemv8a.dtb | 3 | dtb-$(CONFIG_ARCH_VEXPRESS) += rtsm_ve-aemv8a.dtb |
3 | 4 | ||
4 | always := $(dtb-y) | 5 | always := $(dtb-y) |
diff --git a/arch/arm64/boot/dts/arm/foundation-v8.dts b/arch/arm64/boot/dts/arm/foundation-v8.dts index 4a060906809d..27f32962e55c 100644 --- a/arch/arm64/boot/dts/arm/foundation-v8.dts +++ b/arch/arm64/boot/dts/arm/foundation-v8.dts | |||
@@ -78,10 +78,10 @@ | |||
78 | 78 | ||
79 | timer { | 79 | timer { |
80 | compatible = "arm,armv8-timer"; | 80 | compatible = "arm,armv8-timer"; |
81 | interrupts = <1 13 0xff01>, | 81 | interrupts = <1 13 0xf08>, |
82 | <1 14 0xff01>, | 82 | <1 14 0xf08>, |
83 | <1 11 0xff01>, | 83 | <1 11 0xf08>, |
84 | <1 10 0xff01>; | 84 | <1 10 0xf08>; |
85 | clock-frequency = <100000000>; | 85 | clock-frequency = <100000000>; |
86 | }; | 86 | }; |
87 | 87 | ||
diff --git a/arch/arm64/boot/dts/arm/juno-clocks.dtsi b/arch/arm64/boot/dts/arm/juno-clocks.dtsi new file mode 100644 index 000000000000..ea2b5666a16f --- /dev/null +++ b/arch/arm64/boot/dts/arm/juno-clocks.dtsi | |||
@@ -0,0 +1,44 @@ | |||
1 | /* | ||
2 | * ARM Juno Platform clocks | ||
3 | * | ||
4 | * Copyright (c) 2013-2014 ARM Ltd | ||
5 | * | ||
6 | * This file is licensed under a dual GPLv2 or BSD license. | ||
7 | * | ||
8 | */ | ||
9 | |||
10 | /* SoC fixed clocks */ | ||
11 | soc_uartclk: refclk72738khz { | ||
12 | compatible = "fixed-clock"; | ||
13 | #clock-cells = <0>; | ||
14 | clock-frequency = <7273800>; | ||
15 | clock-output-names = "juno:uartclk"; | ||
16 | }; | ||
17 | |||
18 | soc_usb48mhz: clk48mhz { | ||
19 | compatible = "fixed-clock"; | ||
20 | #clock-cells = <0>; | ||
21 | clock-frequency = <48000000>; | ||
22 | clock-output-names = "clk48mhz"; | ||
23 | }; | ||
24 | |||
25 | soc_smc50mhz: clk50mhz { | ||
26 | compatible = "fixed-clock"; | ||
27 | #clock-cells = <0>; | ||
28 | clock-frequency = <50000000>; | ||
29 | clock-output-names = "smc_clk"; | ||
30 | }; | ||
31 | |||
32 | soc_refclk100mhz: refclk100mhz { | ||
33 | compatible = "fixed-clock"; | ||
34 | #clock-cells = <0>; | ||
35 | clock-frequency = <100000000>; | ||
36 | clock-output-names = "apb_pclk"; | ||
37 | }; | ||
38 | |||
39 | soc_faxiclk: refclk533mhz { | ||
40 | compatible = "fixed-clock"; | ||
41 | #clock-cells = <0>; | ||
42 | clock-frequency = <533000000>; | ||
43 | clock-output-names = "faxi_clk"; | ||
44 | }; | ||
diff --git a/arch/arm64/boot/dts/arm/juno-motherboard.dtsi b/arch/arm64/boot/dts/arm/juno-motherboard.dtsi new file mode 100644 index 000000000000..c138b95a8356 --- /dev/null +++ b/arch/arm64/boot/dts/arm/juno-motherboard.dtsi | |||
@@ -0,0 +1,129 @@ | |||
1 | /* | ||
2 | * ARM Juno Platform motherboard peripherals | ||
3 | * | ||
4 | * Copyright (c) 2013-2014 ARM Ltd | ||
5 | * | ||
6 | * This file is licensed under a dual GPLv2 or BSD license. | ||
7 | * | ||
8 | */ | ||
9 | |||
10 | mb_clk24mhz: clk24mhz { | ||
11 | compatible = "fixed-clock"; | ||
12 | #clock-cells = <0>; | ||
13 | clock-frequency = <24000000>; | ||
14 | clock-output-names = "juno_mb:clk24mhz"; | ||
15 | }; | ||
16 | |||
17 | mb_clk25mhz: clk25mhz { | ||
18 | compatible = "fixed-clock"; | ||
19 | #clock-cells = <0>; | ||
20 | clock-frequency = <25000000>; | ||
21 | clock-output-names = "juno_mb:clk25mhz"; | ||
22 | }; | ||
23 | |||
24 | motherboard { | ||
25 | compatible = "arm,vexpress,v2p-p1", "simple-bus"; | ||
26 | #address-cells = <2>; /* SMB chipselect number and offset */ | ||
27 | #size-cells = <1>; | ||
28 | #interrupt-cells = <1>; | ||
29 | ranges; | ||
30 | model = "V2M-Juno"; | ||
31 | arm,hbi = <0x252>; | ||
32 | arm,vexpress,site = <0>; | ||
33 | arm,v2m-memory-map = "rs1"; | ||
34 | |||
35 | mb_fixed_3v3: fixedregulator@0 { | ||
36 | compatible = "regulator-fixed"; | ||
37 | regulator-name = "MCC_SB_3V3"; | ||
38 | regulator-min-microvolt = <3300000>; | ||
39 | regulator-max-microvolt = <3300000>; | ||
40 | regulator-always-on; | ||
41 | }; | ||
42 | |||
43 | ethernet@2,00000000 { | ||
44 | compatible = "smsc,lan9118", "smsc,lan9115"; | ||
45 | reg = <2 0x00000000 0x10000>; | ||
46 | interrupts = <3>; | ||
47 | phy-mode = "mii"; | ||
48 | reg-io-width = <4>; | ||
49 | smsc,irq-active-high; | ||
50 | smsc,irq-push-pull; | ||
51 | clocks = <&mb_clk25mhz>; | ||
52 | vdd33a-supply = <&mb_fixed_3v3>; | ||
53 | vddvario-supply = <&mb_fixed_3v3>; | ||
54 | }; | ||
55 | |||
56 | usb@5,00000000 { | ||
57 | compatible = "nxp,usb-isp1763"; | ||
58 | reg = <5 0x00000000 0x20000>; | ||
59 | bus-width = <16>; | ||
60 | interrupts = <4>; | ||
61 | }; | ||
62 | |||
63 | iofpga@3,00000000 { | ||
64 | compatible = "arm,amba-bus", "simple-bus"; | ||
65 | #address-cells = <1>; | ||
66 | #size-cells = <1>; | ||
67 | ranges = <0 3 0 0x200000>; | ||
68 | |||
69 | mmci@050000 { | ||
70 | compatible = "arm,pl180", "arm,primecell"; | ||
71 | reg = <0x050000 0x1000>; | ||
72 | interrupts = <5>; | ||
73 | /* cd-gpios = <&v2m_mmc_gpios 0 0>; | ||
74 | wp-gpios = <&v2m_mmc_gpios 1 0>; */ | ||
75 | max-frequency = <12000000>; | ||
76 | vmmc-supply = <&mb_fixed_3v3>; | ||
77 | clocks = <&mb_clk24mhz>, <&soc_smc50mhz>; | ||
78 | clock-names = "mclk", "apb_pclk"; | ||
79 | }; | ||
80 | |||
81 | kmi@060000 { | ||
82 | compatible = "arm,pl050", "arm,primecell"; | ||
83 | reg = <0x060000 0x1000>; | ||
84 | interrupts = <8>; | ||
85 | clocks = <&mb_clk24mhz>, <&soc_smc50mhz>; | ||
86 | clock-names = "KMIREFCLK", "apb_pclk"; | ||
87 | }; | ||
88 | |||
89 | kmi@070000 { | ||
90 | compatible = "arm,pl050", "arm,primecell"; | ||
91 | reg = <0x070000 0x1000>; | ||
92 | interrupts = <8>; | ||
93 | clocks = <&mb_clk24mhz>, <&soc_smc50mhz>; | ||
94 | clock-names = "KMIREFCLK", "apb_pclk"; | ||
95 | }; | ||
96 | |||
97 | wdt@0f0000 { | ||
98 | compatible = "arm,sp805", "arm,primecell"; | ||
99 | reg = <0x0f0000 0x10000>; | ||
100 | interrupts = <7>; | ||
101 | clocks = <&mb_clk24mhz>, <&soc_smc50mhz>; | ||
102 | clock-names = "wdogclk", "apb_pclk"; | ||
103 | }; | ||
104 | |||
105 | v2m_timer01: timer@110000 { | ||
106 | compatible = "arm,sp804", "arm,primecell"; | ||
107 | reg = <0x110000 0x10000>; | ||
108 | interrupts = <9>; | ||
109 | clocks = <&mb_clk24mhz>, <&soc_smc50mhz>; | ||
110 | clock-names = "timclken1", "apb_pclk"; | ||
111 | }; | ||
112 | |||
113 | v2m_timer23: timer@120000 { | ||
114 | compatible = "arm,sp804", "arm,primecell"; | ||
115 | reg = <0x120000 0x10000>; | ||
116 | interrupts = <9>; | ||
117 | clocks = <&mb_clk24mhz>, <&soc_smc50mhz>; | ||
118 | clock-names = "timclken1", "apb_pclk"; | ||
119 | }; | ||
120 | |||
121 | rtc@170000 { | ||
122 | compatible = "arm,pl031", "arm,primecell"; | ||
123 | reg = <0x170000 0x10000>; | ||
124 | interrupts = <0>; | ||
125 | clocks = <&soc_smc50mhz>; | ||
126 | clock-names = "apb_pclk"; | ||
127 | }; | ||
128 | }; | ||
129 | }; | ||
diff --git a/arch/arm64/boot/dts/arm/juno.dts b/arch/arm64/boot/dts/arm/juno.dts new file mode 100644 index 000000000000..cb3073e4e7a8 --- /dev/null +++ b/arch/arm64/boot/dts/arm/juno.dts | |||
@@ -0,0 +1,218 @@ | |||
1 | /* | ||
2 | * ARM Ltd. Juno Platform | ||
3 | * | ||
4 | * Copyright (c) 2013-2014 ARM Ltd. | ||
5 | * | ||
6 | * This file is licensed under a dual GPLv2 or BSD license. | ||
7 | */ | ||
8 | |||
9 | /dts-v1/; | ||
10 | |||
11 | #include <dt-bindings/interrupt-controller/arm-gic.h> | ||
12 | |||
13 | / { | ||
14 | model = "ARM Juno development board (r0)"; | ||
15 | compatible = "arm,juno", "arm,vexpress"; | ||
16 | interrupt-parent = <&gic>; | ||
17 | #address-cells = <2>; | ||
18 | #size-cells = <2>; | ||
19 | |||
20 | aliases { | ||
21 | serial0 = &soc_uart0; | ||
22 | }; | ||
23 | |||
24 | chosen { | ||
25 | stdout-path = &soc_uart0; | ||
26 | }; | ||
27 | |||
28 | psci { | ||
29 | compatible = "arm,psci-0.2"; | ||
30 | method = "smc"; | ||
31 | }; | ||
32 | |||
33 | cpus { | ||
34 | #address-cells = <2>; | ||
35 | #size-cells = <0>; | ||
36 | |||
37 | A57_0: cpu@0 { | ||
38 | compatible = "arm,cortex-a57","arm,armv8"; | ||
39 | reg = <0x0 0x0>; | ||
40 | device_type = "cpu"; | ||
41 | enable-method = "psci"; | ||
42 | }; | ||
43 | |||
44 | A57_1: cpu@1 { | ||
45 | compatible = "arm,cortex-a57","arm,armv8"; | ||
46 | reg = <0x0 0x1>; | ||
47 | device_type = "cpu"; | ||
48 | enable-method = "psci"; | ||
49 | }; | ||
50 | |||
51 | A53_0: cpu@100 { | ||
52 | compatible = "arm,cortex-a53","arm,armv8"; | ||
53 | reg = <0x0 0x100>; | ||
54 | device_type = "cpu"; | ||
55 | enable-method = "psci"; | ||
56 | }; | ||
57 | |||
58 | A53_1: cpu@101 { | ||
59 | compatible = "arm,cortex-a53","arm,armv8"; | ||
60 | reg = <0x0 0x101>; | ||
61 | device_type = "cpu"; | ||
62 | enable-method = "psci"; | ||
63 | }; | ||
64 | |||
65 | A53_2: cpu@102 { | ||
66 | compatible = "arm,cortex-a53","arm,armv8"; | ||
67 | reg = <0x0 0x102>; | ||
68 | device_type = "cpu"; | ||
69 | enable-method = "psci"; | ||
70 | }; | ||
71 | |||
72 | A53_3: cpu@103 { | ||
73 | compatible = "arm,cortex-a53","arm,armv8"; | ||
74 | reg = <0x0 0x103>; | ||
75 | device_type = "cpu"; | ||
76 | enable-method = "psci"; | ||
77 | }; | ||
78 | }; | ||
79 | |||
80 | memory@80000000 { | ||
81 | device_type = "memory"; | ||
82 | /* last 16MB of the first memory area is reserved for secure world use by firmware */ | ||
83 | reg = <0x00000000 0x80000000 0x0 0x7f000000>, | ||
84 | <0x00000008 0x80000000 0x1 0x80000000>; | ||
85 | }; | ||
86 | |||
87 | gic: interrupt-controller@2c001000 { | ||
88 | compatible = "arm,gic-400", "arm,cortex-a15-gic"; | ||
89 | reg = <0x0 0x2c010000 0 0x1000>, | ||
90 | <0x0 0x2c02f000 0 0x2000>, | ||
91 | <0x0 0x2c04f000 0 0x2000>, | ||
92 | <0x0 0x2c06f000 0 0x2000>; | ||
93 | #address-cells = <0>; | ||
94 | #interrupt-cells = <3>; | ||
95 | interrupt-controller; | ||
96 | interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_HIGH)>; | ||
97 | }; | ||
98 | |||
99 | timer { | ||
100 | compatible = "arm,armv8-timer"; | ||
101 | interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>, | ||
102 | <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>, | ||
103 | <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>, | ||
104 | <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>; | ||
105 | }; | ||
106 | |||
107 | pmu { | ||
108 | compatible = "arm,armv8-pmuv3"; | ||
109 | interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>, | ||
110 | <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>, | ||
111 | <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>, | ||
112 | <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>, | ||
113 | <GIC_SPI 02 IRQ_TYPE_LEVEL_HIGH>, | ||
114 | <GIC_SPI 06 IRQ_TYPE_LEVEL_HIGH>; | ||
115 | }; | ||
116 | |||
117 | /include/ "juno-clocks.dtsi" | ||
118 | |||
119 | dma@7ff00000 { | ||
120 | compatible = "arm,pl330", "arm,primecell"; | ||
121 | reg = <0x0 0x7ff00000 0 0x1000>; | ||
122 | #dma-cells = <1>; | ||
123 | #dma-channels = <8>; | ||
124 | #dma-requests = <32>; | ||
125 | interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>, | ||
126 | <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>, | ||
127 | <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>, | ||
128 | <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>, | ||
129 | <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>, | ||
130 | <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>, | ||
131 | <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>, | ||
132 | <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>; | ||
133 | clocks = <&soc_faxiclk>; | ||
134 | clock-names = "apb_pclk"; | ||
135 | }; | ||
136 | |||
137 | soc_uart0: uart@7ff80000 { | ||
138 | compatible = "arm,pl011", "arm,primecell"; | ||
139 | reg = <0x0 0x7ff80000 0x0 0x1000>; | ||
140 | interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; | ||
141 | clocks = <&soc_uartclk>, <&soc_refclk100mhz>; | ||
142 | clock-names = "uartclk", "apb_pclk"; | ||
143 | }; | ||
144 | |||
145 | i2c@7ffa0000 { | ||
146 | compatible = "snps,designware-i2c"; | ||
147 | reg = <0x0 0x7ffa0000 0x0 0x1000>; | ||
148 | #address-cells = <1>; | ||
149 | #size-cells = <0>; | ||
150 | interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>; | ||
151 | clock-frequency = <400000>; | ||
152 | i2c-sda-hold-time-ns = <500>; | ||
153 | clocks = <&soc_smc50mhz>; | ||
154 | |||
155 | dvi0: dvi-transmitter@70 { | ||
156 | compatible = "nxp,tda998x"; | ||
157 | reg = <0x70>; | ||
158 | }; | ||
159 | |||
160 | dvi1: dvi-transmitter@71 { | ||
161 | compatible = "nxp,tda998x"; | ||
162 | reg = <0x71>; | ||
163 | }; | ||
164 | }; | ||
165 | |||
166 | ohci@7ffb0000 { | ||
167 | compatible = "generic-ohci"; | ||
168 | reg = <0x0 0x7ffb0000 0x0 0x10000>; | ||
169 | interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>; | ||
170 | clocks = <&soc_usb48mhz>; | ||
171 | }; | ||
172 | |||
173 | ehci@7ffc0000 { | ||
174 | compatible = "generic-ehci"; | ||
175 | reg = <0x0 0x7ffc0000 0x0 0x10000>; | ||
176 | interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>; | ||
177 | clocks = <&soc_usb48mhz>; | ||
178 | }; | ||
179 | |||
180 | memory-controller@7ffd0000 { | ||
181 | compatible = "arm,pl354", "arm,primecell"; | ||
182 | reg = <0 0x7ffd0000 0 0x1000>; | ||
183 | interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>, | ||
184 | <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>; | ||
185 | clocks = <&soc_smc50mhz>; | ||
186 | clock-names = "apb_pclk"; | ||
187 | }; | ||
188 | |||
189 | smb { | ||
190 | compatible = "simple-bus"; | ||
191 | #address-cells = <2>; | ||
192 | #size-cells = <1>; | ||
193 | ranges = <0 0 0 0x08000000 0x04000000>, | ||
194 | <1 0 0 0x14000000 0x04000000>, | ||
195 | <2 0 0 0x18000000 0x04000000>, | ||
196 | <3 0 0 0x1c000000 0x04000000>, | ||
197 | <4 0 0 0x0c000000 0x04000000>, | ||
198 | <5 0 0 0x10000000 0x04000000>; | ||
199 | |||
200 | #interrupt-cells = <1>; | ||
201 | interrupt-map-mask = <0 0 15>; | ||
202 | interrupt-map = <0 0 0 &gic 0 68 IRQ_TYPE_LEVEL_HIGH>, | ||
203 | <0 0 1 &gic 0 69 IRQ_TYPE_LEVEL_HIGH>, | ||
204 | <0 0 2 &gic 0 70 IRQ_TYPE_LEVEL_HIGH>, | ||
205 | <0 0 3 &gic 0 160 IRQ_TYPE_LEVEL_HIGH>, | ||
206 | <0 0 4 &gic 0 161 IRQ_TYPE_LEVEL_HIGH>, | ||
207 | <0 0 5 &gic 0 162 IRQ_TYPE_LEVEL_HIGH>, | ||
208 | <0 0 6 &gic 0 163 IRQ_TYPE_LEVEL_HIGH>, | ||
209 | <0 0 7 &gic 0 164 IRQ_TYPE_LEVEL_HIGH>, | ||
210 | <0 0 8 &gic 0 165 IRQ_TYPE_LEVEL_HIGH>, | ||
211 | <0 0 9 &gic 0 166 IRQ_TYPE_LEVEL_HIGH>, | ||
212 | <0 0 10 &gic 0 167 IRQ_TYPE_LEVEL_HIGH>, | ||
213 | <0 0 11 &gic 0 168 IRQ_TYPE_LEVEL_HIGH>, | ||
214 | <0 0 12 &gic 0 169 IRQ_TYPE_LEVEL_HIGH>; | ||
215 | |||
216 | /include/ "juno-motherboard.dtsi" | ||
217 | }; | ||
218 | }; | ||
diff --git a/arch/arm64/boot/dts/arm/rtsm_ve-aemv8a.dts b/arch/arm64/boot/dts/arm/rtsm_ve-aemv8a.dts index 572005ea2217..efc59b3baf63 100644 --- a/arch/arm64/boot/dts/arm/rtsm_ve-aemv8a.dts +++ b/arch/arm64/boot/dts/arm/rtsm_ve-aemv8a.dts | |||
@@ -81,10 +81,10 @@ | |||
81 | 81 | ||
82 | timer { | 82 | timer { |
83 | compatible = "arm,armv8-timer"; | 83 | compatible = "arm,armv8-timer"; |
84 | interrupts = <1 13 0xff01>, | 84 | interrupts = <1 13 0xf08>, |
85 | <1 14 0xff01>, | 85 | <1 14 0xf08>, |
86 | <1 11 0xff01>, | 86 | <1 11 0xf08>, |
87 | <1 10 0xff01>; | 87 | <1 10 0xf08>; |
88 | clock-frequency = <100000000>; | 88 | clock-frequency = <100000000>; |
89 | }; | 89 | }; |
90 | 90 | ||
diff --git a/arch/arm64/boot/dts/include/dt-bindings b/arch/arm64/boot/dts/include/dt-bindings new file mode 120000 index 000000000000..08c00e4972fa --- /dev/null +++ b/arch/arm64/boot/dts/include/dt-bindings | |||
@@ -0,0 +1 @@ | |||
../../../../../include/dt-bindings \ No newline at end of file | |||