blob: 6e8b86064097ca369130e8a1e2a61e1a01ff25fb [file] [log] [blame]
Linus Walleijbd41b992009-04-23 21:15:04 +01001/*
2 *
3 * arch/arm/mach-u300/padmux.h
4 *
5 *
6 * Copyright (C) 2009 ST-Ericsson AB
7 * License terms: GNU General Public License (GPL) version 2
8 * U300 PADMUX API
Linus Walleijdf1e0522009-08-10 12:52:40 +01009 * Author: Martin Persson <martin.persson@stericsson.com>
Linus Walleijbd41b992009-04-23 21:15:04 +010010 */
11
12#ifndef __MACH_U300_PADMUX_H
13#define __MACH_U300_PADMUX_H
14
Linus Walleijdf1e0522009-08-10 12:52:40 +010015enum pmx_settings {
16 U300_APP_PMX_MMC_SETTING,
17 U300_APP_PMX_SPI_SETTING
18};
19
20struct pmx_onmask {
21 u16 mask; /* Mask bits */
22 u16 val; /* Value when active */
23};
24
25struct pmx {
26 struct device *dev;
27 enum pmx_settings setting;
28 char *name;
29 bool activated;
30 bool default_on;
31 struct pmx_onmask onmask[];
32};
33
34struct pmx *pmx_get(struct device *dev, enum pmx_settings setting);
35int pmx_put(struct device *dev, struct pmx *pmx);
36int pmx_activate(struct device *dev, struct pmx *pmx);
37int pmx_deactivate(struct device *dev, struct pmx *pmx);
Linus Walleijbd41b992009-04-23 21:15:04 +010038
39#endif