12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- /* SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause) */
- /* Copyright(c) 2015-17 Intel Corporation. */
- #ifndef __SDW_INTEL_LOCAL_H
- #define __SDW_INTEL_LOCAL_H
- /**
- * struct sdw_intel_link_res - Soundwire Intel link resource structure,
- * typically populated by the controller driver.
- * @mmio_base: mmio base of SoundWire registers
- * @registers: Link IO registers base
- * @shim: Audio shim pointer
- * @alh: ALH (Audio Link Hub) pointer
- * @irq: Interrupt line
- * @ops: Shim callback ops
- * @dev: device implementing hw_params and free callbacks
- * @shim_lock: mutex to handle access to shared SHIM registers
- * @shim_mask: global pointer to check SHIM register initialization
- * @clock_stop_quirks: mask defining requested behavior on pm_suspend
- * @link_mask: global mask needed for power-up/down sequences
- * @cdns: Cadence master descriptor
- * @list: used to walk-through all masters exposed by the same controller
- */
- struct sdw_intel_link_res {
- void __iomem *mmio_base; /* not strictly needed, useful for debug */
- void __iomem *registers;
- void __iomem *shim;
- void __iomem *alh;
- int irq;
- const struct sdw_intel_ops *ops;
- struct device *dev;
- struct mutex *shim_lock; /* protect shared registers */
- u32 *shim_mask;
- u32 clock_stop_quirks;
- u32 link_mask;
- struct sdw_cdns *cdns;
- struct list_head list;
- };
- struct sdw_intel {
- struct sdw_cdns cdns;
- int instance;
- struct sdw_intel_link_res *link_res;
- bool startup_done;
- #ifdef CONFIG_DEBUG_FS
- struct dentry *debugfs;
- #endif
- };
- int intel_link_startup(struct auxiliary_device *auxdev);
- int intel_link_process_wakeen_event(struct auxiliary_device *auxdev);
- struct sdw_intel_link_dev {
- struct auxiliary_device auxdev;
- struct sdw_intel_link_res link_res;
- };
- #define auxiliary_dev_to_sdw_intel_link_dev(auxiliary_dev) \
- container_of(auxiliary_dev, struct sdw_intel_link_dev, auxdev)
- #endif /* __SDW_INTEL_LOCAL_H */
|