xref: /openbmc/linux/drivers/soundwire/intel.h (revision 6d2c6669)
1 /* SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause) */
2 /* Copyright(c) 2015-17 Intel Corporation. */
3 
4 #ifndef __SDW_INTEL_LOCAL_H
5 #define __SDW_INTEL_LOCAL_H
6 
7 /**
8  * struct sdw_intel_link_res - Soundwire Intel link resource structure,
9  * typically populated by the controller driver.
10  * @pdev: platform_device
11  * @mmio_base: mmio base of SoundWire registers
12  * @registers: Link IO registers base
13  * @shim: Audio shim pointer
14  * @alh: ALH (Audio Link Hub) pointer
15  * @irq: Interrupt line
16  * @ops: Shim callback ops
17  * @dev: device implementing hw_params and free callbacks
18  */
19 struct sdw_intel_link_res {
20 	struct platform_device *pdev;
21 	void __iomem *mmio_base; /* not strictly needed, useful for debug */
22 	void __iomem *registers;
23 	void __iomem *shim;
24 	void __iomem *alh;
25 	int irq;
26 	const struct sdw_intel_ops *ops;
27 	struct device *dev;
28 };
29 
30 struct sdw_intel {
31 	struct sdw_cdns cdns;
32 	int instance;
33 	struct sdw_intel_link_res *link_res;
34 #ifdef CONFIG_DEBUG_FS
35 	struct dentry *debugfs;
36 #endif
37 };
38 
39 #define SDW_INTEL_QUIRK_MASK_BUS_DISABLE      BIT(1)
40 
41 int intel_master_startup(struct platform_device *pdev);
42 
43 #endif /* __SDW_INTEL_LOCAL_H */
44