Lines Matching +full:op +full:- +full:mode

2  *  Copyright (C) 2012-2015 Samsung Electronics
7 * SPDX-License-Identifier: GPL-2.0+
21 #define MODE(_id, _val, _name) { \ macro
29 MODE(OPMODE_OFF, MAX77686_LDO_MODE_OFF, "OFF"),
30 MODE(OPMODE_LPM, MAX77686_LDO_MODE_LPM, "LPM"),
31 MODE(OPMODE_STANDBY_LPM, MAX77686_LDO_MODE_STANDBY_LPM, "ON/LPM"),
32 MODE(OPMODE_ON, MAX77686_LDO_MODE_ON, "ON"),
37 MODE(OPMODE_OFF, MAX77686_LDO_MODE_OFF, "OFF"),
38 MODE(OPMODE_STANDBY, MAX77686_LDO_MODE_STANDBY, "ON/OFF"),
39 MODE(OPMODE_STANDBY_LPM, MAX77686_LDO_MODE_STANDBY_LPM, "ON/LPM"),
40 MODE(OPMODE_ON, MAX77686_LDO_MODE_ON, "ON"),
45 MODE(OPMODE_OFF, MAX77686_BUCK_MODE_OFF, "OFF"),
46 MODE(OPMODE_STANDBY, MAX77686_BUCK_MODE_STANDBY, "ON/OFF"),
47 MODE(OPMODE_ON, MAX77686_BUCK_MODE_ON, "ON"),
52 MODE(OPMODE_OFF, MAX77686_BUCK_MODE_OFF, "OFF"),
53 MODE(OPMODE_STANDBY, MAX77686_BUCK_MODE_STANDBY, "ON/OFF"),
54 MODE(OPMODE_LPM, MAX77686_BUCK_MODE_LPM, "LPM"),
55 MODE(OPMODE_ON, MAX77686_BUCK_MODE_ON, "ON"),
60 MODE(OPMODE_OFF, MAX77686_BUCK_MODE_OFF, "OFF"),
61 MODE(OPMODE_ON, MAX77686_BUCK_MODE_ON, "ON"),
81 /* hex = (uV - 600000) / 12500; */ in max77686_buck_volt2hex()
82 hex = (uV - MAX77686_BUCK_UV_LMIN) / MAX77686_BUCK_UV_LSTEP; in max77686_buck_volt2hex()
87 * hex = (uV - 750000) / 50000. We assume that dynamic voltage in max77686_buck_volt2hex()
93 hex = (uV - MAX77686_BUCK_UV_HMIN) / MAX77686_BUCK_UV_HSTEP; in max77686_buck_volt2hex()
102 return -EINVAL; in max77686_buck_volt2hex()
138 return -EINVAL; in max77686_buck_hex2volt()
152 hex = (uV - MAX77686_LDO_UV_MIN) / MAX77686_LDO_UV_LSTEP; in max77686_ldo_volt2hex()
153 /* hex = (uV - 800000) / 25000; */ in max77686_ldo_volt2hex()
156 hex = (uV - MAX77686_LDO_UV_MIN) / MAX77686_LDO_UV_HSTEP; in max77686_ldo_volt2hex()
157 /* hex = (uV - 800000) / 50000; */ in max77686_ldo_volt2hex()
164 return -EINVAL; in max77686_ldo_volt2hex()
193 return -EINVAL; in max77686_ldo_hex2volt()
199 return -EINVAL; in max77686_ldo_hex2mode()
205 /* The same mode values but different meaning for each ldo */ in max77686_ldo_hex2mode()
226 return -EINVAL; in max77686_ldo_hex2mode()
233 return -EINVAL; in max77686_buck_hex2mode()
248 return -EINVAL; in max77686_buck_hex2mode()
257 return -EINVAL; in max77686_buck_hex2mode()
260 return -EINVAL; in max77686_buck_hex2mode()
266 int ret = -EINVAL; in max77686_buck_modes()
293 int ret = -EINVAL; in max77686_ldo_modes()
320 static int max77686_ldo_val(struct udevice *dev, int op, int *uV) in max77686_ldo_val() argument
326 if (op == PMIC_OP_GET) in max77686_ldo_val()
329 ldo = dev->driver_data; in max77686_ldo_val()
332 return -EINVAL; in max77686_ldo_val()
335 adr = MAX77686_REG_PMIC_LDO1CTRL1 + ldo - 1; in max77686_ldo_val()
337 ret = pmic_read(dev->parent, adr, &val, 1); in max77686_ldo_val()
341 if (op == PMIC_OP_GET) { in max77686_ldo_val()
356 ret = pmic_write(dev->parent, adr, &val, 1); in max77686_ldo_val()
361 static int max77686_buck_val(struct udevice *dev, int op, int *uV) in max77686_buck_val() argument
367 buck = dev->driver_data; in max77686_buck_val()
370 return -EINVAL; in max77686_buck_val()
373 if (op == PMIC_OP_GET) in max77686_buck_val()
391 ret = pmic_read(dev->parent, adr, &val, 1); in max77686_buck_val()
395 if (op == PMIC_OP_GET) { in max77686_buck_val()
410 ret = pmic_write(dev->parent, adr, &val, 1); in max77686_buck_val()
415 static int max77686_ldo_mode(struct udevice *dev, int op, int *opmode) in max77686_ldo_mode() argument
417 unsigned int adr, mode; in max77686_ldo_mode() local
421 if (op == PMIC_OP_GET) in max77686_ldo_mode()
422 *opmode = -EINVAL; in max77686_ldo_mode()
424 ldo = dev->driver_data; in max77686_ldo_mode()
427 return -EINVAL; in max77686_ldo_mode()
430 adr = MAX77686_REG_PMIC_LDO1CTRL1 + ldo - 1; in max77686_ldo_mode()
432 ret = pmic_read(dev->parent, adr, &val, 1); in max77686_ldo_mode()
436 if (op == PMIC_OP_GET) { in max77686_ldo_mode()
445 /* mode */ in max77686_ldo_mode()
448 mode = MAX77686_LDO_MODE_OFF; in max77686_ldo_mode()
462 return -EINVAL; in max77686_ldo_mode()
464 mode = MAX77686_LDO_MODE_LPM; in max77686_ldo_mode()
479 mode = MAX77686_LDO_MODE_STANDBY; in max77686_ldo_mode()
482 return -EINVAL; in max77686_ldo_mode()
486 mode = MAX77686_LDO_MODE_STANDBY_LPM; in max77686_ldo_mode()
489 mode = MAX77686_LDO_MODE_ON; in max77686_ldo_mode()
492 mode = 0xff; in max77686_ldo_mode()
495 if (mode == 0xff) { in max77686_ldo_mode()
496 pr_err("Wrong mode: %d for ldo%d", *opmode, ldo); in max77686_ldo_mode()
497 return -EINVAL; in max77686_ldo_mode()
501 val |= mode; in max77686_ldo_mode()
502 ret = pmic_write(dev->parent, adr, &val, 1); in max77686_ldo_mode()
507 static int max77686_ldo_enable(struct udevice *dev, int op, bool *enable) in max77686_ldo_enable() argument
511 if (op == PMIC_OP_GET) { in max77686_ldo_enable()
512 ret = max77686_ldo_mode(dev, op, &on_off); in max77686_ldo_enable()
524 return -EINVAL; in max77686_ldo_enable()
526 } else if (op == PMIC_OP_SET) { in max77686_ldo_enable()
532 ret = max77686_ldo_mode(dev, op, &on_off); in max77686_ldo_enable()
540 static int max77686_buck_mode(struct udevice *dev, int op, int *opmode) in max77686_buck_mode() argument
542 unsigned int mask, adr, mode, mode_shift; in max77686_buck_mode() local
546 buck = dev->driver_data; in max77686_buck_mode()
549 return -EINVAL; in max77686_buck_mode()
567 ret = pmic_read(dev->parent, adr, &val, 1); in max77686_buck_mode()
571 if (op == PMIC_OP_GET) { in max77686_buck_mode()
581 /* mode */ in max77686_buck_mode()
584 mode = MAX77686_BUCK_MODE_OFF; in max77686_buck_mode()
592 mode = MAX77686_BUCK_MODE_STANDBY << mode_shift; in max77686_buck_mode()
595 mode = 0xff; in max77686_buck_mode()
603 mode = MAX77686_BUCK_MODE_LPM << mode_shift; in max77686_buck_mode()
606 mode = 0xff; in max77686_buck_mode()
610 mode = MAX77686_BUCK_MODE_ON << mode_shift; in max77686_buck_mode()
613 mode = 0xff; in max77686_buck_mode()
616 if (mode == 0xff) { in max77686_buck_mode()
617 pr_err("Wrong mode: %d for buck: %d\n", *opmode, buck); in max77686_buck_mode()
618 return -EINVAL; in max77686_buck_mode()
622 val |= mode; in max77686_buck_mode()
623 ret = pmic_write(dev->parent, adr, &val, 1); in max77686_buck_mode()
628 static int max77686_buck_enable(struct udevice *dev, int op, bool *enable) in max77686_buck_enable() argument
632 if (op == PMIC_OP_GET) { in max77686_buck_enable()
633 ret = max77686_buck_mode(dev, op, &on_off); in max77686_buck_enable()
645 return -EINVAL; in max77686_buck_enable()
647 } else if (op == PMIC_OP_SET) { in max77686_buck_enable()
653 ret = max77686_buck_mode(dev, op, &on_off); in max77686_buck_enable()
667 uc_pdata->type = REGULATOR_TYPE_LDO; in max77686_ldo_probe()
668 uc_pdata->mode_count = max77686_ldo_modes(dev->driver_data, in max77686_ldo_probe()
669 &uc_pdata->mode, dev); in max77686_ldo_probe()
710 int mode; in ldo_get_mode() local
713 ret = max77686_ldo_mode(dev, PMIC_OP_GET, &mode); in ldo_get_mode()
717 return mode; in ldo_get_mode()
720 static int ldo_set_mode(struct udevice *dev, int mode) in ldo_set_mode() argument
722 return max77686_ldo_mode(dev, PMIC_OP_SET, &mode); in ldo_set_mode()
731 uc_pdata->type = REGULATOR_TYPE_BUCK; in max77686_buck_probe()
732 uc_pdata->mode_count = max77686_buck_modes(dev->driver_data, in max77686_buck_probe()
733 &uc_pdata->mode); in max77686_buck_probe()
774 int mode; in buck_get_mode() local
777 ret = max77686_buck_mode(dev, PMIC_OP_GET, &mode); in buck_get_mode()
781 return mode; in buck_get_mode()
784 static int buck_set_mode(struct udevice *dev, int mode) in buck_set_mode() argument
786 return max77686_buck_mode(dev, PMIC_OP_SET, &mode); in buck_set_mode()