summaryrefslogtreecommitdiff
path: root/include/linux/mfd/abx500/ab8500-gpio.h
blob: d88e30253178512c6349338faac4bf8f42ef0b79 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
/*
 * Copyright ST-Ericsson 2010.
 *
 * Author: Bibek Basu <bibek.basu@stericsson.com>
 * Licensed under GPLv2.
 */

#ifndef _AB8500_GPIO_H
#define _AB8500_GPIO_H

#include <mach/gpio.h>

/*
 * Platform data to register a block: only the initial gpio/irq number.
 */

struct ab8500_gpio_platform_data {
	int gpio_base;
	u32 irq_base;
	u8  config_reg[7];
	u8  config_direction[6];
	u8  config_pullups[6];
};

enum ab8500_pin {
	AB8500_PIN_GPIO1 = AB8500_GPIO_BASE,
	AB8500_PIN_GPIO2,
	AB8500_PIN_GPIO3,
	AB8500_PIN_GPIO4,
	AB8500_PIN_GPIO5,
	AB8500_PIN_GPIO6,
	AB8500_PIN_GPIO7,
	AB8500_PIN_GPIO8,
	AB8500_PIN_GPIO9,
	AB8500_PIN_GPIO10,
	AB8500_PIN_GPIO11,
	AB8500_PIN_GPIO12,
	AB8500_PIN_GPIO13,
	AB8500_PIN_GPIO14,
	AB8500_PIN_GPIO15,
	AB8500_PIN_GPIO16,
	AB8500_PIN_GPIO17,
	AB8500_PIN_GPIO18,
	AB8500_PIN_GPIO19,
	AB8500_PIN_GPIO20,
	AB8500_PIN_GPIO21,
	AB8500_PIN_GPIO22,
	AB8500_PIN_GPIO23,
	AB8500_PIN_GPIO24,
	AB8500_PIN_GPIO25,
	AB8500_PIN_GPIO26,
	AB8500_PIN_GPIO27,
	AB8500_PIN_GPIO28,
	AB8500_PIN_GPIO29,
	AB8500_PIN_GPIO30,
	AB8500_PIN_GPIO31,
	AB8500_PIN_GPIO32,
	AB8500_PIN_GPIO33,
	AB8500_PIN_GPIO34,
	AB8500_PIN_GPIO35,
	AB8500_PIN_GPIO36,
	AB8500_PIN_GPIO37,
	AB8500_PIN_GPIO38,
	AB8500_PIN_GPIO39,
	AB8500_PIN_GPIO40,
	AB8500_PIN_GPIO41,
	AB8500_PIN_GPIO42,
};

int ab8500_config_pulldown(struct device *dev,
				enum ab8500_pin gpio, bool enable);

int ab8500_gpio_config_select(struct device *dev,
				enum ab8500_pin gpio, bool gpio_select);

int ab8500_gpio_config_get_select(struct device *dev,
				enum ab8500_pin	gpio, bool *gpio_select);

#endif /* _AB8500_GPIO_H */