[U-Boot] [PATCH v3 54/54] power: pmic: Use trailing_strtol() instead of a local function
Przemyslaw Marczak
p.marczak at samsung.com
Wed Jul 1 11:44:38 CEST 2015
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 at 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 at samsung.com>
Acked-by: Przemyslaw Marczak <p.marczak at samsung.com>
Best regards,
--
Przemyslaw Marczak
Samsung R&D Institute Poland
Samsung Electronics
p.marczak at samsung.com
More information about the U-Boot
mailing list