From nobody Mon Jun 8 06:36:52 2026 Received: from DUZPR83CU001.outbound.protection.outlook.com (mail-northeuropeazon11012055.outbound.protection.outlook.com [52.101.66.55]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5C50F4418DB; Wed, 3 Jun 2026 09:51:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.66.55 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780480261; cv=fail; b=tpedJIX95M71adiczd7p48GuH6fI4iE/2I58YSsX/kBM0pJuCvFz73x0s9QJnycxIaTqEk5Q98v03bjXYpK7/kNHuBupYtmUWLyiqNokgsxBhIgu2sU4wPYuuBLoNp8k4BeJLA4462g6x3jGVnj9CqOfkN+Ld/8Ueeqp8QGossw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780480261; c=relaxed/simple; bh=2w6WjEViumcaN7zzFvRoj7sKp/KLAeBfJDGRJJk/SS0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Ze6Aw1T0vubI4/PFCasGSpiy7ueFbGk7zzUhvsz1q3kw2yP9P1Mc7d7zTIxwqabARREWxwo9sTTX6FbvZ7ctb6p/ganElNA6bFF9kq/plHM8mLaW9HnP3EB91zWlNBZRbW6pwxw3BRtrhHg0CJzmio+wpOwoP9EJXO4IzoLgaqA= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=gTh8kt5J; arc=fail smtp.client-ip=52.101.66.55 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="gTh8kt5J" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=sjd+QPNwUF74UobeJ62HrWPU1YNptSV1WB1vtGCpU2pyA8FAiWeLM48DtZVh5oHvlp5F0UFInJlCI+YF17E8+v8nWx6TtTW5+iC9K8pkb7/wBP0JUzaW1n7+ZislWJBdme4egdxgVphYa6r5I7U4XUFMDUkjGhokWtyeACeGqOujLeaW9iUUcuTWdL5oys05z5f30CLXHrDZj6KP3mMeIYACIzCcXp10Tr3j4tc2U4f0QvLTNWd/n88XxmGgvNps3rB7/B9QQieTJYrBFc6GNwNYpbdymLXFzw2BptmQRmkCTGr3jcP2SsBN8T0NfPlCcJ4eIx51f2W4ftjWPrqeEw== 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=jJRKfN7TjXaGrKoMAkE2PDIt8JUdB0TbRISXjd2cn5c=; b=MBPJBbWA/YeHbY7WFUVoUKne6eyNnol5tLtAx4QaDTADQzycMuleZZUE5Lp11hy/xZriXDlbN8Hc5GZxO/C9z3zXTaJmUIORDu0ZTss1YYgojIU5PGOfyCfh+wiYPwSCK7iVL60QQTmHKZL/9y7HZSmsJVLU6hZ6vLOtJJ3KlfqZ14Zmh7fF4tUsX3fxQHapreN2BivgDlUYjECjrF4Q38EoQswKj20brREG36V5oHWE+khc9Ah4bIbvd3jn/kmfp7OLKQiZsi9SNpFEGKbXGLhm8vrbA3KkeAq+NuHovkBNI+/tIp7+K7TiShdvi5KQNm7r75llEvpXGB80MFHX8w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jJRKfN7TjXaGrKoMAkE2PDIt8JUdB0TbRISXjd2cn5c=; b=gTh8kt5J2Eo/PUB2oM6kh4EWyOrrAQBnSkAUlU7dENRoocOmkycP9DUshEohF/IecqvD8DxEqxGI/DnffG0ngkTh3aBaoHTA/8FGkZmOEe0OBls5Vc3r6VU6Dr5/oUA057cyn4kX1Gz9z4fWruKxzIh2qiwIrDPAazUcXcyl9VOg53keTTQ6ef+/U1xyVgxCwnjeZISo7xXiuXprQkEARsMopyneJ9EiuQobZ01kRcmxv2N035j/4dhsscPDVVfoDgNxuMg2ROPVOsL4VcqkoH4PS3Ak3U32c7oiEkPVRpji2CtjUIdgXK5RJviQlHBUuXNKjsWFP3ETWnURQJxS7w== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GVXPR04MB10021.eurprd04.prod.outlook.com (2603:10a6:150:112::20) by AM9PR04MB8258.eurprd04.prod.outlook.com (2603:10a6:20b:3e2::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.7; Wed, 3 Jun 2026 09:50:57 +0000 Received: from GVXPR04MB10021.eurprd04.prod.outlook.com ([fe80::d247:853:3e16:1994]) by GVXPR04MB10021.eurprd04.prod.outlook.com ([fe80::d247:853:3e16:1994%5]) with mapi id 15.21.0092.006; Wed, 3 Jun 2026 09:50:57 +0000 From: chancel.liu@oss.nxp.com To: lgirdwood@gmail.com, broonie@kernel.org, perex@perex.cz, tiwai@suse.com, david.rhodes@cirrus.com, rf@opensource.cirrus.com, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-sound@vger.kernel.org, patches@opensource.cirrus.com Subject: [PATCH v2 1/2] ASoC: dt-bindings: cirrus,cs42xx8: Add SPI bus support Date: Wed, 3 Jun 2026 18:50:40 +0900 Message-ID: <20260603095041.3906558-2-chancel.liu@oss.nxp.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260603095041.3906558-1-chancel.liu@oss.nxp.com> References: <20260601080224.1410292-1-chancel.liu@oss.nxp.com> <20260603095041.3906558-1-chancel.liu@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SEWP216CA0151.KORP216.PROD.OUTLOOK.COM (2603:1096:101:2be::16) To GVXPR04MB10021.eurprd04.prod.outlook.com (2603:10a6:150:112::20) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GVXPR04MB10021:EE_|AM9PR04MB8258:EE_ X-MS-Office365-Filtering-Correlation-Id: 228a2947-0324-499e-7db8-08dec1559c5f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|7416014|1800799024|19092799006|18002099003|22082099003|4143699003|11063799006|56012099006|3023799007; X-Microsoft-Antispam-Message-Info: KhIhbNo5dGHHbG3hMKKsrBBq2ZHnsH9JByXlsiyJYBRxd7FECht27Ub7K4tyl7PNKM0YUUTIGbqMVQVjLJqh/ZwG8up0CtEDytjwTNcowYsRq6tjGU3L+RCOknWMfdCNPtdyffNNXDavLLevENfSCRTcGymjkgjU0guX/iPWvlK9ckFyuyjF3SHKo6z0KEX7miUT3SsWoKcnzv6Um4ZfQ71fE4cKBHkNQZplM41B9lInBJyvLE35l+5+t3oBtnfANM+Ds1fFxWGb1XL6gejJYv1oMWO+PpGda86ImiQ0DOr+AGbKwU/VK4zFvDdptvLy1S6om2t2SadOLTK5IIl4WwB7kATvh7a1ICsIaOutEdZDbRd5pX2nqZe2HljCSWa4WaM/fluCrkRWNeZQidtI6mZH8FmUO/pBRFbw/lntbCQwmo8BWrEtfGtmAVrSLemmUZ39DSPsi5xKBMVDg4oooVOnBYM6RhRqRddjqfjl7lhxAT21u95uys/hsRHPQKDsjOTqRbBI00CVN6jzrlfQslDUD9ECzdAEk1AM+FSb6rO/SskyOdPpo0imHFV+lulLTXo607ykOb9CtzayMNe90w3Xaag18LSngp/FG6ORVieYs/km8KcBGzXaH6ItOeoLxVBErDVhxyopu4CqFccIOjEAZemGS2AvbcUOD8W9MaEbmhOji8fmSvc9nD0LPEOa X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GVXPR04MB10021.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024)(19092799006)(18002099003)(22082099003)(4143699003)(11063799006)(56012099006)(3023799007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?VsFMrmrRWXigesFVnSgixCN8e86carC1Z7X3+TzHrgkuPBDXbC0yGioFCGCu?= =?us-ascii?Q?8IZShV3/ezEqy9UWDAv+dWG+otNUxauvpwmOsLhhg+PHi6WJJpyoFYIc/PWB?= =?us-ascii?Q?x6GfbGmWu2hZDRtJKOFcrKrDWVmnu8XzdUbN59RvKUkTLC38ZxpKzd0CFmJj?= =?us-ascii?Q?d8Znz8oFQ7g5nzsxod4RGnSzbQmdvSDLtRrI7AYgB0a2N8juoKtiy8z0g1Xd?= =?us-ascii?Q?zaGUCNSPZ6lopiUr9/hsqF1rIuTvv2BMiyuM+g/MyAuvsPA+GjsKAh6BQPqi?= =?us-ascii?Q?47IP1U0LWsjY1/O/+0F0WzQAOYvXtJtfhNPMzMDULIgfRy/pXNiAeqm3/cvi?= =?us-ascii?Q?0dpEn0ix80suymUZu1QD9HvwrWb6i/zFLtfaiqnKm4MF7iNSJCfqdFOt7vW6?= =?us-ascii?Q?yipxhHtrrODr006z/PP2tKqcRdGMjKHCDgNcPx0bug5RnFdYAKHIWAy4cdft?= =?us-ascii?Q?kXfkYiZ2P2CWs0l+dVRXd75WvXNe8VFZ7XbcBIsgZcbjDx37g3q064rUNkVH?= =?us-ascii?Q?ujTuSQ+924p/s/grvb30tTNgrEM3LXMz8wxexS6K0I2fkppVYt8FNg9tIYwS?= =?us-ascii?Q?LiTAdAPWcrw3UpZ4ENWOz/IIby1870L+4iBgcD5xwC1zIhthB/6uebhd00Cd?= =?us-ascii?Q?1t7sJkzJAR6Tmwz+SxM1GAQsbZVg8XkTw9DbQlx/At0fg4xmeOixg5whei+u?= =?us-ascii?Q?oYR+LwS/9W4sEVUW9A0ivygREcvuwuIF7646m8vTJB3M7Ir4YGhst9ina1br?= =?us-ascii?Q?/DR2mqAE3h60Iw9qgIi1gYq8U6h+GJfXHioQDvgmK6yChPMORCEpCI2uHF8E?= =?us-ascii?Q?fkEEIgTrn2DMEuEqOvJRlZUWHGdFe3y1OFfH9sov9uYXBN1gVGc3ZsPBAhSH?= =?us-ascii?Q?LkytawzdJYzfxQDJQGG0+9A21dbf7trwf1X3t+iWcLBcY+/wd2tAAswC3HpJ?= =?us-ascii?Q?iPpihj7ogW3PmZlzmgX2b86yXxZBXcHmQqFArBodRf6aD5vQWBIj5BMdTbdd?= =?us-ascii?Q?dE0I4C8jTICGN8bHRwLX45oKy3DWd9qVseQaYd4jqWii44IfpPZx4+ZG6ISm?= =?us-ascii?Q?O4VxN+Ou4bLMNA6PJoYod4qCSRtE6Wbf6RtsQpqz4UwUc2/7FgbqIIhpqEsW?= =?us-ascii?Q?D7wgxf0tuPzlrqPsk33ObRkIgOZkdDepWT+JLTjziLCU8vuS/u3J9OGk7WH1?= =?us-ascii?Q?X1hWNlBDvYHDUQYKOPfc/7LU2mG5+h7LNwfdtxF+uoZsw5Y+DRO7+KevhZxK?= =?us-ascii?Q?97OrFRdt1bh+fh1Ij+gsvUopZhVxZsDyET3YBY605/7XvtR6eTgaNtOZd1ng?= =?us-ascii?Q?yAExuy7jy4eSXxgR07nvuWN2Sw8AWC0sEeLDvmXd2/eOqrdnIDlWXav5/t9k?= =?us-ascii?Q?yOZVReCWov1ItRS2FWXGrvTCmQPGi1ueGM2Ii6NSn1/9CiJlh8GiaIC1iDzT?= =?us-ascii?Q?lo7dU/kA4QQLN9NHrjwKRdqTUYrSO18W4r9M/VitK45nduI43jUwm2eAgNOg?= =?us-ascii?Q?ZNyxR12JnuxOhx/3jQrS8TDKudROzAid3PyiEX3O9wK1uT6Py/tgSglFItdW?= =?us-ascii?Q?JpfBmA/6HFp6t5yTE81Sz+RhepEIaKmdVlEmDP9YftSV1EqpnvSnrajn5HXK?= =?us-ascii?Q?SvPf9+BW1PVmnzDNmV3R1jEU9Hz1otzEkrJQomIayvoKge+VV7xp8h4+/h8z?= =?us-ascii?Q?ycrZKEHIXTY83Iqgb1i7vf/s+ixRy/9Rb2KqKf4DJOl58XsBAcgCk01tWMG3?= =?us-ascii?Q?Bzr40NYPQHfVfJ6EPknwQ7WDVZ4ErQ2uT76q7QfAp8tKh+mpmQB1?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 228a2947-0324-499e-7db8-08dec1559c5f X-MS-Exchange-CrossTenant-AuthSource: GVXPR04MB10021.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jun 2026 09:50:57.5023 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 4STs6df/cGmaAa1IYELcwW7M3FCXUVDl7yfZPS3Us+4S5klp7T5k/U9YvdRIrtC1eWfx10D9qoA4hmDWr6BQy7QI49toRIUQ58f7j2gIyxCwSrzn5AF5NzrGsx9V7kwU X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8258 Content-Type: text/plain; charset="utf-8" From: Chancel Liu Codec CS42448/CS42888 supports multiple control interfaces. At present, only the I2C interface is implemented. Adding support for the SPI control interface, operating at up to 6MHz. Signed-off-by: Chancel Liu Reviewed-by: Charles Keepax --- .../bindings/sound/cirrus,cs42xx8.yaml | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/Documentation/devicetree/bindings/sound/cirrus,cs42xx8.yaml b/= Documentation/devicetree/bindings/sound/cirrus,cs42xx8.yaml index 7ae72bd901f4..a1ae548c4b7b 100644 --- a/Documentation/devicetree/bindings/sound/cirrus,cs42xx8.yaml +++ b/Documentation/devicetree/bindings/sound/cirrus,cs42xx8.yaml @@ -11,6 +11,7 @@ maintainers: =20 allOf: - $ref: dai-common.yaml# + - $ref: /schemas/spi/spi-peripheral-props.yaml# =20 properties: compatible: @@ -21,6 +22,9 @@ properties: reg: maxItems: 1 =20 + spi-max-frequency: + maximum: 6000000 + clocks: minItems: 1 maxItems: 2 @@ -86,3 +90,22 @@ examples: reset-gpios =3D <&gpio 1>; }; }; + + spi { + #address-cells =3D <1>; + #size-cells =3D <0>; + cs-gpios =3D <&gpio 8 0>; + + codec@0 { + compatible =3D "cirrus,cs42888"; + reg =3D <0>; + spi-max-frequency =3D <6000000>; + clocks =3D <&codec_mclk 0>; + clock-names =3D "mclk"; + VA-supply =3D <®_audio>; + VD-supply =3D <®_audio>; + VLS-supply =3D <®_audio>; + VLC-supply =3D <®_audio>; + reset-gpios =3D <&gpio 1>; + }; + }; --=20 2.50.1 From nobody Mon Jun 8 06:36:52 2026 Received: from AM0PR02CU008.outbound.protection.outlook.com (mail-westeuropeazon11013045.outbound.protection.outlook.com [52.101.72.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id ADC1B380FE5; Wed, 3 Jun 2026 09:51:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.72.45 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780480268; cv=fail; b=Rg3q9mv4C/KVMVeB2q/80GPVIv3hSGF4NvgrAw+AWShdWEqiNuqGzRusb86xj+gg+be3OKOBNrXWCklFQ0I6gROr2TAsOSZWHrhhW9mPeYeC8vEsrkj4/rI9kI+qYXncjB2lYZ0Es55YmNRfNQz9bUNhPzUwVnPtSvKEdsUzZRw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780480268; c=relaxed/simple; bh=QrxJpjBe6d+3hsVycFyxLJWQxZp/2z50xl8J9hBouRI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=WZDKkwpiVIArFZ14isaIsLTWVO7dUFUTdLAGb5afN88knmAL5hpWGwz6DNCmDLld9ZmJcflUdyHoaJ1TFNTUu3P4SWGehcRx52/bf8ET5C9051sn2bbz9FuEM4WwNNReUifZefNh1kHmP6LOJ29+xa6hr/XLvOw8SGbrlfglrqI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=RZ8PA3fu; arc=fail smtp.client-ip=52.101.72.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="RZ8PA3fu" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ljry7gBcZ+SkGr46Fo2VQg/0r73IT80bog8ZcVrnkT5p9BIIBrsr+rE4+UwvEHeDvM1ylox/68E8hYivJoyaeYDb2sY8osfupPi9JroYt1dl8D9MSGMIPPLmQPiAXBygoID9eTn1HAKbxsJt+tQXCfihpsyr5EwBtSaDtGfmKwnV6NqGYDcLxbXQD6KUKwkxDAG5PqRBnDHIVRJJjkxawfpQiUi1ulNBq/sCy1LpNlfgRV8xB3lY4AiqIhDVq/cD7kMPN8j//JPPZ66r/G61daPWBBBA08FTe/6mN/eTH0e0VM6Sv3Ambo/NG/eGr3Stf/lkD3k4HNXwcROLZZMo4A== 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=st625ikZ5wG6A4Bah4EuUfY7bgA0iX8UNgzwTY9vjHM=; b=co6sKPVBBrzFRm5FqVHcrj1+vXwd5cCN7HwOgWGv+XHK+L66I83eJTDWG1BJHXLGwM4KXzRmE65TX45QXwyjB907lc5IJRc+TpMXWWpIv0S56xztWIN6yrWjlP1mUpD8wPYtVRFU/skpa/FOK2FUE+l7yjmbZX8VF/iYyiJ9WF2Pg84Mr7gvikmvVvuWNgOtIwT/tnTPpAtTms+2Vj/Nis8bRyB4+PLJLsBek9z/wD3/8hihl1VAUBjKczVQFWmcEi94YQcfK8lYn/7+FwClNTzzePWUaZ3F5j42+9j/iJoKIDcjO7Z9k8wav6EIwMsscilUTFcR7GrnSegxxloQRQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=st625ikZ5wG6A4Bah4EuUfY7bgA0iX8UNgzwTY9vjHM=; b=RZ8PA3fup3A1rvwGU0FIqO9O3yQPq382V3+U+ztdS4V1uidKfxkr0hhPEpMn4NHzLdgrE98eU77ClRSsWyXCWYIbH/c1HbpWH3M5t6RrpLKCfSeyQZtJ3++c5tshqYSpbZ95hSdKrQfjkRswvoXQn0l63gLC6nxYujEjVCL7MxC38YazAg6ERwKcmnDqJRHMfAYMiXjhj9sksjgBm1Wv5ZS9Gj8MdDMEKgcasfRIpYZ8K2XPuKPwgwZ4OMypThZTOLyMU+kE0er4e1N7FKvyIvZRpblXBkHM9XP7X+jEk06WR+m53Zsg/wJjx9qbHC1o9JrtkyyKM5btWy6iA6w2Eg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GVXPR04MB10021.eurprd04.prod.outlook.com (2603:10a6:150:112::20) by AM9PR04MB8258.eurprd04.prod.outlook.com (2603:10a6:20b:3e2::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.7; Wed, 3 Jun 2026 09:51:04 +0000 Received: from GVXPR04MB10021.eurprd04.prod.outlook.com ([fe80::d247:853:3e16:1994]) by GVXPR04MB10021.eurprd04.prod.outlook.com ([fe80::d247:853:3e16:1994%5]) with mapi id 15.21.0092.006; Wed, 3 Jun 2026 09:51:03 +0000 From: chancel.liu@oss.nxp.com To: lgirdwood@gmail.com, broonie@kernel.org, perex@perex.cz, tiwai@suse.com, david.rhodes@cirrus.com, rf@opensource.cirrus.com, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-sound@vger.kernel.org, patches@opensource.cirrus.com Subject: [PATCH v2 2/2] ASoC: cs42xx8: Add SPI bus support for CS42448/CS42888 codec Date: Wed, 3 Jun 2026 18:50:41 +0900 Message-ID: <20260603095041.3906558-3-chancel.liu@oss.nxp.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260603095041.3906558-1-chancel.liu@oss.nxp.com> References: <20260601080224.1410292-1-chancel.liu@oss.nxp.com> <20260603095041.3906558-1-chancel.liu@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SE2P216CA0202.KORP216.PROD.OUTLOOK.COM (2603:1096:101:2c3::15) To GVXPR04MB10021.eurprd04.prod.outlook.com (2603:10a6:150:112::20) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GVXPR04MB10021:EE_|AM9PR04MB8258:EE_ X-MS-Office365-Filtering-Correlation-Id: f5b0ba0b-7114-4c13-b9cb-08dec155a02a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|7416014|1800799024|19092799006|18002099003|22082099003|4143699003|5023799004|11063799006|56012099006; X-Microsoft-Antispam-Message-Info: FCsCFEyHC0Du8VCdve74tkKJhnxW0UDSx54/MiGWKLY1qNXKEgPbQMESbeueW92dLjggWT3mCNshruKt/m5I5klVbxQhz6nzbadvRpg1JpzBF62fiq0q6JXCm6xSxxu5ErDaGlahHyKIOyl4ZJUbNF2ns1IxqsirzGL/clNJgt0AZLJgVS3G43QHhlj9cZKBgdBoozUzsiyNq95czlGWJLK6WI9o2egyGVaeLHN9XJ69d6Ts9mbpO9WyF8ZLrzx34J83j7sIbnb+RR66u4BwbkhOlRuGNzNnVvkmZKGp6kqSfQVmnBk7teD6PW1UWydjxVWc5Og0j58B5PB1Ol1fBxVSbRJtE4YMms+s6zkpHiU1itpnWHOnOdhKvTHRwVkdIMzUpv7HQ91v27uDulXqc/uCFCK3KTShGB9YVSkeNGoRZ9hm1qUt6+6YyMJl8T50iegXccPA0KbG013HGsDh/rTQBZkS6e8jx03CID3AMUUT1QqiCpnoZWJRWP7wSRqqFRAPEb098EwhtK5ku7YOfkvGsKpLaqOTm32/o6Gi2cbze4lw+jUxnYdC1Vb8nXoKXP0SpDc/LfYQpKEYxzDLfg8Mnn2uTn0k8vgU/Daz0v6X8ht6i273gKh6pSrFFxq8hJmMGF14deZjhvFoWY/NsZaEHk8KZcnjrOZ/q+wEuJ/hYBvGg1s8/0YBkyAphTfR X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GVXPR04MB10021.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024)(19092799006)(18002099003)(22082099003)(4143699003)(5023799004)(11063799006)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?vVg4QvStmBadVAt3cfyWZSGHcUdjc3Islqbfelgo6zayA9+zYdczxRdo7TOx?= =?us-ascii?Q?11+oDP8gb3npFqMslgtDo8/V0aiMXUWg5Lh/vPkHvV8WqdnMSgqQyRhN6sFf?= =?us-ascii?Q?Tm8533tLvf0VAkRg9LATSBn06kle0RoII2za2EMJDRar6aJQHp75hSFGsdDv?= =?us-ascii?Q?cxF85qA29A8SMBp+tX1nMOhnw5IZXCgVf+7gsSXJ7/bWM/y9CstRyb9UU6DY?= =?us-ascii?Q?v+8bivjkOmtMpdxJ5hTNet0+Z0JH+uxkf4hWVyzUR6TpkyQiu06yiLDAiWHY?= =?us-ascii?Q?rgWMhj9NhZ7VWrfAvqQQ85MW6gKDYWh8MkMBPsDNxbA12ZmHwwiVyUq0ukMH?= =?us-ascii?Q?EOFVzX9vv1/TDMbA5O8euIt2ssVxALgK6vTcifDGw1dII7LHi2xhKsbaqh1v?= =?us-ascii?Q?2Ibug/pLVMvx6GoVFHoSUC+n2YHgxRpsnNDyrkYvmBhvVdmj185P6iNXO00e?= =?us-ascii?Q?EDGgRqF3qh5NcFCJU+cKPkAN+kZJRt8hkGXycJG7AwTT3eitcr7bEtt2HBFu?= =?us-ascii?Q?1/NPagF+kTz/RnHD7zMugbFWHs81QjcbmhfBgVa/jTobqE1bmo0lGTrs8zqj?= =?us-ascii?Q?uPBri2MpZlCt0t/1sEv5oUztC5iWNGvdlPiPGsBOu4kIMEP3uN2pGTPBc9lf?= =?us-ascii?Q?lrLCWR4XrjXl04ZX6ogRFEtwv+s6mE7jDFMTqM7l+hyl8E0gJ02bgTuYkSmC?= =?us-ascii?Q?/LP+btPwzPVjFb+2TiYcO7JONL7EfSBCrUPPX26QgultsNZ3R486tEHp7N/6?= =?us-ascii?Q?G20QXcQdkQLrhHBar9HuYOb2zrayZOIFulzRkS1MIbSn0JsDAIhqtXuQxjis?= =?us-ascii?Q?rd9ZkrZ4OQUIEsieIgKCRbllg7foc7qbroyF3gwMljcWfzgMXieBDH61Gkzp?= =?us-ascii?Q?PJwjoWGCyNdAxbxBHLthhN7m6LrGJwlpcVtmrLjlgY0ljUMWE+x1/2MMnsc4?= =?us-ascii?Q?oxc9A9t+LqQ2JW5vA+IChhppz/EC1yW/r2rSAM53DiggqJFjJgh/cEZ2vZfM?= =?us-ascii?Q?3xcEbKu2RSwsyVPHZ5NwLN2mkTGAX4kreKIBu0LQcBRAohVZsDMAfjEH4y2W?= =?us-ascii?Q?1D7S3wFBwwmGNMSsGB89UK3a8CSC14m11CDrvc+LJBZPDHW/3MwfOY1s8jAr?= =?us-ascii?Q?pC8p+JNYwWd1Sy1nwBz5UjFh5RsTFlstUqv3hk+oE7Ssrsnk9KC0zW9eBfot?= =?us-ascii?Q?9K0QucP0og/RNO2HCqY+LmXXoPanVZa9l5i8QpWsPyDYv8L/zcZMWY5QJvm5?= =?us-ascii?Q?tvTygAp/e8pEoyh5WDYHAhzlicra2G/POcuNSXpTJIR37v3D9ARIx27FuR6Q?= =?us-ascii?Q?mslUbyxvCf7nDTB+D2EgujIhhAXSNJ84fxpUCfBY9vQDWdp3mAM1hY7zXxIs?= =?us-ascii?Q?iQhGlHYZnBG0ieI+98mRjm/dpEuo2sEiOYsb/yzd2hFUkNNSLNjSqKEC7bAf?= =?us-ascii?Q?orI6JnLeGvg30XkU0AEHWQGakMdGqHWJUvBEupQW5YVOPppbTBMEHCkJduJ2?= =?us-ascii?Q?pjDxjYEZfmm58YW3ErdvGyutKUd1MQ8LAxNPlYSGGhZBTQr10XCcX7SkvVxJ?= =?us-ascii?Q?M/giOKeQdxUgUhWVHNMIlSSarUFMS3QiRUaY8VBlYM0XGs1dH34zPqAaeq7R?= =?us-ascii?Q?zuDhkLuWtGOtuz+5xTGokeowhoneLhvuA13ejXd95WUGdgK60J4H5g0B2t4d?= =?us-ascii?Q?jRURKbpR7tn10nglk7A2fpOSRwOpcngn704Mb2sZymIX6c7yx4U2wrUT2M2F?= =?us-ascii?Q?ykOWOrp+QXq8wWlu49Bt7ZceFmBDPmrXELoPhnw9+5rVRg/Nu2e3?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: f5b0ba0b-7114-4c13-b9cb-08dec155a02a X-MS-Exchange-CrossTenant-AuthSource: GVXPR04MB10021.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jun 2026 09:51:03.8372 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: g1DvF8VwTKwafak+6ZlAtSYdtKPhcFM83LGt8Nb1RAvQXTKuENEvf1OTeGRt5jPUTbx4qyu/4E1M+F8olFfN5OZDXxAAv24sEY7/mv6erPZJdGS5I8j+bGv4tL7rwVDB X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8258 Content-Type: text/plain; charset="utf-8" From: Chancel Liu The existing cs42xx8 driver only supported I2C control interface. Add SPI bus support for the Cirrus Logic CS42448/CS42888 Audio CODEC. Signed-off-by: Chancel Liu Reviewed-by: Charles Keepax --- sound/soc/codecs/Kconfig | 7 +++ sound/soc/codecs/Makefile | 2 + sound/soc/codecs/cs42xx8-spi.c | 104 +++++++++++++++++++++++++++++++++ sound/soc/codecs/cs42xx8.c | 3 + 4 files changed, 116 insertions(+) create mode 100644 sound/soc/codecs/cs42xx8-spi.c diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig index a7c61f7c7f4c..ae36f663a5ef 100644 --- a/sound/soc/codecs/Kconfig +++ b/sound/soc/codecs/Kconfig @@ -93,6 +93,7 @@ config SND_SOC_ALL_CODECS imply SND_SOC_CS4271_I2C imply SND_SOC_CS4271_SPI imply SND_SOC_CS42XX8_I2C + imply SND_SOC_CS42XX8_SPI imply SND_SOC_CS43130 imply SND_SOC_CS4341 imply SND_SOC_CS4349 @@ -1077,6 +1078,12 @@ config SND_SOC_CS4271_SPI config SND_SOC_CS42XX8 tristate =20 +config SND_SOC_CS42XX8_SPI + tristate "Cirrus Logic CS42448/CS42888 CODEC (SPI)" + depends on SPI_MASTER + select SND_SOC_CS42XX8 + select REGMAP_SPI + config SND_SOC_CS42XX8_I2C tristate "Cirrus Logic CS42448/CS42888 CODEC (I2C)" depends on I2C diff --git a/sound/soc/codecs/Makefile b/sound/soc/codecs/Makefile index 73315d017c57..aa0396e5b575 100644 --- a/sound/soc/codecs/Makefile +++ b/sound/soc/codecs/Makefile @@ -103,6 +103,7 @@ snd-soc-cs4271-i2c-y :=3D cs4271-i2c.o snd-soc-cs4271-spi-y :=3D cs4271-spi.o snd-soc-cs42xx8-y :=3D cs42xx8.o snd-soc-cs42xx8-i2c-y :=3D cs42xx8-i2c.o +snd-soc-cs42xx8-spi-y :=3D cs42xx8-spi.o snd-soc-cs43130-y :=3D cs43130.o snd-soc-cs4341-y :=3D cs4341.o snd-soc-cs4349-y :=3D cs4349.o @@ -543,6 +544,7 @@ obj-$(CONFIG_SND_SOC_CS4271_I2C) +=3D snd-soc-cs4271-i2= c.o obj-$(CONFIG_SND_SOC_CS4271_SPI) +=3D snd-soc-cs4271-spi.o obj-$(CONFIG_SND_SOC_CS42XX8) +=3D snd-soc-cs42xx8.o obj-$(CONFIG_SND_SOC_CS42XX8_I2C) +=3D snd-soc-cs42xx8-i2c.o +obj-$(CONFIG_SND_SOC_CS42XX8_SPI) +=3D snd-soc-cs42xx8-spi.o obj-$(CONFIG_SND_SOC_CS43130) +=3D snd-soc-cs43130.o obj-$(CONFIG_SND_SOC_CS4341) +=3D snd-soc-cs4341.o obj-$(CONFIG_SND_SOC_CS4349) +=3D snd-soc-cs4349.o diff --git a/sound/soc/codecs/cs42xx8-spi.c b/sound/soc/codecs/cs42xx8-spi.c new file mode 100644 index 000000000000..b86fe2fe771e --- /dev/null +++ b/sound/soc/codecs/cs42xx8-spi.c @@ -0,0 +1,104 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Cirrus Logic CS42448/CS42888 Audio CODEC DAI SPI driver + * + * Copyright 2026 NXP + * + */ + +#include +#include +#include +#include +#include +#include + +#include "cs42xx8.h" + +/* + * CS42448/CS42888 SPI register access (from datasheet Figure 23): + * + * The SPI frame is 3 bytes: + * Byte 0: chip address [7:1] =3D 1001111, bit[0] =3D R/W (0=3Dwrite, 1= =3Dread) + * Write: 0x9E, Read: 0x9F + * Byte 1: MAP - Memory Address Pointer + * bit[7] =3D INCR (auto-increment for burst), bits[6:0] =3D add= ress + * Byte 2: data byte + * + * We configure reg_bits=3D16 so that regmap treats the address field as 2= bytes + * (big-endian). The chip address byte (0x9E/0x9F) is placed in the high b= yte + * via write_flag_mask / read_flag_mask, and the MAP register address occu= pies + * the low byte. Currently INCR (MAP bit[7]) is not set and use_single_rea= d/write + * are enabled. This produces the correct 3-byte on-wire frame without any + * custom bus implementation: + * + * write: [0x9E, MAP_addr, data] + * read: [0x9F, MAP_addr] -> [data] + */ + +static int cs42xx8_spi_probe(struct spi_device *spi) +{ + struct cs42xx8_driver_data *drvdata; + struct regmap_config config; + int ret; + + drvdata =3D (struct cs42xx8_driver_data *)spi_get_device_match_data(spi); + if (!drvdata) + return dev_err_probe(&spi->dev, -EINVAL, + "failed to find driver data\n"); + + config =3D cs42xx8_regmap_config; + /* + * reg_bits=3D16 makes regmap send a 2-byte address field (big-endian). + * write_flag_mask/read_flag_mask are OR'd into that address field: + */ + config.reg_bits =3D 16; + config.write_flag_mask =3D 0x9E; + config.read_flag_mask =3D 0x9F; + + ret =3D cs42xx8_probe(&spi->dev, + devm_regmap_init_spi(spi, &config), drvdata); + if (ret) + return ret; + + pm_runtime_enable(&spi->dev); + pm_request_idle(&spi->dev); + + return 0; +} + +static void cs42xx8_spi_remove(struct spi_device *spi) +{ + pm_runtime_disable(&spi->dev); +} + +static const struct of_device_id cs42xx8_of_match[] =3D { + { .compatible =3D "cirrus,cs42448", .data =3D &cs42448_data, }, + { .compatible =3D "cirrus,cs42888", .data =3D &cs42888_data, }, + { /* sentinel */ } +}; +MODULE_DEVICE_TABLE(of, cs42xx8_of_match); + +static const struct spi_device_id cs42xx8_spi_id[] =3D { + { .name =3D "cs42448", .driver_data =3D (kernel_ulong_t)&cs42448_data }, + { .name =3D "cs42888", .driver_data =3D (kernel_ulong_t)&cs42888_data }, + { } +}; +MODULE_DEVICE_TABLE(spi, cs42xx8_spi_id); + +static struct spi_driver cs42xx8_spi_driver =3D { + .driver =3D { + .name =3D "cs42xx8", + .pm =3D pm_ptr(&cs42xx8_pm), + .of_match_table =3D cs42xx8_of_match, + }, + .probe =3D cs42xx8_spi_probe, + .remove =3D cs42xx8_spi_remove, + .id_table =3D cs42xx8_spi_id, +}; + +module_spi_driver(cs42xx8_spi_driver); + +MODULE_DESCRIPTION("Cirrus Logic CS42448/CS42888 ALSA SoC Codec SPI Driver= "); +MODULE_AUTHOR("Chancel Liu "); +MODULE_LICENSE("GPL"); diff --git a/sound/soc/codecs/cs42xx8.c b/sound/soc/codecs/cs42xx8.c index 12fe9b3e2525..5b689549c74e 100644 --- a/sound/soc/codecs/cs42xx8.c +++ b/sound/soc/codecs/cs42xx8.c @@ -478,6 +478,9 @@ const struct regmap_config cs42xx8_regmap_config =3D { .volatile_reg =3D cs42xx8_volatile_register, .writeable_reg =3D cs42xx8_writeable_register, .cache_type =3D REGCACHE_MAPLE, + .reg_format_endian =3D REGMAP_ENDIAN_BIG, + .use_single_read =3D true, + .use_single_write =3D true, }; EXPORT_SYMBOL_GPL(cs42xx8_regmap_config); =20 --=20 2.50.1