aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorMattias Wallin <mattias.wallin@stericsson.com>2010-05-27 08:23:07 +0200
committerJohn Rigby <john.rigby@linaro.org>2010-09-02 22:45:47 -0600
commitaf73cf9fd71c116dc78c0d0792ff75e9fd05631c (patch)
tree15ee713ccaba74a3717bda0f7d5005ff79f516a6 /include
parent3f681e66d2fe6a07774e9590bec5f5813381b126 (diff)
MFD: AB5500 core driver
This adds a core driver for the AB5500 mixed-signal circuit found in the ST-Ericsson U5500 platform. This driver is a singleton proxy for all access to AB5500 sub functionality drivers which can be added on top of this one: RTC, regulators, battery, vibrator, LEDs and ALSA codec. Signed-off-by: Mattias Wallin <mattias.wallin@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/499 Reviewed-by: Mattias NILSSON <mattias.i.nilsson@stericsson.com> Signed-off-by: Mian Yousaf Kaukab <mian.yousaf.kaukab@stericsson.com> Change-Id: Iff82184cb00824230708bc4388983805531523b7 Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/2634 Reviewed-by: Jonas ABERG <jonas.aberg@stericsson.com>
Diffstat (limited to 'include')
-rw-r--r--include/linux/mfd/abx500.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/include/linux/mfd/abx500.h b/include/linux/mfd/abx500.h
index 36628452725..7ef38070947 100644
--- a/include/linux/mfd/abx500.h
+++ b/include/linux/mfd/abx500.h
@@ -230,6 +230,61 @@ struct ab3550_platform_data {
unsigned int init_settings_sz;
};
+enum ab5500_devid {
+ AB5500_DEVID_ADC,
+ AB5500_DEVID_LEDS,
+ AB5500_DEVID_POWER,
+ AB5500_DEVID_REGULATORS,
+ AB5500_DEVID_SIM,
+ AB5500_DEVID_RTC,
+ AB5500_DEVID_CHARGER,
+ AB5500_DEVID_FUELGAUGE,
+ AB5500_DEVID_VIBRATOR,
+ AB5500_DEVID_CODEC,
+ AB5500_DEVID_USB,
+ AB5500_DEVID_OTP,
+ AB5500_DEVID_VIDEO,
+ AB5500_DEVID_DBIECI,
+ AB5500_NUM_DEVICES,
+};
+
+enum ab5500_banks {
+ AB5500_BANK_VIT_IO_I2C_CLK_TST_OTP = 0,
+ AB5500_BANK_VDDDIG_IO_I2C_CLK_TST = 1,
+ AB5500_BANK_VDENC = 2,
+ AB5500_BANK_SIM_USBSIM = 3,
+ AB5500_BANK_LED = 4,
+ AB5500_BANK_ADC = 5,
+ AB5500_BANK_RTC = 6,
+ AB5500_BANK_STARTUP = 7,
+ AB5500_BANK_DBI_ECI = 8,
+ AB5500_BANK_CHG = 9,
+ AB5500_BANK_FG_BATTCOM_ACC = 10,
+ AB5500_BANK_USB = 11,
+ AB5500_BANK_IT = 12,
+ AB5500_BANK_VIBRA = 13,
+ AB5500_BANK_AUDIO_HEADSETUSB = 14,
+ AB5500_NUM_BANKS = 15,
+};
+
+/**
+ * struct ab5500_platform_data - Platform data for ab5500
+ * @irq: Interrupt base and count used for events to the subdrivers
+ * @dev_data: Device specific data
+ * @dev_data_sz: Size of dev_data in bytes
+ * @init_settings: Initial I2C register settings
+ * @init_settings_sz: Size of init_settings in bytes
+ *
+ * Data supplied to initialize board connections to the AB5500
+ */
+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;
+};
+
/**
* abx500_set_register_interruptible() - Set one target register
* @dev: The AB subdevice