Path: blob/master/sound/soc/intel/common/soc-acpi-intel-sdw-mockup-match.c
26493 views
// SPDX-License-Identifier: GPL-2.0-only1//2// soc-acpi-intel-sdw-mockup-match.c - tables and support for SoundWire3// mockup device ACPI enumeration.4//5// Copyright (c) 2021, Intel Corporation.6//78#include <sound/soc-acpi.h>9#include <sound/soc-acpi-intel-match.h>10#include "soc-acpi-intel-sdw-mockup-match.h"1112static const struct snd_soc_acpi_endpoint sdw_mockup_single_endpoint = {13.num = 0,14.aggregated = 0,15.group_position = 0,16.group_id = 0,17};1819static const struct snd_soc_acpi_endpoint sdw_mockup_l_endpoint = {20.num = 0,21.aggregated = 1,22.group_position = 0,23.group_id = 1,24};2526static const struct snd_soc_acpi_endpoint sdw_mockup_r_endpoint = {27.num = 0,28.aggregated = 1,29.group_position = 1,30.group_id = 1,31};3233static const struct snd_soc_acpi_endpoint jack_amp_g1_dmic_endpoints[] = {34/* Jack Endpoint */35{36.num = 0,37.aggregated = 0,38.group_position = 0,39.group_id = 0,40},41/* Amp Endpoint, work as spk_l_endpoint */42{43.num = 1,44.aggregated = 1,45.group_position = 0,46.group_id = 1,47},48/* DMIC Endpoint */49{50.num = 2,51.aggregated = 0,52.group_position = 0,53.group_id = 0,54},55};5657static const struct snd_soc_acpi_adr_device sdw_mockup_headset_0_adr[] = {58{59.adr = 0x0000000105AA5500ull,60.num_endpoints = 1,61.endpoints = &sdw_mockup_single_endpoint,62.name_prefix = "sdw_mockup_headset0"63}64};6566static const struct snd_soc_acpi_adr_device sdw_mockup_headset_1_adr[] = {67{68.adr = 0x0001000105AA5500ull,69.num_endpoints = 1,70.endpoints = &sdw_mockup_single_endpoint,71.name_prefix = "sdw_mockup_headset1"72}73};7475static const struct snd_soc_acpi_adr_device sdw_mockup_amp_1_adr[] = {76{77.adr = 0x000100010555AA00ull,78.num_endpoints = 1,79.endpoints = &sdw_mockup_single_endpoint,80.name_prefix = "sdw_mockup_amp1"81}82};8384static const struct snd_soc_acpi_adr_device sdw_mockup_amp_2_adr[] = {85{86.adr = 0x000200010555AA00ull,87.num_endpoints = 1,88.endpoints = &sdw_mockup_single_endpoint,89.name_prefix = "sdw_mockup_amp2"90}91};9293static const struct snd_soc_acpi_adr_device sdw_mockup_mic_0_adr[] = {94{95.adr = 0x0000000105555500ull,96.num_endpoints = 1,97.endpoints = &sdw_mockup_single_endpoint,98.name_prefix = "sdw_mockup_mic0"99}100};101102static const struct snd_soc_acpi_adr_device sdw_mockup_mic_3_adr[] = {103{104.adr = 0x0003000105555500ull,105.num_endpoints = 1,106.endpoints = &sdw_mockup_single_endpoint,107.name_prefix = "sdw_mockup_mic3"108}109};110111static const struct snd_soc_acpi_adr_device sdw_mockup_amp_1_group1_adr[] = {112{113.adr = 0x000100010555AA00ull,114.num_endpoints = 1,115.endpoints = &sdw_mockup_l_endpoint,116.name_prefix = "sdw_mockup_amp1_l"117}118};119120static const struct snd_soc_acpi_adr_device sdw_mockup_amp_2_group1_adr[] = {121{122.adr = 0x000200010555AA00ull,123.num_endpoints = 1,124.endpoints = &sdw_mockup_r_endpoint,125.name_prefix = "sdw_mockup_amp2_r"126}127};128129static const struct snd_soc_acpi_adr_device sdw_mockup_multi_function_adr[] = {130{131.adr = 0x0000000105AAAA01ull,132.num_endpoints = ARRAY_SIZE(jack_amp_g1_dmic_endpoints),133.endpoints = jack_amp_g1_dmic_endpoints,134.name_prefix = "sdw_mockup_mmulti-function"135}136};137138const struct snd_soc_acpi_link_adr sdw_mockup_headset_1amp_mic[] = {139{140.mask = BIT(0),141.num_adr = ARRAY_SIZE(sdw_mockup_headset_0_adr),142.adr_d = sdw_mockup_headset_0_adr,143},144{145.mask = BIT(1),146.num_adr = ARRAY_SIZE(sdw_mockup_amp_1_adr),147.adr_d = sdw_mockup_amp_1_adr,148},149{150.mask = BIT(3),151.num_adr = ARRAY_SIZE(sdw_mockup_mic_3_adr),152.adr_d = sdw_mockup_mic_3_adr,153},154{}155};156157const struct snd_soc_acpi_link_adr sdw_mockup_headset_2amps_mic[] = {158{159.mask = BIT(0),160.num_adr = ARRAY_SIZE(sdw_mockup_headset_0_adr),161.adr_d = sdw_mockup_headset_0_adr,162},163{164.mask = BIT(1),165.num_adr = ARRAY_SIZE(sdw_mockup_amp_1_group1_adr),166.adr_d = sdw_mockup_amp_1_group1_adr,167},168{169.mask = BIT(2),170.num_adr = ARRAY_SIZE(sdw_mockup_amp_2_group1_adr),171.adr_d = sdw_mockup_amp_2_group1_adr,172},173{174.mask = BIT(3),175.num_adr = ARRAY_SIZE(sdw_mockup_mic_3_adr),176.adr_d = sdw_mockup_mic_3_adr,177},178{}179};180181const struct snd_soc_acpi_link_adr sdw_mockup_mic_headset_1amp[] = {182{183.mask = BIT(1),184.num_adr = ARRAY_SIZE(sdw_mockup_headset_1_adr),185.adr_d = sdw_mockup_headset_1_adr,186},187{188.mask = BIT(2),189.num_adr = ARRAY_SIZE(sdw_mockup_amp_2_adr),190.adr_d = sdw_mockup_amp_2_adr,191},192{193.mask = BIT(0),194.num_adr = ARRAY_SIZE(sdw_mockup_mic_0_adr),195.adr_d = sdw_mockup_mic_0_adr,196},197{}198};199200const struct snd_soc_acpi_link_adr sdw_mockup_multi_func[] = {201{202.mask = BIT(0),203.num_adr = ARRAY_SIZE(sdw_mockup_multi_function_adr),204.adr_d = sdw_mockup_multi_function_adr,205},206{}207};208209210