diff options
author | Simon Glass <sjg@chromium.org> | 2018-12-10 10:37:37 -0700 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2018-12-13 16:32:49 -0700 |
commit | a1b17e4f4c820c5ffe77ffa0c716e8b3b5d69866 (patch) | |
tree | 7487cc794f79e8bc32e1ee6c366d3b4e22466924 /drivers/core/read.c | |
parent | d4901898654b664c41d8a03afc0e0fbf531b5812 (diff) | |
download | u-boot-a1b17e4f4c820c5ffe77ffa0c716e8b3b5d69866.tar.gz |
dm: core: Add a function to read into a unsigned int
The current dev_read...() functions use s32 and u32 which are convenient
for device tree but not so useful for normal code, which often wants to
use normal integers for values.
Add a helper which supports returning an unsigned int. Also add signed
versions of the unsigned readers.
Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'drivers/core/read.c')
-rw-r--r-- | drivers/core/read.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/drivers/core/read.c b/drivers/core/read.c index cdd78be03e..3c46b3674e 100644 --- a/drivers/core/read.c +++ b/drivers/core/read.c @@ -21,6 +21,29 @@ int dev_read_u32_default(struct udevice *dev, const char *propname, int def) return ofnode_read_u32_default(dev_ofnode(dev), propname, def); } +int dev_read_s32(struct udevice *dev, const char *propname, s32 *outp) +{ + return ofnode_read_u32(dev_ofnode(dev), propname, (u32 *)outp); +} + +int dev_read_s32_default(struct udevice *dev, const char *propname, int def) +{ + return ofnode_read_u32_default(dev_ofnode(dev), propname, def); +} + +int dev_read_u32u(struct udevice *dev, const char *propname, uint *outp) +{ + u32 val; + int ret; + + ret = ofnode_read_u32(dev_ofnode(dev), propname, &val); + if (ret) + return ret; + *outp = val; + + return 0; +} + const char *dev_read_string(struct udevice *dev, const char *propname) { return ofnode_read_string(dev_ofnode(dev), propname); |