[U-Boot] [PATCH 1/2] fdt: Add a fdt_set_node_status function
Scott Wood
scottwood at freescale.com
Fri Aug 12 18:24:33 CEST 2011
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.Lan at 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, vanbaren at 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, vanbaren at 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
More information about the U-Boot
mailing list