Lines Matching +full:current +full:- +full:mode
2 * Copyright (C) 2014-2015 Samsung Electronics
5 * SPDX-License-Identifier: GPL-2.0+
10 #include <dm/uclass-internal.h>
30 int ret = -ENXIO; in do_dev()
48 printf("%s: no regulator platform data!\n", currdev->name); in do_dev()
52 printf("dev: %s @ %s\n", uc_pdata->name, currdev->name); in do_dev()
74 pr_err("Regulator: %s - missing platform data!", currdev->name); in curr_dev_and_platdata()
78 if (!allow_type_fixed && (*uc_pdata)->type == REGULATOR_TYPE_FIXED) { in curr_dev_and_platdata()
92 printf("| %-*.*s| %-*.*s| %s\n", in do_list()
94 LIMIT_OFNAME, LIMIT_OFNAME, "regulator-name", in do_list()
103 printf("| %-*.*s| %-*.*s| %s\n", in do_list()
104 LIMIT_DEVNAME, LIMIT_DEVNAME, dev->name, in do_list()
105 LIMIT_OFNAME, LIMIT_OFNAME, uc_pdata->name, in do_list()
106 dev->parent->name); in do_list()
114 printf("%-*s", LIMIT_INFO, name); in constraint()
128 static const char *get_mode_name(struct dm_regulator_mode *mode, in get_mode_name() argument
132 while (mode_count--) { in get_mode_name()
133 if (mode->id == mode_id) in get_mode_name()
134 return mode->name; in get_mode_name()
135 mode++; in get_mode_name()
155 parent_uc = dev_get_uclass_name(dev->parent); in do_info()
157 printf("%s\n%-*s %s\n%-*s %s\n%-*s %s\n%-*s %s\n%-*s\n", in do_info()
159 LIMIT_INFO, "* regulator-name:", uc_pdata->name, in do_info()
160 LIMIT_INFO, "* device name:", dev->name, in do_info()
161 LIMIT_INFO, "* parent name:", dev->parent->name, in do_info()
165 constraint(" - min uV:", uc_pdata->min_uV, NULL); in do_info()
166 constraint(" - max uV:", uc_pdata->max_uV, NULL); in do_info()
167 constraint(" - min uA:", uc_pdata->min_uA, NULL); in do_info()
168 constraint(" - max uA:", uc_pdata->max_uA, NULL); in do_info()
169 constraint(" - always on:", uc_pdata->always_on, in do_info()
170 uc_pdata->always_on ? "true" : "false"); in do_info()
171 constraint(" - boot on:", uc_pdata->boot_on, in do_info()
172 uc_pdata->boot_on ? "true" : "false"); in do_info()
178 constraint(" - mode id:", modes->id, modes->name); in do_info()
186 int current, value, mode; in do_status_detail() local
190 printf("Regulator %s status:\n", uc_pdata->name); in do_status_detail()
198 current = regulator_get_current(dev); in do_status_detail()
199 constraint(" * current uA:", current, NULL); in do_status_detail()
201 mode = regulator_get_mode(dev); in do_status_detail()
202 mode_name = get_mode_name(uc_pdata->mode, uc_pdata->mode_count, mode); in do_status_detail()
203 constraint(" * mode id:", mode, mode_name); in do_status_detail()
209 int current, value, mode; in do_status_line() local
216 current = regulator_get_current(dev); in do_status_line()
217 mode = regulator_get_mode(dev); in do_status_line()
218 mode_name = get_mode_name(pdata->mode, pdata->mode_count, mode); in do_status_line()
219 printf("%-20s %-10s ", pdata->name, enabled ? "enabled" : "disabled"); in do_status_line()
223 printf("%10s ", "-"); in do_status_line()
224 if (current >= 0) in do_status_line()
225 printf("%10d ", current); in do_status_line()
227 printf("%10s ", "-"); in do_status_line()
228 if (mode >= 0) in do_status_line()
229 printf("%-10s", mode_name); in do_status_line()
231 printf("%-10s", "-"); in do_status_line()
241 if (currdev && (argc < 2 || strcmp(argv[1], "-a"))) { in do_status()
250 printf("%-20s %-10s %10s %10s %-10s\n", "Name", "Enabled", "uV", "mA", in do_status()
251 "Mode"); in do_status()
274 printf("Regulator: %s - can't get the Voltage!\n", in do_value()
275 uc_pdata->name); in do_value()
284 force = !strcmp("-f", argv[2]); in do_value()
289 if ((value < uc_pdata->min_uV || value > uc_pdata->max_uV) && !force) { in do_value()
291 uc_pdata->min_uV, uc_pdata->max_uV); in do_value()
300 printf("Regulator: %s - can't set the Voltage!\n", in do_value()
301 uc_pdata->name); in do_value()
312 int current; in do_current() local
322 printf("Regulator: %s - can't get the Current!\n", in do_current()
323 uc_pdata->name); in do_current()
331 current = simple_strtoul(argv[1], NULL, 0); in do_current()
332 if (current < uc_pdata->min_uA || current > uc_pdata->max_uA) { in do_current()
333 printf("Current exceeds regulator constraint limits\n"); in do_current()
337 ret = regulator_set_current(dev, current); in do_current()
339 printf("Regulator: %s - can't set the Current!\n", in do_current()
340 uc_pdata->name); in do_current()
351 int mode; in do_mode() local
361 printf("Regulator: %s - can't get the operation mode!\n", in do_mode()
362 uc_pdata->name); in do_mode()
366 printf("mode id: %d\n", ret); in do_mode()
370 mode = simple_strtoul(argv[1], NULL, 0); in do_mode()
372 ret = regulator_set_mode(dev, mode); in do_mode()
374 printf("Regulator: %s - can't set the operation mode!\n", in do_mode()
375 uc_pdata->name); in do_mode()
394 printf("Regulator: %s - can't enable!\n", uc_pdata->name); in do_enable()
413 printf("Regulator: %s - can't disable!\n", uc_pdata->name); in do_disable()
426 U_BOOT_CMD_MKENT(current, 3, 1, do_current, "", ""),
427 U_BOOT_CMD_MKENT(mode, 2, 1, do_mode, "", ""),
437 argc--; in do_regulator()
441 if (cmd == NULL || argc > cmd->maxargs) in do_regulator()
444 return cmd->cmd(cmdtp, flag, argc, argv); in do_regulator()
449 "list - list UCLASS regulator devices\n"
450 "regulator dev [regulator-name] - show/[set] operating regulator device\n"
451 "regulator info - print constraints info\n"
452 "regulator status [-a] - print operating status [for all]\n"
453 "regulator value [val] [-f] - print/[set] voltage value [uV] (force)\n"
454 "regulator current [val] - print/[set] current value [uA]\n"
455 "regulator mode [id] - print/[set] operating mode id\n"
456 "regulator enable - enable the regulator output\n"
457 "regulator disable - disable the regulator output\n"