aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/boot
diff options
context:
space:
mode:
authorLinus Walleij <linus.walleij@linaro.org>2012-09-06 04:08:47 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2012-09-17 18:20:22 -0400
commit4672cddff21f6edde857aa4b523bbc1bfc741cf8 (patch)
tree95af82598243419da14f78aab39474778071fed3 /arch/arm/boot
parent4980f9bc2cec0f8ff0e0f2b021d46c7606ae1849 (diff)
ARM: 7518/1: integrator: convert AMBA devices to device tree
This converts the AMBA (PrimeCell) devices on the Integrator/AP and Integrator/CP over to probing from the Device Tree if the kernel is compiled for Device Tree support. We continue to #ifdef out all non-DT code and vice versa on respective boot type to get a clean cut. We need to add a bunch of auxdata (compare to the Versatile) to handle bus names and callbacks alike. Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/boot')
-rw-r--r--arch/arm/boot/dts/integrator.dtsi38
-rw-r--r--arch/arm/boot/dts/integratorap.dts32
-rw-r--r--arch/arm/boot/dts/integratorcp.dts49
3 files changed, 119 insertions, 0 deletions
diff --git a/arch/arm/boot/dts/integrator.dtsi b/arch/arm/boot/dts/integrator.dtsi
index b464abadd10..9bcc09d5445 100644
--- a/arch/arm/boot/dts/integrator.dtsi
+++ b/arch/arm/boot/dts/integrator.dtsi
@@ -30,4 +30,42 @@
30 reg = <0x14000000 0x100>; 30 reg = <0x14000000 0x100>;
31 clear-mask = <0xffffffff>; 31 clear-mask = <0xffffffff>;
32 }; 32 };
33
34 fpga {
35 compatible = "arm,amba-bus", "simple-bus";
36 #address-cells = <1>;
37 #size-cells = <1>;
38 ranges;
39 interrupt-parent = <&pic>;
40
41 /*
42 * These PrimeCells are in the same locations and using the
43 * same interrupts in all Integrators, however the silicon
44 * version deployed is different.
45 */
46 rtc@15000000 {
47 reg = <0x15000000 0x1000>;
48 interrupts = <8>;
49 };
50
51 uart@16000000 {
52 reg = <0x16000000 0x1000>;
53 interrupts = <1>;
54 };
55
56 uart@17000000 {
57 reg = <0x17000000 0x1000>;
58 interrupts = <2>;
59 };
60
61 kmi@18000000 {
62 reg = <0x18000000 0x1000>;
63 interrupts = <3>;
64 };
65
66 kmi@19000000 {
67 reg = <0x19000000 0x1000>;
68 interrupts = <4>;
69 };
70 };
33}; 71};
diff --git a/arch/arm/boot/dts/integratorap.dts b/arch/arm/boot/dts/integratorap.dts
index 083ff395de0..61767757b50 100644
--- a/arch/arm/boot/dts/integratorap.dts
+++ b/arch/arm/boot/dts/integratorap.dts
@@ -33,4 +33,36 @@
33 pic: pic@14000000 { 33 pic: pic@14000000 {
34 valid-mask = <0x003fffff>; 34 valid-mask = <0x003fffff>;
35 }; 35 };
36
37 fpga {
38 /*
39 * The Integator/AP predates the idea to have magic numbers
40 * identifying the PrimeCell in hardware, thus we have to
41 * supply these from the device tree.
42 */
43 rtc: rtc@15000000 {
44 compatible = "arm,pl030", "arm,primecell";
45 arm,primecell-periphid = <0x00041030>;
46 };
47
48 uart0: uart@16000000 {
49 compatible = "arm,pl010", "arm,primecell";
50 arm,primecell-periphid = <0x00041010>;
51 };
52
53 uart1: uart@17000000 {
54 compatible = "arm,pl010", "arm,primecell";
55 arm,primecell-periphid = <0x00041010>;
56 };
57
58 kmi0: kmi@18000000 {
59 compatible = "arm,pl050", "arm,primecell";
60 arm,primecell-periphid = <0x00041050>;
61 };
62
63 kmi1: kmi@19000000 {
64 compatible = "arm,pl050", "arm,primecell";
65 arm,primecell-periphid = <0x00041050>;
66 };
67 };
36}; 68};
diff --git a/arch/arm/boot/dts/integratorcp.dts b/arch/arm/boot/dts/integratorcp.dts
index 63033144442..7bd49466cb0 100644
--- a/arch/arm/boot/dts/integratorcp.dts
+++ b/arch/arm/boot/dts/integratorcp.dts
@@ -51,4 +51,53 @@
51 clear-mask = <0x00000fff>; 51 clear-mask = <0x00000fff>;
52 valid-mask = <0x00000fff>; 52 valid-mask = <0x00000fff>;
53 }; 53 };
54
55 fpga {
56 /*
57 * These PrimeCells are at the same location and using
58 * the same interrupts in all Integrators, but in the CP
59 * slightly newer versions are deployed.
60 */
61 rtc@15000000 {
62 compatible = "arm,pl031", "arm,primecell";
63 };
64
65 uart@16000000 {
66 compatible = "arm,pl011", "arm,primecell";
67 };
68
69 uart@17000000 {
70 compatible = "arm,pl011", "arm,primecell";
71 };
72
73 kmi@18000000 {
74 compatible = "arm,pl050", "arm,primecell";
75 };
76
77 kmi@19000000 {
78 compatible = "arm,pl050", "arm,primecell";
79 };
80
81 /*
82 * These PrimeCells are only available on the Integrator/CP
83 */
84 mmc@1c000000 {
85 compatible = "arm,pl180", "arm,primecell";
86 reg = <0x1c000000 0x1000>;
87 interrupts = <23 24>;
88 max-frequency = <515633>;
89 };
90
91 aaci@1d000000 {
92 compatible = "arm,pl041", "arm,primecell";
93 reg = <0x1d000000 0x1000>;
94 interrupts = <25>;
95 };
96
97 clcd@c0000000 {
98 compatible = "arm,pl110", "arm,primecell";
99 reg = <0xC0000000 0x1000>;
100 interrupts = <22>;
101 };
102 };
54}; 103};