Sound Open Firmware
Loading...
Searching...
No Matches
header-intel-cavs.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: BSD-3-Clause
2 *
3 * Copyright(c) 2019 Intel Corporation. All rights reserved.
4 *
5 * Author: Marcin Maka <marcin.maka@linux.intel.com>
6 */
7
13
14#ifndef __IPC_HEADER_INTEL_CAVS_H__
15#define __IPC_HEADER_INTEL_CAVS_H__
16
17#include <rtos/bit.h>
18
19/* Primary register, mapped to
20 * - DIPCTDR (HIPCIDR) in sideband IPC (cAVS 1.8+)
21 * - DIPCT in cAVS 1.5 IPC
22 *
23 * Secondary register, mapped to:
24 * - DIPCTDD (HIPCIDD) in sideband IPC (cAVS 1.8+)
25 * - DIPCTE in cAVS 1.5 IPC
26 */
27
28/* Common bits in primary register */
29
30#define CAVS_IPC_RSVD_31 BIT(31)
31
33#define CAVS_IPC_MSG_TGT BIT(30)
34
36#define CAVS_IPC_RSP BIT(29)
37
38#define CAVS_IPC_TYPE_SHIFT 24
39#define CAVS_IPC_TYPE_MASK MASK(28, 24)
40#define CAVS_IPC_TYPE(x) ((x) << CAVS_IPC_TYPE_SHIFT)
41
42/* Bits in primary register for Module messages (CAVS_IPC_MSG_TGT set to 1) */
43
45#define CAVS_IPC_MOD_INSTANCE_ID_MASK MASK(23, 16)
46
48#define CAVS_IPC_MOD_ID_MASK MASK(15, 0)
49
50/* Definition of bits in secondary register are message specific
51 * and are defined for each message separately later.
52 */
53
54/* Primary register :: type value for Module messages */
55
56#define CAVS_IPC_MOD_INIT_INSTANCE CAVS_IPC_TYPE(0x0U)
57#define CAVS_IPC_MOD_CFG_GET CAVS_IPC_TYPE(0x1U)
58#define CAVS_IPC_MOD_CFG_SET CAVS_IPC_TYPE(0x2U)
59#define CAVS_IPC_MOD_LARGE_CFG_GET CAVS_IPC_TYPE(0x3U)
60#define CAVS_IPC_MOD_LARGE_CFG_SET CAVS_IPC_TYPE(0x4U)
61#define CAVS_IPC_MOD_BIND CAVS_IPC_TYPE(0x5U)
62#define CAVS_IPC_MOD_UNBIND CAVS_IPC_TYPE(0x6U)
63#define CAVS_IPC_MOD_SET_DX CAVS_IPC_TYPE(0x7U)
64#define CAVS_IPC_MOD_SET_D0IX CAVS_IPC_TYPE(0x8U)
65#define CAVS_IPC_MOD_ENTER_RESTORE CAVS_IPC_TYPE(0x9U)
66#define CAVS_IPC_MOD_EXIT_RESTORE CAVS_IPC_TYPE(0xaU)
67#define CAVS_IPC_MOD_DELETE_INSTANCE CAVS_IPC_TYPE(0xbU)
68#define CAVS_IPC_MOD_NOTIFICATION CAVS_IPC_TYPE(0xcU)
69
70/* Secondary register bits for Module::SetD0iX
71 * ( Primary
72 * tgt = 1 (module message)
73 * rsp = 0 (request)
74 * type = CAVS_IPC_MOD_SET_D0IX
75 * )
76 */
77
79#define CAVS_IPC_MOD_SETD0IX_BIT_MASK MASK(7, 0)
80
82#define CAVS_IPC_MOD_SETD0IX_NO_TRACE BIT(4)
83
85#define CAVS_IPC_MOD_SETD0IX_PCG BIT(3)
86
88#define CAVS_IPC_MOD_SETD0IX_PPG BIT(2)
89
91#define CAVS_IPC_MOD_SETD0IX_STREAMING BIT(1)
92
94#define CAVS_IPC_MOD_SETD0IX_WAKE_TYPE BIT(0)
95
96#endif /* __IPC_HEADER_INTEL_CAVS_H__ */