aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2012-04-30 17:45:33 -0400
committerOlof Johansson <olof@lixom.net>2012-05-09 05:15:41 -0400
commite86bde3caea693b2e615e7b3664e6273160bf864 (patch)
tree5312f387803939687ad49e9074536484f3f9f895 /arch
parent6875dc6521be57f695845d13469109a388029e43 (diff)
parent3de3d74956e26af0a5647e98f73eaf8efd0d07bd (diff)
Merge branch 'ux500-devicetree-for-arm-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson into next/dt
Linus Walleij <linus.walleij@linaro.org> writes: this pull request contains some device tree work by Lee Jones. I have tried to keep these patches in the arch/arm/boot/dts/* space to get some sanity in the branch proliferation. There is still one patch that touches arch/arm/mach-ux500 too though (but it should merge fine with the other ux500 stuff). The changes to the device tree are of course dependent on some core changes and some patching in the GPIO/pin driver, but as the device tree files are believed to be a different world (and should one day live in their own git) I split this off anyway. I don't think people bisect the device trees per se and the board code in conjunction anyway. * 'ux500-devicetree-for-arm-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson: ARM: ux500: Configure the PRCMU Timer for db8500 based devices in DT ARM: ux500: Enable the SMSC9115 on Snowball via Device Tree drivers/gpio: represent gpio-nomadik as an IRQ controller in DT documentation ARM: ux500: Rename gpio_keys in the Device Tree file drivers/gpio: gpio-nomadik: Provide documentation for Device Tree bindings drivers/gpio: gpio-nomadik: Device Tree bindings ARM: ux500: Enable the external bus with Device Tree ARM: ux500: Shorten Snowball's DT compatible gpio entry ARM: ux500: Rename the DT compatible entry for i2c devices on Snowball Signed-off-by: Arnd Bergmann <arnd@arndb.de> [olof: rebuilt branch due to drop of an early merge] Signed-off-by: Olof Johansson <olof@lixom.net>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/boot/dts/db8500.dtsi63
-rw-r--r--arch/arm/boot/dts/snowball.dts40
-rw-r--r--arch/arm/mach-ux500/board-mop500.c5
3 files changed, 72 insertions, 36 deletions
diff --git a/arch/arm/boot/dts/db8500.dtsi b/arch/arm/boot/dts/db8500.dtsi
index 14bc30705099..881bc3987844 100644
--- a/arch/arm/boot/dts/db8500.dtsi
+++ b/arch/arm/boot/dts/db8500.dtsi
@@ -55,83 +55,101 @@
55 55
56 gpio0: gpio@8012e000 { 56 gpio0: gpio@8012e000 {
57 compatible = "stericsson,db8500-gpio", 57 compatible = "stericsson,db8500-gpio",
58 "stmicroelectronics,nomadik-gpio"; 58 "st,nomadik-gpio";
59 reg = <0x8012e000 0x80>; 59 reg = <0x8012e000 0x80>;
60 interrupts = <0 119 0x4>; 60 interrupts = <0 119 0x4>;
61 supports-sleepmode; 61 supports-sleepmode;
62 gpio-controller; 62 gpio-controller;
63 #gpio-cells = <2>;
64 gpio-bank = <0>;
63 }; 65 };
64 66
65 gpio1: gpio@8012e080 { 67 gpio1: gpio@8012e080 {
66 compatible = "stericsson,db8500-gpio", 68 compatible = "stericsson,db8500-gpio",
67 "stmicroelectronics,nomadik-gpio"; 69 "st,nomadik-gpio";
68 reg = <0x8012e080 0x80>; 70 reg = <0x8012e080 0x80>;
69 interrupts = <0 120 0x4>; 71 interrupts = <0 120 0x4>;
70 supports-sleepmode; 72 supports-sleepmode;
71 gpio-controller; 73 gpio-controller;
74 #gpio-cells = <2>;
75 gpio-bank = <1>;
72 }; 76 };
73 77
74 gpio2: gpio@8000e000 { 78 gpio2: gpio@8000e000 {
75 compatible = "stericsson,db8500-gpio", 79 compatible = "stericsson,db8500-gpio",
76 "stmicroelectronics,nomadik-gpio"; 80 "st,nomadik-gpio";
77 reg = <0x8000e000 0x80>; 81 reg = <0x8000e000 0x80>;
78 interrupts = <0 121 0x4>; 82 interrupts = <0 121 0x4>;
79 supports-sleepmode; 83 supports-sleepmode;
80 gpio-controller; 84 gpio-controller;
85 #gpio-cells = <2>;
86 gpio-bank = <2>;
81 }; 87 };
82 88
83 gpio3: gpio@8000e080 { 89 gpio3: gpio@8000e080 {
84 compatible = "stericsson,db8500-gpio", 90 compatible = "stericsson,db8500-gpio",
85 "stmicroelectronics,nomadik-gpio"; 91 "st,nomadik-gpio";
86 reg = <0x8000e080 0x80>; 92 reg = <0x8000e080 0x80>;
87 interrupts = <0 122 0x4>; 93 interrupts = <0 122 0x4>;
88 supports-sleepmode; 94 supports-sleepmode;
89 gpio-controller; 95 gpio-controller;
96 #gpio-cells = <2>;
97 gpio-bank = <3>;
90 }; 98 };
91 99
92 gpio4: gpio@8000e100 { 100 gpio4: gpio@8000e100 {
93 compatible = "stericsson,db8500-gpio", 101 compatible = "stericsson,db8500-gpio",
94 "stmicroelectronics,nomadik-gpio"; 102 "st,nomadik-gpio";
95 reg = <0x8000e100 0x80>; 103 reg = <0x8000e100 0x80>;
96 interrupts = <0 123 0x4>; 104 interrupts = <0 123 0x4>;
97 supports-sleepmode; 105 supports-sleepmode;
98 gpio-controller; 106 gpio-controller;
107 #gpio-cells = <2>;
108 gpio-bank = <4>;
99 }; 109 };
100 110
101 gpio5: gpio@8000e180 { 111 gpio5: gpio@8000e180 {
102 compatible = "stericsson,db8500-gpio", 112 compatible = "stericsson,db8500-gpio",
103 "stmicroelectronics,nomadik-gpio"; 113 "st,nomadik-gpio";
104 reg = <0x8000e180 0x80>; 114 reg = <0x8000e180 0x80>;
105 interrupts = <0 124 0x4>; 115 interrupts = <0 124 0x4>;
106 supports-sleepmode; 116 supports-sleepmode;
107 gpio-controller; 117 gpio-controller;
118 #gpio-cells = <2>;
119 gpio-bank = <5>;
108 }; 120 };
109 121
110 gpio6: gpio@8011e000 { 122 gpio6: gpio@8011e000 {
111 compatible = "stericsson,db8500-gpio", 123 compatible = "stericsson,db8500-gpio",
112 "stmicroelectronics,nomadik-gpio"; 124 "st,nomadik-gpio";
113 reg = <0x8011e000 0x80>; 125 reg = <0x8011e000 0x80>;
114 interrupts = <0 125 0x4>; 126 interrupts = <0 125 0x4>;
115 supports-sleepmode; 127 supports-sleepmode;
116 gpio-controller; 128 gpio-controller;
129 #gpio-cells = <2>;
130 gpio-bank = <6>;
117 }; 131 };
118 132
119 gpio7: gpio@8011e080 { 133 gpio7: gpio@8011e080 {
120 compatible = "stericsson,db8500-gpio", 134 compatible = "stericsson,db8500-gpio",
121 "stmicroelectronics,nomadik-gpio"; 135 "st,nomadik-gpio";
122 reg = <0x8011e080 0x80>; 136 reg = <0x8011e080 0x80>;
123 interrupts = <0 126 0x4>; 137 interrupts = <0 126 0x4>;
124 supports-sleepmode; 138 supports-sleepmode;
125 gpio-controller; 139 gpio-controller;
140 #gpio-cells = <2>;
141 gpio-bank = <7>;
126 }; 142 };
127 143
128 gpio8: gpio@a03fe000 { 144 gpio8: gpio@a03fe000 {
129 compatible = "stericsson,db8500-gpio", 145 compatible = "stericsson,db8500-gpio",
130 "stmicroelectronics,nomadik-gpio"; 146 "st,nomadik-gpio";
131 reg = <0xa03fe000 0x80>; 147 reg = <0xa03fe000 0x80>;
132 interrupts = <0 127 0x4>; 148 interrupts = <0 127 0x4>;
133 supports-sleepmode; 149 supports-sleepmode;
134 gpio-controller; 150 gpio-controller;
151 #gpio-cells = <2>;
152 gpio-bank = <8>;
135 }; 153 };
136 154
137 usb@a03e0000 { 155 usb@a03e0000 {
@@ -153,7 +171,13 @@
153 reg = <0x80157000 0x1000>; 171 reg = <0x80157000 0x1000>;
154 interrupts = <46 47>; 172 interrupts = <46 47>;
155 #address-cells = <1>; 173 #address-cells = <1>;
156 #size-cells = <0>; 174 #size-cells = <1>;
175 ranges;
176
177 prcmu-timer-4@80157450 {
178 compatible = "stericsson,db8500-prcmu-timer-4";
179 reg = <0x80157450 0xC>;
180 };
157 181
158 ab8500@5 { 182 ab8500@5 {
159 compatible = "stericsson,ab8500"; 183 compatible = "stericsson,ab8500";
@@ -163,7 +187,7 @@
163 }; 187 };
164 188
165 i2c@80004000 { 189 i2c@80004000 {
166 compatible = "stericsson,db8500-i2c", "stmicroelectronics,nomadik-i2c"; 190 compatible = "stericsson,db8500-i2c", "st,nomadik-i2c";
167 reg = <0x80004000 0x1000>; 191 reg = <0x80004000 0x1000>;
168 interrupts = <0 21 0x4>; 192 interrupts = <0 21 0x4>;
169 #address-cells = <1>; 193 #address-cells = <1>;
@@ -171,7 +195,7 @@
171 }; 195 };
172 196
173 i2c@80122000 { 197 i2c@80122000 {
174 compatible = "stericsson,db8500-i2c", "stmicroelectronics,nomadik-i2c"; 198 compatible = "stericsson,db8500-i2c", "st,nomadik-i2c";
175 reg = <0x80122000 0x1000>; 199 reg = <0x80122000 0x1000>;
176 interrupts = <0 22 0x4>; 200 interrupts = <0 22 0x4>;
177 #address-cells = <1>; 201 #address-cells = <1>;
@@ -179,7 +203,7 @@
179 }; 203 };
180 204
181 i2c@80128000 { 205 i2c@80128000 {
182 compatible = "stericsson,db8500-i2c", "stmicroelectronics,nomadik-i2c"; 206 compatible = "stericsson,db8500-i2c", "st,nomadik-i2c";
183 reg = <0x80128000 0x1000>; 207 reg = <0x80128000 0x1000>;
184 interrupts = <0 55 0x4>; 208 interrupts = <0 55 0x4>;
185 #address-cells = <1>; 209 #address-cells = <1>;
@@ -187,7 +211,7 @@
187 }; 211 };
188 212
189 i2c@80110000 { 213 i2c@80110000 {
190 compatible = "stericsson,db8500-i2c", "stmicroelectronics,nomadik-i2c"; 214 compatible = "stericsson,db8500-i2c", "st,nomadik-i2c";
191 reg = <0x80110000 0x1000>; 215 reg = <0x80110000 0x1000>;
192 interrupts = <0 12 0x4>; 216 interrupts = <0 12 0x4>;
193 #address-cells = <1>; 217 #address-cells = <1>;
@@ -195,7 +219,7 @@
195 }; 219 };
196 220
197 i2c@8012a000 { 221 i2c@8012a000 {
198 compatible = "stericsson,db8500-i2c", "stmicroelectronics,nomadik-i2c"; 222 compatible = "stericsson,db8500-i2c", "st,nomadik-i2c";
199 reg = <0x8012a000 0x1000>; 223 reg = <0x8012a000 0x1000>;
200 interrupts = <0 51 0x4>; 224 interrupts = <0 51 0x4>;
201 #address-cells = <1>; 225 #address-cells = <1>;
@@ -270,5 +294,14 @@
270 interrupts = <0 100 0x4>; 294 interrupts = <0 100 0x4>;
271 status = "disabled"; 295 status = "disabled";
272 }; 296 };
297
298 external-bus@50000000 {
299 compatible = "simple-bus";
300 reg = <0x50000000 0x4000000>;
301 #address-cells = <1>;
302 #size-cells = <1>;
303 ranges = <0 0x50000000 0x4000000>;
304 status = "disabled";
305 };
273 }; 306 };
274}; 307};
diff --git a/arch/arm/boot/dts/snowball.dts b/arch/arm/boot/dts/snowball.dts
index 359c6d679156..d99dc04f0d91 100644
--- a/arch/arm/boot/dts/snowball.dts
+++ b/arch/arm/boot/dts/snowball.dts
@@ -30,35 +30,35 @@
30 wakeup = <1>; 30 wakeup = <1>;
31 linux,code = <2>; 31 linux,code = <2>;
32 label = "userpb"; 32 label = "userpb";
33 gpios = <&gpio1 0>; 33 gpios = <&gpio1 0 0>;
34 }; 34 };
35 button@2 { 35 button@2 {
36 debounce_interval = <50>; 36 debounce_interval = <50>;
37 wakeup = <1>; 37 wakeup = <1>;
38 linux,code = <3>; 38 linux,code = <3>;
39 label = "userpb"; 39 label = "extkb1";
40 gpios = <&gpio4 23>; 40 gpios = <&gpio4 23 0>;
41 }; 41 };
42 button@3 { 42 button@3 {
43 debounce_interval = <50>; 43 debounce_interval = <50>;
44 wakeup = <1>; 44 wakeup = <1>;
45 linux,code = <4>; 45 linux,code = <4>;
46 label = "userpb"; 46 label = "extkb2";
47 gpios = <&gpio4 23>; 47 gpios = <&gpio4 24 0>;
48 }; 48 };
49 button@4 { 49 button@4 {
50 debounce_interval = <50>; 50 debounce_interval = <50>;
51 wakeup = <1>; 51 wakeup = <1>;
52 linux,code = <5>; 52 linux,code = <5>;
53 label = "userpb"; 53 label = "extkb3";
54 gpios = <&gpio5 1>; 54 gpios = <&gpio5 1 0>;
55 }; 55 };
56 button@5 { 56 button@5 {
57 debounce_interval = <50>; 57 debounce_interval = <50>;
58 wakeup = <1>; 58 wakeup = <1>;
59 linux,code = <6>; 59 linux,code = <6>;
60 label = "userpb"; 60 label = "extkb4";
61 gpios = <&gpio5 2>; 61 gpios = <&gpio5 2 0>;
62 }; 62 };
63 }; 63 };
64 64
@@ -73,17 +73,19 @@
73 soc-u9500 { 73 soc-u9500 {
74 74
75 external-bus@50000000 { 75 external-bus@50000000 {
76 compatible = "simple-bus"; 76 status = "okay";
77 reg = <0x50000000 0x10000000>; 77
78 #address-cells = <1>; 78 ethernet@0 {
79 #size-cells = <1>; 79 compatible = "smsc,lan9115";
80 ranges; 80 reg = <0 0x10000>;
81 81 interrupts = <12 0x1>;
82 ethernet@50000000 {
83 compatible = "smsc,9111";
84 reg = <0x50000000 0x10000>;
85 interrupts = <12>;
86 interrupt-parent = <&gpio4>; 82 interrupt-parent = <&gpio4>;
83
84 reg-shift = <1>;
85 reg-io-width = <2>;
86 smsc,force-internal-phy;
87 smsc,irq-active-high;
88 smsc,irq-push-pull;
87 }; 89 };
88 }; 90 };
89 91
diff --git a/arch/arm/mach-ux500/board-mop500.c b/arch/arm/mach-ux500/board-mop500.c
index 77d03c1fbd04..539da3f3c1c7 100644
--- a/arch/arm/mach-ux500/board-mop500.c
+++ b/arch/arm/mach-ux500/board-mop500.c
@@ -753,9 +753,10 @@ struct of_dev_auxdata u8500_auxdata_lookup[] __initdata = {
753 {}, 753 {},
754}; 754};
755 755
756static const struct of_device_id u8500_soc_node[] = { 756static const struct of_device_id u8500_local_bus_nodes[] = {
757 /* only create devices below soc node */ 757 /* only create devices below soc node */
758 { .compatible = "stericsson,db8500", }, 758 { .compatible = "stericsson,db8500", },
759 { .compatible = "simple-bus"},
759 { }, 760 { },
760}; 761};
761 762
@@ -774,7 +775,7 @@ static void __init u8500_init_machine(void)
774 snowball_platform_devs[i]->dev.parent = parent; 775 snowball_platform_devs[i]->dev.parent = parent;
775 776
776 /* automatically probe child nodes of db8500 device */ 777 /* automatically probe child nodes of db8500 device */
777 of_platform_populate(NULL, u8500_soc_node, u8500_auxdata_lookup, parent); 778 of_platform_populate(NULL, u8500_local_bus_nodes, u8500_auxdata_lookup, parent);
778 779
779 if (of_machine_is_compatible("st-ericsson,mop500")) { 780 if (of_machine_is_compatible("st-ericsson,mop500")) {
780 mop500_gpio_keys[0].gpio = GPIO_PROX_SENSOR; 781 mop500_gpio_keys[0].gpio = GPIO_PROX_SENSOR;