| /* | |
| * Copyright (C) ST-Ericsson SA 2010 | |
| * | |
| * License Terms: GNU General Public License v2 | |
| * | |
| * Authors: Sundar Iyer <sundar.iyer@stericsson.com> for ST-Ericsson | |
| * Bengt Jonsson <bengt.g.jonsson@stericsson.com> for ST-Ericsson | |
| * Daniel Willerud <daniel.willerud@stericsson.com> for ST-Ericsson | |
| */ | |
| #ifndef __LINUX_MFD_AB8500_REGULATOR_H | |
| #define __LINUX_MFD_AB8500_REGULATOR_H | |
| #include <linux/platform_device.h> | |
| /* AB8500 regulators */ | |
| enum ab8500_regulator_id { | |
| AB8500_LDO_AUX1, | |
| AB8500_LDO_AUX2, | |
| AB8500_LDO_AUX3, | |
| AB8500_LDO_INTCORE, | |
| AB8500_LDO_TVOUT, | |
| AB8500_LDO_AUDIO, | |
| AB8500_LDO_ANAMIC1, | |
| AB8500_LDO_ANAMIC2, | |
| AB8500_LDO_DMIC, | |
| AB8500_LDO_ANA, | |
| AB8500_NUM_REGULATORS, | |
| }; | |
| /* AB8505 regulators */ | |
| enum ab8505_regulator_id { | |
| AB8505_LDO_AUX1, | |
| AB8505_LDO_AUX2, | |
| AB8505_LDO_AUX3, | |
| AB8505_LDO_AUX4, | |
| AB8505_LDO_AUX5, | |
| AB8505_LDO_AUX6, | |
| AB8505_LDO_INTCORE, | |
| AB8505_LDO_ADC, | |
| AB8505_LDO_AUDIO, | |
| AB8505_LDO_ANAMIC1, | |
| AB8505_LDO_ANAMIC2, | |
| AB8505_LDO_AUX8, | |
| AB8505_LDO_ANA, | |
| AB8505_NUM_REGULATORS, | |
| }; | |
| /* AB8500 and AB8505 register initialization */ | |
| struct ab8500_regulator_reg_init { | |
| int id; | |
| u8 mask; | |
| u8 value; | |
| }; | |
| #define INIT_REGULATOR_REGISTER(_id, _mask, _value) \ | |
| { \ | |
| .id = _id, \ | |
| .mask = _mask, \ | |
| .value = _value, \ | |
| } | |
| /* AB8500 registers */ | |
| enum ab8500_regulator_reg { | |
| AB8500_REGUREQUESTCTRL2, | |
| AB8500_REGUREQUESTCTRL3, | |
| AB8500_REGUREQUESTCTRL4, | |
| AB8500_REGUSYSCLKREQ1HPVALID1, | |
| AB8500_REGUSYSCLKREQ1HPVALID2, | |
| AB8500_REGUHWHPREQ1VALID1, | |
| AB8500_REGUHWHPREQ1VALID2, | |
| AB8500_REGUHWHPREQ2VALID1, | |
| AB8500_REGUHWHPREQ2VALID2, | |
| AB8500_REGUSWHPREQVALID1, | |
| AB8500_REGUSWHPREQVALID2, | |
| AB8500_REGUSYSCLKREQVALID1, | |
| AB8500_REGUSYSCLKREQVALID2, | |
| AB8500_REGUMISC1, | |
| AB8500_VAUDIOSUPPLY, | |
| AB8500_REGUCTRL1VAMIC, | |
| AB8500_VPLLVANAREGU, | |
| AB8500_VREFDDR, | |
| AB8500_EXTSUPPLYREGU, | |
| AB8500_VAUX12REGU, | |
| AB8500_VRF1VAUX3REGU, | |
| AB8500_VAUX1SEL, | |
| AB8500_VAUX2SEL, | |
| AB8500_VRF1VAUX3SEL, | |
| AB8500_REGUCTRL2SPARE, | |
| AB8500_REGUCTRLDISCH, | |
| AB8500_REGUCTRLDISCH2, | |
| AB8500_NUM_REGULATOR_REGISTERS, | |
| }; | |
| /* AB8505 registers */ | |
| enum ab8505_regulator_reg { | |
| AB8505_REGUREQUESTCTRL1, | |
| AB8505_REGUREQUESTCTRL2, | |
| AB8505_REGUREQUESTCTRL3, | |
| AB8505_REGUREQUESTCTRL4, | |
| AB8505_REGUSYSCLKREQ1HPVALID1, | |
| AB8505_REGUSYSCLKREQ1HPVALID2, | |
| AB8505_REGUHWHPREQ1VALID1, | |
| AB8505_REGUHWHPREQ1VALID2, | |
| AB8505_REGUHWHPREQ2VALID1, | |
| AB8505_REGUHWHPREQ2VALID2, | |
| AB8505_REGUSWHPREQVALID1, | |
| AB8505_REGUSWHPREQVALID2, | |
| AB8505_REGUSYSCLKREQVALID1, | |
| AB8505_REGUSYSCLKREQVALID2, | |
| AB8505_REGUVAUX4REQVALID, | |
| AB8505_REGUMISC1, | |
| AB8505_VAUDIOSUPPLY, | |
| AB8505_REGUCTRL1VAMIC, | |
| AB8505_VSMPSAREGU, | |
| AB8505_VSMPSBREGU, | |
| AB8505_VSAFEREGU, /* NOTE! PRCMU register */ | |
| AB8505_VPLLVANAREGU, | |
| AB8505_EXTSUPPLYREGU, | |
| AB8505_VAUX12REGU, | |
| AB8505_VRF1VAUX3REGU, | |
| AB8505_VSMPSASEL1, | |
| AB8505_VSMPSASEL2, | |
| AB8505_VSMPSASEL3, | |
| AB8505_VSMPSBSEL1, | |
| AB8505_VSMPSBSEL2, | |
| AB8505_VSMPSBSEL3, | |
| AB8505_VSAFESEL1, /* NOTE! PRCMU register */ | |
| AB8505_VSAFESEL2, /* NOTE! PRCMU register */ | |
| AB8505_VSAFESEL3, /* NOTE! PRCMU register */ | |
| AB8505_VAUX1SEL, | |
| AB8505_VAUX2SEL, | |
| AB8505_VRF1VAUX3SEL, | |
| AB8505_VAUX4REQCTRL, | |
| AB8505_VAUX4REGU, | |
| AB8505_VAUX4SEL, | |
| AB8505_REGUCTRLDISCH, | |
| AB8505_REGUCTRLDISCH2, | |
| AB8505_REGUCTRLDISCH3, | |
| AB8505_CTRLVAUX5, | |
| AB8505_CTRLVAUX6, | |
| AB8505_NUM_REGULATOR_REGISTERS, | |
| }; | |
| /* AB8500 external regulators */ | |
| struct ab8500_ext_regulator_cfg { | |
| bool hwreq; /* requires hw mode or high power mode */ | |
| }; | |
| enum ab8500_ext_regulator_id { | |
| AB8500_EXT_SUPPLY1, | |
| AB8500_EXT_SUPPLY2, | |
| AB8500_EXT_SUPPLY3, | |
| AB8500_NUM_EXT_REGULATORS, | |
| }; | |
| /* AB8500 regulator platform data */ | |
| struct ab8500_regulator_platform_data { | |
| int num_reg_init; | |
| struct ab8500_regulator_reg_init *reg_init; | |
| int num_regulator; | |
| struct regulator_init_data *regulator; | |
| int num_ext_regulator; | |
| struct regulator_init_data *ext_regulator; | |
| }; | |
| #endif |