diff options
author | Mattias Wallin <mattias.wallin@stericsson.com> | 2010-05-27 08:23:07 +0200 |
---|---|---|
committer | John Rigby <john.rigby@linaro.org> | 2010-09-02 22:45:47 -0600 |
commit | af73cf9fd71c116dc78c0d0792ff75e9fd05631c (patch) | |
tree | 15ee713ccaba74a3717bda0f7d5005ff79f516a6 /include | |
parent | 3f681e66d2fe6a07774e9590bec5f5813381b126 (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.h | 55 |
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 |