xref: /rk3399_rockchip-uboot/include/dm/platdata.h (revision 97f3ee34b6725f9fa5431e91db3223a53e55761c)
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  * Marek Vasut <marex@denx.de>
76494d708SSimon Glass  *
86494d708SSimon Glass  * SPDX-License-Identifier:	GPL-2.0+
96494d708SSimon Glass  */
106494d708SSimon Glass 
116494d708SSimon Glass #ifndef _DM_PLATDATA_H
126494d708SSimon Glass #define _DM_PLATDATA_H
136494d708SSimon Glass 
1442c23dd2SMasahiro Yamada #include <linker_lists.h>
1542c23dd2SMasahiro Yamada 
160040b944SSimon Glass /**
170040b944SSimon Glass  * struct driver_info - Information required to instantiate a device
180040b944SSimon Glass  *
19*97f3ee34SSimon Glass  * NOTE: Avoid using this except in extreme circumstances, where device tree
20*97f3ee34SSimon Glass  * is not feasible (e.g. serial driver in SPL where <8KB of SRAM is
21*97f3ee34SSimon Glass  * available). U-Boot's driver model uses device tree for configuration.
22*97f3ee34SSimon Glass  *
2381b4e751SMasahiro Yamada  * @name:	Driver name
240040b944SSimon Glass  * @platdata:	Driver-specific platform data
250040b944SSimon Glass  */
266494d708SSimon Glass struct driver_info {
276494d708SSimon Glass 	const char *name;
286494d708SSimon Glass 	const void *platdata;
296494d708SSimon Glass };
306494d708SSimon Glass 
31*97f3ee34SSimon Glass /**
32*97f3ee34SSimon Glass  * NOTE: Avoid using these except in extreme circumstances, where device tree
33*97f3ee34SSimon Glass  * is not feasible (e.g. serial driver in SPL where <8KB of SRAM is
34*97f3ee34SSimon Glass  * available). U-Boot's driver model uses device tree for configuration.
35*97f3ee34SSimon Glass  */
366494d708SSimon Glass #define U_BOOT_DEVICE(__name)						\
376494d708SSimon Glass 	ll_entry_declare(struct driver_info, __name, driver_info)
386494d708SSimon Glass 
3910778398SSimon Glass /* Declare a list of devices. The argument is a driver_info[] array */
4010778398SSimon Glass #define U_BOOT_DEVICES(__name)						\
4110778398SSimon Glass 	ll_entry_declare_list(struct driver_info, __name, driver_info)
4210778398SSimon Glass 
436494d708SSimon Glass #endif
44