diff options
author | Chin Liang See <clsee@altera.com> | 2015-10-17 08:30:32 -0500 |
---|---|---|
committer | Marek Vasut <marex@denx.de> | 2015-11-05 02:34:14 +0100 |
commit | bfa3e55b440e120739d2b4dd4cb57e6b40752113 (patch) | |
tree | 0c4f2127712b1f0f2cee3dbc43c90203d584c5f5 | |
parent | c624d07f3ff7ae7d29672bab189d2aeb99c63a95 (diff) | |
download | u-boot-imx-bfa3e55b440e120739d2b4dd4cb57e6b40752113.zip u-boot-imx-bfa3e55b440e120739d2b4dd4cb57e6b40752113.tar.gz u-boot-imx-bfa3e55b440e120739d2b4dd4cb57e6b40752113.tar.bz2 |
lib, fdt: Adding fdtdec_get_uint function
Adding fdtdec_get_uint function which is the
unsigned version for fdtdec_get_int
Signed-off-by: Chin Liang See <clsee@altera.com>
Cc: Dinh Nguyen <dinguyen@opensource.altera.com>
Cc: Dinh Nguyen <dinh.linux@gmail.com>
Cc: Marek Vasut <marex@denx.de>
Cc: Stefan Roese <sr@denx.de>
Cc: Vikas Manocha <vikas.manocha@st.com>
Cc: Jagannadh Teki <jteki@openedev.com>
Cc: Pavel Machek <pavel@denx.de>
Cc: Heiko Schocher <hs@denx.de>
-rw-r--r-- | include/fdtdec.h | 13 | ||||
-rw-r--r-- | lib/fdtdec_common.c | 18 |
2 files changed, 31 insertions, 0 deletions
diff --git a/include/fdtdec.h b/include/fdtdec.h index 2de6dda..d51e643 100644 --- a/include/fdtdec.h +++ b/include/fdtdec.h @@ -490,6 +490,19 @@ s32 fdtdec_get_int(const void *blob, int node, const char *prop_name, s32 default_val); /** + * Unsigned version of fdtdec_get_int. The property must have at least + * 4 bytes of data. The value of the first cell is returned. + * + * @param blob FDT blob + * @param node node to examine + * @param prop_name name of property to find + * @param default_val default value to return if the property is not found + * @return unsigned integer value, if found, or default_val if not + */ +unsigned int fdtdec_get_uint(const void *blob, int node, const char *prop_name, + unsigned int default_val); + +/** * Get a variable-sized number from a property * * This reads a number from one or more cells. diff --git a/lib/fdtdec_common.c b/lib/fdtdec_common.c index 757931a..63b704a 100644 --- a/lib/fdtdec_common.c +++ b/lib/fdtdec_common.c @@ -36,3 +36,21 @@ int fdtdec_get_int(const void *blob, int node, const char *prop_name, debug("(not found)\n"); return default_val; } + +unsigned int fdtdec_get_uint(const void *blob, int node, const char *prop_name, + unsigned int default_val) +{ + const int *cell; + int len; + + debug("%s: %s: ", __func__, prop_name); + cell = fdt_getprop(blob, node, prop_name, &len); + if (cell && len >= sizeof(unsigned int)) { + unsigned int val = fdt32_to_cpu(cell[0]); + + debug("%#x (%d)\n", val, val); + return val; + } + debug("(not found)\n"); + return default_val; +} |