Lines Matching +full:off +full:- +full:on +full:- +full:delay +full:- +full:us

1 // SPDX-License-Identifier: GPL-2.0
5 // Copyright (c) <2011-2014> HiSilicon Technologies Co., Ltd.
7 // Copyright (c) <2013-2014> Linaro Ltd.
22 #include <linux/mfd/hi6421-pmic.h>
25 * struct hi6421_regulator_pdata - Hi6421 regulator data of platform device
33 * struct hi6421_regulator_info - hi6421 regulator information
118 * _id - LDO id name string
119 * _match - of match name string
120 * v_table - voltage table
121 * vreg - voltage select register
122 * vmask - voltage select mask
123 * ereg - enable register
124 * emask - enable mask
125 * odelay - off/on delay time in uS
126 * ecomask - eco mode mask
127 * ecoamp - eco mode load uppler limit in uA
155 * _id - LDO id name string
156 * _match - of match name string
157 * _min_uV - minimum voltage supported in uV
158 * n_volt - number of votages available
159 * vstep - voltage increase in each linear step in uV
160 * vreg - voltage select register
161 * vmask - voltage select mask
162 * ereg - enable register
163 * emask - enable mask
164 * odelay - off/on delay time in uS
165 * ecomask - eco mode mask
166 * ecoamp - eco mode load uppler limit in uA
193 /* HI6421 LDOAUDIO is a linear voltage regulator with two 4-step ranges
195 * _id - LDO id name string
196 * _match - of match name string
197 * n_volt - number of votages available
198 * volt_ranges - array of linear_range
199 * vstep - voltage increase in each linear step in uV
200 * vreg - voltage select register
201 * vmask - voltage select mask
202 * ereg - enable register
203 * emask - enable mask
204 * odelay - off/on delay time in uS
205 * ecomask - eco mode mask
206 * ecoamp - eco mode load uppler limit in uA
235 * _id - BUCK0/1/2 id name string
236 * _match - of match name string
237 * vreg - voltage select register
238 * vmask - voltage select mask
239 * ereg - enable register
240 * emask - enable mask
241 * sleepmask - mask of sleep mode
242 * etime - enable time
243 * odelay - off/on delay time in uS
272 * _id - LDO id name string
273 * _match - of match name string
274 * v_table - voltage table
275 * vreg - voltage select register
276 * vmask - voltage select mask
277 * ereg - enable register
278 * emask - enable mask
279 * odelay - off/on delay time in uS
280 * sleepmask - mask of sleep mode
371 pdata = dev_get_drvdata(rdev->dev.parent); in hi6421_regulator_enable()
373 * - Because when BUCK, LDO switching from off to on, it will have in hi6421_regulator_enable()
374 * a huge instantaneous current; so you can not turn on two or in hi6421_regulator_enable()
377 mutex_lock(&pdata->lock); in hi6421_regulator_enable()
382 mutex_unlock(&pdata->lock); in hi6421_regulator_enable()
391 regmap_read(rdev->regmap, rdev->desc->enable_reg, &reg_val); in hi6421_regulator_ldo_get_mode()
392 if (reg_val & info->mode_mask) in hi6421_regulator_ldo_get_mode()
403 regmap_read(rdev->regmap, rdev->desc->enable_reg, &reg_val); in hi6421_regulator_buck_get_mode()
404 if (reg_val & info->mode_mask) in hi6421_regulator_buck_get_mode()
421 new_mode = info->mode_mask; in hi6421_regulator_ldo_set_mode()
424 return -EINVAL; in hi6421_regulator_ldo_set_mode()
428 regmap_update_bits(rdev->regmap, rdev->desc->enable_reg, in hi6421_regulator_ldo_set_mode()
429 info->mode_mask, new_mode); in hi6421_regulator_ldo_set_mode()
445 new_mode = info->mode_mask; in hi6421_regulator_buck_set_mode()
448 return -EINVAL; in hi6421_regulator_buck_set_mode()
452 regmap_update_bits(rdev->regmap, rdev->desc->enable_reg, in hi6421_regulator_buck_set_mode()
453 info->mode_mask, new_mode); in hi6421_regulator_buck_set_mode()
464 if (load_uA > info->eco_microamp) in hi6421_regulator_ldo_get_optimum_mode()
535 struct hi6421_pmic *pmic = dev_get_drvdata(pdev->dev.parent); in hi6421_regulator_probe()
542 pdata = devm_kzalloc(&pdev->dev, sizeof(*pdata), GFP_KERNEL); in hi6421_regulator_probe()
544 return -ENOMEM; in hi6421_regulator_probe()
545 mutex_init(&pdata->lock); in hi6421_regulator_probe()
549 /* assign per-regulator data */ in hi6421_regulator_probe()
552 config.dev = pdev->dev.parent; in hi6421_regulator_probe()
554 config.regmap = pmic->regmap; in hi6421_regulator_probe()
556 rdev = devm_regulator_register(&pdev->dev, &info->desc, in hi6421_regulator_probe()
559 dev_err(&pdev->dev, "failed to register regulator %s\n", in hi6421_regulator_probe()
560 info->desc.name); in hi6421_regulator_probe()
569 { .name = "hi6421-regulator" },
577 .name = "hi6421-regulator",