Blame view

include/dm/lists.h 2.76 KB
6494d708b   Simon Glass   dm: Add base driv...
1
2
3
4
5
6
7
8
9
10
11
  /*
   * Copyright (c) 2013 Google, Inc
   *
   * (C) Copyright 2012
   * Pavel Herrmann <morpheus.ibis@gmail.com>
   *
   * SPDX-License-Identifier:	GPL-2.0+
   */
  
  #ifndef _DM_LISTS_H_
  #define _DM_LISTS_H_
f5b5719cd   Simon Glass   dm: core: Update ...
12
  #include <dm/ofnode.h>
6494d708b   Simon Glass   dm: Add base driv...
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
  #include <dm/uclass-id.h>
  
  /**
   * lists_driver_lookup_name() - Return u_boot_driver corresponding to name
   *
   * This function returns a pointer to a driver given its name. This is used
   * for binding a driver given its name and platdata.
   *
   * @name: Name of driver to look up
   * @return pointer to driver, or NULL if not found
   */
  struct driver *lists_driver_lookup_name(const char *name);
  
  /**
   * lists_uclass_lookup() - Return uclass_driver based on ID of the class
   * id:		ID of the class
   *
   * This function returns the pointer to uclass_driver, which is the class's
   * base structure based on the ID of the class. Returns NULL on error.
   */
  struct uclass_driver *lists_uclass_lookup(enum uclass_id id);
f2bc6fc33   Simon Glass   dm: Tidy up four ...
34
35
36
37
38
39
  /**
   * lists_bind_drivers() - search for and bind all drivers to parent
   *
   * This searches the U_BOOT_DEVICE() structures and creates new devices for
   * each one. The devices will have @parent as their parent.
   *
81b4e751c   Masahiro Yamada   dm: fix comments
40
   * @parent: parent device (root)
f2bc6fc33   Simon Glass   dm: Tidy up four ...
41
42
43
   * @early_only: If true, bind only drivers with the DM_INIT_F flag. If false
   * bind all drivers.
   */
00606d7e3   Simon Glass   dm: Allow drivers...
44
  int lists_bind_drivers(struct udevice *parent, bool pre_reloc_only);
6494d708b   Simon Glass   dm: Add base driv...
45

f2bc6fc33   Simon Glass   dm: Tidy up four ...
46
47
48
49
50
51
  /**
   * lists_bind_fdt() - bind a device tree node
   *
   * This creates a new device bound to the given device tree node, with
   * @parent as its parent.
   *
81b4e751c   Masahiro Yamada   dm: fix comments
52
   * @parent: parent device (root)
f5b5719cd   Simon Glass   dm: core: Update ...
53
   * @node: device tree node to bind
1f359e361   Simon Glass   dm: Adjust lists_...
54
55
56
   * @devp: if non-NULL, returns a pointer to the bound device
   * @return 0 if device was bound, -EINVAL if the device tree is invalid,
   * other -ve value on error
f2bc6fc33   Simon Glass   dm: Tidy up four ...
57
   */
f5b5719cd   Simon Glass   dm: core: Update ...
58
  int lists_bind_fdt(struct udevice *parent, ofnode node, struct udevice **devp);
6494d708b   Simon Glass   dm: Add base driv...
59

e33dc221f   Simon Glass   dm: Add a functio...
60
61
62
63
64
65
66
67
  /**
   * device_bind_driver() - bind a device to a driver
   *
   * This binds a new device to a driver.
   *
   * @parent:	Parent device
   * @drv_name:	Name of driver to attach to this parent
   * @dev_name:	Name of the new device thus created
e6cabe4a6   Masahiro Yamada   dm: core: allow d...
68
   * @devp:	If non-NULL, returns the newly bound device
e33dc221f   Simon Glass   dm: Add a functio...
69
70
71
   */
  int device_bind_driver(struct udevice *parent, const char *drv_name,
  		       const char *dev_name, struct udevice **devp);
5b9000dd2   Simon Glass   dm: core: Add a f...
72
73
74
75
76
77
78
79
80
81
  /**
   * device_bind_driver_to_node() - bind a device to a driver for a node
   *
   * This binds a new device to a driver for a given device tree node. This
   * should only be needed if the node lacks a compatible strings.
   *
   * @parent:	Parent device
   * @drv_name:	Name of driver to attach to this parent
   * @dev_name:	Name of the new device thus created
   * @node:	Device tree node
e6cabe4a6   Masahiro Yamada   dm: core: allow d...
82
   * @devp:	If non-NULL, returns the newly bound device
5b9000dd2   Simon Glass   dm: core: Add a f...
83
84
   */
  int device_bind_driver_to_node(struct udevice *parent, const char *drv_name,
45a26867e   Simon Glass   dm: core: Update ...
85
  			       const char *dev_name, ofnode node,
5b9000dd2   Simon Glass   dm: core: Add a f...
86
  			       struct udevice **devp);
6494d708b   Simon Glass   dm: Add base driv...
87
  #endif