Lines Matching +full:switch +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"),
77 switch (buck) { in max77686_buck_volt2hex()
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()
113 switch (buck) { in max77686_buck_hex2volt()
138 return -EINVAL; in max77686_buck_hex2volt()
145 switch (ldo) { in max77686_ldo_volt2hex()
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()
174 switch (ldo) { in max77686_ldo_hex2volt()
193 return -EINVAL; in max77686_ldo_hex2volt()
199 return -EINVAL; in max77686_ldo_hex2mode()
201 switch (hex) { in max77686_ldo_hex2mode()
205 /* The same mode values but different meaning for each ldo */ in max77686_ldo_hex2mode()
206 switch (ldo) { in max77686_ldo_hex2mode()
226 return -EINVAL; in max77686_ldo_hex2mode()
233 return -EINVAL; in max77686_buck_hex2mode()
235 switch (hex) { in max77686_buck_hex2mode()
241 switch (buck) { in max77686_buck_hex2mode()
248 return -EINVAL; in max77686_buck_hex2mode()
251 switch (buck) { 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()
271 switch (buck) { in max77686_buck_modes()
293 int ret = -EINVAL; in max77686_ldo_modes()
298 switch (ldo) { in max77686_ldo_modes()
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()
356 ret = pmic_write(dev->parent, adr, &val, 1); in max77686_ldo_val()
367 buck = dev->driver_data; in max77686_buck_val()
370 return -EINVAL; in max77686_buck_val()
380 switch (buck) { in max77686_buck_val()
391 ret = pmic_read(dev->parent, adr, &val, 1); in max77686_buck_val()
410 ret = pmic_write(dev->parent, adr, &val, 1); in max77686_buck_val()
417 unsigned int adr, mode; in max77686_ldo_mode() local
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()
445 /* mode */ in max77686_ldo_mode()
446 switch (*opmode) { in max77686_ldo_mode()
448 mode = MAX77686_LDO_MODE_OFF; in max77686_ldo_mode()
451 switch (ldo) { in max77686_ldo_mode()
462 return -EINVAL; in max77686_ldo_mode()
464 mode = MAX77686_LDO_MODE_LPM; in max77686_ldo_mode()
468 switch (ldo) { 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()
516 switch (on_off) { in max77686_ldo_enable()
524 return -EINVAL; in max77686_ldo_enable()
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()
555 switch (buck) { in max77686_buck_mode()
567 ret = pmic_read(dev->parent, adr, &val, 1); in max77686_buck_mode()
581 /* mode */ in max77686_buck_mode()
582 switch (*opmode) { in max77686_buck_mode()
584 mode = MAX77686_BUCK_MODE_OFF; in max77686_buck_mode()
587 switch (buck) { in max77686_buck_mode()
592 mode = MAX77686_BUCK_MODE_STANDBY << mode_shift; in max77686_buck_mode()
595 mode = 0xff; in max77686_buck_mode()
599 switch (buck) { 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()
637 switch (on_off) { in max77686_buck_enable()
645 return -EINVAL; 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()