1*b047d671SHeiko Schocher /* 2*b047d671SHeiko Schocher * Copyright (c) 2014 3*b047d671SHeiko Schocher * Heiko Schocher, DENX Software Engineering, hs@denx.de. 4*b047d671SHeiko Schocher * 5*b047d671SHeiko Schocher * Based on lib/fdtdec.c: 6*b047d671SHeiko Schocher * Copyright (c) 2011 The Chromium OS Authors. 7*b047d671SHeiko Schocher * 8*b047d671SHeiko Schocher * SPDX-License-Identifier: GPL-2.0+ 9*b047d671SHeiko Schocher */ 10*b047d671SHeiko Schocher 11*b047d671SHeiko Schocher #ifndef USE_HOSTCC 12*b047d671SHeiko Schocher #include <common.h> 13*b047d671SHeiko Schocher #include <libfdt.h> 14*b047d671SHeiko Schocher #include <fdtdec.h> 15*b047d671SHeiko Schocher #else 16*b047d671SHeiko Schocher #include "libfdt.h" 17*b047d671SHeiko Schocher #include "fdt_support.h" 18*b047d671SHeiko Schocher 19*b047d671SHeiko Schocher #define debug(...) 20*b047d671SHeiko Schocher #endif 21*b047d671SHeiko Schocher 22*b047d671SHeiko Schocher int fdtdec_get_int(const void *blob, int node, const char *prop_name, 23*b047d671SHeiko Schocher int default_val) 24*b047d671SHeiko Schocher { 25*b047d671SHeiko Schocher const int *cell; 26*b047d671SHeiko Schocher int len; 27*b047d671SHeiko Schocher 28*b047d671SHeiko Schocher debug("%s: %s: ", __func__, prop_name); 29*b047d671SHeiko Schocher cell = fdt_getprop(blob, node, prop_name, &len); 30*b047d671SHeiko Schocher if (cell && len >= sizeof(int)) { 31*b047d671SHeiko Schocher int val = fdt32_to_cpu(cell[0]); 32*b047d671SHeiko Schocher 33*b047d671SHeiko Schocher debug("%#x (%d)\n", val, val); 34*b047d671SHeiko Schocher return val; 35*b047d671SHeiko Schocher } 36*b047d671SHeiko Schocher debug("(not found)\n"); 37*b047d671SHeiko Schocher return default_val; 38*b047d671SHeiko Schocher } 39