1 /* SPDX-License-Identifier: GPL-2.0+ */
3 * Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.
9 #include <linux/soundwire/sdw.h>
14 struct acp_sdw_pdata {
16 /* mutex to protect acp common register access */
17 struct mutex *acp_sdw_lock;
20 struct sdw_manager_reg_mask {
21 u32 sw_pad_enable_mask;
22 u32 sw_pad_pulldown_mask;
23 u32 acp_sdw_intr_mask;
27 * struct amd_sdw_manager - amd manager driver context
30 * @mmio: SoundWire registers mmio base
31 * @acp_mmio: acp registers mmio base
32 * @reg_mask: register mask structure per manager instance
33 * @probe_work: SoundWire manager probe workqueue
34 * @acp_sdw_lock: mutex to protect acp share register access
35 * @num_din_ports: number of input ports
36 * @num_dout_ports: number of output ports
37 * @cols_index: Column index in frame shape
38 * @rows_index: Rows index in frame shape
39 * @instance: SoundWire manager instance
40 * @quirks: SoundWire manager quirks
41 * @wake_en_mask: wake enable mask per SoundWire manager
42 * @power_mode_mask: flag interprets amd SoundWire manager power mode
44 struct amd_sdw_manager {
49 void __iomem *acp_mmio;
51 struct sdw_manager_reg_mask *reg_mask;
52 struct work_struct probe_work;
53 /* mutex to protect acp common register access */
54 struct mutex *acp_sdw_lock;