/* Returns the device_node pointer with refcount incremented. Use of_node_put() on it when done.  */
struct device_node* of_parse_phandle(struct device_node *np, const char *phandle_name, int index)
/* Returns the device_node pointer with refcount incremented. Use of_node_put() on it when done.  */
struct device_node* of_parse_phandle(struct device_node *np, const char *phandle_name, int index)
{
	const phandle *phandle;
	int size;
	phandle = of_get_property(np, phandle_name, &size);
	if ((!phandle) || (size < sizeof(*phandle) * (index + 1)))
		return NULL;
	return of_find_node_by_phandle(phandle[index]);
}