@@ -28,6 +28,7 @@
#include <linux/io.h>
#include <mach/irqs.h>
+#include <linux/platform_device.h>
#define OMAP1_MPUIO_BASE 0xfffb5000
@@ -71,6 +72,26 @@
IH_MPUIO_BASE + ((nr) & 0x0f) : \
IH_GPIO_BASE + (nr))
+#define METHOD_MPUIO 0
+#define METHOD_GPIO_1510 1
+#define METHOD_GPIO_1610 2
+#define METHOD_GPIO_7XX 3
+#define METHOD_GPIO_24XX 5
+#define METHOD_GPIO_44XX 6
+
+struct omap_gpio_dev_attr {
+ int gpio_bank_count; /* No of GPIO banks - SoC specific */
+ int gpio_bank_bits; /* GPIO bank width */
+ bool dbck_flag; /* dbck validity - True only for OMAP3&4 */
+ bool omap1_ick_flag; /* OMAP1 ick - True only for OMAP15xx */
+};
+
+struct omap_gpio_platform_data {
+ u16 virtual_irq_start;
+ int method;
+ struct omap_gpio_dev_attr *gpio_attr;
+};
+
extern int omap_gpio_init(void); /* Call from board init only */
extern void omap2_gpio_prepare_for_idle(int power_state);
extern void omap2_gpio_resume_after_idle(void);