summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/leds/leds-ab5500.c1
-rw-r--r--drivers/mfd/ab5500-gpadc.c1
-rw-r--r--drivers/mfd/ab5500-power.c1
-rw-r--r--drivers/power/ab5500_btemp.c1
-rw-r--r--drivers/power/ab5500_charger.c1
-rw-r--r--drivers/power/ab5500_fg.c1
-rw-r--r--drivers/rtc/rtc-ab.c1
-rw-r--r--include/linux/mfd/abx500/ab5500-bm.h4
-rw-r--r--include/linux/mfd/abx500/ab5500.h24
9 files changed, 32 insertions, 3 deletions
diff --git a/drivers/leds/leds-ab5500.c b/drivers/leds/leds-ab5500.c
index e4376d1b59b..94db3a6feea 100644
--- a/drivers/leds/leds-ab5500.c
+++ b/drivers/leds/leds-ab5500.c
@@ -14,6 +14,7 @@
#include <linux/platform_device.h>
#include <linux/input.h>
#include <linux/mfd/abx500.h>
+#include <linux/mfd/abx500/ab5500.h>
#include <linux/leds-ab5500.h>
#include <linux/types.h>
diff --git a/drivers/mfd/ab5500-gpadc.c b/drivers/mfd/ab5500-gpadc.c
index dbfc9c30e38..6756d3cf37a 100644
--- a/drivers/mfd/ab5500-gpadc.c
+++ b/drivers/mfd/ab5500-gpadc.c
@@ -17,6 +17,7 @@
#include <linux/slab.h>
#include <linux/list.h>
#include <linux/mfd/abx500.h>
+#include <linux/mfd/abx500/ab5500.h>
#include <linux/mfd/abx500/ab5500-gpadc.h>
/*
diff --git a/drivers/mfd/ab5500-power.c b/drivers/mfd/ab5500-power.c
index d23960bc976..a549b3e7538 100644
--- a/drivers/mfd/ab5500-power.c
+++ b/drivers/mfd/ab5500-power.c
@@ -10,6 +10,7 @@
#include <linux/platform_device.h>
#include <linux/mfd/abx500.h>
+#include <linux/mfd/abx500/ab5500.h>
static struct device *dev;
diff --git a/drivers/power/ab5500_btemp.c b/drivers/power/ab5500_btemp.c
index 2e2a5054a58..7867455f493 100644
--- a/drivers/power/ab5500_btemp.c
+++ b/drivers/power/ab5500_btemp.c
@@ -20,6 +20,7 @@
#include <linux/completion.h>
#include <linux/workqueue.h>
#include <linux/mfd/abx500.h>
+#include <linux/mfd/abx500/ab5500.h>
#include <linux/mfd/abx500/ab5500-bm.h>
#include <linux/mfd/abx500/ab5500-gpadc.h>
diff --git a/drivers/power/ab5500_charger.c b/drivers/power/ab5500_charger.c
index b30f00a57f9..8b5b081fe34 100644
--- a/drivers/power/ab5500_charger.c
+++ b/drivers/power/ab5500_charger.c
@@ -23,6 +23,7 @@
#include <linux/workqueue.h>
#include <linux/kobject.h>
#include <linux/mfd/abx500.h>
+#include <linux/mfd/abx500/ab5500.h>
#include <linux/mfd/abx500/ab5500-bm.h>
#include <linux/mfd/abx500/ab5500-gpadc.h>
#include <linux/mfd/abx500/ux500_chargalg.h>
diff --git a/drivers/power/ab5500_fg.c b/drivers/power/ab5500_fg.c
index bb2bfb9e840..0975c7417a4 100644
--- a/drivers/power/ab5500_fg.c
+++ b/drivers/power/ab5500_fg.c
@@ -26,6 +26,7 @@
#include <linux/mfd/abx500/ab5500-gpadc.h>
#include <linux/mfd/abx500/ab5500-bm.h>
#include <linux/mfd/abx500.h>
+#include <linux/mfd/abx500/ab5500.h>
static LIST_HEAD(ab5500_fg_list);
diff --git a/drivers/rtc/rtc-ab.c b/drivers/rtc/rtc-ab.c
index 8e595e05d99..db1992632fa 100644
--- a/drivers/rtc/rtc-ab.c
+++ b/drivers/rtc/rtc-ab.c
@@ -13,6 +13,7 @@
#include <linux/interrupt.h>
#include <linux/delay.h>
#include <linux/mfd/abx500.h>
+#include <linux/mfd/abx500/ab5500.h>
#define AB5500_RTC_CLOCK_RATE 32768
#define AB5500_RTC 0x00
diff --git a/include/linux/mfd/abx500/ab5500-bm.h b/include/linux/mfd/abx500/ab5500-bm.h
index 1bb22614b27..f62137a6e9d 100644
--- a/include/linux/mfd/abx500/ab5500-bm.h
+++ b/include/linux/mfd/abx500/ab5500-bm.h
@@ -106,11 +106,11 @@ int ab5500_btemp_get_batctrl_temp(struct ab5500_btemp *btemp);
static void ab5500_charger_usb_state_changed(u8 bm_usb_state, u16 mA)
{
}
-inline struct ab5500_btemp *ab5500_btemp_get(void)
+static inline struct ab5500_btemp *ab5500_btemp_get(void)
{
return 0;
}
-inline int ab5500_btemp_get_batctrl_temp(struct ab5500_btemp *btemp)
+static inline int ab5500_btemp_get_batctrl_temp(struct ab5500_btemp *btemp)
{
return 0;
}
diff --git a/include/linux/mfd/abx500/ab5500.h b/include/linux/mfd/abx500/ab5500.h
index 54f820ed73b..13ef9bcf30e 100644
--- a/include/linux/mfd/abx500/ab5500.h
+++ b/include/linux/mfd/abx500/ab5500.h
@@ -24,6 +24,9 @@ enum ab5500_devid {
AB5500_DEVID_VIDEO,
AB5500_DEVID_DBIECI,
AB5500_DEVID_ONSWA,
+ AB5500_DEVID_CHARGALG,
+ AB5500_DEVID_BTEMP,
+ AB5500_DEVID_TEMPMON,
AB5500_NUM_DEVICES,
};
@@ -92,8 +95,9 @@ enum ab5500_banks_addr {
#define AB5500_IT_SOURCE21_REG 0x35
#define AB5500_IT_SOURCE22_REG 0x36
#define AB5500_IT_SOURCE23_REG 0x37
+#define AB5500_IT_SOURCE24_REG 0x38
-#define AB5500_NUM_IRQ_REGS 23
+#define AB5500_NUM_IRQ_REGS 25
/**
* struct ab5500
@@ -118,6 +122,7 @@ struct ab5500 {
char chip_name[32];
u8 chip_id;
struct mutex irq_lock;
+ u32 num_event_reg;
u32 abb_events;
u8 mask[AB5500_NUM_IRQ_REGS];
u8 oldmask[AB5500_NUM_IRQ_REGS];
@@ -129,12 +134,29 @@ struct ab5500 {
#endif
};
+#ifndef CONFIG_AB5500_CORE
+static inline int ab5500_clock_rtc_enable(int num, bool enable)
+{
+ return -ENOSYS;
+}
+#else
+extern int ab5500_clock_rtc_enable(int num, bool enable);
+#endif
+
+/* Forward Declaration */
+struct ab5500_regulator_platform_data;
+
struct ab5500_platform_data {
struct {unsigned int base; unsigned int count; } irq;
void *dev_data[AB5500_NUM_DEVICES];
+ size_t dev_data_sz[AB5500_NUM_DEVICES];
struct abx500_init_settings *init_settings;
unsigned int init_settings_sz;
bool pm_power_off;
+ struct ab5500_regulator_platform_data *regulator;
};
+struct ab5500_ponkey_platform_data {
+ u8 shutdown_secs;
+};
#endif /* MFD_AB5500_H */