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