libfdt: add convenience function fdt_find_and_setprop()
PATCH v4 1/2 libfdt: add convenience function fdt_find_and_setprop()
From: Grant Likely <[email protected]>
Given the path to a node, fdt_find_and_setprop() allows a property value to be set directly.
---
include/libfdt.h | 2 ++ libfdt/fdt_rw.c | 26 ++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 0 deletions(-)
include/libfdt.h +2 -0
@@ -140,6 +140,8 @@ int fdt_setprop(void *fdt, int nodeoffset, const char *name, })#define fdt_setprop_string (fdt, nodeoffset, name, str) \ fdt_setprop((fdt), (nodeoffset), (name), (str), strlen(str)+1) +int fdt_find_and_setprop (void *fdt,const char *node,const char *prop, +const void *val,int len,int create);int fdt_delprop (void *fdt,int nodeoffset,const char *name);int fdt_add_subnode_namelen (void *fdt,int parentoffset,const char *name,int namelen);
libfdt/fdt_rw.c +26 -0
@@ -188,6 +188,32 @@ int fdt_setprop(void *fdt, int nodeoffset, const char *name,return 0 ; } +/** +* fdt_find_and_setprop: Find a node and set it's property +* +* @fdt: ptr to device tree +* @node: path of node +* @prop: property name +* @val: ptr to new value +* @len: length of new property value +* @create: flag to create the property if it doesn't exist +* +* Convenience function to directly set a property given the path to the node. +*/ +int fdt_find_and_setprop (void *fdt,const char *node,const char *prop, +const void *val,int len,int create) +{ +int nodeoff =fdt_find_node_by_path (fdt, node); + +if (nodeoff <0 ) +return nodeoff; + +if ((!create) && (fdt_get_property (fdt, nodeoff, prop,0 ) ==NULL )) +return 0 ;/* create flag not set; so exit quietly */ + +return fdt_setprop (fdt, nodeoff, prop, val, len); +} +int fdt_delprop (void *fdt,int nodeoffset,const char *name) {struct fdt_property *prop;
PATCH v4 2/2 Migrate 5xxx boards from CONFIG_OF_FLAT_TREE to CONFIG_OF_LIBFDT
From: Grant Likely <[email protected]>
Affects boards: icecube (lite5200), jupiter, motionpro, tqm5200
Tested on: lite5200b
Note: the fixup functions have not been moved to a common place. This patch is targeted for immediate merging as in solves a build issue, but the final name/location of the fixups is still subject to debate. I propose to merge this now, and move the fixups in the next merge window to be usable by all targets.
---
board/icecube/icecube.c | 7 +---- board/jupiter/jupiter.c | 8 +---- board/motionpro/motionpro.c | 8 ++--- board/tqm5200/tqm5200.c | 9 ++---- cpu/mpc5xxx/cpu.c | 66 +++++++++++++++++++++++++++---------------- include/configs/IceCube.h | 2 + include/configs/TQM5200.h | 2 + include/configs/jupiter.h | 2 + include/configs/motionpro.h | 2 + 9 files changed, 55 insertions(+), 51 deletions(-)
board/icecube/icecube.c +2 -5
@@ -28,10 +28,7 @@#include <mpc5xxx.h> #include <pci.h> #include <asm/processor.h> - -#if defined(CONFIG_OF_FLAT_TREE ) -#include <ft_build.h> -#endif +#include <libfdt.h> #if defined(CONFIG_LITE5200B )#include "mt46v32m16.h"
@@ -386,7 +383,7 @@ void ide_set_reset (int idereset) }#endif -#if defined(CONFIG_OF_FLAT_TREE ) && defined(CONFIG_OF_BOARD_SETUP ) +#if defined(CONFIG_OF_LIBFDT ) && defined(CONFIG_OF_BOARD_SETUP )void ft_board_setup (void *blob,bd_t *bd) {
board/jupiter/jupiter.c +2 -6
@@ -28,11 +28,7 @@#include <mpc5xxx.h> #include <pci.h> #include <asm/processor.h> - -#if defined(CONFIG_OF_FLAT_TREE ) -#include <ft_build.h> -#endif - +#include <libfdt.h> #define SDRAM_DDR 0#if 1
@@ -308,7 +304,7 @@ void ide_set_reset (int idereset) }#endif -#if defined(CONFIG_OF_FLAT_TREE ) && defined(CONFIG_OF_BOARD_SETUP ) +#if defined(CONFIG_OF_LIBFDT ) && defined(CONFIG_OF_BOARD_SETUP )void ft_board_setup (void *blob,bd_t *bd) {
board/motionpro/motionpro.c +3 -5
@@ -29,9 +29,7 @@#include <common.h> #include <mpc5xxx.h> #include <miiphy.h> -#if defined(CONFIG_OF_FLAT_TREE ) -#include <ft_build.h> -#endif +#include <libfdt.h> #if defined(CONFIG_STATUS_LED )#include <status_led.h>
@@ -196,12 +194,12 @@ int checkboard(void) } -#if defined(CONFIG_OF_FLAT_TREE ) && defined(CONFIG_OF_BOARD_SETUP ) +#if defined(CONFIG_OF_LIBFDT ) && defined(CONFIG_OF_BOARD_SETUP )void ft_board_setup (void *blob,bd_t *bd) {ft_cpu_setup (blob, bd); } -#endif /* defined(CONFIG_OF_FLAT_TREE) && defined(CONFIG_OF_BOARD_SETUP) */ +#endif /* defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP) */ #if defined(CONFIG_STATUS_LED )
board/tqm5200/tqm5200.c +3 -6
@@ -31,10 +31,7 @@#include <mpc5xxx.h> #include <pci.h> #include <asm/processor.h> - -#if defined(CONFIG_OF_FLAT_TREE ) -#include <ft_build.h> -#endif +#include <libfdt.h> #ifdef CONFIG_VIDEO_SM501 #include <sm501.h>
@@ -780,9 +777,9 @@ int board_get_height (void)#endif /* CONFIG_VIDEO_SM501 */ -#if defined(CONFIG_OF_FLAT_TREE ) && defined(CONFIG_OF_BOARD_SETUP ) +#if defined(CONFIG_OF_LIBFDT ) && defined(CONFIG_OF_BOARD_SETUP )void ft_board_setup (void *blob,bd_t *bd) {ft_cpu_setup (blob, bd); } -#endif /* defined(CONFIG_OF_FLAT_TREE) && defined(CONFIG_OF_BOARD_SETUP) */ +#endif /* defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP) */
cpu/mpc5xxx/cpu.c +41 -25
80 lines not on this page · raw message
include/configs/IceCube.h +1 -1
@@ -178,7 +178,7 @@#endif /* CONFIG_MPC5200 */ /* pass open firmware flat tree */ -#define CONFIG_OF_FLAT_TREE 1 +#define CONFIG_OF_LIBFDT 1#define CONFIG_OF_BOARD_SETUP 1#define OF_CPU "PowerPC,5200 at 0"
include/configs/TQM5200.h +1 -1
@@ -701,7 +701,7 @@* Open firmware flat tree support *----------------------------------------------------------------------- */ -#define CONFIG_OF_FLAT_TREE 1 +#define CONFIG_OF_LIBFDT 1#define CONFIG_OF_BOARD_SETUP 1#define OF_CPU "PowerPC,5200 at 0"
include/configs/jupiter.h +1 -1
@@ -145,7 +145,7 @@#if 0 /* pass open firmware flat tree */ -#define CONFIG_OF_FLAT_TREE 1 +#define CONFIG_OF_LIBFDT 1#define CONFIG_OF_BOARD_SETUP 1#define OF_CPU "PowerPC,5200 at 0"
include/configs/motionpro.h +1 -1
@@ -417,7 +417,7 @@ extern void __led_set(led_id_t id, int state);#define CFG_RESET_ADDRESS 0xfff00100/* pass open firmware flat tree */ -#define CONFIG_OF_FLAT_TREE 1 +#define CONFIG_OF_LIBFDT 1#define CONFIG_OF_BOARD_SETUP 1#define OF_CPU "PowerPC,5200 at 0"