1 /* SPDX-License-Identifier: GPL-2.0+ */ 1 2 /* 3 * max14577.h - Driver for the Maxim 14577/778 4 * 5 * Copyright (C) 2014 Samsung Electrnoics 6 * Chanwoo Choi <cw00.choi@samsung.com> 7 * Krzysztof Kozlowski <krzk@kernel.org> 8 * 9 * This driver is based on max8997.h 10 * 11 * MAX14577 has MUIC, Charger devices. 12 * The devices share the same I2C bus and inte 13 * included in this mfd driver. 14 * 15 * MAX77836 has additional PMIC and Fuel-Gauge 16 * addresses. 17 */ 18 19 #ifndef __MAX14577_H__ 20 #define __MAX14577_H__ 21 22 #include <linux/regulator/consumer.h> 23 24 /* MAX14577 regulator IDs */ 25 enum max14577_regulators { 26 MAX14577_SAFEOUT = 0, 27 MAX14577_CHARGER, 28 29 MAX14577_REGULATOR_NUM, 30 }; 31 32 /* MAX77836 regulator IDs */ 33 enum max77836_regulators { 34 MAX77836_SAFEOUT = 0, 35 MAX77836_CHARGER, 36 MAX77836_LDO1, 37 MAX77836_LDO2, 38 39 MAX77836_REGULATOR_NUM, 40 }; 41 42 struct max14577_regulator_platform_data { 43 int id; 44 struct regulator_init_data *initdata; 45 struct device_node *of_node; 46 }; 47 48 struct max14577_charger_platform_data { 49 u32 constant_uvolt; 50 u32 fast_charge_uamp; 51 u32 eoc_uamp; 52 u32 ovp_uvolt; 53 }; 54 55 /* 56 * MAX14577 MFD platform data 57 */ 58 struct max14577_platform_data { 59 /* IRQ */ 60 int irq_base; 61 62 /* current control GPIOs */ 63 int gpio_pogo_vbatt_en; 64 int gpio_pogo_vbus_en; 65 66 /* current control GPIO control functi 67 int (*set_gpio_pogo_vbatt_en) (int gpi 68 int (*set_gpio_pogo_vbus_en) (int gpio 69 70 int (*set_gpio_pogo_cb) (int new_dev); 71 72 struct max14577_regulator_platform_dat 73 }; 74 75 /* 76 * Valid limits of current for max14577 and ma 77 * They must correspond to MBCICHWRCL and MBCI 78 * register for given chipset. 79 */ 80 struct maxim_charger_current { 81 /* Minimal current, set in CHGCTRL4/MB 82 unsigned int min; 83 /* 84 * Minimal current when high setting i 85 * set in CHGCTRL4/MBCICHWRCH, uA 86 */ 87 unsigned int high_start; 88 /* Value of one step in high setting, 89 unsigned int high_step; 90 /* Maximum current of high setting, uA 91 unsigned int max; 92 }; 93 94 extern const struct maxim_charger_current maxi 95 extern int maxim_charger_calc_reg_current(cons 96 unsigned int min_ua, unsigned 97 98 #endif /* __MAX14577_H__ */ 99
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.