diff --git a/drivers/ssbi/ssbi.c b/drivers/ssbi/ssbi.c
index 684602c4227538365ccaca82f580e5a8527b606d..0973b6956533e7eb3f8fc7da3ba297d71af98e45 100644
--- a/drivers/ssbi/ssbi.c
+++ b/drivers/ssbi/ssbi.c
@@ -147,15 +147,6 @@ int mode_2_ram_array[GENI_RAM_SIZE] = {
 	0x00041017, 0x00101000, 0x00001200, 0x0008201C, 0x00000000
 };
 
-struct ssbi {
-	struct device		*slave;
-	void __iomem		*base;
-	spinlock_t		lock;
-	enum ssbi_controller_type controller_type;
-	int (*read)(struct ssbi *, u16 addr, u8 *buf, int len);
-	int (*write)(struct ssbi *, u16 addr, u8 *buf, int len);
-};
-
 #define to_ssbi(dev)	platform_get_drvdata(to_platform_device(dev))
 
 static inline u32 ssbi_readl(struct ssbi *ssbi, u32 reg)
@@ -424,7 +415,7 @@ int ssbi_write(struct device *dev, u16 addr, u8 *buf, int len)
 }
 EXPORT_SYMBOL_GPL(ssbi_write);
 
-static void  set_ssbi_mode_2(void __iomem *geni_offset)
+void  set_ssbi_mode_2(void __iomem *geni_offset)
 {
 	int i;
 
@@ -451,7 +442,7 @@ static void  set_ssbi_mode_2(void __iomem *geni_offset)
 			GENI_ARB_CHNL_CONFIG_ADDDR + 4 * i);
 }
 
-static void  set_ssbi_mode_1(void __iomem *geni_offset)
+void  set_ssbi_mode_1(void __iomem *geni_offset)
 {
 	int i;
 
@@ -523,10 +514,8 @@ static int ssbi_probe(struct platform_device *pdev)
 		ssbi->controller_type = MSM_SBI_CTRL_PMIC_ARBITER;
 	else if (strcmp(type, "geni-ssbi-arbiter") == 0) {
 		ssbi->controller_type = FSM_SBI_CTRL_GENI_SSBI_ARBITER;
-		set_ssbi_mode_1(ssbi->base);
 	} else if (strcmp(type, "geni-ssbi2-arbiter") == 0) {
 		ssbi->controller_type = FSM_SBI_CTRL_GENI_SSBI2_ARBITER;
-		set_ssbi_mode_2(ssbi->base);
 	} else {
 		pr_err("Unknown qcom,controller-type\n");
 		ret = -EINVAL;
diff --git a/include/linux/ssbi.h b/include/linux/ssbi.h
index 2631f8f11d1a0de55db617b1c12940491e73f0e5..5050e6ea5d0eec3a537a35d34221a9e50cf233ca 100644
--- a/include/linux/ssbi.h
+++ b/include/linux/ssbi.h
@@ -1,5 +1,5 @@
 /* Copyright (C) 2010 Google, Inc.
- * Copyright (c) 2011,2013, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2011,2013-2014 The Linux Foundation. All rights reserved.
  * Author: Dima Zavin <dima@android.com>
  *
  * This program is free software; you can redistribute it and/or modify
@@ -35,6 +35,17 @@ struct ssbi_platform_data {
 	enum ssbi_controller_type controller_type;
 };
 
+struct ssbi {
+	struct device           *slave;
+	void __iomem            *base;
+	spinlock_t              lock;
+	enum ssbi_controller_type controller_type;
+	int (*read)(struct ssbi *, u16 addr, u8 *buf, int len);
+	int (*write)(struct ssbi *, u16 addr, u8 *buf, int len);
+};
+
 int ssbi_write(struct device *dev, u16 addr, u8 *buf, int len);
 int ssbi_read(struct device *dev, u16 addr, u8 *buf, int len);
+void  set_ssbi_mode_1(void __iomem *geni_offset);
+void  set_ssbi_mode_2(void __iomem *geni_offset);
 #endif