9
0
Fork 0

of: add do_fixup_by_compatible with u32 and string version

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
Jean-Christophe PLAGNIOL-VILLARD 2013-02-16 19:18:39 +01:00 committed by Sascha Hauer
parent 3f1f8821d6
commit 6ae2455e80
2 changed files with 33 additions and 0 deletions

View File

@ -229,6 +229,33 @@ void do_fixup_by_path_u32(struct fdt_header *fdt, const char *path,
do_fixup_by_path(fdt, path, prop, &val, sizeof(val), create);
}
void do_fixup_by_compatible(struct fdt_header *fdt, const char *compatible,
const char *prop, const void *val, int len, int create)
{
int off = -1;
off = fdt_node_offset_by_compatible(fdt, -1, compatible);
while (off != -FDT_ERR_NOTFOUND) {
if (create || (fdt_get_property(fdt, off, prop, 0) != NULL))
fdt_setprop(fdt, off, prop, val, len);
off = fdt_node_offset_by_compatible(fdt, off, compatible);
}
}
void do_fixup_by_compatible_u32(struct fdt_header *fdt, const char *compatible,
const char *prop, u32 val, int create)
{
val = cpu_to_fdt32(val);
do_fixup_by_compatible(fdt, compatible, prop, &val, 4, create);
}
void do_fixup_by_compatible_string(struct fdt_header *fdt, const char *compatible,
const char *prop, const char *val, int create)
{
do_fixup_by_compatible(fdt, compatible, prop, val, strlen(val) + 1,
create);
}
int fdt_get_path_or_create(struct fdt_header *fdt, const char *path)
{
int nodeoffset;

View File

@ -17,6 +17,12 @@ void do_fixup_by_path(struct fdt_header *fdt, const char *path, const char *prop
const void *val, int len, int create);
void do_fixup_by_path_u32(struct fdt_header *fdt, const char *path, const char *prop,
u32 val, int create);
void do_fixup_by_compatible(struct fdt_header *fdt, const char *compatible,
const char *prop, const void *val, int len, int create);
void do_fixup_by_compatible_u32(struct fdt_header *fdt, const char *compatible,
const char *prop, u32 val, int create);
void do_fixup_by_compatible_string(struct fdt_header *fdt, const char *compatible,
const char *prop, const char *val, int create);
int fdt_get_path_or_create(struct fdt_header *fdt, const char *path);
#define OF_BAD_ADDR ((u64)-1)