msm: 8660: Add ssbi device for PM8901
Use the msm-ssbi driver for communication over
the SSBI interafce.
Change-Id: Ibc26754944c32ac8eaa939f552033974e1a7758f
Signed-off-by: Anirudh Ghayal <aghayal@codeaurora.org>
diff --git a/arch/arm/mach-msm/board-msm8x60.c b/arch/arm/mach-msm/board-msm8x60.c
index 090605f..2efdbc3 100644
--- a/arch/arm/mach-msm/board-msm8x60.c
+++ b/arch/arm/mach-msm/board-msm8x60.c
@@ -5030,6 +5030,7 @@
#endif
#ifdef CONFIG_MSM_SSBI
&msm_device_ssbi_pmic1,
+ &msm_device_ssbi_pmic2,
#endif
#ifdef CONFIG_I2C_SSBI
&msm_device_ssbi2,
@@ -6621,11 +6622,20 @@
static struct pm8901_platform_data pm8901_platform_data = {
.irq_base = PM8901_IRQ_BASE,
+ .irq = MSM_GPIO_TO_INT(PM8901_GPIO_INT),
.num_subdevs = ARRAY_SIZE(pm8901_subdevs),
.sub_devices = pm8901_subdevs,
.irq_trigger_flags = IRQF_TRIGGER_LOW,
};
+static struct msm_ssbi_platform_data msm8x60_ssbi_pm8901_pdata __devinitdata = {
+ .controller_type = MSM_SBI_CTRL_PMIC_ARBITER,
+ .slave = {
+ .name = "pm8901-core",
+ .platform_data = &pm8901_platform_data,
+ },
+};
+
static struct i2c_board_info pm8901_boardinfo[] __initdata = {
{
I2C_BOARD_INFO("pm8901-core", 0x55),
@@ -7223,6 +7233,8 @@
#ifdef CONFIG_MSM_SSBI
msm_device_ssbi_pmic1.dev.platform_data =
&msm8x60_ssbi_pm8058_pdata;
+ msm_device_ssbi_pmic2.dev.platform_data =
+ &msm8x60_ssbi_pm8901_pdata;
#endif
if (machine_is_msm8x60_fluid()) {
diff --git a/arch/arm/mach-msm/devices-msm8x60.c b/arch/arm/mach-msm/devices-msm8x60.c
index 0ab9811..2ca68a2 100644
--- a/arch/arm/mach-msm/devices-msm8x60.c
+++ b/arch/arm/mach-msm/devices-msm8x60.c
@@ -900,6 +900,22 @@
.resource = resources_ssbi_pmic1_resource,
.num_resources = ARRAY_SIZE(resources_ssbi_pmic1_resource),
};
+
+#define MSM_SSBI2_PMIC2B_PHYS 0x00C00000
+static struct resource resources_ssbi_pmic2_resource[] = {
+ {
+ .start = MSM_SSBI2_PMIC2B_PHYS,
+ .end = MSM_SSBI2_PMIC2B_PHYS + SZ_4K - 1,
+ .flags = IORESOURCE_MEM,
+ },
+};
+
+struct platform_device msm_device_ssbi_pmic2 = {
+ .name = "msm_ssbi",
+ .id = 1,
+ .resource = resources_ssbi_pmic2_resource,
+ .num_resources = ARRAY_SIZE(resources_ssbi_pmic2_resource),
+};
#endif
#ifdef CONFIG_I2C_SSBI
diff --git a/arch/arm/mach-msm/devices.h b/arch/arm/mach-msm/devices.h
index 48686f0..a95d0b6 100644
--- a/arch/arm/mach-msm/devices.h
+++ b/arch/arm/mach-msm/devices.h
@@ -138,6 +138,7 @@
extern struct platform_device msm_device_tsif[2];
extern struct platform_device msm_device_ssbi_pmic1;
+extern struct platform_device msm_device_ssbi_pmic2;
extern struct platform_device msm_device_ssbi1;
extern struct platform_device msm_device_ssbi2;
extern struct platform_device msm_device_ssbi3;