
On 1 July 2015 at 03:44, Przemyslaw Marczak p.marczak@samsung.com wrote:
Hello Simon,
On 06/23/2015 11:39 PM, Simon Glass wrote:
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
Changes in v3:
- Split this series apart from the Rockchip series
Changes in v2: None
drivers/power/pmic/pmic-uclass.c | 23 +++++------------------ 1 file 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);
Tested on:
- Odroid U3 (odroid_defconfig)
- Sandbox - ut pmic/regulator
Tested-by: Przemyslaw Marczak p.marczak@samsung.com Acked-by: Przemyslaw Marczak p.marczak@samsung.com
Best regards,
Przemyslaw Marczak Samsung R&D Institute Poland Samsung Electronics p.marczak@samsung.com
Applied to u-boot-dm.