2 * This file is part of the coreboot project.
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; version 2 of the License.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
17 static const struct nhlt_format_config ssm4567_render_formats
[] = {
18 /* 48 KHz 24-bits per sample. */
21 .sample_freq_khz
= 48,
22 .container_bits_per_sample
= 32,
23 .valid_bits_per_sample
= 24,
24 .speaker_mask
= SPEAKER_FRONT_LEFT
| SPEAKER_FRONT_RIGHT
,
25 .settings_file
= "ssm4567-render-2ch-48khz-24b.bin",
29 /* Capture Blob used for IV feedback for Speaker Protection Algorithm */
30 static const struct nhlt_format_config ssm4567_capture_formats
[] = {
31 /* 48 KHz 32-bits per sample. */
34 .sample_freq_khz
= 48,
35 .container_bits_per_sample
= 32,
36 .valid_bits_per_sample
= 32,
37 .settings_file
= "ssm4567-capture-4ch-48khz-32b.bin",
41 static const struct nhlt_endp_descriptor ssm4567_descriptors
[] = {
44 .link
= NHLT_LINK_SSP
,
45 .device
= NHLT_SSP_DEV_I2S
,
46 .direction
= NHLT_DIR_RENDER
,
49 .formats
= ssm4567_render_formats
,
50 .num_formats
= ARRAY_SIZE(ssm4567_render_formats
),
52 /* Capture Endpoint */
54 .link
= NHLT_LINK_SSP
,
55 .device
= NHLT_SSP_DEV_I2S
,
56 .direction
= NHLT_DIR_CAPTURE
,
59 .formats
= ssm4567_capture_formats
,
60 .num_formats
= ARRAY_SIZE(ssm4567_capture_formats
),
64 int nhlt_soc_add_ssm4567(struct nhlt
*nhlt
, int hwlink
)
66 /* Virtual bus id of SSP links are the hardware port ids proper. */
67 return nhlt_add_ssp_endpoints(nhlt
, hwlink
, ssm4567_descriptors
,
68 ARRAY_SIZE(ssm4567_descriptors
));