aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLee Jones <lee.jones@linaro.org>2013-09-18 09:49:52 -0400
committerLinus Walleij <linus.walleij@linaro.org>2013-09-26 05:08:04 -0400
commitf1ff5b2549990b5de080b52e3313cbb30c218853 (patch)
tree8829319fb51b867372d034238e09175248ef7112
parent2120c3bfc5c5fbd12a851d5823c8e1e01deccfe7 (diff)
ARM: ux500: Stop enabling GPIOs when not booting with Device Tree
It's time to remove all ATAG support from ux500 and rely solely on Device Tree booting. This patch is part of that endeavour. Signed-off-by: Lee Jones <lee.jones@linaro.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
-rw-r--r--arch/arm/mach-ux500/board-mop500.c2
-rw-r--r--arch/arm/mach-ux500/cpu-db8500.c25
-rw-r--r--arch/arm/mach-ux500/devices-common.c60
-rw-r--r--arch/arm/mach-ux500/devices-common.h5
-rw-r--r--arch/arm/mach-ux500/devices-db8500.c1
-rw-r--r--arch/arm/mach-ux500/devices.h2
6 files changed, 0 insertions, 95 deletions
diff --git a/arch/arm/mach-ux500/board-mop500.c b/arch/arm/mach-ux500/board-mop500.c
index b468c7ccaf8f..1c0fd8316f9a 100644
--- a/arch/arm/mach-ux500/board-mop500.c
+++ b/arch/arm/mach-ux500/board-mop500.c
@@ -15,7 +15,6 @@
15#include <linux/clk.h> 15#include <linux/clk.h>
16#include <linux/io.h> 16#include <linux/io.h>
17#include <linux/platform_data/db8500_thermal.h> 17#include <linux/platform_data/db8500_thermal.h>
18#include <linux/gpio.h>
19#include <linux/amba/bus.h> 18#include <linux/amba/bus.h>
20#include <linux/amba/pl022.h> 19#include <linux/amba/pl022.h>
21#include <linux/amba/serial.h> 20#include <linux/amba/serial.h>
@@ -25,7 +24,6 @@
25#include <linux/regulator/fixed.h> 24#include <linux/regulator/fixed.h>
26#include <linux/regulator/driver.h> 25#include <linux/regulator/driver.h>
27#include <linux/mfd/tps6105x.h> 26#include <linux/mfd/tps6105x.h>
28#include <linux/mfd/abx500/ab8500-gpio.h>
29#include <linux/platform_data/leds-lp55xx.h> 27#include <linux/platform_data/leds-lp55xx.h>
30#include <linux/input.h> 28#include <linux/input.h>
31#include <linux/delay.h> 29#include <linux/delay.h>
diff --git a/arch/arm/mach-ux500/cpu-db8500.c b/arch/arm/mach-ux500/cpu-db8500.c
index 93b92d483949..a9221cc019d6 100644
--- a/arch/arm/mach-ux500/cpu-db8500.c
+++ b/arch/arm/mach-ux500/cpu-db8500.c
@@ -138,29 +138,6 @@ static struct platform_device *platform_devs[] __initdata = {
138 &db8500_pmu_device, 138 &db8500_pmu_device,
139}; 139};
140 140
141static resource_size_t __initdata db8500_gpio_base[] = {
142 U8500_GPIOBANK0_BASE,
143 U8500_GPIOBANK1_BASE,
144 U8500_GPIOBANK2_BASE,
145 U8500_GPIOBANK3_BASE,
146 U8500_GPIOBANK4_BASE,
147 U8500_GPIOBANK5_BASE,
148 U8500_GPIOBANK6_BASE,
149 U8500_GPIOBANK7_BASE,
150 U8500_GPIOBANK8_BASE,
151};
152
153static void __init db8500_add_gpios(struct device *parent)
154{
155 struct nmk_gpio_platform_data pdata = {
156 .supports_sleepmode = true,
157 };
158
159 dbx500_add_gpios(parent, db8500_gpio_base,
160 ARRAY_SIZE(db8500_gpio_base),
161 IRQ_DB8500_GPIO0, &pdata);
162}
163
164static const char *db8500_read_soc_id(void) 141static const char *db8500_read_soc_id(void)
165{ 142{
166 void __iomem *uid = __io_address(U8500_BB_UID_BASE); 143 void __iomem *uid = __io_address(U8500_BB_UID_BASE);
@@ -190,8 +167,6 @@ struct device * __init u8500_init_devices(void)
190 167
191 parent = db8500_soc_device_init(); 168 parent = db8500_soc_device_init();
192 169
193 db8500_add_gpios(parent);
194
195 for (i = 0; i < ARRAY_SIZE(platform_devs); i++) 170 for (i = 0; i < ARRAY_SIZE(platform_devs); i++)
196 platform_devs[i]->dev.parent = parent; 171 platform_devs[i]->dev.parent = parent;
197 172
diff --git a/arch/arm/mach-ux500/devices-common.c b/arch/arm/mach-ux500/devices-common.c
deleted file mode 100644
index f71b3d7bd4fb..000000000000
--- a/arch/arm/mach-ux500/devices-common.c
+++ /dev/null
@@ -1,60 +0,0 @@
1/*
2 * Copyright (C) ST-Ericsson SA 2010
3 *
4 * Author: Rabin Vincent <rabin.vincent@stericsson.com> for ST-Ericsson
5 * License terms: GNU General Public License (GPL), version 2.
6 */
7
8#include <linux/kernel.h>
9#include <linux/dma-mapping.h>
10#include <linux/err.h>
11#include <linux/irq.h>
12#include <linux/slab.h>
13#include <linux/platform_device.h>
14#include <linux/platform_data/pinctrl-nomadik.h>
15
16#include "irqs.h"
17
18#include "devices-common.h"
19
20static struct platform_device *
21dbx500_add_gpio(struct device *parent, int id, resource_size_t addr, int irq,
22 struct nmk_gpio_platform_data *pdata)
23{
24 struct resource resources[] = {
25 {
26 .start = addr,
27 .end = addr + 127,
28 .flags = IORESOURCE_MEM,
29 },
30 {
31 .start = irq,
32 .end = irq,
33 .flags = IORESOURCE_IRQ,
34 }
35 };
36
37 return platform_device_register_resndata(
38 parent,
39 "gpio",
40 id,
41 resources,
42 ARRAY_SIZE(resources),
43 pdata,
44 sizeof(*pdata));
45}
46
47void dbx500_add_gpios(struct device *parent, resource_size_t *base, int num,
48 int irq, struct nmk_gpio_platform_data *pdata)
49{
50 int first = 0;
51 int i;
52
53 for (i = 0; i < num; i++, first += 32, irq++) {
54 pdata->first_gpio = first;
55 pdata->first_irq = NOMADIK_GPIO_TO_IRQ(first);
56 pdata->num_gpio = 32;
57
58 dbx500_add_gpio(parent, i, base[i], irq, pdata);
59 }
60}
diff --git a/arch/arm/mach-ux500/devices-common.h b/arch/arm/mach-ux500/devices-common.h
index 7167b6951c53..ce48a024c034 100644
--- a/arch/arm/mach-ux500/devices-common.h
+++ b/arch/arm/mach-ux500/devices-common.h
@@ -33,9 +33,4 @@ dbx500_add_uart(struct device *parent, const char *name, resource_size_t base,
33 return amba_ahb_device_add(parent, name, base, SZ_4K, irq, 0, pdata, 0); 33 return amba_ahb_device_add(parent, name, base, SZ_4K, irq, 0, pdata, 0);
34} 34}
35 35
36struct nmk_gpio_platform_data;
37
38void dbx500_add_gpios(struct device *parent, resource_size_t *base, int num,
39 int irq, struct nmk_gpio_platform_data *pdata);
40
41#endif 36#endif
diff --git a/arch/arm/mach-ux500/devices-db8500.c b/arch/arm/mach-ux500/devices-db8500.c
index b612751ea75c..071b588d33b0 100644
--- a/arch/arm/mach-ux500/devices-db8500.c
+++ b/arch/arm/mach-ux500/devices-db8500.c
@@ -9,7 +9,6 @@
9#include <linux/platform_device.h> 9#include <linux/platform_device.h>
10#include <linux/interrupt.h> 10#include <linux/interrupt.h>
11#include <linux/io.h> 11#include <linux/io.h>
12#include <linux/gpio.h>
13#include <linux/amba/bus.h> 12#include <linux/amba/bus.h>
14#include <linux/amba/pl022.h> 13#include <linux/amba/pl022.h>
15#include <linux/platform_data/dma-ste-dma40.h> 14#include <linux/platform_data/dma-ste-dma40.h>
diff --git a/arch/arm/mach-ux500/devices.h b/arch/arm/mach-ux500/devices.h
index eafb07a5597a..da23c0596d9e 100644
--- a/arch/arm/mach-ux500/devices.h
+++ b/arch/arm/mach-ux500/devices.h
@@ -10,8 +10,6 @@
10struct platform_device; 10struct platform_device;
11struct amba_device; 11struct amba_device;
12 12
13extern struct platform_device u8500_gpio_devs[];
14
15extern struct amba_device ux500_pl031_device; 13extern struct amba_device ux500_pl031_device;
16 14
17extern struct platform_device u8500_dma40_device; 15extern struct platform_device u8500_dma40_device;