Commit | Line | Data |
---|---|---|
2959ab24 NG |
1 | /* SPDX-License-Identifier: GPL-2.0 |
2 | * | |
3 | * Header file for the CDX Bus | |
4 | * | |
5 | * Copyright (C) 2022-2023, Advanced Micro Devices, Inc. | |
6 | */ | |
7 | ||
8 | #ifndef _CDX_H_ | |
9 | #define _CDX_H_ | |
10 | ||
11 | #include <linux/cdx/cdx_bus.h> | |
12 | ||
13 | /** | |
14 | * struct cdx_dev_params - CDX device parameters | |
15 | * @cdx: CDX controller associated with the device | |
16 | * @parent: Associated CDX controller | |
17 | * @vendor: Vendor ID for CDX device | |
18 | * @device: Device ID for CDX device | |
19 | * @bus_num: Bus number for this CDX device | |
20 | * @dev_num: Device number for this device | |
21 | * @res: array of MMIO region entries | |
22 | * @res_count: number of valid MMIO regions | |
23 | * @req_id: Requestor ID associated with CDX device | |
24 | */ | |
25 | struct cdx_dev_params { | |
26 | struct cdx_controller *cdx; | |
27 | u16 vendor; | |
28 | u16 device; | |
29 | u8 bus_num; | |
30 | u8 dev_num; | |
31 | struct resource res[MAX_CDX_DEV_RESOURCES]; | |
32 | u8 res_count; | |
33 | u32 req_id; | |
34 | }; | |
35 | ||
36 | /** | |
37 | * cdx_register_controller - Register a CDX controller and its ports | |
38 | * on the CDX bus. | |
39 | * @cdx: The CDX controller to register | |
40 | * | |
41 | * Return: -errno on failure, 0 on success. | |
42 | */ | |
43 | int cdx_register_controller(struct cdx_controller *cdx); | |
44 | ||
45 | /** | |
46 | * cdx_unregister_controller - Unregister a CDX controller | |
47 | * @cdx: The CDX controller to unregister | |
48 | */ | |
49 | void cdx_unregister_controller(struct cdx_controller *cdx); | |
50 | ||
51 | /** | |
52 | * cdx_device_add - Add a CDX device. This function adds a CDX device | |
53 | * on the CDX bus as per the device parameters provided | |
54 | * by caller. It also creates and registers an associated | |
55 | * Linux generic device. | |
56 | * @dev_params: device parameters associated with the device to be created. | |
57 | * | |
58 | * Return: -errno on failure, 0 on success. | |
59 | */ | |
60 | int cdx_device_add(struct cdx_dev_params *dev_params); | |
61 | ||
62 | #endif /* _CDX_H_ */ |