blob: 9c924241b390715c4fd2eb6f5f3baea5c5ac29a7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
// SPDX-License-Identifier: BSD-3-Clause
//
// Copyright(c) 2021 Intel Corporation. All rights reserved.
//
// Author: Liam Girdwood <liam.r.girdwood@linux.intel.com>
// Keyon Jie <yang.jie@linux.intel.com>
// Rander Wang <rander.wang@linux.intel.com>
// Jaska Uimonen <jaska.uimonen@linux.intel.com>
#ifndef __SSP_INTEL_H
#define __SSP_INTEL_H
#include <stdint.h>
/* struct for intel ssp nhlt vendor specific blob generation */
struct ssp_intel_config_data {
uint32_t gateway_attributes;
uint32_t ts_group[8];
uint32_t ssc0;
uint32_t ssc1;
uint32_t sscto;
uint32_t sspsp;
uint32_t sstsa;
uint32_t ssrsa;
uint32_t ssc2;
uint32_t sspsp2;
uint32_t ssc3;
uint32_t ssioc;
uint32_t mdivc;
uint32_t mdivr;
} __attribute__((packed));
#define SSP_BLOB_VER_1_5 0xEE000105
struct ssp_intel_config_data_1_5 {
uint32_t gateway_attributes;
uint32_t version;
uint32_t size;
uint32_t ts_group[8];
uint32_t ssc0;
uint32_t ssc1;
uint32_t sscto;
uint32_t sspsp;
uint32_t sstsa;
uint32_t ssrsa;
uint32_t ssc2;
uint32_t sspsp2;
uint32_t ssc3;
uint32_t ssioc;
uint32_t mdivctlr;
uint32_t mdivrcnt;
uint32_t mdivr[];
} __attribute__((packed));
struct ssp_intel_aux_tlv {
uint32_t type;
uint32_t size;
uint32_t val[];
} __attribute__((packed));
struct ssp_intel_mn_ctl {
uint32_t div_m;
uint32_t div_n;
} __attribute__((packed));
struct ssp_intel_clk_ctl {
uint32_t start;
uint32_t stop;
} __attribute__((packed));
struct ssp_intel_tr_ctl {
uint32_t sampling_frequency;
uint32_t bit_depth;
uint32_t channel_map;
uint32_t channel_config;
uint32_t interleaving_style;
uint32_t format;
} __attribute__((packed));
struct ssp_intel_run_ctl {
uint32_t enabled;
} __attribute__((packed));
struct ssp_intel_node_ctl {
uint32_t node_id;
uint32_t sampling_rate;
} __attribute__((packed));
struct ssp_intel_sync_ctl {
uint32_t sync_denominator;
uint32_t count;
} __attribute__((packed));
struct ssp_intel_ext_ctl {
uint32_t ext_data;
} __attribute__((packed));
struct ssp_intel_link_ctl {
uint32_t clock_source;
} __attribute__((packed));
#endif /* __SSP_INTEL_H */
|