msm: 8064: Configure SX1509 gpio expander chip
On MPQ variants of 8064, the gpio expander chip SX1509
is used via i2c bus to provid various functionalities such
as voltage regulators, AVC tuners, external keyboard, etc.
Add the platform data for the available expander chips,
initialize them, and enable the i2c bus.
While at it, fix the EPM expander values.
Change-Id: Id9efbfcde10515b24143e2b0d6978ff5a0794cac
Signed-off-by: Jay Chokshi <jchokshi@codeaurora.org>
diff --git a/arch/arm/mach-msm/board-8064.h b/arch/arm/mach-msm/board-8064.h
index 23ca39f..d1cc31e 100644
--- a/arch/arm/mach-msm/board-8064.h
+++ b/arch/arm/mach-msm/board-8064.h
@@ -81,4 +81,54 @@
void apq8064_init_gpu(void);
void apq8064_pm8xxx_gpio_mpp_init(void);
+#define PLATFORM_IS_MPQ8064() \
+ (machine_is_mpq8064_hrd() || \
+ machine_is_mpq8064_dtv() || \
+ machine_is_mpq8064_cdp() \
+ )
+
+
+#define GPIO_EXPANDER_IRQ_BASE (TABLA_INTERRUPT_BASE + \
+ NR_TABLA_IRQS)
+#define GPIO_EXPANDER_GPIO_BASE (PM8821_MPP_BASE + PM8821_NR_MPPS)
+
+#define GPIO_EPM_EXPANDER_BASE GPIO_EXPANDER_GPIO_BASE
+#define SX150X_EPM_NR_GPIOS 16
+#define SX150X_EPM_NR_IRQS 8
+
+#define SX150X_EXP1_GPIO_BASE (GPIO_EPM_EXPANDER_BASE + \
+ SX150X_EPM_NR_GPIOS)
+#define SX150X_EXP1_IRQ_BASE (GPIO_EXPANDER_IRQ_BASE + \
+ SX150X_EPM_NR_IRQS)
+#define SX150X_EXP1_NR_IRQS 16
+#define SX150X_EXP1_NR_GPIOS 16
+
+#define SX150X_EXP2_GPIO_BASE (SX150X_EXP1_GPIO_BASE + \
+ SX150X_EXP1_NR_GPIOS)
+#define SX150X_EXP2_IRQ_BASE (SX150X_EXP1_IRQ_BASE + SX150X_EXP1_NR_IRQS)
+#define SX150X_EXP2_NR_IRQS 8
+#define SX150X_EXP2_NR_GPIOS 8
+
+#define SX150X_EXP3_GPIO_BASE (SX150X_EXP2_GPIO_BASE + \
+ SX150X_EXP2_NR_GPIOS)
+#define SX150X_EXP3_IRQ_BASE (SX150X_EXP2_IRQ_BASE + SX150X_EXP2_NR_IRQS)
+#define SX150X_EXP3_NR_IRQS 8
+#define SX150X_EXP3_NR_GPIOS 8
+
+#define SX150X_EXP4_GPIO_BASE (SX150X_EXP3_GPIO_BASE + \
+ SX150X_EXP3_NR_GPIOS)
+#define SX150X_EXP4_IRQ_BASE (SX150X_EXP3_IRQ_BASE + SX150X_EXP3_NR_IRQS)
+#define SX150X_EXP4_NR_IRQS 16
+#define SX150X_EXP4_NR_GPIOS 16
+
+#define SX150X_GPIO(_expander, _pin) (SX150X_EXP##_expander##_GPIO_BASE + _pin)
+
+enum {
+ SX150X_EPM,
+ SX150X_EXP1,
+ SX150X_EXP2,
+ SX150X_EXP3,
+ SX150X_EXP4,
+};
+
#endif