@ -61,7 +61,7 @@
# define FDT_ERR_NOTFOUND 1
/* FDT_ERR_NOTFOUND: The requested node or property does not exist */
# define FDT_ERR_EXISTS 2
/* FDT_ERR_EXISTS: Attemped to create a node or property which
/* FDT_ERR_EXISTS: Attempt ed to create a node or property which
* already exists */
# define FDT_ERR_NOSPACE 3
/* FDT_ERR_NOSPACE: Operation needed to expand the device
@ -213,7 +213,7 @@ int fdt_next_subnode(const void *fdt, int offset);
# define __fdt_set_hdr(name) \
static inline void fdt_set_ # # name ( void * fdt , uint32_t val ) \
{ \
struct fdt_header * fdth = ( struct fdt_header * ) fdt ; \
struct fdt_header * fdth = ( struct fdt_header * ) fdt ; \
fdth - > name = cpu_to_fdt32 ( val ) ; \
}
__fdt_set_hdr ( magic ) ;
@ -288,11 +288,13 @@ const char *fdt_string(const void *fdt, int stroffset);
* @ fdt : pointer to the device tree blob
*
* fdt_get_max_phandle retrieves the highest phandle in the given
* device tree
* device tree . This will ignore badly formatted phandles , or phandles
* with a value of 0 or - 1.
*
* returns :
* the highest phandle on success
* 0 , if an error occurred
* 0 , if no phandle was found in the device tree
* - 1 , if an error occurred
*/
uint32_t fdt_get_max_phandle ( const void * fdt ) ;
@ -356,8 +358,9 @@ int fdt_subnode_offset_namelen(const void *fdt, int parentoffset,
* returns :
* structure block offset of the requested subnode ( > = 0 ) , on success
* - FDT_ERR_NOTFOUND , if the requested subnode does not exist
* - FDT_ERR_BADOFFSET , if parentoffset did not point to an FDT_BEGIN_NODE tag
* - FDT_ERR_BADMAGIC ,
* - FDT_ERR_BADOFFSET , if parentoffset did not point to an FDT_BEGIN_NODE
* tag
* - FDT_ERR_BADMAGIC ,
* - FDT_ERR_BADVERSION ,
* - FDT_ERR_BADSTATE ,
* - FDT_ERR_BADSTRUCTURE ,
@ -366,13 +369,13 @@ int fdt_subnode_offset_namelen(const void *fdt, int parentoffset,
int fdt_subnode_offset ( const void * fdt , int parentoffset , const char * name ) ;
/**
* fdt_path_offset_namelen - find a tree node based on substring
* fdt_path_offset_namelen - find a tree node by its full path
* @ fdt : pointer to the device tree blob
* @ path : full path of the node to locate
* @ namelen : number of characters of name to consider
* @ namelen : number of characters of path to consider
*
* Identical to fdt_path_offset ( ) , but only examine the first
* namelen characters of path for matching the node path .
* Identical to fdt_path_offset ( ) , but only consider the first namelen
* characters of path as the path name .
*/
int fdt_path_offset_namelen ( const void * fdt , const char * path , int namelen ) ;
@ -389,7 +392,8 @@ int fdt_path_offset_namelen(const void *fdt, const char *path, int namelen);
* address ) .
*
* returns :
* structure block offset of the node with the requested path ( > = 0 ) , on success
* structure block offset of the node with the requested path ( > = 0 ) , on
* success
* - FDT_ERR_BADPATH , given path does not begin with ' / ' or is invalid
* - FDT_ERR_NOTFOUND , if the requested node does not exist
* - FDT_ERR_BADMAGIC ,
@ -416,10 +420,12 @@ static inline int fdt_path_offset(const void *fdt, const char *path)
*
* returns :
* pointer to the node ' s name , on success
* If lenp is non - NULL , * lenp contains the length of that name ( > = 0 )
* If lenp is non - NULL , * lenp contains the length of that name
* ( > = 0 )
* NULL , on error
* if lenp is non - NULL * lenp contains an error code ( < 0 ) :
* - FDT_ERR_BADOFFSET , nodeoffset did not point to FDT_BEGIN_NODE tag
* - FDT_ERR_BADOFFSET , nodeoffset did not point to FDT_BEGIN_NODE
* tag
* - FDT_ERR_BADMAGIC ,
* - FDT_ERR_BADVERSION ,
* - FDT_ERR_BADSTATE , standard meanings
@ -468,23 +474,26 @@ int fdt_first_property_offset(const void *fdt, int nodeoffset);
int fdt_next_property_offset ( const void * fdt , int offset ) ;
/**
* fdt_for_each_property - iterate over all properties of a node
* @ property_offset : property offset ( int )
* fdt_for_each_property_offset - iterate over all properties of a node
*
* @ property_offset : property offset ( int , lvalue )
* @ fdt : FDT blob ( const void * )
* @ node : node offset ( int )
*
* This is actually a wrapper around a for loop and would be used like so :
*
* fdt_for_each_property ( fdt , node , property ) {
* . . .
* use property
* fdt_for_each_property_offset ( property , fdt , node ) {
* Use property
* . . .
* }
*
* if ( ( property < 0 ) & & ( property ! = - FDT_ERR_NOT_FOUND ) ) {
* Error handling
* }
*
* Note that this is implemented as a macro and property is used as
* iterator in the loop . It should therefore be a locally allocated
* variable . The node variable on the other hand is never modified , so
* it can be constant or even a literal .
* iterator in the loop . The node variable can be constant or even a
* literal .
*/
# define fdt_for_each_property_offset(property, fdt, node) \
for ( property = fdt_first_property_offset ( fdt , node ) ; \
@ -527,8 +536,8 @@ const struct fdt_property *fdt_get_property_by_offset(const void *fdt,
* @ namelen : number of characters of name to consider
* @ lenp : pointer to an integer variable ( will be overwritten ) or NULL
*
* Identical to fdt_get_property_namelen ( ) , but only examine the first
* namelen characters of name for matching the property name .
* Identical to fdt_get_property ( ) , but only examine the first namelen
* characters of name for matching the property name .
*/
const struct fdt_property * fdt_get_property_namelen ( const void * fdt ,
int nodeoffset ,
@ -555,7 +564,8 @@ const struct fdt_property *fdt_get_property_namelen(const void *fdt,
* NULL , on error
* if lenp is non - NULL , * lenp contains an error code ( < 0 ) :
* - FDT_ERR_NOTFOUND , node does not have named property
* - FDT_ERR_BADOFFSET , nodeoffset did not point to FDT_BEGIN_NODE tag
* - FDT_ERR_BADOFFSET , nodeoffset did not point to FDT_BEGIN_NODE
* tag
* - FDT_ERR_BADMAGIC ,
* - FDT_ERR_BADVERSION ,
* - FDT_ERR_BADSTATE ,
@ -647,7 +657,8 @@ static inline void *fdt_getprop_namelen_w(void *fdt, int nodeoffset,
* NULL , on error
* if lenp is non - NULL , * lenp contains an error code ( < 0 ) :
* - FDT_ERR_NOTFOUND , node does not have named property
* - FDT_ERR_BADOFFSET , nodeoffset did not point to FDT_BEGIN_NODE tag
* - FDT_ERR_BADOFFSET , nodeoffset did not point to FDT_BEGIN_NODE
* tag
* - FDT_ERR_BADMAGIC ,
* - FDT_ERR_BADVERSION ,
* - FDT_ERR_BADSTATE ,
@ -689,7 +700,7 @@ const char *fdt_get_alias_namelen(const void *fdt,
const char * name , int namelen ) ;
/**
* fdt_get_alias - retre ive the path referenced by a given alias
* fdt_get_alias - retrie ve the path referenced by a given alias
* @ fdt : pointer to the device tree blob
* @ name : name of the alias th look up
*
@ -749,11 +760,11 @@ int fdt_get_path(const void *fdt, int nodeoffset, char *buf, int buflen);
* structure from the start to nodeoffset .
*
* returns :
* structure block offset of the node at node offset ' s ancestor
* of depth supernodedepth ( > = 0 ) , on success
* - FDT_ERR_BADOFFSET , nodeoffset does not refer to a BEGIN_NODE tag
* - FDT_ERR_NOTFOUND , supernodedepth was greater than the depth of nodeoffset
* - FDT_ERR_NOTFOUND , supernodedepth was greater than the depth of
* nodeoffset
* - FDT_ERR_BADMAGIC ,
* - FDT_ERR_BADVERSION ,
* - FDT_ERR_BADSTATE ,
@ -1060,7 +1071,7 @@ int fdt_size_cells(const void *fdt, int nodeoffset);
* @ nodeoffset : offset of the node whose property to change
* @ name : name of the property to change
* @ namelen : number of characters of name to consider
* @ in de x : index of the property to change in the array
* @ idx : index of the property to change in the array
* @ val : pointer to data to replace the property value with
* @ len : length of the property value
*
@ -1071,7 +1082,7 @@ int fdt_size_cells(const void *fdt, int nodeoffset);
*/
int fdt_setprop_inplace_namelen_partial ( void * fdt , int nodeoffset ,
const char * name , int namelen ,
uint32_t in de x , const void * val ,
uint32_t idx , const void * val ,
int len ) ;
/**
@ -1700,9 +1711,11 @@ int fdt_add_subnode_namelen(void *fdt, int parentoffset,
* change the offsets of some existing nodes .
* returns :
* structure block offset of the created nodeequested subnode ( > = 0 ) , on success
* structure block offset of the created nodeequested subnode ( > = 0 ) , on
* success
* - FDT_ERR_NOTFOUND , if the requested subnode does not exist
* - FDT_ERR_BADOFFSET , if parentoffset did not point to an FDT_BEGIN_NODE tag
* - FDT_ERR_BADOFFSET , if parentoffset did not point to an FDT_BEGIN_NODE
* tag
* - FDT_ERR_EXISTS , if the node at parentoffset already has a subnode of
* the given name
* - FDT_ERR_NOSPACE , if there is insufficient free space in the