pcf50633-gpio: Add gpiolib support.
[kernel.git] / include / linux / mfd / pcf50633 / gpio.h
1 /*
2  * gpio.h -- GPIO driver for NXP PCF50633
3  *
4  * (C) 2006-2008 by Openmoko, Inc.
5  * All rights reserved.
6  *
7  * This program is free software; you can redistribute  it and/or modify it
8  * under  the terms of  the GNU General  Public License as published by the
9  * Free Software Foundation;  either version 2 of the  License, or (at your
10  * option) any later version.
11  */
12
13 #ifndef __LINUX_MFD_PCF50633_GPIO_H
14 #define __LINUX_MFD_PCF50633_GPIO_H
15
16 #include <linux/mfd/pcf50633/core.h>
17
18 #define PCF50633_GPIO1          0
19 #define PCF50633_GPIO2          1
20 #define PCF50633_GPIO3          2
21 #define PCF50633_GPO            3
22
23 #define PCF50633_REG_GPIOCFG(x) (0x14 + (x))
24
25 enum pcf50633_gpio_config {
26         PCF50633_GPIO_CONFIG_OUTPUT     = 0x0,
27         PCF50633_GPIO_CONFIG_SYSxOK     = 0x2,
28         PCF50633_GPIO_CONFIG_CHARGING   = 0x3,
29         PCF50633_GPIO_CONFIG_MOBILE_MODE = 0x4,
30         PCF50633_GPIO_CONFIG_USBxOK     = 0x5,
31         PCF50633_GPIO_CONFIG_ACTPH      = 0x6,
32         PCF50633_GPIO_CONFIG_INPUT      = 0x7,
33
34         PCF50633_GPIO_CONFIG_INVERT     = 0x8,
35
36         PCF50633_GPO_CONFIG_OUTPUT      = 0x0,
37         PCF50633_GPO_CONFIG_LED_NFET    = 0x1,
38         PCF50633_GPO_CONFIG_SYSxOK      = 0x2,
39         PCF50633_GPO_CONFIG_CLK32K      = 0x3,
40         PCF50633_GPO_CONFIG_MOBILE_MODE = 0x4,
41         PCF50633_GPO_CONFIG_USBxOK      = 0x5,
42         PCF50633_GPO_CONFIG_ACTPH       = 0x6,
43         PCF50633_GPO_CONFIG_INPUT       = 0x7,
44
45         PCF50633_GPO_CONFIG_INVERT      = 0x8,
46 };
47
48 int pcf50633_gpio_set_config(struct pcf50633 *pcf, unsigned gpio,
49                               enum pcf50633_gpio_config config);
50
51 int pcf50633_gpio_power_supply_set(struct pcf50633 *pcf,
52                                         int gpio, int regulator, int on);
53 #endif /* __LINUX_MFD_PCF50633_GPIO_H */
54
55