diff options
Diffstat (limited to 'drivers/of/base.c')
| -rw-r--r-- | drivers/of/base.c | 328 | 
1 files changed, 168 insertions, 160 deletions
| diff --git a/drivers/of/base.c b/drivers/of/base.c index 8a348f0d3c5e..48e941f99558 100644 --- a/drivers/of/base.c +++ b/drivers/of/base.c @@ -244,7 +244,7 @@ struct device_node *__of_find_all_nodes(struct device_node *prev)   * @prev:	Previous node or NULL to start iteration   *		of_node_put() will be called on it   * - * Returns a node pointer with refcount incremented, use + * Return: A node pointer with refcount incremented, use   * of_node_put() on it when done.   */  struct device_node *of_find_all_nodes(struct device_node *prev) @@ -305,7 +305,7 @@ bool __weak arch_match_cpu_phys_id(int cpu, u64 phys_id)  	return (u32)phys_id == cpu;  } -/** +/*   * Checks if the given "prop_name" property holds the physical id of the   * core/thread corresponding to the logical cpu 'cpu'. If 'thread' is not   * NULL, local thread number within the core is returned in it. @@ -374,7 +374,7 @@ bool __weak arch_find_n_match_cpu_physical_id(struct device_node *cpun,   * before booting secondary cores. This function uses arch_match_cpu_phys_id   * which can be overridden by architecture specific implementation.   * - * Returns a node pointer for the logical cpu with refcount incremented, use + * Return: A node pointer for the logical cpu with refcount incremented, use   * of_node_put() on it when done. Returns NULL if not found.   */  struct device_node *of_get_cpu_node(int cpu, unsigned int *thread) @@ -394,8 +394,8 @@ EXPORT_SYMBOL(of_get_cpu_node);   *   * @cpu_node: Pointer to the device_node for CPU.   * - * Returns the logical CPU number of the given CPU device_node. - * Returns -ENODEV if the CPU is not found. + * Return: The logical CPU number of the given CPU device_node or -ENODEV if the + * CPU is not found.   */  int of_cpu_node_to_id(struct device_node *cpu_node)  { @@ -427,7 +427,7 @@ EXPORT_SYMBOL(of_cpu_node_to_id);   * bindings. This function check for both and returns the idle state node for   * the requested index.   * - * In case an idle state node is found at @index, the refcount is incremented + * Return: An idle state node if found at @index. The refcount is incremented   * for it, so call of_node_put() on it when done. Returns NULL if not found.   */  struct device_node *of_get_cpu_state_node(struct device_node *cpu_node, @@ -561,7 +561,7 @@ int of_device_compatible_match(struct device_node *device,   * of_machine_is_compatible - Test root of device tree for a given compatible value   * @compat: compatible string to look for in root node's compatible property.   * - * Returns a positive integer if the root node has the given value in its + * Return: A positive integer if the root node has the given value in its   * compatible property.   */  int of_machine_is_compatible(const char *compat) @@ -583,7 +583,7 @@ EXPORT_SYMBOL(of_machine_is_compatible);   *   *  @device: Node to check for availability, with locks already held   * - *  Returns true if the status property is absent or set to "okay" or "ok", + *  Return: True if the status property is absent or set to "okay" or "ok",   *  false otherwise   */  static bool __of_device_is_available(const struct device_node *device) @@ -611,7 +611,7 @@ static bool __of_device_is_available(const struct device_node *device)   *   *  @device: Node to check for availability   * - *  Returns true if the status property is absent or set to "okay" or "ok", + *  Return: True if the status property is absent or set to "okay" or "ok",   *  false otherwise   */  bool of_device_is_available(const struct device_node *device) @@ -632,7 +632,7 @@ EXPORT_SYMBOL(of_device_is_available);   *   *  @device: Node to check for endianness   * - *  Returns true if the device has a "big-endian" property, or if the kernel + *  Return: True if the device has a "big-endian" property, or if the kernel   *  was compiled for BE *and* the device has a "native-endian" property.   *  Returns false otherwise.   * @@ -651,11 +651,11 @@ bool of_device_is_big_endian(const struct device_node *device)  EXPORT_SYMBOL(of_device_is_big_endian);  /** - *	of_get_parent - Get a node's parent if any - *	@node:	Node to get parent + * of_get_parent - Get a node's parent if any + * @node:	Node to get parent   * - *	Returns a node pointer with refcount incremented, use - *	of_node_put() on it when done. + * Return: A node pointer with refcount incremented, use + * of_node_put() on it when done.   */  struct device_node *of_get_parent(const struct device_node *node)  { @@ -673,15 +673,15 @@ struct device_node *of_get_parent(const struct device_node *node)  EXPORT_SYMBOL(of_get_parent);  /** - *	of_get_next_parent - Iterate to a node's parent - *	@node:	Node to get parent of + * of_get_next_parent - Iterate to a node's parent + * @node:	Node to get parent of   * - *	This is like of_get_parent() except that it drops the - *	refcount on the passed node, making it suitable for iterating - *	through a node's parents. + * This is like of_get_parent() except that it drops the + * refcount on the passed node, making it suitable for iterating + * through a node's parents.   * - *	Returns a node pointer with refcount incremented, use - *	of_node_put() on it when done. + * Return: A node pointer with refcount incremented, use + * of_node_put() on it when done.   */  struct device_node *of_get_next_parent(struct device_node *node)  { @@ -719,13 +719,13 @@ static struct device_node *__of_get_next_child(const struct device_node *node,  	     child = __of_get_next_child(parent, child))  /** - *	of_get_next_child - Iterate a node childs - *	@node:	parent node - *	@prev:	previous child of the parent node, or NULL to get first + * of_get_next_child - Iterate a node childs + * @node:	parent node + * @prev:	previous child of the parent node, or NULL to get first   * - *	Returns a node pointer with refcount incremented, use of_node_put() on - *	it when done. Returns NULL when prev is the last child. Decrements the - *	refcount of prev. + * Return: A node pointer with refcount incremented, use of_node_put() on + * it when done. Returns NULL when prev is the last child. Decrements the + * refcount of prev.   */  struct device_node *of_get_next_child(const struct device_node *node,  	struct device_node *prev) @@ -741,12 +741,12 @@ struct device_node *of_get_next_child(const struct device_node *node,  EXPORT_SYMBOL(of_get_next_child);  /** - *	of_get_next_available_child - Find the next available child node - *	@node:	parent node - *	@prev:	previous child of the parent node, or NULL to get first + * of_get_next_available_child - Find the next available child node + * @node:	parent node + * @prev:	previous child of the parent node, or NULL to get first   * - *      This function is like of_get_next_child(), except that it - *      automatically skips any disabled nodes (i.e. status = "disabled"). + * This function is like of_get_next_child(), except that it + * automatically skips any disabled nodes (i.e. status = "disabled").   */  struct device_node *of_get_next_available_child(const struct device_node *node,  	struct device_node *prev) @@ -772,12 +772,12 @@ struct device_node *of_get_next_available_child(const struct device_node *node,  EXPORT_SYMBOL(of_get_next_available_child);  /** - *	of_get_next_cpu_node - Iterate on cpu nodes - *	@prev:	previous child of the /cpus node, or NULL to get first + * of_get_next_cpu_node - Iterate on cpu nodes + * @prev:	previous child of the /cpus node, or NULL to get first   * - *	Returns a cpu node pointer with refcount incremented, use of_node_put() - *	on it when done. Returns NULL when prev is the last child. Decrements - *	the refcount of prev. + * Return: A cpu node pointer with refcount incremented, use of_node_put() + * on it when done. Returns NULL when prev is the last child. Decrements + * the refcount of prev.   */  struct device_node *of_get_next_cpu_node(struct device_node *prev)  { @@ -816,7 +816,7 @@ EXPORT_SYMBOL(of_get_next_cpu_node);   * Lookup child node whose compatible property contains the given compatible   * string.   * - * Returns a node pointer with refcount incremented, use of_node_put() on it + * Return: a node pointer with refcount incremented, use of_node_put() on it   * when done; or NULL if not found.   */  struct device_node *of_get_compatible_child(const struct device_node *parent, @@ -834,15 +834,15 @@ struct device_node *of_get_compatible_child(const struct device_node *parent,  EXPORT_SYMBOL(of_get_compatible_child);  /** - *	of_get_child_by_name - Find the child node by name for a given parent - *	@node:	parent node - *	@name:	child name to look for. + * of_get_child_by_name - Find the child node by name for a given parent + * @node:	parent node + * @name:	child name to look for.   * - *      This function looks for child node for given matching name + * This function looks for child node for given matching name   * - *	Returns a node pointer if found, with refcount incremented, use - *	of_node_put() on it when done. - *	Returns NULL if node is not found. + * Return: A node pointer if found, with refcount incremented, use + * of_node_put() on it when done. + * Returns NULL if node is not found.   */  struct device_node *of_get_child_by_name(const struct device_node *node,  				const char *name) @@ -893,22 +893,22 @@ struct device_node *__of_find_node_by_full_path(struct device_node *node,  }  /** - *	of_find_node_opts_by_path - Find a node matching a full OF path - *	@path: Either the full path to match, or if the path does not - *	       start with '/', the name of a property of the /aliases - *	       node (an alias).  In the case of an alias, the node - *	       matching the alias' value will be returned. - *	@opts: Address of a pointer into which to store the start of - *	       an options string appended to the end of the path with - *	       a ':' separator. - * - *	Valid paths: - *		/foo/bar	Full path - *		foo		Valid alias - *		foo/bar		Valid alias + relative path - * - *	Returns a node pointer with refcount incremented, use - *	of_node_put() on it when done. + * of_find_node_opts_by_path - Find a node matching a full OF path + * @path: Either the full path to match, or if the path does not + *       start with '/', the name of a property of the /aliases + *       node (an alias).  In the case of an alias, the node + *       matching the alias' value will be returned. + * @opts: Address of a pointer into which to store the start of + *       an options string appended to the end of the path with + *       a ':' separator. + * + * Valid paths: + *  * /foo/bar	Full path + *  * foo	Valid alias + *  * foo/bar	Valid alias + relative path + * + * Return: A node pointer with refcount incremented, use + * of_node_put() on it when done.   */  struct device_node *of_find_node_opts_by_path(const char *path, const char **opts)  { @@ -958,15 +958,15 @@ struct device_node *of_find_node_opts_by_path(const char *path, const char **opt  EXPORT_SYMBOL(of_find_node_opts_by_path);  /** - *	of_find_node_by_name - Find a node by its "name" property - *	@from:	The node to start searching from or NULL; the node + * of_find_node_by_name - Find a node by its "name" property + * @from:	The node to start searching from or NULL; the node   *		you pass will not be searched, only the next one   *		will. Typically, you pass what the previous call   *		returned. of_node_put() will be called on @from. - *	@name:	The name string to match against + * @name:	The name string to match against   * - *	Returns a node pointer with refcount incremented, use - *	of_node_put() on it when done. + * Return: A node pointer with refcount incremented, use + * of_node_put() on it when done.   */  struct device_node *of_find_node_by_name(struct device_node *from,  	const char *name) @@ -985,16 +985,16 @@ struct device_node *of_find_node_by_name(struct device_node *from,  EXPORT_SYMBOL(of_find_node_by_name);  /** - *	of_find_node_by_type - Find a node by its "device_type" property - *	@from:	The node to start searching from, or NULL to start searching + * of_find_node_by_type - Find a node by its "device_type" property + * @from:	The node to start searching from, or NULL to start searching   *		the entire device tree. The node you pass will not be   *		searched, only the next one will; typically, you pass   *		what the previous call returned. of_node_put() will be   *		called on from for you. - *	@type:	The type string to match against + * @type:	The type string to match against   * - *	Returns a node pointer with refcount incremented, use - *	of_node_put() on it when done. + * Return: A node pointer with refcount incremented, use + * of_node_put() on it when done.   */  struct device_node *of_find_node_by_type(struct device_node *from,  	const char *type) @@ -1013,18 +1013,18 @@ struct device_node *of_find_node_by_type(struct device_node *from,  EXPORT_SYMBOL(of_find_node_by_type);  /** - *	of_find_compatible_node - Find a node based on type and one of the + * of_find_compatible_node - Find a node based on type and one of the   *                                tokens in its "compatible" property - *	@from:		The node to start searching from or NULL, the node - *			you pass will not be searched, only the next one - *			will; typically, you pass what the previous call - *			returned. of_node_put() will be called on it - *	@type:		The type string to match "device_type" or NULL to ignore - *	@compatible:	The string to match to one of the tokens in the device - *			"compatible" list. - * - *	Returns a node pointer with refcount incremented, use - *	of_node_put() on it when done. + * @from:	The node to start searching from or NULL, the node + *		you pass will not be searched, only the next one + *		will; typically, you pass what the previous call + *		returned. of_node_put() will be called on it + * @type:	The type string to match "device_type" or NULL to ignore + * @compatible:	The string to match to one of the tokens in the device + *		"compatible" list. + * + * Return: A node pointer with refcount incremented, use + * of_node_put() on it when done.   */  struct device_node *of_find_compatible_node(struct device_node *from,  	const char *type, const char *compatible) @@ -1044,16 +1044,16 @@ struct device_node *of_find_compatible_node(struct device_node *from,  EXPORT_SYMBOL(of_find_compatible_node);  /** - *	of_find_node_with_property - Find a node which has a property with - *                                   the given name. - *	@from:		The node to start searching from or NULL, the node - *			you pass will not be searched, only the next one - *			will; typically, you pass what the previous call - *			returned. of_node_put() will be called on it - *	@prop_name:	The name of the property to look for. - * - *	Returns a node pointer with refcount incremented, use - *	of_node_put() on it when done. + * of_find_node_with_property - Find a node which has a property with + *                              the given name. + * @from:	The node to start searching from or NULL, the node + *		you pass will not be searched, only the next one + *		will; typically, you pass what the previous call + *		returned. of_node_put() will be called on it + * @prop_name:	The name of the property to look for. + * + * Return: A node pointer with refcount incremented, use + * of_node_put() on it when done.   */  struct device_node *of_find_node_with_property(struct device_node *from,  	const char *prop_name) @@ -1102,10 +1102,10 @@ const struct of_device_id *__of_match_node(const struct of_device_id *matches,  /**   * of_match_node - Tell if a device_node has a matching of_match structure - *	@matches:	array of of device match structures to search in - *	@node:		the of device structure to match against + * @matches:	array of of device match structures to search in + * @node:	the of device structure to match against   * - *	Low level utility function used by device matching. + * Low level utility function used by device matching.   */  const struct of_device_id *of_match_node(const struct of_device_id *matches,  					 const struct device_node *node) @@ -1121,17 +1121,17 @@ const struct of_device_id *of_match_node(const struct of_device_id *matches,  EXPORT_SYMBOL(of_match_node);  /** - *	of_find_matching_node_and_match - Find a node based on an of_device_id - *					  match table. - *	@from:		The node to start searching from or NULL, the node - *			you pass will not be searched, only the next one - *			will; typically, you pass what the previous call - *			returned. of_node_put() will be called on it - *	@matches:	array of of device match structures to search in - *	@match		Updated to point at the matches entry which matched - * - *	Returns a node pointer with refcount incremented, use - *	of_node_put() on it when done. + * of_find_matching_node_and_match - Find a node based on an of_device_id + *				     match table. + * @from:	The node to start searching from or NULL, the node + *		you pass will not be searched, only the next one + *		will; typically, you pass what the previous call + *		returned. of_node_put() will be called on it + * @matches:	array of of device match structures to search in + * @match:	Updated to point at the matches entry which matched + * + * Return: A node pointer with refcount incremented, use + * of_node_put() on it when done.   */  struct device_node *of_find_matching_node_and_match(struct device_node *from,  					const struct of_device_id *matches, @@ -1170,7 +1170,7 @@ EXPORT_SYMBOL(of_find_matching_node_and_match);   * It does this by stripping the manufacturer prefix (as delimited by a ',')   * from the first entry in the compatible list property.   * - * This routine returns 0 on success, <0 on failure. + * Return: This routine returns 0 on success, <0 on failure.   */  int of_modalias_node(struct device_node *node, char *modalias, int len)  { @@ -1190,7 +1190,7 @@ EXPORT_SYMBOL_GPL(of_modalias_node);   * of_find_node_by_phandle - Find a node given a phandle   * @handle:	phandle of the node to find   * - * Returns a node pointer with refcount incremented, use + * Return: A node pointer with refcount incremented, use   * of_node_put() on it when done.   */  struct device_node *of_find_node_by_phandle(phandle handle) @@ -1426,7 +1426,7 @@ static int __of_parse_phandle_with_args(const struct device_node *np,   * @index: For properties holding a table of phandles, this is the index into   *         the table   * - * Returns the device_node pointer with refcount incremented.  Use + * Return: The device_node pointer with refcount incremented.  Use   * of_node_put() on it when done.   */  struct device_node *of_parse_phandle(const struct device_node *np, @@ -1460,21 +1460,21 @@ EXPORT_SYMBOL(of_parse_phandle);   * Caller is responsible to call of_node_put() on the returned out_args->np   * pointer.   * - * Example: + * Example::   * - * phandle1: node1 { + *  phandle1: node1 {   *	#list-cells = <2>; - * } + *  };   * - * phandle2: node2 { + *  phandle2: node2 {   *	#list-cells = <1>; - * } + *  };   * - * node3 { + *  node3 {   *	list = <&phandle1 1 2 &phandle2 3>; - * } + *  };   * - * To get a device_node of the `node2' node you may call this: + * To get a device_node of the ``node2`` node you may call this:   * of_parse_phandle_with_args(node3, "list", "#list-cells", 1, &args);   */  int of_parse_phandle_with_args(const struct device_node *np, const char *list_name, @@ -1512,29 +1512,29 @@ EXPORT_SYMBOL(of_parse_phandle_with_args);   * Caller is responsible to call of_node_put() on the returned out_args->np   * pointer.   * - * Example: + * Example::   * - * phandle1: node1 { - *	#list-cells = <2>; - * } + *  phandle1: node1 { + *  	#list-cells = <2>; + *  };   * - * phandle2: node2 { - *	#list-cells = <1>; - * } + *  phandle2: node2 { + *  	#list-cells = <1>; + *  };   * - * phandle3: node3 { - * 	#list-cells = <1>; - * 	list-map = <0 &phandle2 3>, - * 		   <1 &phandle2 2>, - * 		   <2 &phandle1 5 1>; - *	list-map-mask = <0x3>; - * }; + *  phandle3: node3 { + *  	#list-cells = <1>; + *  	list-map = <0 &phandle2 3>, + *  		   <1 &phandle2 2>, + *  		   <2 &phandle1 5 1>; + *  	list-map-mask = <0x3>; + *  };   * - * node4 { - *	list = <&phandle1 1 2 &phandle3 0>; - * } + *  node4 { + *  	list = <&phandle1 1 2 &phandle3 0>; + *  };   * - * To get a device_node of the `node2' node you may call this: + * To get a device_node of the ``node2`` node you may call this:   * of_parse_phandle_with_args(node4, "list", "list", 1, &args);   */  int of_parse_phandle_with_args_map(const struct device_node *np, @@ -1694,19 +1694,19 @@ EXPORT_SYMBOL(of_parse_phandle_with_args_map);   * Caller is responsible to call of_node_put() on the returned out_args->np   * pointer.   * - * Example: + * Example::   * - * phandle1: node1 { - * } + *  phandle1: node1 { + *  };   * - * phandle2: node2 { - * } + *  phandle2: node2 { + *  };   * - * node3 { - *	list = <&phandle1 0 2 &phandle2 2 3>; - * } + *  node3 { + *  	list = <&phandle1 0 2 &phandle2 2 3>; + *  };   * - * To get a device_node of the `node2' node you may call this: + * To get a device_node of the ``node2`` node you may call this:   * of_parse_phandle_with_fixed_args(node3, "list", 2, 1, &args);   */  int of_parse_phandle_with_fixed_args(const struct device_node *np, @@ -1726,7 +1726,7 @@ EXPORT_SYMBOL(of_parse_phandle_with_fixed_args);   * @list_name:	property name that contains a list   * @cells_name:	property name that specifies phandles' arguments count   * - * Returns the number of phandle + argument tuples within a property. It + * Return: The number of phandle + argument tuples within a property. It   * is a typical pattern to encode a list of phandle and variable   * arguments into a single property. The number of arguments is encoded   * by a property in the phandle-target node. For example, a gpios @@ -1774,6 +1774,8 @@ EXPORT_SYMBOL(of_count_phandle_with_args);  /**   * __of_add_property - Add a property to a node without lock operations + * @np:		Caller's Device Node + * @prop:	Property to add   */  int __of_add_property(struct device_node *np, struct property *prop)  { @@ -1795,6 +1797,8 @@ int __of_add_property(struct device_node *np, struct property *prop)  /**   * of_add_property - Add a property to a node + * @np:		Caller's Device Node + * @prop:	Property to add   */  int of_add_property(struct device_node *np, struct property *prop)  { @@ -1839,6 +1843,8 @@ int __of_remove_property(struct device_node *np, struct property *prop)  /**   * of_remove_property - Remove a property from a node. + * @np:		Caller's Device Node + * @prop:	Property to remove   *   * Note that we don't actually remove it, since we have given out   * who-knows-how-many pointers to the data using get-property. @@ -1946,13 +1952,12 @@ static void of_alias_add(struct alias_prop *ap, struct device_node *np,  /**   * of_alias_scan - Scan all properties of the 'aliases' node + * @dt_alloc:	An allocator that provides a virtual address to memory + *		for storing the resulting tree   *   * The function scans all the properties of the 'aliases' node and populates   * the global lookup table with the properties.  It returns the   * number of alias properties found, or an error code in case of failure. - * - * @dt_alloc:	An allocator that provides a virtual address to memory - *		for storing the resulting tree   */  void of_alias_scan(void * (*dt_alloc)(u64 size, u64 align))  { @@ -2021,7 +2026,9 @@ void of_alias_scan(void * (*dt_alloc)(u64 size, u64 align))   * @stem:	Alias stem of the given device_node   *   * The function travels the lookup table to get the alias id for the given - * device_node and alias stem.  It returns the alias id if found. + * device_node and alias stem. + * + * Return: The alias id if found.   */  int of_alias_get_id(struct device_node *np, const char *stem)  { @@ -2125,13 +2132,14 @@ EXPORT_SYMBOL_GPL(of_alias_get_highest_id);  /**   * of_console_check() - Test and setup console for DT setup - * @dn - Pointer to device node - * @name - Name to use for preferred console without index. ex. "ttyS" - * @index - Index to use for preferred console. + * @dn: Pointer to device node + * @name: Name to use for preferred console without index. ex. "ttyS" + * @index: Index to use for preferred console.   *   * Check if the given device node matches the stdout-path property in the - * /chosen node. If it does then register it as the preferred console and return - * TRUE. Otherwise return FALSE. + * /chosen node. If it does then register it as the preferred console. + * + * Return: TRUE if console successfully setup. Otherwise return FALSE.   */  bool of_console_check(struct device_node *dn, char *name, int index)  { @@ -2147,12 +2155,12 @@ bool of_console_check(struct device_node *dn, char *name, int index)  EXPORT_SYMBOL_GPL(of_console_check);  /** - *	of_find_next_cache_node - Find a node's subsidiary cache - *	@np:	node of type "cpu" or "cache" + * of_find_next_cache_node - Find a node's subsidiary cache + * @np:	node of type "cpu" or "cache"   * - *	Returns a node pointer with refcount incremented, use - *	of_node_put() on it when done.  Caller should hold a reference - *	to np. + * Return: A node pointer with refcount incremented, use + * of_node_put() on it when done.  Caller should hold a reference + * to np.   */  struct device_node *of_find_next_cache_node(const struct device_node *np)  { @@ -2182,7 +2190,7 @@ struct device_node *of_find_next_cache_node(const struct device_node *np)   *   * @cpu: cpu number(logical index) for which the last cache level is needed   * - * Returns the the level at which the last cache is present. It is exactly + * Return: The the level at which the last cache is present. It is exactly   * same as  the total number of cache levels for the given logical cpu.   */  int of_find_last_cache_level(unsigned int cpu) | 
