On 08/11/2011 10:18 PM, Chunhe Lan wrote: > Add a fdt_set_node_status function that will set the specified > node's status to the value contained in "status". If the node > doesn't have "status" property that will be created. > > Signed-off-by: Chunhe Lan <chunhe....@freescale.com> > --- > common/fdt_support.c | 17 ++++++++++++++++- > include/fdt_support.h | 3 +++ > 2 files changed, 19 insertions(+), 1 deletions(-) > > diff --git a/common/fdt_support.c b/common/fdt_support.c > index 19b2ef6..384523b 100644 > --- a/common/fdt_support.c > +++ b/common/fdt_support.c > @@ -2,7 +2,7 @@ > * (C) Copyright 2007 > * Gerald Van Baren, Custom IDEAS, vanba...@cideas.com > * > - * Copyright 2010 Freescale Semiconductor, Inc. > + * Copyright 2010-2011 Freescale Semiconductor, Inc. > * > * See file CREDITS for list of people who contributed to this > * project. > @@ -904,6 +904,21 @@ void fdt_del_node_and_alias(void *blob, const char > *alias) > fdt_delprop(blob, off, alias); > } > > +/* > + * Sets the specified node's status to the value contained in "status". > + * If the first character of the specified path is "/" then we use > + * alias as a path. Otherwise, we look for an alias of that name. > + */ > +void fdt_set_node_status(void *fdt, const char *alias, const char *status) > +{ > + const char *path = fdt_get_alias(fdt, alias); > + > + if (!path) > + path = alias; > + > + do_fixup_by_path(fdt, path, "status", status, strlen(status) + 1, 1); > +}
fdt_get_alias() is not needed -- do_fixup_by_path() calls fdt_path_offset() which handles aliases. Instead of something specific to status, how about adding do_fixup_by_path_string()? > /* Helper to read a big number; size is in cells (not bytes) */ > static inline u64 of_read_number(const __be32 *cell, int size) > { > diff --git a/include/fdt_support.h b/include/fdt_support.h > index 863024f..74d7c83 100644 > --- a/include/fdt_support.h > +++ b/include/fdt_support.h > @@ -2,6 +2,8 @@ > * (C) Copyright 2007 > * Gerald Van Baren, Custom IDEAS, vanba...@cideas.com > * > + * Copyright (C) 2011 Freescale Semiconductor, Inc. > + * > * See file CREDITS for list of people who contributed to this > * project. > * > @@ -85,6 +87,7 @@ int fdt_fixup_nor_flash_size(void *blob); > > void fdt_fixup_mtdparts(void *fdt, void *node_info, int node_info_size); > void fdt_del_node_and_alias(void *blob, const char *alias); > +void fdt_set_node_status(void *fdt, const char *alias, const char *status); > u64 fdt_translate_address(void *blob, int node_offset, const u32 *in_addr); > int fdt_node_offset_by_compat_reg(void *blob, const char *compat, > phys_addr_t compat_off); A copyright line for a single function prototype? -Scott _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot