xref: /openbmc/linux/include/linux/mei_aux.h (revision 342e4c7e)
11e3dc1d8STomas Winkler /* SPDX-License-Identifier: GPL-2.0 */
21e3dc1d8STomas Winkler /*
31e3dc1d8STomas Winkler  * Copyright (c) 2022, Intel Corporation. All rights reserved.
41e3dc1d8STomas Winkler  */
51e3dc1d8STomas Winkler #ifndef _LINUX_MEI_AUX_H
61e3dc1d8STomas Winkler #define _LINUX_MEI_AUX_H
71e3dc1d8STomas Winkler 
81e3dc1d8STomas Winkler #include <linux/auxiliary_bus.h>
91e3dc1d8STomas Winkler 
10fd72cb1bSTomas Winkler /**
11fd72cb1bSTomas Winkler  * struct mei_aux_device - mei auxiliary device
12fd72cb1bSTomas Winkler  * @aux_dev: - auxiliary device object
13fd72cb1bSTomas Winkler  * @irq: interrupt driving the mei auxiliary device
14fd72cb1bSTomas Winkler  * @bar: mmio resource bar reserved to mei auxiliary device
15*342e4c7eSTomas Winkler  * @ext_op_mem: resource for extend operational memory
16*342e4c7eSTomas Winkler  *              used in graphics PXP mode.
17ed57967aSTomas Winkler  * @slow_firmware: The device has slow underlying firmware.
18ed57967aSTomas Winkler  *                 Such firmware will require to use larger operation timeouts.
19fd72cb1bSTomas Winkler  */
201e3dc1d8STomas Winkler struct mei_aux_device {
211e3dc1d8STomas Winkler 	struct auxiliary_device aux_dev;
221e3dc1d8STomas Winkler 	int irq;
231e3dc1d8STomas Winkler 	struct resource bar;
24*342e4c7eSTomas Winkler 	struct resource ext_op_mem;
25ed57967aSTomas Winkler 	bool slow_firmware;
261e3dc1d8STomas Winkler };
271e3dc1d8STomas Winkler 
281e3dc1d8STomas Winkler #define auxiliary_dev_to_mei_aux_dev(auxiliary_dev) \
291e3dc1d8STomas Winkler 	container_of(auxiliary_dev, struct mei_aux_device, aux_dev)
301e3dc1d8STomas Winkler 
311e3dc1d8STomas Winkler #endif /* _LINUX_MEI_AUX_H */
32