1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 #include "../sof-priv.h"
19 #include "hda.h"
20
21 static const struct snd_sof_debugfs_map apl_dsp_debugfs[] = {
22 {"hda", HDA_DSP_HDA_BAR, 0, 0x4000, SOF_DEBUGFS_ACCESS_ALWAYS},
23 {"pp", HDA_DSP_PP_BAR, 0, 0x1000, SOF_DEBUGFS_ACCESS_ALWAYS},
24 {"dsp", HDA_DSP_BAR, 0, 0x10000, SOF_DEBUGFS_ACCESS_ALWAYS},
25 };
26
27
28 const struct snd_sof_dsp_ops sof_apl_ops = {
29
30 .probe = hda_dsp_probe,
31 .remove = hda_dsp_remove,
32
33
34 .write = sof_io_write,
35 .read = sof_io_read,
36 .write64 = sof_io_write64,
37 .read64 = sof_io_read64,
38
39
40 .block_read = sof_block_read,
41 .block_write = sof_block_write,
42
43
44 .irq_handler = hda_dsp_ipc_irq_handler,
45 .irq_thread = hda_dsp_ipc_irq_thread,
46
47
48 .send_msg = hda_dsp_ipc_send_msg,
49 .fw_ready = sof_fw_ready,
50 .get_mailbox_offset = hda_dsp_ipc_get_mailbox_offset,
51 .get_window_offset = hda_dsp_ipc_get_window_offset,
52
53 .ipc_msg_data = hda_ipc_msg_data,
54 .ipc_pcm_params = hda_ipc_pcm_params,
55
56
57 .debug_map = apl_dsp_debugfs,
58 .debug_map_count = ARRAY_SIZE(apl_dsp_debugfs),
59 .dbg_dump = hda_dsp_dump,
60 .ipc_dump = hda_ipc_dump,
61
62
63 .pcm_open = hda_dsp_pcm_open,
64 .pcm_close = hda_dsp_pcm_close,
65 .pcm_hw_params = hda_dsp_pcm_hw_params,
66 .pcm_hw_free = hda_dsp_stream_hw_free,
67 .pcm_trigger = hda_dsp_pcm_trigger,
68 .pcm_pointer = hda_dsp_pcm_pointer,
69
70
71 .load_firmware = snd_sof_load_firmware_raw,
72
73
74 .run = hda_dsp_cl_boot_firmware,
75
76
77 .pre_fw_run = hda_dsp_pre_fw_run,
78 .post_fw_run = hda_dsp_post_fw_run,
79
80
81 .core_power_up = hda_dsp_enable_core,
82 .core_power_down = hda_dsp_core_reset_power_down,
83
84
85 .trace_init = hda_dsp_trace_init,
86 .trace_release = hda_dsp_trace_release,
87 .trace_trigger = hda_dsp_trace_trigger,
88
89
90 .drv = skl_dai,
91 .num_drv = SOF_SKL_NUM_DAIS,
92
93
94 .suspend = hda_dsp_suspend,
95 .resume = hda_dsp_resume,
96 .runtime_suspend = hda_dsp_runtime_suspend,
97 .runtime_resume = hda_dsp_runtime_resume,
98 .runtime_idle = hda_dsp_runtime_idle,
99 .set_hw_params_upon_resume = hda_dsp_set_hw_params_upon_resume,
100 };
101 EXPORT_SYMBOL(sof_apl_ops);
102
103 const struct sof_intel_dsp_desc apl_chip_info = {
104
105 .cores_num = 2,
106 .init_core_mask = 1,
107 .cores_mask = HDA_DSP_CORE_MASK(0) | HDA_DSP_CORE_MASK(1),
108 .ipc_req = HDA_DSP_REG_HIPCI,
109 .ipc_req_mask = HDA_DSP_REG_HIPCI_BUSY,
110 .ipc_ack = HDA_DSP_REG_HIPCIE,
111 .ipc_ack_mask = HDA_DSP_REG_HIPCIE_DONE,
112 .ipc_ctl = HDA_DSP_REG_HIPCCTL,
113 .rom_init_timeout = 150,
114 .ssp_count = APL_SSP_COUNT,
115 .ssp_base_offset = APL_SSP_BASE_OFFSET,
116 };
117 EXPORT_SYMBOL(apl_chip_info);