Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0-only
0002 //
0003 // soc-acpi-intel-sdw-mockup-match.c - tables and support for SoundWire
0004 // mockup device ACPI enumeration.
0005 //
0006 // Copyright (c) 2021, Intel Corporation.
0007 //
0008 
0009 #include <sound/soc-acpi.h>
0010 #include <sound/soc-acpi-intel-match.h>
0011 #include "soc-acpi-intel-sdw-mockup-match.h"
0012 
0013 static const struct snd_soc_acpi_endpoint sdw_mockup_single_endpoint = {
0014     .num = 0,
0015     .aggregated = 0,
0016     .group_position = 0,
0017     .group_id = 0,
0018 };
0019 
0020 static const struct snd_soc_acpi_endpoint sdw_mockup_l_endpoint = {
0021     .num = 0,
0022     .aggregated = 1,
0023     .group_position = 0,
0024     .group_id = 1,
0025 };
0026 
0027 static const struct snd_soc_acpi_endpoint sdw_mockup_r_endpoint = {
0028     .num = 0,
0029     .aggregated = 1,
0030     .group_position = 1,
0031     .group_id = 1,
0032 };
0033 
0034 static const struct snd_soc_acpi_adr_device sdw_mockup_headset_0_adr[] = {
0035     {
0036         .adr = 0x0000000105AA5500ull,
0037         .num_endpoints = 1,
0038         .endpoints = &sdw_mockup_single_endpoint,
0039         .name_prefix = "sdw_mockup_headset0"
0040     }
0041 };
0042 
0043 static const struct snd_soc_acpi_adr_device sdw_mockup_headset_1_adr[] = {
0044     {
0045         .adr = 0x0001000105AA5500ull,
0046         .num_endpoints = 1,
0047         .endpoints = &sdw_mockup_single_endpoint,
0048         .name_prefix = "sdw_mockup_headset1"
0049     }
0050 };
0051 
0052 static const struct snd_soc_acpi_adr_device sdw_mockup_amp_1_adr[] = {
0053     {
0054         .adr = 0x000100010555AA00ull,
0055         .num_endpoints = 1,
0056         .endpoints = &sdw_mockup_single_endpoint,
0057         .name_prefix = "sdw_mockup_amp1"
0058     }
0059 };
0060 
0061 static const struct snd_soc_acpi_adr_device sdw_mockup_amp_2_adr[] = {
0062     {
0063         .adr = 0x000200010555AA00ull,
0064         .num_endpoints = 1,
0065         .endpoints = &sdw_mockup_single_endpoint,
0066         .name_prefix = "sdw_mockup_amp2"
0067     }
0068 };
0069 
0070 static const struct snd_soc_acpi_adr_device sdw_mockup_mic_0_adr[] = {
0071     {
0072         .adr = 0x0000000105555500ull,
0073         .num_endpoints = 1,
0074         .endpoints = &sdw_mockup_single_endpoint,
0075         .name_prefix = "sdw_mockup_mic0"
0076     }
0077 };
0078 
0079 static const struct snd_soc_acpi_adr_device sdw_mockup_mic_3_adr[] = {
0080     {
0081         .adr = 0x0003000105555500ull,
0082         .num_endpoints = 1,
0083         .endpoints = &sdw_mockup_single_endpoint,
0084         .name_prefix = "sdw_mockup_mic3"
0085     }
0086 };
0087 
0088 static const struct snd_soc_acpi_adr_device sdw_mockup_amp_1_group1_adr[] = {
0089     {
0090         .adr = 0x000100010555AA00ull,
0091         .num_endpoints = 1,
0092         .endpoints = &sdw_mockup_l_endpoint,
0093         .name_prefix = "sdw_mockup_amp1_l"
0094     }
0095 };
0096 
0097 static const struct snd_soc_acpi_adr_device sdw_mockup_amp_2_group1_adr[] = {
0098     {
0099         .adr = 0x000200010555AA00ull,
0100         .num_endpoints = 1,
0101         .endpoints = &sdw_mockup_r_endpoint,
0102         .name_prefix = "sdw_mockup_amp2_r"
0103     }
0104 };
0105 
0106 const struct snd_soc_acpi_link_adr sdw_mockup_headset_1amp_mic[] = {
0107     {
0108         .mask = BIT(0),
0109         .num_adr = ARRAY_SIZE(sdw_mockup_headset_0_adr),
0110         .adr_d = sdw_mockup_headset_0_adr,
0111     },
0112     {
0113         .mask = BIT(1),
0114         .num_adr = ARRAY_SIZE(sdw_mockup_amp_1_adr),
0115         .adr_d = sdw_mockup_amp_1_adr,
0116     },
0117     {
0118         .mask = BIT(3),
0119         .num_adr = ARRAY_SIZE(sdw_mockup_mic_3_adr),
0120         .adr_d = sdw_mockup_mic_3_adr,
0121     },
0122     {}
0123 };
0124 
0125 const struct snd_soc_acpi_link_adr sdw_mockup_headset_2amps_mic[] = {
0126     {
0127         .mask = BIT(0),
0128         .num_adr = ARRAY_SIZE(sdw_mockup_headset_0_adr),
0129         .adr_d = sdw_mockup_headset_0_adr,
0130     },
0131     {
0132         .mask = BIT(1),
0133         .num_adr = ARRAY_SIZE(sdw_mockup_amp_1_group1_adr),
0134         .adr_d = sdw_mockup_amp_1_group1_adr,
0135     },
0136     {
0137         .mask = BIT(2),
0138         .num_adr = ARRAY_SIZE(sdw_mockup_amp_2_group1_adr),
0139         .adr_d = sdw_mockup_amp_2_group1_adr,
0140     },
0141     {
0142         .mask = BIT(3),
0143         .num_adr = ARRAY_SIZE(sdw_mockup_mic_3_adr),
0144         .adr_d = sdw_mockup_mic_3_adr,
0145     },
0146     {}
0147 };
0148 
0149 const struct snd_soc_acpi_link_adr sdw_mockup_mic_headset_1amp[] = {
0150     {
0151         .mask = BIT(1),
0152         .num_adr = ARRAY_SIZE(sdw_mockup_headset_1_adr),
0153         .adr_d = sdw_mockup_headset_1_adr,
0154     },
0155     {
0156         .mask = BIT(2),
0157         .num_adr = ARRAY_SIZE(sdw_mockup_amp_2_adr),
0158         .adr_d = sdw_mockup_amp_2_adr,
0159     },
0160     {
0161         .mask = BIT(0),
0162         .num_adr = ARRAY_SIZE(sdw_mockup_mic_0_adr),
0163         .adr_d = sdw_mockup_mic_0_adr,
0164     },
0165     {}
0166 };