0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019 #ifndef __MAX14577_H__
0020 #define __MAX14577_H__
0021
0022 #include <linux/regulator/consumer.h>
0023
0024
0025 enum max14577_regulators {
0026 MAX14577_SAFEOUT = 0,
0027 MAX14577_CHARGER,
0028
0029 MAX14577_REGULATOR_NUM,
0030 };
0031
0032
0033 enum max77836_regulators {
0034 MAX77836_SAFEOUT = 0,
0035 MAX77836_CHARGER,
0036 MAX77836_LDO1,
0037 MAX77836_LDO2,
0038
0039 MAX77836_REGULATOR_NUM,
0040 };
0041
0042 struct max14577_regulator_platform_data {
0043 int id;
0044 struct regulator_init_data *initdata;
0045 struct device_node *of_node;
0046 };
0047
0048 struct max14577_charger_platform_data {
0049 u32 constant_uvolt;
0050 u32 fast_charge_uamp;
0051 u32 eoc_uamp;
0052 u32 ovp_uvolt;
0053 };
0054
0055
0056
0057
0058 struct max14577_platform_data {
0059
0060 int irq_base;
0061
0062
0063 int gpio_pogo_vbatt_en;
0064 int gpio_pogo_vbus_en;
0065
0066
0067 int (*set_gpio_pogo_vbatt_en) (int gpio_val);
0068 int (*set_gpio_pogo_vbus_en) (int gpio_val);
0069
0070 int (*set_gpio_pogo_cb) (int new_dev);
0071
0072 struct max14577_regulator_platform_data *regulators;
0073 };
0074
0075
0076
0077
0078
0079
0080 struct maxim_charger_current {
0081
0082 unsigned int min;
0083
0084
0085
0086
0087 unsigned int high_start;
0088
0089 unsigned int high_step;
0090
0091 unsigned int max;
0092 };
0093
0094 extern const struct maxim_charger_current maxim_charger_currents[];
0095 extern int maxim_charger_calc_reg_current(const struct maxim_charger_current *limits,
0096 unsigned int min_ua, unsigned int max_ua, u8 *dst);
0097
0098 #endif