xref: /rk3399_rockchip-uboot/include/dm/platdata.h (revision 843aa190cbd9b42cdd4d30b98232fe033b255ec1)
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  *
1997f3ee34SSimon Glass  * NOTE: Avoid using this except in extreme circumstances, where device tree
2097f3ee34SSimon Glass  * is not feasible (e.g. serial driver in SPL where <8KB of SRAM is
2197f3ee34SSimon Glass  * available). U-Boot's driver model uses device tree for configuration.
2297f3ee34SSimon Glass  *
2381b4e751SMasahiro Yamada  * @name:	Driver name
240040b944SSimon Glass  * @platdata:	Driver-specific platform data
25*9fa28190SSimon Glass  * @platdata_size: Size of platform data structure
260040b944SSimon Glass  */
276494d708SSimon Glass struct driver_info {
286494d708SSimon Glass 	const char *name;
296494d708SSimon Glass 	const void *platdata;
30*9fa28190SSimon Glass #if CONFIG_IS_ENABLED(OF_PLATDATA)
31*9fa28190SSimon Glass 	uint platdata_size;
32*9fa28190SSimon Glass #endif
336494d708SSimon Glass };
346494d708SSimon Glass 
3597f3ee34SSimon Glass /**
3697f3ee34SSimon Glass  * NOTE: Avoid using these except in extreme circumstances, where device tree
3797f3ee34SSimon Glass  * is not feasible (e.g. serial driver in SPL where <8KB of SRAM is
3897f3ee34SSimon Glass  * available). U-Boot's driver model uses device tree for configuration.
3997f3ee34SSimon Glass  */
406494d708SSimon Glass #define U_BOOT_DEVICE(__name)						\
416494d708SSimon Glass 	ll_entry_declare(struct driver_info, __name, driver_info)
426494d708SSimon Glass 
4310778398SSimon Glass /* Declare a list of devices. The argument is a driver_info[] array */
4410778398SSimon Glass #define U_BOOT_DEVICES(__name)						\
4510778398SSimon Glass 	ll_entry_declare_list(struct driver_info, __name, driver_info)
4610778398SSimon Glass 
476494d708SSimon Glass #endif
48