From: Rob Herring <robherring2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: Jamie Iles <jamie-wmLquQDDieKakBO8gow8eQ@public.gmane.org>
Cc: devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org
Subject: Re: [PATCH] dt: add helper to read 64-bit integers
Date: Tue, 02 Aug 2011 14:16:37 -0500 [thread overview]
Message-ID: <4E384D15.4020303@gmail.com> (raw)
In-Reply-To: <1312283219-27045-1-git-send-email-jamie-wmLquQDDieKakBO8gow8eQ@public.gmane.org>
Jamie,
On 08/02/2011 06:06 AM, Jamie Iles wrote:
> Add a helper similar to of_property_read_u32() that handles 64-bit
> integers.
>
> Cc: Grant Likely <grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org>
> Signed-off-by: Jamie Iles <jamie-wmLquQDDieKakBO8gow8eQ@public.gmane.org>
> ---
> drivers/of/base.c | 28 ++++++++++++++++++++++++++++
> include/linux/of.h | 8 ++++++++
> 2 files changed, 36 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/of/base.c b/drivers/of/base.c
> index 02ed367..bae5161 100644
> --- a/drivers/of/base.c
> +++ b/drivers/of/base.c
> @@ -631,6 +631,34 @@ int of_property_read_u32_array(const struct device_node *np, char *propname,
> EXPORT_SYMBOL_GPL(of_property_read_u32_array);
>
> /**
> + * of_property_read_u64 - Find and read a 64 bit integer from a property
> + * @np: device node from which the property value is to be read.
> + * @propname: name of the property to be searched.
> + * @out_value: pointer to return value, modified only if return value is 0.
> + *
> + * Search for a property in a device node and read a 64-bit value from
> + * it. Returns 0 on success, -EINVAL if the property does not exist,
> + * -ENODATA if property does not have a value, and -EOVERFLOW if the
> + * property data isn't large enough.
> + *
> + * The out_value is modified only if a valid u64 value can be decoded.
> + */
> +int of_property_read_u64(struct device_node *np, char *propname, u64 *out_value)
First 2 params should have a const.
Rob
> +{
> + struct property *prop = of_find_property(np, propname, NULL);
> +
> + if (!prop)
> + return -EINVAL;
> + if (!prop->value)
> + return -ENODATA;
> + if (sizeof(*out_value) > prop->length)
> + return -EOVERFLOW;
> + *out_value = of_read_number(prop->value, 2);
> + return 0;
> +}
> +EXPORT_SYMBOL_GPL(of_property_read_u64);
> +
> +/**
> * of_property_read_string - Find and read a string from a property
> * @np: device node from which the property value is to be read.
> * @propname: name of the property to be searched.
> diff --git a/include/linux/of.h b/include/linux/of.h
> index bd716f8..9fde908 100644
> --- a/include/linux/of.h
> +++ b/include/linux/of.h
> @@ -199,6 +199,8 @@ extern int of_property_read_u32_array(const struct device_node *np,
> char *propname,
> u32 *out_values,
> size_t sz);
> +extern int of_property_read_u64(struct device_node *np, char *propname,
> + u64 *out_value);
>
> extern int of_property_read_string(struct device_node *np, char *propname,
> const char **out_string);
> @@ -253,6 +255,12 @@ static inline int of_property_read_string(struct device_node *np,
> return -ENOSYS;
> }
>
> +static inline int of_property_read_u64(struct device_node *np, char *propname,
> + u64 *out_value)
> +{
> + return -ENOSYS;
> +}
> +
> #endif /* CONFIG_OF */
>
> static inline int of_property_read_u32(const struct device_node *np,
next prev parent reply other threads:[~2011-08-02 19:16 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-08-02 11:06 [PATCH] dt: add helper to read 64-bit integers Jamie Iles
[not found] ` <1312283219-27045-1-git-send-email-jamie-wmLquQDDieKakBO8gow8eQ@public.gmane.org>
2011-08-02 19:16 ` Rob Herring [this message]
-- strict thread matches above, loose matches on Subject: below --
2011-08-03 13:44 Jamie Iles
[not found] ` <1312379073-13502-1-git-send-email-jamie-wmLquQDDieKakBO8gow8eQ@public.gmane.org>
2011-08-03 16:17 ` Rob Herring
[not found] ` <4E39748A.3030002-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2011-08-03 16:33 ` Jamie Iles
[not found] ` <20110803163344.GP2607-apL1N+EY0C9YtYNIL7UdTEEOCMrvLtNR@public.gmane.org>
2011-08-03 16:38 ` Rob Herring
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4E384D15.4020303@gmail.com \
--to=robherring2-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
--cc=devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org \
--cc=jamie-wmLquQDDieKakBO8gow8eQ@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.