Initial Contribution
msm-2.6.38: tag AU_LINUX_ANDROID_GINGERBREAD.02.03.04.00.142
Signed-off-by: Bryan Huntsman <bryanh@codeaurora.org>
diff --git a/arch/arm/mach-msm/gpio_hw.h b/arch/arm/mach-msm/gpio_hw.h
index 6b50660..f4ed0c0 100644
--- a/arch/arm/mach-msm/gpio_hw.h
+++ b/arch/arm/mach-msm/gpio_hw.h
@@ -34,6 +34,8 @@
#if defined(CONFIG_ARCH_MSM7X30)
#define MSM_GPIO1_REG(off) (MSM_GPIO1_BASE + (off))
#define MSM_GPIO2_REG(off) (MSM_GPIO2_BASE + 0x400 + (off))
+#elif defined(CONFIG_ARCH_FSM9XXX)
+#define MSM_GPIO1_REG(off) (MSM_TLMM_BASE + (off))
#else
#define MSM_GPIO1_REG(off) (MSM_GPIO1_BASE + 0x800 + (off))
#define MSM_GPIO2_REG(off) (MSM_GPIO2_BASE + 0xC00 + (off))
@@ -275,4 +277,42 @@
#endif
+#if defined(CONFIG_ARCH_FSM9XXX)
+
+/* output value */
+#define MSM_GPIO_OUT_G(group) MSM_GPIO1_REG(0x00 + (group) * 4)
+#define MSM_GPIO_OUT_N(gpio) MSM_GPIO_OUT_G((gpio) / 32)
+#define MSM_GPIO_OUT_0 MSM_GPIO_OUT_G(0) /* gpio 31-0 */
+#define MSM_GPIO_OUT_1 MSM_GPIO_OUT_G(1) /* gpio 63-32 */
+#define MSM_GPIO_OUT_2 MSM_GPIO_OUT_G(2) /* gpio 95-64 */
+#define MSM_GPIO_OUT_3 MSM_GPIO_OUT_G(3) /* gpio 127-96 */
+#define MSM_GPIO_OUT_4 MSM_GPIO_OUT_G(4) /* gpio 159-128 */
+#define MSM_GPIO_OUT_5 MSM_GPIO_OUT_G(5) /* gpio 167-160 */
+
+/* same pin map as above, output enable */
+#define MSM_GPIO_OE_G(group) MSM_GPIO1_REG(0x20 + (group) * 4)
+#define MSM_GPIO_OE_N(gpio) MSM_GPIO_OE_G((gpio) / 32)
+#define MSM_GPIO_OE_0 MSM_GPIO_OE_G(0)
+#define MSM_GPIO_OE_1 MSM_GPIO_OE_G(1)
+#define MSM_GPIO_OE_2 MSM_GPIO_OE_G(2)
+#define MSM_GPIO_OE_3 MSM_GPIO_OE_G(3)
+#define MSM_GPIO_OE_4 MSM_GPIO_OE_G(4)
+#define MSM_GPIO_OE_5 MSM_GPIO_OE_G(5)
+
+/* same pin map as above, input read */
+#define MSM_GPIO_IN_G(group) MSM_GPIO1_REG(0x48 + (group) * 4)
+#define MSM_GPIO_IN_N(gpio) MSM_GPIO_IN_G((gpio) / 32)
+#define MSM_GPIO_IN_0 MSM_GPIO_IN_G(0)
+#define MSM_GPIO_IN_1 MSM_GPIO_IN_G(1)
+#define MSM_GPIO_IN_2 MSM_GPIO_IN_G(2)
+#define MSM_GPIO_IN_3 MSM_GPIO_IN_G(3)
+#define MSM_GPIO_IN_4 MSM_GPIO_IN_G(4)
+#define MSM_GPIO_IN_5 MSM_GPIO_IN_G(5)
+
+/* configuration */
+#define MSM_GPIO_PAGE MSM_GPIO1_REG(0x40)
+#define MSM_GPIO_CONFIG MSM_GPIO1_REG(0x44)
+
+#endif /* CONFIG_ARCH_FSM9XXX */
+
#endif