diff options
author | Linus Walleij <linus.walleij@linaro.org> | 2012-05-07 02:50:31 -0400 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2012-05-11 05:14:18 -0400 |
commit | 3b64c09b376ae2a82cccdb25aa0c3bc3c3be9d14 (patch) | |
tree | 28e65416db8678a58c546abb84b9d66325ec174a /arch/arm/mach-ux500 | |
parent | ed781d395f85192fc9debb33ae5b45e7111eacee (diff) |
ARM: ux500: delete custom pin control system
At the beginning of the first patch series I included the custom
ux500 pin control system to make sure I could eventually replace
it with the standard subsystem driver. So now that we've done so,
let's remove it.
Acked-by: Stephen Warren <swarren@wwwdotorg.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'arch/arm/mach-ux500')
-rw-r--r-- | arch/arm/mach-ux500/Makefile | 2 | ||||
-rw-r--r-- | arch/arm/mach-ux500/board-mop500-pins.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-ux500/pins.c | 88 | ||||
-rw-r--r-- | arch/arm/mach-ux500/pins.h | 46 |
4 files changed, 1 insertions, 136 deletions
diff --git a/arch/arm/mach-ux500/Makefile b/arch/arm/mach-ux500/Makefile index 015932c6bf0..11729bc6219 100644 --- a/arch/arm/mach-ux500/Makefile +++ b/arch/arm/mach-ux500/Makefile | |||
@@ -3,7 +3,7 @@ | |||
3 | # | 3 | # |
4 | 4 | ||
5 | obj-y := clock.o cpu.o devices.o devices-common.o \ | 5 | obj-y := clock.o cpu.o devices.o devices-common.o \ |
6 | id.o pins.o usb.o timer.o | 6 | id.o usb.o timer.o |
7 | obj-$(CONFIG_CACHE_L2X0) += cache-l2x0.o | 7 | obj-$(CONFIG_CACHE_L2X0) += cache-l2x0.o |
8 | obj-$(CONFIG_UX500_SOC_DB5500) += cpu-db5500.o dma-db5500.o | 8 | obj-$(CONFIG_UX500_SOC_DB5500) += cpu-db5500.o dma-db5500.o |
9 | obj-$(CONFIG_UX500_SOC_DB8500) += cpu-db8500.o devices-db8500.o | 9 | obj-$(CONFIG_UX500_SOC_DB8500) += cpu-db8500.o devices-db8500.o |
diff --git a/arch/arm/mach-ux500/board-mop500-pins.c b/arch/arm/mach-ux500/board-mop500-pins.c index 28c456c2906..157af7ee5cd 100644 --- a/arch/arm/mach-ux500/board-mop500-pins.c +++ b/arch/arm/mach-ux500/board-mop500-pins.c | |||
@@ -17,7 +17,6 @@ | |||
17 | #include <mach/hardware.h> | 17 | #include <mach/hardware.h> |
18 | 18 | ||
19 | #include "pins-db8500.h" | 19 | #include "pins-db8500.h" |
20 | #include "pins.h" | ||
21 | #include "board-mop500.h" | 20 | #include "board-mop500.h" |
22 | 21 | ||
23 | enum custom_pin_cfg_t { | 22 | enum custom_pin_cfg_t { |
diff --git a/arch/arm/mach-ux500/pins.c b/arch/arm/mach-ux500/pins.c deleted file mode 100644 index 38c1d47b29a..00000000000 --- a/arch/arm/mach-ux500/pins.c +++ /dev/null | |||
@@ -1,88 +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/string.h> | ||
10 | #include <linux/device.h> | ||
11 | #include <linux/mutex.h> | ||
12 | #include <linux/spinlock.h> | ||
13 | #include <linux/err.h> | ||
14 | #include <plat/pincfg.h> | ||
15 | |||
16 | #include "pins.h" | ||
17 | |||
18 | static LIST_HEAD(pin_lookups); | ||
19 | static DEFINE_MUTEX(pin_lookups_mutex); | ||
20 | static DEFINE_SPINLOCK(pins_lock); | ||
21 | |||
22 | void __init ux500_pins_add(struct ux500_pin_lookup *pl, size_t num) | ||
23 | { | ||
24 | mutex_lock(&pin_lookups_mutex); | ||
25 | |||
26 | while (num--) { | ||
27 | list_add_tail(&pl->node, &pin_lookups); | ||
28 | pl++; | ||
29 | } | ||
30 | |||
31 | mutex_unlock(&pin_lookups_mutex); | ||
32 | } | ||
33 | |||
34 | struct ux500_pins *ux500_pins_get(const char *name) | ||
35 | { | ||
36 | struct ux500_pins *pins = NULL; | ||
37 | struct ux500_pin_lookup *pl; | ||
38 | |||
39 | mutex_lock(&pin_lookups_mutex); | ||
40 | |||
41 | list_for_each_entry(pl, &pin_lookups, node) { | ||
42 | if (!strcmp(pl->name, name)) { | ||
43 | pins = pl->pins; | ||
44 | goto out; | ||
45 | } | ||
46 | } | ||
47 | |||
48 | out: | ||
49 | mutex_unlock(&pin_lookups_mutex); | ||
50 | return pins; | ||
51 | } | ||
52 | |||
53 | int ux500_pins_enable(struct ux500_pins *pins) | ||
54 | { | ||
55 | unsigned long flags; | ||
56 | int ret = 0; | ||
57 | |||
58 | spin_lock_irqsave(&pins_lock, flags); | ||
59 | |||
60 | if (pins->usage++ == 0) | ||
61 | ret = nmk_config_pins(pins->cfg, pins->num); | ||
62 | |||
63 | spin_unlock_irqrestore(&pins_lock, flags); | ||
64 | return ret; | ||
65 | } | ||
66 | |||
67 | int ux500_pins_disable(struct ux500_pins *pins) | ||
68 | { | ||
69 | unsigned long flags; | ||
70 | int ret = 0; | ||
71 | |||
72 | spin_lock_irqsave(&pins_lock, flags); | ||
73 | |||
74 | if (WARN_ON(pins->usage == 0)) | ||
75 | goto out; | ||
76 | |||
77 | if (--pins->usage == 0) | ||
78 | ret = nmk_config_pins_sleep(pins->cfg, pins->num); | ||
79 | |||
80 | out: | ||
81 | spin_unlock_irqrestore(&pins_lock, flags); | ||
82 | return ret; | ||
83 | } | ||
84 | |||
85 | void ux500_pins_put(struct ux500_pins *pins) | ||
86 | { | ||
87 | WARN_ON(!pins); | ||
88 | } | ||
diff --git a/arch/arm/mach-ux500/pins.h b/arch/arm/mach-ux500/pins.h deleted file mode 100644 index 0d36af2e7d9..00000000000 --- a/arch/arm/mach-ux500/pins.h +++ /dev/null | |||
@@ -1,46 +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 | #ifndef __MACH_UX500_PINS_H | ||
9 | #define __MACH_UX500_PINS_H | ||
10 | |||
11 | #include <linux/list.h> | ||
12 | #include <plat/pincfg.h> | ||
13 | |||
14 | #define PIN_LOOKUP(_name, _pins) \ | ||
15 | { \ | ||
16 | .name = _name, \ | ||
17 | .pins = _pins, \ | ||
18 | } | ||
19 | |||
20 | #define UX500_PINS(name, pins...) \ | ||
21 | struct ux500_pins name = { \ | ||
22 | .cfg = (pin_cfg_t[]) {pins}, \ | ||
23 | .num = ARRAY_SIZE(((pin_cfg_t[]) {pins})), \ | ||
24 | } | ||
25 | |||
26 | struct ux500_pins { | ||
27 | int usage; | ||
28 | int num; | ||
29 | pin_cfg_t *cfg; | ||
30 | }; | ||
31 | |||
32 | struct ux500_pin_lookup { | ||
33 | struct list_head node; | ||
34 | const char *name; | ||
35 | struct ux500_pins *pins; | ||
36 | }; | ||
37 | |||
38 | void __init ux500_pins_add(struct ux500_pin_lookup *pl, size_t num); | ||
39 | void __init ux500_offchip_gpio_init(struct ux500_pins *pins); | ||
40 | struct ux500_pins *ux500_pins_get(const char *name); | ||
41 | int ux500_pins_enable(struct ux500_pins *pins); | ||
42 | int ux500_pins_disable(struct ux500_pins *pins); | ||
43 | void ux500_pins_put(struct ux500_pins *pins); | ||
44 | int pins_for_u9500(void); | ||
45 | |||
46 | #endif | ||