diff options
Diffstat (limited to 'include/linux/of.h')
| -rw-r--r-- | include/linux/of.h | 44 | 
1 files changed, 25 insertions, 19 deletions
diff --git a/include/linux/of.h b/include/linux/of.h index 4948552d60f..a75a831e205 100644 --- a/include/linux/of.h +++ b/include/linux/of.h @@ -65,6 +65,27 @@ struct device_node {  #endif  }; +#define MAX_PHANDLE_ARGS 8 +struct of_phandle_args { +	struct device_node *np; +	int args_count; +	uint32_t args[MAX_PHANDLE_ARGS]; +}; + +#if defined(CONFIG_SPARC) || !defined(CONFIG_OF) +/* Dummy ref counting routines - to be implemented later */ +static inline struct device_node *of_node_get(struct device_node *node) +{ +	return node; +} +static inline void of_node_put(struct device_node *node) +{ +} +#else +extern struct device_node *of_node_get(struct device_node *node); +extern void of_node_put(struct device_node *node); +#endif +  #ifdef CONFIG_OF  /* Pointer for first entry in chain of all nodes. */ @@ -95,21 +116,6 @@ static inline void of_node_set_flag(struct device_node *n, unsigned long flag)  extern struct device_node *of_find_all_nodes(struct device_node *prev); -#if defined(CONFIG_SPARC) -/* Dummy ref counting routines - to be implemented later */ -static inline struct device_node *of_node_get(struct device_node *node) -{ -	return node; -} -static inline void of_node_put(struct device_node *node) -{ -} - -#else -extern struct device_node *of_node_get(struct device_node *node); -extern void of_node_put(struct device_node *node); -#endif -  /*   * OF address retrieval & translation   */ @@ -219,8 +225,8 @@ extern int of_device_is_available(const struct device_node *device);  extern const void *of_get_property(const struct device_node *node,  				const char *name,  				int *lenp); -#define for_each_property(pp, properties) \ -	for (pp = properties; pp != NULL; pp = pp->next) +#define for_each_property_of_node(dn, pp) \ +	for (pp = dn->properties; pp != NULL; pp = pp->next)  extern int of_n_addr_cells(struct device_node *np);  extern int of_n_size_cells(struct device_node *np); @@ -230,9 +236,9 @@ extern int of_modalias_node(struct device_node *node, char *modalias, int len);  extern struct device_node *of_parse_phandle(struct device_node *np,  					    const char *phandle_name,  					    int index); -extern int of_parse_phandles_with_args(struct device_node *np, +extern int of_parse_phandle_with_args(struct device_node *np,  	const char *list_name, const char *cells_name, int index, -	struct device_node **out_node, const void **out_args); +	struct of_phandle_args *out_args);  extern void of_alias_scan(void * (*dt_alloc)(u64 size, u64 align));  extern int of_alias_get_id(struct device_node *np, const char *stem);  |