blob: eaf79226a079e8ee3be122cc55e0196c77a695c5 [file] [log] [blame]
Balint Dobszaybd670742022-03-03 11:38:14 +01001// SPDX-License-Identifier: BSD-3-Clause
2/*
3 * Copyright (c) 2022, Arm Limited and Contributors. All rights reserved.
4 */
5
6#include "fdt_helpers.h"
7
8bool dt_get_u32(const void *fdt, int node, const char *prop_name, uint32_t *prop_val)
9{
10 const fdt32_t *u32_prop = NULL;
11 int len = 0;
12
13 if (!fdt || !prop_name || !prop_val)
14 return false;
15
16 u32_prop = fdt_getprop(fdt, node, prop_name, &len);
17 if (!u32_prop || len != sizeof(*u32_prop))
18 return false;
19
20 *prop_val = fdt32_to_cpu(*u32_prop);
21
22 return true;
23}
24
25bool dt_get_u64(const void *fdt, int node, const char *prop_name, uint64_t *prop_val)
26{
27 const fdt64_t *u64_prop = NULL;
28 int len = 0;
29
30 if (!fdt || !prop_name || !prop_val)
31 return false;
32
33 u64_prop = fdt_getprop(fdt, node, prop_name, &len);
34 if (!u64_prop || len != sizeof(*u64_prop))
35 return false;
36
37 *prop_val = fdt64_to_cpu(*u64_prop);
38
39 return true;
40}