diff options
author | Simon Glass <sjg@chromium.org> | 2015-06-23 15:39:16 -0600 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2015-07-21 17:39:30 -0600 |
commit | e15bb3e63c87672c1f3b82edd9853eb7c3abfa20 (patch) | |
tree | 964c6905bff2c125a9b4d082a2b3663f38dbcc92 | |
parent | f26c8a8e77629cf9de36a697ea5513f9184a2319 (diff) | |
download | u-boot-imx-e15bb3e63c87672c1f3b82edd9853eb7c3abfa20.zip u-boot-imx-e15bb3e63c87672c1f3b82edd9853eb7c3abfa20.tar.gz u-boot-imx-e15bb3e63c87672c1f3b82edd9853eb7c3abfa20.tar.bz2 |
power: pmic: Use trailing_strtol() instead of a local function
Use the common function to obtain the number from the end of the string,
instead of a local function. Also tweak the position of a debug() statement.
Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Przemyslaw Marczak <p.marczak@samsung.com>
Acked-by: Przemyslaw Marczak <p.marczak@samsung.com>
-rw-r--r-- | drivers/power/pmic/pmic-uclass.c | 23 |
1 files changed, 5 insertions, 18 deletions
diff --git a/drivers/power/pmic/pmic-uclass.c b/drivers/power/pmic/pmic-uclass.c index dbab3e3..d99cb9a 100644 --- a/drivers/power/pmic/pmic-uclass.c +++ b/drivers/power/pmic/pmic-uclass.c @@ -9,6 +9,7 @@ #include <fdtdec.h> #include <errno.h> #include <dm.h> +#include <vsprintf.h> #include <dm/lists.h> #include <dm/device-internal.h> #include <dm/uclass-internal.h> @@ -17,16 +18,6 @@ DECLARE_GLOBAL_DATA_PTR; -static ulong str_get_num(const char *ptr, const char *maxptr) -{ - if (!ptr || !maxptr) - return 0; - - while (!isdigit(*ptr) && ptr++ < maxptr); - - return simple_strtoul(ptr, NULL, 0); -} - int pmic_bind_children(struct udevice *pmic, int offset, const struct pmic_child_info *child_info) { @@ -35,7 +26,6 @@ int pmic_bind_children(struct udevice *pmic, int offset, struct driver *drv; struct udevice *child; const char *node_name; - int node_name_len; int bind_count = 0; int node; int prefix_len; @@ -47,19 +37,19 @@ int pmic_bind_children(struct udevice *pmic, int offset, for (node = fdt_first_subnode(blob, offset); node > 0; node = fdt_next_subnode(blob, node)) { - node_name = fdt_get_name(blob, node, &node_name_len); + node_name = fdt_get_name(blob, node, NULL); debug("* Found child node: '%s' at offset:%d\n", node_name, node); child = NULL; for (info = child_info; info->prefix && info->driver; info++) { + debug(" - compatible prefix: '%s'\n", info->prefix); + prefix_len = strlen(info->prefix); if (strncmp(info->prefix, node_name, prefix_len)) continue; - debug(" - compatible prefix: '%s'\n", info->prefix); - drv = lists_driver_lookup_name(info->driver); if (!drv) { debug(" - driver: '%s' not found!\n", @@ -78,10 +68,7 @@ int pmic_bind_children(struct udevice *pmic, int offset, debug(" - bound child device: '%s'\n", child->name); - child->driver_data = str_get_num(node_name + - prefix_len, - node_name + - node_name_len); + child->driver_data = trailing_strtol(node_name); debug(" - set 'child->driver_data': %lu\n", child->driver_data); |