[U-Boot] [PATCH v3 54/54] power: pmic: Use trailing_strtol() instead of a local function
Simon Glass
sjg at chromium.org
Sat Jul 18 01:58:22 CEST 2015
On 1 July 2015 at 03:44, Przemyslaw Marczak <p.marczak at 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 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
Applied to u-boot-dm.
More information about the U-Boot
mailing list