Commit | Line | Data |
---|---|---|
118150f2 KS |
1 | /* |
2 | * DaVinci GPIO Platform Related Defines | |
3 | * | |
4 | * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com/ | |
5 | * | |
6 | * This program is free software; you can redistribute it and/or | |
7 | * modify it under the terms of the GNU General Public License as | |
8 | * published by the Free Software Foundation version 2. | |
9 | * | |
10 | * This program is distributed "as is" WITHOUT ANY WARRANTY of any | |
11 | * kind, whether express or implied; without even the implied warranty | |
12 | * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 | * GNU General Public License for more details. | |
14 | */ | |
15 | ||
16 | #ifndef __DAVINCI_GPIO_PLATFORM_H | |
17 | #define __DAVINCI_GPIO_PLATFORM_H | |
18 | ||
f1a4c52f PA |
19 | #include <linux/io.h> |
20 | #include <linux/spinlock.h> | |
21 | ||
22 | #include <asm-generic/gpio.h> | |
23 | ||
118150f2 KS |
24 | struct davinci_gpio_platform_data { |
25 | u32 ngpio; | |
26 | u32 gpio_unbanked; | |
118150f2 KS |
27 | }; |
28 | ||
f1a4c52f PA |
29 | |
30 | struct davinci_gpio_controller { | |
31 | struct gpio_chip chip; | |
9211ff31 | 32 | struct irq_domain *irq_domain; |
f1a4c52f PA |
33 | /* Serialize access to GPIO registers */ |
34 | spinlock_t lock; | |
35 | void __iomem *regs; | |
36 | void __iomem *set_data; | |
37 | void __iomem *clr_data; | |
38 | void __iomem *in_data; | |
39 | int gpio_unbanked; | |
40 | unsigned gpio_irq; | |
41 | }; | |
42 | ||
43 | /* | |
44 | * basic gpio routines | |
45 | */ | |
46 | #define GPIO(X) (X) /* 0 <= X <= (DAVINCI_N_GPIO - 1) */ | |
47 | ||
48 | /* Convert GPIO signal to GPIO pin number */ | |
49 | #define GPIO_TO_PIN(bank, gpio) (16 * (bank) + (gpio)) | |
50 | ||
51 | static inline u32 __gpio_mask(unsigned gpio) | |
52 | { | |
53 | return 1 << (gpio % 32); | |
54 | } | |
118150f2 | 55 | #endif |