xref: /rk3399_rockchip-uboot/include/dm/lists.h (revision 00606d7e39da4a8ecfbbc19d5af252bdfdd1fcc9)
16494d708SSimon Glass /*
26494d708SSimon Glass  * Copyright (c) 2013 Google, Inc
36494d708SSimon Glass  *
46494d708SSimon Glass  * (C) Copyright 2012
56494d708SSimon Glass  * Pavel Herrmann <morpheus.ibis@gmail.com>
66494d708SSimon Glass  *
76494d708SSimon Glass  * SPDX-License-Identifier:	GPL-2.0+
86494d708SSimon Glass  */
96494d708SSimon Glass 
106494d708SSimon Glass #ifndef _DM_LISTS_H_
116494d708SSimon Glass #define _DM_LISTS_H_
126494d708SSimon Glass 
136494d708SSimon Glass #include <dm/uclass-id.h>
146494d708SSimon Glass 
156494d708SSimon Glass /**
166494d708SSimon Glass  * lists_driver_lookup_name() - Return u_boot_driver corresponding to name
176494d708SSimon Glass  *
186494d708SSimon Glass  * This function returns a pointer to a driver given its name. This is used
196494d708SSimon Glass  * for binding a driver given its name and platdata.
206494d708SSimon Glass  *
216494d708SSimon Glass  * @name: Name of driver to look up
226494d708SSimon Glass  * @return pointer to driver, or NULL if not found
236494d708SSimon Glass  */
246494d708SSimon Glass struct driver *lists_driver_lookup_name(const char *name);
256494d708SSimon Glass 
266494d708SSimon Glass /**
276494d708SSimon Glass  * lists_uclass_lookup() - Return uclass_driver based on ID of the class
286494d708SSimon Glass  * id:		ID of the class
296494d708SSimon Glass  *
306494d708SSimon Glass  * This function returns the pointer to uclass_driver, which is the class's
316494d708SSimon Glass  * base structure based on the ID of the class. Returns NULL on error.
326494d708SSimon Glass  */
336494d708SSimon Glass struct uclass_driver *lists_uclass_lookup(enum uclass_id id);
346494d708SSimon Glass 
35f2bc6fc3SSimon Glass /**
36f2bc6fc3SSimon Glass  * lists_bind_drivers() - search for and bind all drivers to parent
37f2bc6fc3SSimon Glass  *
38f2bc6fc3SSimon Glass  * This searches the U_BOOT_DEVICE() structures and creates new devices for
39f2bc6fc3SSimon Glass  * each one. The devices will have @parent as their parent.
40f2bc6fc3SSimon Glass  *
41f2bc6fc3SSimon Glass  * @parent: parent driver (root)
42f2bc6fc3SSimon Glass  * @early_only: If true, bind only drivers with the DM_INIT_F flag. If false
43f2bc6fc3SSimon Glass  * bind all drivers.
44f2bc6fc3SSimon Glass  */
45*00606d7eSSimon Glass int lists_bind_drivers(struct udevice *parent, bool pre_reloc_only);
466494d708SSimon Glass 
47f2bc6fc3SSimon Glass /**
48f2bc6fc3SSimon Glass  * lists_bind_fdt() - bind a device tree node
49f2bc6fc3SSimon Glass  *
50f2bc6fc3SSimon Glass  * This creates a new device bound to the given device tree node, with
51f2bc6fc3SSimon Glass  * @parent as its parent.
52f2bc6fc3SSimon Glass  *
53f2bc6fc3SSimon Glass  * @parent: parent driver (root)
54f2bc6fc3SSimon Glass  * @blob: device tree blob
55f2bc6fc3SSimon Glass  * @offset: offset of this device tree node
56f2bc6fc3SSimon Glass  */
5754c5d08aSHeiko Schocher int lists_bind_fdt(struct udevice *parent, const void *blob, int offset);
586494d708SSimon Glass 
596494d708SSimon Glass #endif
60