linux/drivers/usb/core/of.c
<<
>>
Prefs
   1/*
   2 * of.c         The helpers for hcd device tree support
   3 *
   4 * Copyright (C) 2016 Freescale Semiconductor, Inc.
   5 * Author: Peter Chen <peter.chen@freescale.com>
   6 *
   7 * This program is free software: you can redistribute it and/or modify
   8 * it under the terms of the GNU General Public License version 2  of
   9 * the License as published by the Free Software Foundation.
  10 *
  11 * This program is distributed in the hope that it will be useful,
  12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14 * GNU General Public License for more details.
  15 *
  16 * You should have received a copy of the GNU General Public License
  17 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  18 */
  19
  20#include <linux/of.h>
  21#include <linux/usb/of.h>
  22
  23/**
  24 * usb_of_get_child_node - Find the device node match port number
  25 * @parent: the parent device node
  26 * @portnum: the port number which device is connecting
  27 *
  28 * Find the node from device tree according to its port number.
  29 *
  30 * Return: On success, a pointer to the device node, %NULL on failure.
  31 */
  32struct device_node *usb_of_get_child_node(struct device_node *parent,
  33                                        int portnum)
  34{
  35        struct device_node *node;
  36        u32 port;
  37
  38        for_each_child_of_node(parent, node) {
  39                if (!of_property_read_u32(node, "reg", &port)) {
  40                        if (port == portnum)
  41                                return node;
  42                }
  43        }
  44
  45        return NULL;
  46}
  47EXPORT_SYMBOL_GPL(usb_of_get_child_node);
  48
  49