diff options
author | Linus Walleij <linus.walleij@stericsson.com> | 2009-08-10 11:52:40 (GMT) |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2009-08-15 14:36:28 (GMT) |
commit | df1e0520f9434b5b771c854a13dd928727d8673a (patch) | |
tree | 5d48442a1c8e43122511fd0c73596ac3917f8483 /arch/arm/mach-u300/padmux.h | |
parent | 5ad73d07173e7b76c16bcb8b6cf64d8386019689 (diff) | |
download | linux-df1e0520f9434b5b771c854a13dd928727d8673a.tar.xz |
ARM: 5666/1: Revamped U300 padmux API
This abstracts the hackish padmux API on the U300 platform into
something more manageable. It provides a way for drivers to
activate/deactivate a certain padmux setting. It will also switch
the users of the old API over to using the new style, pushing
muxing into the apropriate setup files.
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-u300/padmux.h')
-rw-r--r-- | arch/arm/mach-u300/padmux.h | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/arch/arm/mach-u300/padmux.h b/arch/arm/mach-u300/padmux.h index 8c2099a..6e8b860 100644 --- a/arch/arm/mach-u300/padmux.h +++ b/arch/arm/mach-u300/padmux.h @@ -6,14 +6,34 @@ * Copyright (C) 2009 ST-Ericsson AB * License terms: GNU General Public License (GPL) version 2 * U300 PADMUX API - * Author: Linus Walleij <linus.walleij@stericsson.com> - * + * Author: Martin Persson <martin.persson@stericsson.com> */ #ifndef __MACH_U300_PADMUX_H #define __MACH_U300_PADMUX_H -void pmx_set_mission_mode_mmc(void); -void pmx_set_mission_mode_spi(void); +enum pmx_settings { + U300_APP_PMX_MMC_SETTING, + U300_APP_PMX_SPI_SETTING +}; + +struct pmx_onmask { + u16 mask; /* Mask bits */ + u16 val; /* Value when active */ +}; + +struct pmx { + struct device *dev; + enum pmx_settings setting; + char *name; + bool activated; + bool default_on; + struct pmx_onmask onmask[]; +}; + +struct pmx *pmx_get(struct device *dev, enum pmx_settings setting); +int pmx_put(struct device *dev, struct pmx *pmx); +int pmx_activate(struct device *dev, struct pmx *pmx); +int pmx_deactivate(struct device *dev, struct pmx *pmx); #endif |