From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: smtp.subspace.kernel.org; arc=pass header.oldest-pass=0 smtp.remote-ip=52.101.193.30 ARC-Seal: i=2; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; cv=pass; t=1794079693; b=KZi+h0jINW0QbWSu/HibYKO2+eP1hhdoMz4+CefYV+UZ1CwV0cx6p9QNvKuz4zS/1roU Y/IDVIM3y05tk+ugYsl0sJ8sfgChiHDJCgFA7uP/XyEiTLyQEEAXRnncuofU3hV5hmLyI t5TOK0R71qxoaPBLXKsBDaW8R6dZIf+G1B3lok9mZQooEyZB9CCohQmhepNaKKeZH4iNE 5jKwbuM+BlqIwl9R4Rw59s51OrQAvm6I0fee6HQ1qFAgMljFM3zDLQ/SDSItrA1s6fiD7 W8fFiGY7ob1liJGuXPE8665QdsyitBdcyDZgJwRSf2QROlsmpKyV/Edr7qKnA878lCg== ARC-Message-Signature: i=2; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; c=relaxed/relaxed; t=1794079693; h=DMARC-Filter:DKIM-Signature:Received:Received: X-MS-Exchange-Authentication-Results:Received-SPF:Received:Received: Received:From:To:CC:Subject:Date:Message-ID:X-Mailer:In-Reply-To: References:MIME-Version:Content-Transfer-Encoding:Content-Type: X-EOPAttributedMessage:X-MS-PublicTrafficType: X-MS-TrafficTypeDiagnostic:X-MS-Office365-Filtering-Correlation-Id: X-MS-Exchange-SenderADCheck:X-MS-Exchange-AntiSpam-Relay: X-Microsoft-Antispam:X-Microsoft-Antispam-Message-Info: X-Forefront-Antispam-Report: X-MS-Exchange-AntiSpam-MessageData-ChunkCount: X-MS-Exchange-AntiSpam-MessageData-0:X-OriginatorOrg: X-MS-Exchange-CrossTenant-OriginalArrivalTime: X-MS-Exchange-CrossTenant-Network-Message-Id: X-MS-Exchange-CrossTenant-Id: X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: X-MS-Exchange-CrossTenant-AuthSource:X-MS-Exchange-CrossTenant-AuthAs: X-MS-Exchange-CrossTenant-FromEntityHeader: X-MS-Exchange-Transport-CrossTenantHeadersStamped; bh=qGroJEp74r4sGvLuioSQxWbEfojKRACjHkdRd7QxYgs=; b=OeiaBnykfCkNt168HU8P3PXRmyez13Ni0XUsGXMk9HUSmo8okETbuoG1+b+rqNCZD33j tEoWLdu/gjzEXCrE/F9V6sdMjebgeAA5wHKWff73OS0ewJwq6L9c3/K4WQTCtauyaCx0j apdU6Hq+8/I6IGtqYf/vV9licN/QKj93Xv2WpxlQMm7Q7464fEb2WttUHn0zoDb9GEVxQ PYDLZo7WE6HEqgwvkxZgV68x9O/eHzqUbyiBG5jojrwXhJKdNsQGPOij/vs3fu4GCh0yv 1s23cSEw8lVqGxIH9WfF1xoNruU2Bqy4pXKozeDa/OUIEXIXFH0uvki5y09gD+gMAKA== ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass header.d=amd.com header.i=@amd.com header.a=rsa-sha256 header.s=selector1 header.b=e0qs7Fvy; arc=pass header.oldest-pass=0 smtp.remote-ip=52.101.193.30 Received: from CH1PR05CU001.outbound.protection.outlook.com (mail-northcentralusazon11010030.outbound.protection.outlook.com [52.101.193.30]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (secp384r1) server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6D1A0606A326; Sat, 7 Nov 2026 19:28:12 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.2 smtp.subspace.kernel.org 6D1A0606A326 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key, unprotected) header.d=amd.com header.i=@amd.com header.a=rsa-sha256 header.s=selector1 header.b=e0qs7Fvy ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=o66lVmcmAyvvlFbTQ4gr3CEaRy2yG4tMvd6+XhKAr6UneeJVkT74hn69M6735LZv7/WRDQ4LsHv4tsSqbII6+inifz1YDzJoJVkEmuaEZd/Jsd9QALoJXAbN2P4HOtLNB9VXlEYuedou10nrSfMwZAOgBuFWThx51c7FpA7eOiytlePU8SvejYdfZ4lEbgz0OL8KtqvxHIbA/J9QnBvEnAlIVoWpx0Q49FVUhYVBLGVaxoFBv4BNHbbHxsvLwC4gvubBcSg4BEpKQyFQOh+dw92zxxtvAlidXAvKet3vSZ4gHWS0qmn+O1CBJ9YxxpsDQaqVRWaXdi+pSuVyQZDUxw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=qGroJEp74r4sGvLuioSQxWbEfojKRACjHkdRd7QxYgs=; b=OSnezgRsWZOhkKdk93/HQTbt3GVMP4GMBwB8qg7ls3lMZnZRq2YGOsjs949jw0o+B3M2Oy7lbu7DZI8XRMAez5gZEgFtP2DGWDnZYBWeFSF7JxJjQ+JpiAlIYbDiRkO/H37NbDhZGWfpILjXpB48DbuQVwdC8BpynfpkvrSSQGgc/vZyCRYKahJX+fGlpJ9GujxGKuORNdMuv+7q9W1v1M/45DvYDdjfkkhv1nEvF3EUoyDvec5v78TnWb9on19RQIShsXDu6h9f+bCe1290+ZhJQi8wFFpWs8lU2Mgo6CifSNp1nl4N5n/tvl1KXAzP3cLat2VHp8UZuWnyXt1/Qg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qGroJEp74r4sGvLuioSQxWbEfojKRACjHkdRd7QxYgs=; b=e0qs7FvyhYxmTWG4bLSHWyP01A3MdWAx/Ea6TGiriJ6z6LBjsxU47tTzX7R7O0/um8ZvnHQfNRgX5ZtPQXKbKNBLfDWK2O3QvsYptoDDzQhDrWX72j6t5fSlNEoLObySn/Pkao1ypJOemusDOWA5+JoMCLwgkx+k0IZJRdkzLJ0= Received: from CY5PR22CA0066.namprd22.prod.outlook.com (2603:10b6:930:80::13) by IA0PPFDC28CEE69.namprd12.prod.outlook.com (2603:10b6:20f:fc04::be8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.592.11; Sat, 7 Nov 2026 19:28:06 +0000 Received: from CY5PEPF00000E75.namprd02.prod.outlook.com (2603:10b6:930:80:cafe::79) by CY5PR22CA0066.outlook.office365.com (2603:10b6:930:80::13) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.592.11 via Frontend Transport; Sat, 7 Nov 2026 19:28:06 +0000 X-MS-Exchange-Authentication-Results: mx.microsoft.com 1; spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by CY5PEPF00000E75.mail.protection.outlook.com (10.167.247.37) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.615.4 via Frontend Transport; Sat, 7 Nov 2026 19:28:06 +0000 Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.53; Sat, 7 Nov 2026 13:28:05 -0600 Received: from amd-B550M-DS3H.amd.com (10.180.168.240) by satlexmb08.amd.com (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.53 via Frontend Transport; Sat, 7 Nov 2026 13:27:56 -0600 From: Syed Saba Kareem To: CC: , , , , "Syed Saba Kareem" , kernel test robot , "Vijendar Mukunda" , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , "Pierre-Louis Bossart" , Siva Subramanian Ravi Saravanan , "open list:AMD ASoC DRIVERS" , open list Subject: [PATCH v2 1/6] ASoC: amd: acp: add Cirrus SoundWire configs for ACP7.F Date: Sun, 8 Nov 2026 00:56:57 +0530 Message-ID: <20261107192744.2027264-2-syed.sabakareem@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20261107192744.2027264-1-syed.sabakareem@amd.com> References: <20261107192744.2027264-1-syed.sabakareem@amd.com> X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY5PEPF00000E75:EE_|IA0PPFDC28CEE69:EE_ X-MS-Office365-Filtering-Correlation-Id: aac15d24-80ca-442d-9dd1-08df3d053f93 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|23010399003|1800799024|82310400026|36860700016|11063799006|56012099006|261009223027099003|261021121427099003|261022075727099003|261022113327099003|261102123227099003|22082099003|18002099003|6133799003|10067099003|13003099007; X-Microsoft-Antispam-Message-Info: KQafJBuAj7NYR3FxcafdWcKKVxm4pa3xDmBR9ZE2SNIyXqNArZp6WTVQrCclyLTHGmb4bfwQmZki7lLJ0mTIcXYuNdmh6u/FLlatDbEJf/N1CFnlK51ogF+FrrHxPZOOT4GR3oQIo03IDwNYvxKBO/4z/XK1iXOsC8hXJdI/sxUIza9TUCFLGjS+SDX+0rnKeF1MNomRTV5TTLEXEhGz/FaXsgNRIYKna4fcviPBq3ofPqdAM83tebJzMq+Qj+3dzxzjtpH7ApTKztq37fPxZp/BwNp6I5WnKSm8geSRnZKfjJ3GrGiSrXh1pixNAtKhNx/RiQL7WdkJ+H1qA3KJE9lp6mxMBT30YyT2jOPlBpb8jfPXpyx9tyaDHnHLvbv7SmZ4AHefsHFTMFoiVBgpQhwosjs9V4ufqwnI6Etiy4wf2kKo+D6pN9ZxKGk3GkieqTMXRxq4E4H87a0q6kvRTb2K38bMMxrcbQqjwFjOUV1cuCMJwxf2Nx4U4fa/K/m8hO/Tjm+bYv6PS77PF60s2NunrND9jRWOSrz00WDi7iFUUx0t+retwtvMqQzOh5t5FYLL63GeBio2HCbi3d25hH+g8spIxIV11fnFlq7W1SAb4q8xtIOrnk9X3K6Igqo9lX62jZCroZG9Abz4R/M1+9bz1FdBnpPTPALwz3Y1QTY= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(23010399003)(1800799024)(82310400026)(36860700016)(11063799006)(56012099006)(261009223027099003)(261021121427099003)(261022075727099003)(261022113327099003)(261102123227099003)(22082099003)(18002099003)(6133799003)(10067099003)(13003099007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: SKKWECg23I3aFzrnbYeLIZLZSGiGVvughN5ugKnmnhThhtZKY3njeqjoSdOcDLhXQ9WAzvci9PyJs03T8D5T379boq2L5pquxUd01wc7X0HS/zbStIF6g+UFeC6p0DOc3DayyYA7jGK+0oD6LRsHJ1OVQmM9nmNIp+oKxTAThOBJ5/i/9nZClgKvZK5y6JIhg473/9D0czyX7OMZONP2Zh7x1qZbYD6VIBYtQefuSROxhVhBqZvo9f7GpzXpa5xSHdCnzwylY8k2X/3SsNA+cgtIjnyIsWNo1iw0uXbK/tWeHgynXhmS33qEO9xpzLopicrasfYoh0CmKzcZqHmj7765UCWLqESNr+QnbWZ9uXg7cwakI7A66uVVCqspC7Agaj9M3WUCt8SD8A4x3j8XA0H77AnwhNET5+OhhQGdUPnoTXwX2SYZ6R6VNBUIFP5x X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Nov 2026 19:28:06.0047 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: aac15d24-80ca-442d-9dd1-08df3d053f93 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CY5PEPF00000E75.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PPFDC28CEE69 From: Syed Saba Kareem Extend the ACP7.F SoundWire machine table with additional Cirrus Logic codec configurations: - CS42L43 jack + CS35L56 quad amp (L0+L1, L1) - CS42L45 jack + CS35L63 stereo/quad amp (L0+L1 combinations) - CS35L56 quad amp standalone (L1) - Standalone CS42L43 / CS42L43B / CS42L45 jack (L0) Add the corresponding endpoint, adr_device and link_adr descriptors for the CS42L43/CS42L45 jack codecs and the CS35L56/CS35L63 amplifiers, with speaker endpoints grouped for aggregated multi-amp playback. The CS42L45 entries reuse the CS42L43 endpoint array minus the speaker endpoint since CS42L45 has no internal speaker path. Reported-by: kernel test robot Closes: https://lore.kernel.org/oe-kbuild-all/202611071819.8CnKog4h-lkp@intel.com/ Signed-off-by: Syed Saba Kareem --- sound/soc/amd/acp/amd-acp7x-acpi-match.c | 434 +++++++++++++++++++++++ 1 file changed, 434 insertions(+) diff --git a/sound/soc/amd/acp/amd-acp7x-acpi-match.c b/sound/soc/amd/acp/amd-acp7x-acpi-match.c index bf11ceb7478b..217b11f9dfc3 100644 --- a/sound/soc/amd/acp/amd-acp7x-acpi-match.c +++ b/sound/soc/amd/acp/amd-acp7x-acpi-match.c @@ -16,6 +16,20 @@ static const struct snd_soc_acpi_endpoint single_endpoint = { .group_id = 0 }; +static const struct snd_soc_acpi_endpoint spk_l_endpoint = { + .num = 0, + .aggregated = 1, + .group_position = 0, + .group_id = 1 +}; + +static const struct snd_soc_acpi_endpoint spk_r_endpoint = { + .num = 0, + .aggregated = 1, + .group_position = 1, + .group_id = 1 +}; + static const struct snd_soc_acpi_endpoint jack_dmic_endpoints[] = { /* Jack Endpoint */ { @@ -148,6 +162,350 @@ static const struct snd_soc_acpi_link_adr acp7x_rt721_l0_rt1320_l3[] = { {} }; +static const struct snd_soc_acpi_endpoint spk_2_endpoint = { + .num = 0, + .aggregated = 1, + .group_position = 2, + .group_id = 1 +}; + +static const struct snd_soc_acpi_endpoint spk_3_endpoint = { + .num = 0, + .aggregated = 1, + .group_position = 3, + .group_id = 1 +}; + +static const struct snd_soc_acpi_endpoint cs42l43_endpoints[] = { + { /* Jack Playback Endpoint */ + .num = 0, + .aggregated = 0, + .group_position = 0, + .group_id = 0, + }, + { /* DMIC Capture Endpoint */ + .num = 1, + .aggregated = 0, + .group_position = 0, + .group_id = 0, + }, + { /* Jack Capture Endpoint */ + .num = 2, + .aggregated = 0, + .group_position = 0, + .group_id = 0, + }, + { /* Speaker Playback Endpoint */ + .num = 3, + .aggregated = 0, + .group_position = 0, + .group_id = 0, + }, +}; + +static const struct snd_soc_acpi_adr_device cs35l56x4_l1u3210_adr[] = { + { + .adr = 0x00013301FA355601ull, + .num_endpoints = 1, + .endpoints = &spk_l_endpoint, + .name_prefix = "AMP1" + }, + { + .adr = 0x00013201FA355601ull, + .num_endpoints = 1, + .endpoints = &spk_r_endpoint, + .name_prefix = "AMP2" + }, + { + .adr = 0x00013101FA355601ull, + .num_endpoints = 1, + .endpoints = &spk_2_endpoint, + .name_prefix = "AMP3" + }, + { + .adr = 0x00013001FA355601ull, + .num_endpoints = 1, + .endpoints = &spk_3_endpoint, + .name_prefix = "AMP4" + }, +}; + +static const struct snd_soc_acpi_adr_device cs35l63x2_l0u01_adr[] = { + { + .adr = 0x00003001FA356301ull, + .num_endpoints = 1, + .endpoints = &spk_l_endpoint, + .name_prefix = "AMP1" + }, + { + .adr = 0x00003101FA356301ull, + .num_endpoints = 1, + .endpoints = &spk_r_endpoint, + .name_prefix = "AMP2" + }, +}; + +static const struct snd_soc_acpi_adr_device cs35l63x2_l1u01_adr[] = { + { + .adr = 0x00013001FA356301ull, + .num_endpoints = 1, + .endpoints = &spk_l_endpoint, + .name_prefix = "AMP1" + }, + { + .adr = 0x00013101FA356301ull, + .num_endpoints = 1, + .endpoints = &spk_r_endpoint, + .name_prefix = "AMP2" + }, +}; + +static const struct snd_soc_acpi_adr_device cs35l63x2_l1u13_adr[] = { + { + .adr = 0x00013101FA356301ull, + .num_endpoints = 1, + .endpoints = &spk_l_endpoint, + .name_prefix = "AMP1" + }, + { + .adr = 0x00013301FA356301ull, + .num_endpoints = 1, + .endpoints = &spk_r_endpoint, + .name_prefix = "AMP2" + }, +}; + +static const struct snd_soc_acpi_adr_device cs35l63x4_l0u0246_adr[] = { + { + .adr = 0x00003001FA356301ull, + .num_endpoints = 1, + .endpoints = &spk_l_endpoint, + .name_prefix = "AMP1" + }, + { + .adr = 0x00003201FA356301ull, + .num_endpoints = 1, + .endpoints = &spk_r_endpoint, + .name_prefix = "AMP2" + }, + { + .adr = 0x00003401FA356301ull, + .num_endpoints = 1, + .endpoints = &spk_2_endpoint, + .name_prefix = "AMP3" + }, + { + .adr = 0x00003601FA356301ull, + .num_endpoints = 1, + .endpoints = &spk_3_endpoint, + .name_prefix = "AMP4" + }, +}; + +static const struct snd_soc_acpi_adr_device cs42l43_l0u0_adr[] = { + { + .adr = 0x00003001FA424301ull, + .num_endpoints = ARRAY_SIZE(cs42l43_endpoints), + .endpoints = cs42l43_endpoints, + .name_prefix = "cs42l43" + } +}; + +static const struct snd_soc_acpi_adr_device cs42l43_l0u1_adr[] = { + { + .adr = 0x00003101FA424301ull, + .num_endpoints = ARRAY_SIZE(cs42l43_endpoints), + .endpoints = cs42l43_endpoints, + .name_prefix = "cs42l43" + } +}; + +static const struct snd_soc_acpi_adr_device cs42l43b_l0u1_adr[] = { + { + .adr = 0x00003101FA2A3B01ull, + .num_endpoints = ARRAY_SIZE(cs42l43_endpoints), + .endpoints = cs42l43_endpoints, + .name_prefix = "cs42l43" + } +}; + +static const struct snd_soc_acpi_adr_device cs42l43_l1u0_cs35l56x4_l1u0123_adr[] = { + { + .adr = 0x00013001FA424301ull, + .num_endpoints = ARRAY_SIZE(cs42l43_endpoints), + .endpoints = cs42l43_endpoints, + .name_prefix = "cs42l43" + }, + { + .adr = 0x00013001FA355601ull, + .num_endpoints = 1, + .endpoints = &spk_l_endpoint, + .name_prefix = "AMP1" + }, + { + .adr = 0x00013101FA355601ull, + .num_endpoints = 1, + .endpoints = &spk_r_endpoint, + .name_prefix = "AMP2" + }, + { + .adr = 0x00013201FA355601ull, + .num_endpoints = 1, + .endpoints = &spk_2_endpoint, + .name_prefix = "AMP3" + }, + { + .adr = 0x00013301FA355601ull, + .num_endpoints = 1, + .endpoints = &spk_3_endpoint, + .name_prefix = "AMP4" + }, +}; + +static const struct snd_soc_acpi_adr_device cs42l45_l0u0_adr[] = { + { + .adr = 0x00003001FA424501ull, + /* Re-use endpoints, but cs42l45 has no speaker */ + .num_endpoints = ARRAY_SIZE(cs42l43_endpoints) - 1, + .endpoints = cs42l43_endpoints, + .name_prefix = "cs42l45" + } +}; + +static const struct snd_soc_acpi_adr_device cs42l45_l1u0_adr[] = { + { + .adr = 0x00013001FA424501ull, + /* Re-use endpoints, but cs42l45 has no speaker */ + .num_endpoints = ARRAY_SIZE(cs42l43_endpoints) - 1, + .endpoints = cs42l43_endpoints, + .name_prefix = "cs42l45" + } +}; + +static const struct snd_soc_acpi_link_adr acp7x_cs35l56x4_l1u3210[] = { + { + .mask = BIT(1), + .num_adr = ARRAY_SIZE(cs35l56x4_l1u3210_adr), + .adr_d = cs35l56x4_l1u3210_adr, + }, + {} +}; + +static const struct snd_soc_acpi_link_adr acp7x_cs42l43_l0u1[] = { + { + .mask = BIT(0), + .num_adr = ARRAY_SIZE(cs42l43_l0u1_adr), + .adr_d = cs42l43_l0u1_adr, + }, + {} +}; + +static const struct snd_soc_acpi_link_adr acp7x_cs42l43b_l0u1[] = { + { + .mask = BIT(0), + .num_adr = ARRAY_SIZE(cs42l43b_l0u1_adr), + .adr_d = cs42l43b_l0u1_adr, + }, + {} +}; + +static const struct snd_soc_acpi_link_adr acp7x_cs42l43_l0u0_cs35l56x4_l1u3210[] = { + { + .mask = BIT(0), + .num_adr = ARRAY_SIZE(cs42l43_l0u0_adr), + .adr_d = cs42l43_l0u0_adr, + }, + { + .mask = BIT(1), + .num_adr = ARRAY_SIZE(cs35l56x4_l1u3210_adr), + .adr_d = cs35l56x4_l1u3210_adr, + }, + {} +}; + +static const struct snd_soc_acpi_link_adr acp7x_cs42l43_l1u0_cs35l56x4_l1u0123[] = { + { + .mask = BIT(1), + .num_adr = ARRAY_SIZE(cs42l43_l1u0_cs35l56x4_l1u0123_adr), + .adr_d = cs42l43_l1u0_cs35l56x4_l1u0123_adr, + }, + {} +}; + +static const struct snd_soc_acpi_link_adr acp7x_cs42l45_l0u0[] = { + { + .mask = BIT(0), + .num_adr = ARRAY_SIZE(cs42l45_l0u0_adr), + .adr_d = cs42l45_l0u0_adr, + }, + {} +}; + +static const struct snd_soc_acpi_link_adr acp7x_cs42l45_l0u0_cs35l63x2_l1u01[] = { + { + .mask = BIT(0), + .num_adr = ARRAY_SIZE(cs42l45_l0u0_adr), + .adr_d = cs42l45_l0u0_adr, + }, + { + .mask = BIT(1), + .num_adr = ARRAY_SIZE(cs35l63x2_l1u01_adr), + .adr_d = cs35l63x2_l1u01_adr, + }, + {} +}; + +static const struct snd_soc_acpi_link_adr acp7x_cs42l45_l0u0_cs35l63x2_l1u13[] = { + { + .mask = BIT(0), + .num_adr = ARRAY_SIZE(cs42l45_l0u0_adr), + .adr_d = cs42l45_l0u0_adr, + }, + { + .mask = BIT(1), + .num_adr = ARRAY_SIZE(cs35l63x2_l1u13_adr), + .adr_d = cs35l63x2_l1u13_adr, + }, + {} +}; + +static const struct snd_soc_acpi_link_adr acp7x_cs42l45_l1u0[] = { + { + .mask = BIT(1), + .num_adr = ARRAY_SIZE(cs42l45_l1u0_adr), + .adr_d = cs42l45_l1u0_adr, + }, + {} +}; + +static const struct snd_soc_acpi_link_adr acp7x_cs42l45_l1u0_cs35l63x2_l0u01[] = { + { + .mask = BIT(1), + .num_adr = ARRAY_SIZE(cs42l45_l1u0_adr), + .adr_d = cs42l45_l1u0_adr, + }, + { + .mask = BIT(0), + .num_adr = ARRAY_SIZE(cs35l63x2_l0u01_adr), + .adr_d = cs35l63x2_l0u01_adr, + }, + {} +}; + +static const struct snd_soc_acpi_link_adr acp7x_cs42l45_l1u0_cs35l63x4_l0u0246[] = { + { + .mask = BIT(1), + .num_adr = ARRAY_SIZE(cs42l45_l1u0_adr), + .adr_d = cs42l45_l1u0_adr, + }, + { + .mask = BIT(0), + .num_adr = ARRAY_SIZE(cs35l63x4_l0u0246_adr), + .adr_d = cs35l63x4_l0u0246_adr, + }, + {} +}; + struct snd_soc_acpi_mach snd_soc_acpi_amd_acp7b_sof_sdw_machines[] = { { .link_mask = BIT(0) | BIT(3), @@ -188,6 +546,82 @@ struct snd_soc_acpi_mach snd_soc_acpi_amd_acp7f_sof_sdw_machines[] = { .drv_name = "amd_sof_sdw", .sof_tplg_filename = "sof-acp7f-rt722-l0.tplg", .fw_filename = "sof-acp7f.ri", + }, { + .link_mask = BIT(0) | BIT(1), + .links = acp7x_cs42l43_l0u0_cs35l56x4_l1u3210, + .drv_name = "amd_sof_sdw", + .sof_tplg_filename = "sof-acp7f-cs42l43-l0u0-cs35l56x4-l1u3210.tplg", + .fw_filename = "sof-acp7f.ri", + }, + { + .link_mask = BIT(0) | BIT(1), + .links = acp7x_cs42l45_l1u0_cs35l63x4_l0u0246, + .drv_name = "amd_sof_sdw", + .sof_tplg_filename = "sof-acp7f-cs42l45-l1u0-cs35l63x4-l0u0246.tplg", + .fw_filename = "sof-acp7f.ri", + }, + { + .link_mask = BIT(0) | BIT(1), + .links = acp7x_cs42l45_l0u0_cs35l63x2_l1u01, + .drv_name = "amd_sof_sdw", + .sof_tplg_filename = "sof-acp7f-cs42l45-l0u0-cs35l63x2-l1u01.tplg", + .fw_filename = "sof-acp7f.ri", + }, + { + .link_mask = BIT(0) | BIT(1), + .links = acp7x_cs42l45_l0u0_cs35l63x2_l1u13, + .drv_name = "amd_sof_sdw", + .sof_tplg_filename = "sof-acp7f-cs42l45-l0u0-cs35l63x2-l1u13.tplg", + .fw_filename = "sof-acp7f.ri", + }, + { + .link_mask = BIT(0) | BIT(1), + .links = acp7x_cs42l45_l1u0_cs35l63x2_l0u01, + .drv_name = "amd_sof_sdw", + .sof_tplg_filename = "sof-acp7f-cs42l45-l1u0-cs35l63x2-l0u01.tplg", + .fw_filename = "sof-acp7f.ri", + }, + { + .link_mask = BIT(1), + .links = acp7x_cs42l43_l1u0_cs35l56x4_l1u0123, + .drv_name = "amd_sof_sdw", + .sof_tplg_filename = "sof-acp7f-cs42l43-l1u0-cs35l56x4-l1u0123.tplg", + .fw_filename = "sof-acp7f.ri", + }, + { + .link_mask = BIT(1), + .links = acp7x_cs35l56x4_l1u3210, + .drv_name = "amd_sof_sdw", + .sof_tplg_filename = "sof-acp7f-cs35l56x4-l1u3210.tplg", + .fw_filename = "sof-acp7f.ri", + }, + { + .link_mask = BIT(0), + .links = acp7x_cs42l43_l0u1, + .drv_name = "amd_sof_sdw", + .sof_tplg_filename = "sof-acp7f-cs42l43-l0u1.tplg", + .fw_filename = "sof-acp7f.ri", + }, + { + .link_mask = BIT(0), + .links = acp7x_cs42l43b_l0u1, + .drv_name = "amd_sof_sdw", + .sof_tplg_filename = "sof-acp7f-cs42l43b-l0u1.tplg", + .fw_filename = "sof-acp7f.ri", + }, + { + .link_mask = BIT(0), + .links = acp7x_cs42l45_l0u0, + .drv_name = "amd_sof_sdw", + .sof_tplg_filename = "sof-acp7f-cs42l45-l0u0.tplg", + .fw_filename = "sof-acp7f.ri", + }, + { + .link_mask = BIT(1), + .links = acp7x_cs42l45_l1u0, + .drv_name = "amd_sof_sdw", + .sof_tplg_filename = "sof-acp7f-cs42l45-l1u0.tplg", + .fw_filename = "sof-acp7f.ri", }, {}, }; -- 2.43.0