Lines Matching +full:- +full:- +full:id

7  * SPDX-License-Identifier:	GPL-2.0+
14 #include <dm/uclass-id.h>
19 * struct uclass - a U-Boot drive class, collecting together similar drivers
25 * There may be drivers for on-chip SoC GPIO banks, I2C GPIO expanders and
52 * struct uclass_driver - Driver for the uclass
58 * @id: ID number of this uclass
67 * @priv_auto_alloc_size: If non-zero this is the size of the private data
68 * to be allocated in the uclass's ->priv pointer. If zero, then the uclass
72 * value is non-zero.
74 * owned by the uclass as 'dev->uclass_platdata'. If the value is non-zero,
80 * its children. If non-zero this is the size of this data, to be allocated
89 enum uclass_id id; member
113 * uclass_get() - Get a uclass based on an ID, creating it if needed
115 * Every uclass is identified by an ID, a number from 0 to n-1 where n is
117 * ID.
119 * @key: ID to look up
120 * @ucp: Returns pointer to uclass (there is only one per ID)
121 * @return 0 if OK, -ve on error
126 * uclass_get_name() - Get the name of a uclass driver
128 * @id: ID to look up
129 * @returns the name of the uclass driver for that ID, or NULL if none
131 const char *uclass_get_name(enum uclass_id id);
134 * uclass_get_by_name() - Look up a uclass by its driver name
137 * @returns the associated uclass ID, or UCLASS_INVALID if not found
142 * uclass_get_device() - Get a uclass device based on an ID and index
146 * @id: ID to look up
148 * @devp: Returns pointer to device (there is only one per for each ID)
149 * @return 0 if OK, -ve on error
151 int uclass_get_device(enum uclass_id id, int index, struct udevice **devp);
154 * uclass_get_device_by_name() - Get a uclass device by its name
160 * @id: ID to look up
163 * @return 0 if OK, -ve on error
165 int uclass_get_device_by_name(enum uclass_id id, const char *name,
169 * uclass_get_device_by_seq() - Get a uclass device based on an ID and sequence
177 * @id: ID to look up
180 * @return 0 if OK, -ve on error
182 int uclass_get_device_by_seq(enum uclass_id id, int seq, struct udevice **devp);
185 * uclass_get_device_by_of_offset() - Get a uclass device by device tree node
192 * @id: ID to look up
193 * @node: Device tree offset to search for (if -ve then -ENODEV is returned)
195 * @return 0 if OK, -ve on error
197 int uclass_get_device_by_of_offset(enum uclass_id id, int node,
201 * uclass_get_device_by_ofnode() - Get a uclass device by device tree node
208 * @id: ID to look up
209 * @np: Device tree node to search for (if NULL then -ENODEV is returned)
211 * @return 0 if OK, -ve on error
213 int uclass_get_device_by_ofnode(enum uclass_id id, ofnode node,
217 * uclass_get_device_by_phandle_id() - Get a uclass device by phandle id
219 * This searches the devices in the uclass for one with the given phandle id.
223 * @id: uclass ID to look up
224 * @phandle_id: the phandle id to look up
226 * @return 0 if OK, -ENODEV if there is no device match the phandle, other
227 * -ve on error
229 int uclass_get_device_by_phandle_id(enum uclass_id id, uint phandle_id,
233 * uclass_get_device_by_phandle() - Get a uclass device by phandle
239 * @id: uclass ID to look up
243 * @return 0 if OK, -ENOENT if there is no @name present in the node, other
244 * -ve on error
246 int uclass_get_device_by_phandle(enum uclass_id id, struct udevice *parent,
250 * uclass_get_device_by_driver() - Get a uclass device for a driver
254 * the driver name - as used in U_BOOT_DRIVER(name).
258 * @id: ID to look up
261 * @return 0 if OK, -ve on error
263 int uclass_get_device_by_driver(enum uclass_id id, const struct driver *drv,
267 * uclass_first_device() - Get the first device in a uclass
275 * @id: Uclass ID to look up
279 void uclass_first_device(enum uclass_id id, struct udevice **devp);
282 * uclass_next_device() - Get the next device in a uclass
297 * uclass_first_device_err() - Get the first device in a uclass
301 * @id: Uclass ID to look up
303 * Return: 0 if found, -ENODEV if not found, other -ve on error
305 int uclass_first_device_err(enum uclass_id id, struct udevice **devp);
308 * uclass_next_device_err() - Get the next device in a uclass
313 * to the next device in the uclass if no error occurred, or -ENODEV if
315 * @return 0 if found, -ENODEV if not found, other -ve on error
320 * uclass_first_device_check() - Get the first device in a uclass
327 * @id: Uclass ID to look up
330 * @return 0 if OK (found or not found), other -ve on error. If an error occurs
333 int uclass_first_device_check(enum uclass_id id, struct udevice **devp);
336 * uclass_next_device_check() - Get the next device in a uclass
345 * @return 0 if OK (found or not found), other -ve on error. If an error occurs
351 * uclass_first_device_drvdata() - Find the first device with given driver data
356 * @id: Uclass ID to check
359 * @return 0 if found, -ENODEV if not found, other -ve on error
361 int uclass_first_device_drvdata(enum uclass_id id, ulong driver_data,
365 * uclass_resolve_seq() - Resolve a device's sequence number
367 * On entry dev->seq is -1, and dev->req_seq may be -1 (to allocate a
375 * @return sequence number allocated, or -ve on error
380 * uclass_id_foreach_dev() - Helper function to iteration through devices
383 * a uclass ID in order from start to end.
387 * @id: enum uclass_id ID to use
392 #define uclass_id_foreach_dev(id, pos, uc) \ argument
393 if (!uclass_get(id, &uc)) \
394 list_for_each_entry(pos, &uc->dev_head, uclass_node)
397 * uclass_foreach_dev() - Helper function to iteration through devices
407 list_for_each_entry(pos, &uc->dev_head, uclass_node)
410 * uclass_foreach_dev_safe() - Helper function to safely iteration through devs
422 list_for_each_entry_safe(pos, next, &uc->dev_head, uclass_node)
425 * uclass_foreach_dev_probe() - Helper function to iteration through devices
432 * @id: Uclass ID
436 #define uclass_foreach_dev_probe(id, dev) \ argument
437 for (int _ret = uclass_first_device_err(id, &dev); !_ret && dev; \