mirror of
https://github.com/torvalds/linux.git
synced 2024-12-25 12:21:37 +00:00
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>
This commit is contained in:
parent
ed781d395f
commit
3b64c09b37
@ -3,7 +3,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
obj-y := clock.o cpu.o devices.o devices-common.o \
|
obj-y := clock.o cpu.o devices.o devices-common.o \
|
||||||
id.o pins.o usb.o timer.o
|
id.o usb.o timer.o
|
||||||
obj-$(CONFIG_CACHE_L2X0) += cache-l2x0.o
|
obj-$(CONFIG_CACHE_L2X0) += cache-l2x0.o
|
||||||
obj-$(CONFIG_UX500_SOC_DB5500) += cpu-db5500.o dma-db5500.o
|
obj-$(CONFIG_UX500_SOC_DB5500) += cpu-db5500.o dma-db5500.o
|
||||||
obj-$(CONFIG_UX500_SOC_DB8500) += cpu-db8500.o devices-db8500.o
|
obj-$(CONFIG_UX500_SOC_DB8500) += cpu-db8500.o devices-db8500.o
|
||||||
|
@ -17,7 +17,6 @@
|
|||||||
#include <mach/hardware.h>
|
#include <mach/hardware.h>
|
||||||
|
|
||||||
#include "pins-db8500.h"
|
#include "pins-db8500.h"
|
||||||
#include "pins.h"
|
|
||||||
#include "board-mop500.h"
|
#include "board-mop500.h"
|
||||||
|
|
||||||
enum custom_pin_cfg_t {
|
enum custom_pin_cfg_t {
|
||||||
|
@ -1,88 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) ST-Ericsson SA 2010
|
|
||||||
*
|
|
||||||
* Author: Rabin Vincent <rabin.vincent@stericsson.com> for ST-Ericsson
|
|
||||||
* License terms: GNU General Public License (GPL), version 2
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <linux/kernel.h>
|
|
||||||
#include <linux/string.h>
|
|
||||||
#include <linux/device.h>
|
|
||||||
#include <linux/mutex.h>
|
|
||||||
#include <linux/spinlock.h>
|
|
||||||
#include <linux/err.h>
|
|
||||||
#include <plat/pincfg.h>
|
|
||||||
|
|
||||||
#include "pins.h"
|
|
||||||
|
|
||||||
static LIST_HEAD(pin_lookups);
|
|
||||||
static DEFINE_MUTEX(pin_lookups_mutex);
|
|
||||||
static DEFINE_SPINLOCK(pins_lock);
|
|
||||||
|
|
||||||
void __init ux500_pins_add(struct ux500_pin_lookup *pl, size_t num)
|
|
||||||
{
|
|
||||||
mutex_lock(&pin_lookups_mutex);
|
|
||||||
|
|
||||||
while (num--) {
|
|
||||||
list_add_tail(&pl->node, &pin_lookups);
|
|
||||||
pl++;
|
|
||||||
}
|
|
||||||
|
|
||||||
mutex_unlock(&pin_lookups_mutex);
|
|
||||||
}
|
|
||||||
|
|
||||||
struct ux500_pins *ux500_pins_get(const char *name)
|
|
||||||
{
|
|
||||||
struct ux500_pins *pins = NULL;
|
|
||||||
struct ux500_pin_lookup *pl;
|
|
||||||
|
|
||||||
mutex_lock(&pin_lookups_mutex);
|
|
||||||
|
|
||||||
list_for_each_entry(pl, &pin_lookups, node) {
|
|
||||||
if (!strcmp(pl->name, name)) {
|
|
||||||
pins = pl->pins;
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
out:
|
|
||||||
mutex_unlock(&pin_lookups_mutex);
|
|
||||||
return pins;
|
|
||||||
}
|
|
||||||
|
|
||||||
int ux500_pins_enable(struct ux500_pins *pins)
|
|
||||||
{
|
|
||||||
unsigned long flags;
|
|
||||||
int ret = 0;
|
|
||||||
|
|
||||||
spin_lock_irqsave(&pins_lock, flags);
|
|
||||||
|
|
||||||
if (pins->usage++ == 0)
|
|
||||||
ret = nmk_config_pins(pins->cfg, pins->num);
|
|
||||||
|
|
||||||
spin_unlock_irqrestore(&pins_lock, flags);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
int ux500_pins_disable(struct ux500_pins *pins)
|
|
||||||
{
|
|
||||||
unsigned long flags;
|
|
||||||
int ret = 0;
|
|
||||||
|
|
||||||
spin_lock_irqsave(&pins_lock, flags);
|
|
||||||
|
|
||||||
if (WARN_ON(pins->usage == 0))
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
if (--pins->usage == 0)
|
|
||||||
ret = nmk_config_pins_sleep(pins->cfg, pins->num);
|
|
||||||
|
|
||||||
out:
|
|
||||||
spin_unlock_irqrestore(&pins_lock, flags);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ux500_pins_put(struct ux500_pins *pins)
|
|
||||||
{
|
|
||||||
WARN_ON(!pins);
|
|
||||||
}
|
|
@ -1,46 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) ST-Ericsson SA 2010
|
|
||||||
*
|
|
||||||
* Author: Rabin Vincent <rabin.vincent@stericsson.com> for ST-Ericsson
|
|
||||||
* License terms: GNU General Public License (GPL), version 2
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __MACH_UX500_PINS_H
|
|
||||||
#define __MACH_UX500_PINS_H
|
|
||||||
|
|
||||||
#include <linux/list.h>
|
|
||||||
#include <plat/pincfg.h>
|
|
||||||
|
|
||||||
#define PIN_LOOKUP(_name, _pins) \
|
|
||||||
{ \
|
|
||||||
.name = _name, \
|
|
||||||
.pins = _pins, \
|
|
||||||
}
|
|
||||||
|
|
||||||
#define UX500_PINS(name, pins...) \
|
|
||||||
struct ux500_pins name = { \
|
|
||||||
.cfg = (pin_cfg_t[]) {pins}, \
|
|
||||||
.num = ARRAY_SIZE(((pin_cfg_t[]) {pins})), \
|
|
||||||
}
|
|
||||||
|
|
||||||
struct ux500_pins {
|
|
||||||
int usage;
|
|
||||||
int num;
|
|
||||||
pin_cfg_t *cfg;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct ux500_pin_lookup {
|
|
||||||
struct list_head node;
|
|
||||||
const char *name;
|
|
||||||
struct ux500_pins *pins;
|
|
||||||
};
|
|
||||||
|
|
||||||
void __init ux500_pins_add(struct ux500_pin_lookup *pl, size_t num);
|
|
||||||
void __init ux500_offchip_gpio_init(struct ux500_pins *pins);
|
|
||||||
struct ux500_pins *ux500_pins_get(const char *name);
|
|
||||||
int ux500_pins_enable(struct ux500_pins *pins);
|
|
||||||
int ux500_pins_disable(struct ux500_pins *pins);
|
|
||||||
void ux500_pins_put(struct ux500_pins *pins);
|
|
||||||
int pins_for_u9500(void);
|
|
||||||
|
|
||||||
#endif
|
|
Loading…
Reference in New Issue
Block a user