xref: /linux/include/linux/device-id/dfl.h (revision d2c9a99135da931377240942d44f3dea104cedb8)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef LINUX_DEVICE_ID_DFL_H
3 #define LINUX_DEVICE_ID_DFL_H
4 
5 #ifdef __KERNEL__
6 #include <linux/types.h>
7 typedef unsigned long kernel_ulong_t;
8 #endif
9 
10 /*
11  * DFL (Device Feature List)
12  *
13  * DFL defines a linked list of feature headers within the device MMIO space to
14  * provide an extensible way of adding features. Software can walk through these
15  * predefined data structures to enumerate features. It is now used in the FPGA.
16  * See Documentation/fpga/dfl.rst for more information.
17  *
18  * The dfl bus type is introduced to match the individual feature devices (dfl
19  * devices) for specific dfl drivers.
20  */
21 
22 /**
23  * struct dfl_device_id -  dfl device identifier
24  * @type: DFL FIU type of the device. See enum dfl_id_type.
25  * @feature_id: feature identifier local to its DFL FIU type.
26  * @driver_data: driver specific data.
27  */
28 struct dfl_device_id {
29 	__u16 type;
30 	__u16 feature_id;
31 	kernel_ulong_t driver_data;
32 };
33 
34 #endif /* ifndef LINUX_DEVICE_ID_DFL_H */
35