|
@@ -29,6 +29,23 @@
|
|
|
static struct mxc_gpio_port *mxc_gpio_ports;
|
|
|
static int gpio_table_size;
|
|
|
|
|
|
+#define cpu_is_mx1_mx2() (cpu_is_mx1() || cpu_is_mx2())
|
|
|
+
|
|
|
+#define GPIO_DR (cpu_is_mx1_mx2() ? 0x1c : 0x00)
|
|
|
+#define GPIO_GDIR (cpu_is_mx1_mx2() ? 0x00 : 0x04)
|
|
|
+#define GPIO_PSR (cpu_is_mx1_mx2() ? 0x24 : 0x08)
|
|
|
+#define GPIO_ICR1 (cpu_is_mx1_mx2() ? 0x28 : 0x0C)
|
|
|
+#define GPIO_ICR2 (cpu_is_mx1_mx2() ? 0x2C : 0x10)
|
|
|
+#define GPIO_IMR (cpu_is_mx1_mx2() ? 0x30 : 0x14)
|
|
|
+#define GPIO_ISR (cpu_is_mx1_mx2() ? 0x34 : 0x18)
|
|
|
+#define GPIO_ISR (cpu_is_mx1_mx2() ? 0x34 : 0x18)
|
|
|
+
|
|
|
+#define GPIO_INT_LOW_LEV (cpu_is_mx1_mx2() ? 0x3 : 0x0)
|
|
|
+#define GPIO_INT_HIGH_LEV (cpu_is_mx1_mx2() ? 0x2 : 0x1)
|
|
|
+#define GPIO_INT_RISE_EDGE (cpu_is_mx1_mx2() ? 0x0 : 0x2)
|
|
|
+#define GPIO_INT_FALL_EDGE (cpu_is_mx1_mx2() ? 0x1 : 0x3)
|
|
|
+#define GPIO_INT_NONE 0x4
|
|
|
+
|
|
|
/* Note: This driver assumes 32 GPIOs are handled in one register */
|
|
|
|
|
|
static void _clear_gpio_irqstatus(struct mxc_gpio_port *port, u32 index)
|