From patchwork Tue Mar 18 02:06:33 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 880110 Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazon11010042.outbound.protection.outlook.com [52.101.228.42]) (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 0E1E129A2; Wed, 9 Apr 2025 01:05:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.228.42 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744160710; cv=fail; b=f7L5MMr+lT7Ir7c/xy99qPWM9bHgyztWjc6+7rwxdFhy45tmlYAYzyBkJOOUYG40HWVsmDCkQntJ8Rdz2HYvuRGEh7DyTyEvYuddcM+72TxBLE7a5M14FuPAvtBAJsamLONb6rNsz3/cbbRb5TDEjK6vDiR+1VlSXGb37EODrJw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744160710; c=relaxed/simple; bh=Bn4jwa7I/XaRIOQS5xWTCzj+N+yIlM9NSzFpkx8Xm5A=; h=Message-ID:To:From:Date:Subject:In-Reply-To:References: Content-Type:MIME-Version; b=A78e6Xgy9d+PlxB+drxxP/miI52EATJ6RaIwv/ah0LGfEb/7p7YAzioS8w2d9P7BjMyvV9C5G8tzUU3nfoO8abc+12DhyX+hm4CG1oKJOdKOneMHYcf1+ih1GqyCdZRvnkXoKhETIzuak2bAzIZx/pSBVaRbXxBPpvfyMl9wq+I= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=renesas.com; spf=pass smtp.mailfrom=renesas.com; dkim=pass (1024-bit key) header.d=renesas.com header.i=@renesas.com header.b=L7ZKMI+I; arc=fail smtp.client-ip=52.101.228.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=renesas.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=renesas.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=renesas.com header.i=@renesas.com header.b="L7ZKMI+I" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=C9KaZgUOj+nCyUPiXBfHsvksOidCRgtdR9Aj2W4YyNezcLHaB6a6VUukKMNOU5/yE6uz5O7sJlJaz5aO1NP+Ksra0Kf+dssFhHfBukCHamLbMWfHJouH8+Rv1ZdD+4uh5t9g8wp8CvghH7zVonk+fCo7DQ00IJ88xQkc3aO+NjnL1Mi63sz56wO/Abduz7I4N6GMCwvqWDC1iHOecJ3YGZtSUzNAiRuYR2umzGGBLBVRbIMygMXk65pBcqoNFZ+GMZ0iEIZ6FnUzymm13nt4Ce45sfIFLN+Gg815KMaLda40lcVpSLRqL0WZQLhz8qhDubpFjpMaMVcfOkoeX54rjg== 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=UXkUxxGiTuJZzg5CcoRAyGQzXYQmoV/DU2d/cJCg5eA=; b=I9QR5cuuRwC/9dweV8FoSHnBj3zmXuD6sLs7MjdGOiN8VsLeSpg5ZRAJUlwmtBY5RV3MbDJMyipSlhTdIsCP9ZM83T54S2xcAFhmqM3IrHAHBj3U1gX4GKuTqx/PgRfpPWlsIhbxt/1m+SQCVoX5i50dVOcidgicRYx8CgTlm+YsLzVdQR2uutdesXaIOpWzFEqgaKOAGgYMaa86T3uvkMZmxYufpDVhBushB3LrvalMifBoGzw8t/JqFtcOZ4IExnT0nBexqJ39CQiYomJltpjd/ryVDV0sITA+BJQ2EDWWN0ZyAJBDZ8fXe02oLlnRhfhUUJ7dij57dl7/deeXnQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=renesas.com; dmarc=pass action=none header.from=renesas.com; dkim=pass header.d=renesas.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=renesas.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=UXkUxxGiTuJZzg5CcoRAyGQzXYQmoV/DU2d/cJCg5eA=; b=L7ZKMI+I6nmbLZSGQ8S0H810bWEUTh7YwtsWlp0EjvKCMoF5o/dptjY9Zyl0WjHvuRpjvqO+qDd64I2J+1qP53iykEi15TpT6PYEoEI7NPfnwqAUbR7YDZi4BxguaO6efap20gF56GxMgD3ZGG5SIzZm73zseeLqShPHEYSr8IY= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=renesas.com; Received: from TYCPR01MB10914.jpnprd01.prod.outlook.com (2603:1096:400:3a9::11) by OS3PR01MB6437.jpnprd01.prod.outlook.com (2603:1096:604:100::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.34; Wed, 9 Apr 2025 01:05:01 +0000 Received: from TYCPR01MB10914.jpnprd01.prod.outlook.com ([fe80::c568:1028:2fd1:6e11]) by TYCPR01MB10914.jpnprd01.prod.outlook.com ([fe80::c568:1028:2fd1:6e11%5]) with mapi id 15.20.8606.033; Wed, 9 Apr 2025 01:05:01 +0000 Message-ID: <874iyyb0w2.wl-kuninori.morimoto.gx@renesas.com> To: Conor Dooley , Geert Uytterhoeven , Jaroslav Kysela , Krzysztof Kozlowski , Liam Girdwood , Mark Brown , Rob Herring , Takashi Iwai , devicetree@vger.kernel.org, linux-renesas-soc@vger.kernel.org, linux-sound@vger.kernel.org, linux-spi@vger.kernel.org From: Kuninori Morimoto Date: Tue, 18 Mar 2025 11:06:33 +0900 Subject: [PATCH 1/7] spi: renesas,sh-msiof: Living separately from MSIOF I2S Sound In-Reply-To: <875xjeb0wu.wl-kuninori.morimoto.gx@renesas.com> References: <875xjeb0wu.wl-kuninori.morimoto.gx@renesas.com> X-ClientProxiedBy: TYCP301CA0038.JPNP301.PROD.OUTLOOK.COM (2603:1096:400:380::13) To TYCPR01MB10914.jpnprd01.prod.outlook.com (2603:1096:400:3a9::11) Precedence: bulk X-Mailing-List: linux-spi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYCPR01MB10914:EE_|OS3PR01MB6437:EE_ X-MS-Office365-Filtering-Correlation-Id: b2546a94-454c-44fe-fe39-08dd77028e47 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|366016|1800799024|376014|7416014|52116014|921020|38350700014; X-Microsoft-Antispam-Message-Info: X1zl1Eh4HCB56VFpBVrtx97DpKxMjJr7NMT5NfyYxXZjW4HSdHbq1KyrbxeVjdQeghI2YN7sGnBQwYo8tPvvaB4kYnKjp/KfAu1YSAueWH1r+CXTEYgZbwyVKMEMnYK/Ce3c5E2StHtgRBNxO6f9NsnPuoTv1kMq7hTiQToHSwdTH3tBZ0xuNcLeb1CJPgpjxVRsstJm3hx8iK0OpMp9cHZIuOjm6TghQuepKR67Rfc6zR8PEUHfk6New4HrtXSUU2k3EWkYUGjvgYx4gmL/cxYPi6tBA3mSjNlZ20HK+aHWie5HAjBJjeOsCgsh4bnnm7OQbHq+P+IT3w01TMfaoqy86ngTTHujBssPhntT+wMMU9N69da4xOja02uS4S1o7tNoVxljA3+KpiipAHSqxPJW6bGr4/Igbh7HuwGZ7Bz65qvGJKMbJtCg3rL0tpjatG7xyY4ttdi1ozOvshJ9RbYOF/Cc03jHc0pCUMyyYcqgNrx9D2rQFsquMfeMwel0fsq6fxAk1yNT2UZJ02jICM4NKUI9YnF6GF3yIwviMXmCdU6I1j3raVEfA3kaXvOj3Basyi+EEbepaj1PqYzZo63AQg3hapVD4o68zMAc02pF72oclduJo4yzAUpBBTEj+7oiqaLLesskCsoqkNXlA/VRfqubs86YmjcWp4ctnUyRF4orEEFfenAkStvnr/uNFZSg5g0BvAeWlA8rvdQuOlCqVK1LrKJggLAVyY1WL1j5Ml0+DAsEOUicA+FqQef4Wzqk/wE8OdR/FSGhaNA5y9E+45aC7ZVqkLfsZuizTg56CEayHuzcGn94xHitBvezZMoRB/uoU91FDNRlq6OO4fUxdJzYlu10T5RdeijKt04vFdvaPtkPzRP2h1nyBafwmLvjCOwnduy3zxVxcXUpmwSlhKFEE5fQIKtQrUepNryBlZPOwmD995rDENATa8oQ7aP9z2ydFgIcgMMnQxwQl1OfsZ5IMqvXgyu1LCKFRFSQZ1ZNxr56HkWK5vRDYBtSxoONI6BuYQ/HCRQmjYZn2yO9gwRXdezD3DLZmye7q+D3RgeVmced9APUREtyaboIQzZFKBFHXM6kbe0vnS5oqm2Ww28DfjKaq2c4EOdNDneNEBd+dmaAQ3zwU3zUg4h/0Q0Q0KAMyGrOFuhNPedIrDJs4a6DWsnR/qqOaMa1ztS7udQKFI8zTsXWHiMq38NFANOMYPJHZRjKq25d6m2GgJsVSCDcdwx7MiGns+62BhUmJKVRt25H5alJsaHowtdkXFNBrRJe/BR99Ds9MfmNcFegJgjnMsAOhw/7IbE4Arxq/l6DNB4i/vu0fYsohj1nJa6w6qXfb0G7HX7ykI2/nWKTNGEWp4NKLWgqpnZD9kzTXnPZAvqi70XOi+Kg8zDfEqZZV3nqlF+43eQi9LTGX8xiYaCzDODcHSCOBWQTtNvXdgnv0TlRsWrjxqdQjxR7gKGCFXojDVv15+WxEN2Hmg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:TYCPR01MB10914.jpnprd01.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(1800799024)(376014)(7416014)(52116014)(921020)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 5rJsaIGk/k+MCtF69GV6HpgCZY58NSN+fp50bBhfnoVSvPf0mGWYdONcRXOgRScZQmc2IH5TkToNctYLauLLlJI9NCdx09CR1vQsE97Q/X01jMJZKXb7rNUcuAoh7Gl2OY4ofZFZ/cojSVfZUsc7O0RZpudP8XQn+bRk1XcUo39ROIyfgch+TM884z1zWRTObgROcil/LSq1v2W1DtgRCSz2Z4aldnC00xnlfdhQAYGtthMzegVEmaLaeNWImmaplwf076yb7HogsCDQnQ0Ijcbq6w/c3jurXhaM6KYMtLpKOOOE03pvJ0I8/Mm7l0hq++ZX+K+Zs0FNh0r7XtAKcAtFRjeT2kQV1qEItfRXf+2FsCAmKdB2UQeshSEifA9oNelV4Dr7x8PEz3L/q6fuBI8Ggoi7RhYXUnhkiPdugjxXs8hxm8njVs7fVzxkH+GT57fMZM0RXrBAzKNa0jiNHkdCUeQqmbDoYRaiM+k/pe8fLgQ8aQFNBWK8qOAiNjP1uxueiJtL83ofp4v0GoiYPf0A1JNMCT98gcTKJjT0uQNF1vfJa7/LnC+mOg+KvK8KdTL3dIVuEKQMuOAwooGydchlv2hMC6nd/0V6GQdWYtPgVXb/k9HhMNqV4Jl524Cwe/9wKrFXzHlV+kzZSfqbFVgaC6T20GmrjiQxGeYRtleRrH2nWGmvDFaHSV44935CmRT2PyrOWSleucKpm3jNxILONxJVZ+guUpgPw/srCpjakErj+wa5+Jw+ZhxdEq3M1TEg5l8vSdt/SislFK5su8OX4itHbtXsL8S1fSqPu40B6kXssqSgDC2e6T99wOHSGRhbEJSACEwBLiM7TVR6D/giTp9fjPryHoerkHjzvXa+AWlW038pvU3kGu9MU1EtWyqhJKxWixJ2fiSPRkm1DuiKhW7wH7EN1Wyjx6gU8uJQNIGqhzigZmLt33YzlUr+aM5mahiz0yIj75ujW5bi2sWm/n4QLTCTDe577to7ySumUPyI1qVBoZzQU5X1PdH7AMy3gWP/ujVaQQ2e+5EX0PWmev6UHo10A6H2wwJ34OCWmhjpeLyxEEOqi/f/6/v2oTdy1Mahsn8wGfnCrqrZQp69J23MkhsEb5nwV1L/UaJ4udUxvGrmh/bUp9VGoIcko+045rjAVM6xGepZTMOrXStIp5DtBPih5oDfUjqNHaA95aS6xQcX2eFqeqS9nyfiAUx09Jfi1O3DBeuNxLzn42ZFkI9srOYNG+849mrfjUv4p6UrTg64kC84Lc45QA/gfJwepvof3Uyk8UHM/X5pb+SmUKuexWOogxZxtDh6vyrlz3mUd2vlbkZqCFDBky5o02yfvehjw3lyiQaS0FE2A9iBGuvRDS2+zJXQbucuq4n9QBDBPnWtQ9KYQ0xfkPH6/uYR+AiWZiZwp3dcJxy1fUy8rL7nHqSvyc0zqSjX996C3Cx22dDj86VyFYdnAGpdfCQxItG3d9dWt0Blu3A65OYTTYLP5672tyC0HJltgjLP8RIurGlK4Ep7Ze9C+IYS0aSzjbOXjNpYOZdvK82BzWfBn+bxZEI0i77t7PWAear7cYi3JoX3x12TRIV5Kkig8M3rfgPrhnKn9csajIDQEMztTnVa4mnzBw2tb0UVp6Q= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: b2546a94-454c-44fe-fe39-08dd77028e47 X-MS-Exchange-CrossTenant-AuthSource: TYCPR01MB10914.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Apr 2025 01:05:01.8451 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ApzvNeKe+9hw0Y0+Inv2SrP9VBcJw8jFkYOCNFCTODLrpixI2jsULFLQ95ybZKchChYFihacxmS4GUbFNZ3SytfUH5hE0t+AJM8jqW/5EWQ7bg0qEFel7nyrzIW15mfR X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS3PR01MB6437 Renesas MSIOF (Clock-Synchronized Serial Interface with FIFO) can work as both SPI and I2S. MSIOF-I2S will use Audio Graph Card/Card2 driver which uses Of-Graph in DT. MSIOF-SPI/I2S are using same DT compatible properties. MSIOF-I2S uses Of-Graph for Audio-Graph-Card/Card2, MSIOF-SPI doesn't use Of-Graph. Ignore MSIOF-I2S case (= Of-Graph) in MSIOF-SPI Doc. Signed-off-by: Kuninori Morimoto --- .../devicetree/bindings/spi/renesas,sh-msiof.yaml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Documentation/devicetree/bindings/spi/renesas,sh-msiof.yaml b/Documentation/devicetree/bindings/spi/renesas,sh-msiof.yaml index 49649fc3f95a..c491ef5bc78c 100644 --- a/Documentation/devicetree/bindings/spi/renesas,sh-msiof.yaml +++ b/Documentation/devicetree/bindings/spi/renesas,sh-msiof.yaml @@ -9,6 +9,18 @@ title: Renesas MSIOF SPI controller maintainers: - Geert Uytterhoeven +# sharing with MSIOF I2S +# see +# ${LINUX}/Documentation/devicetree/bindings/sound/renesas,msiof.yaml +select: + properties: + compatible: + contains: + pattern: "^renesas,.*-msiof$" + port: false + required: + - compatible + allOf: - $ref: spi-controller.yaml# From patchwork Wed Apr 9 01:05:07 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 879300 Received: from TY3P286CU002.outbound.protection.outlook.com (mail-japaneastazon11010031.outbound.protection.outlook.com [52.101.229.31]) (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 37FF129A2; Wed, 9 Apr 2025 01:05:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.229.31 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744160715; cv=fail; b=V7XzBA0SUt3oGgB34tyWjkcqRlBFM+pCOdL4BRlOJ5loy5zKeJQRxR7pzngHaFLFkIejw6MGHhC4pHVDPiH53xeKqdE6ft/2ePEJS9z2UozJMcL3Er1iLVrvWSoZ84hnEsXNrUowjOi+DKYmrtl55tGWnWLWvOZNSdprHHpLjYQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744160715; c=relaxed/simple; bh=iQr3B+YG5XkquIXqLvgOAwNIpyZel3TnIpEAu1HbbKw=; h=Message-ID:To:From:Subject:In-Reply-To:References:Content-Type: Date:MIME-Version; b=UOPgMFk4qlFv7FVrQsIG7CGbFN0Cb1qAQ0Dh+Lj/1kbLzM6N7xObnNpxqA2ztFM7CFA/jmPANuC+9eoKT3UdUZIBJlBMQSDS9OUutt4SvWQVJUnJk3rA+oBxgI3sr0IcQ99pEjmQS92F2uOtPbw8FYUskxqmKo4mDVc/zDVQqMc= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=renesas.com; spf=pass smtp.mailfrom=renesas.com; dkim=pass (1024-bit key) header.d=renesas.com header.i=@renesas.com header.b=mNUDTVeQ; arc=fail smtp.client-ip=52.101.229.31 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=renesas.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=renesas.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=renesas.com header.i=@renesas.com header.b="mNUDTVeQ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=dQD1MCIZIfQD9wpN/DguE4ZYN7zmJ+qVz0/eI/td3y5/i4g5kMmKUkPOM00D9Ee8BtfT7bDlMbEBJvmc4DPxagv6E1QLUiafCxylfvWK10qYpDLzoEYAiLaHM2luYbVnM8TLJYLkqU/K5ewwnRkm2L3zytqu/7yqawmCwlQeRClGlVQhlYYqkepjnBclH8Cm2Ffk4moP/lTSo8ZlLC7KHWe03ipp0vngkqnIvFmhxyCC7gWX4A39TsyBtPbxxbaZIHrup0QDj2RaPt7xM5IqZtRYbmZB6DOitvAGRaXF9Flgwky3AM15OMNzWpY/k37NMR7ILYiaqw+5Cl/6ZyirVw== 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=80Qncy6mxBlq5SSHaIeVuUaOfEdSRZwWwqhHvXP9Ivc=; b=cxjObT0dtLJE/2n+WlM2qq7tfH3bgdlipPVsjlxSR35VWASdtn0wr40SKlmGBXlLUnEwZEpV93d0p/o3ieC39vYoFhWi7ld9qlg9tS7/yTXExlmTSdMQAKGIAb5FA0DsmiDJG6PQOZIo/O+EUr8a6lPX3iogpOt1jUI4QEeBGNe9pZ6Fx89pt28dvWY2QiQJbB/SxQE3gn7zjg4YPTlYERBM7adcYbKCa42YmyL8OL4c1c/64aGxDCtDdjBoZQBrPdNezZ9vRM5L7JQDVriD+fZVyW9yR/dk6jpVuXBoKzoaUPj4ww5lHtO/1Bsb8pnG4tjwpN+1KwhuLfi0FT2Zmw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=renesas.com; dmarc=pass action=none header.from=renesas.com; dkim=pass header.d=renesas.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=renesas.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=80Qncy6mxBlq5SSHaIeVuUaOfEdSRZwWwqhHvXP9Ivc=; b=mNUDTVeQ2vFNZLSgo6+Elx93US7bWaZSEoAazOwQ9XOao6WvnmlWIJ6jM85RNGOTfjN6ProxMU5cQBIGoqN6aKL7eRG2OBTU74cYgVcsjg0dLXtgn9PgpEEGMOdaxJb96dXEAeBlMktPyfFIlszBu7ZOuJ3sLCqT+PvQV4aWFgI= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=renesas.com; Received: from TYCPR01MB10914.jpnprd01.prod.outlook.com (2603:1096:400:3a9::11) by OS3PR01MB6437.jpnprd01.prod.outlook.com (2603:1096:604:100::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.34; Wed, 9 Apr 2025 01:05:07 +0000 Received: from TYCPR01MB10914.jpnprd01.prod.outlook.com ([fe80::c568:1028:2fd1:6e11]) by TYCPR01MB10914.jpnprd01.prod.outlook.com ([fe80::c568:1028:2fd1:6e11%5]) with mapi id 15.20.8606.033; Wed, 9 Apr 2025 01:05:07 +0000 Message-ID: <8734eib0vx.wl-kuninori.morimoto.gx@renesas.com> To: Conor Dooley , Geert Uytterhoeven , Jaroslav Kysela , Krzysztof Kozlowski , Liam Girdwood , Mark Brown , Rob Herring , Takashi Iwai , devicetree@vger.kernel.org, linux-renesas-soc@vger.kernel.org, linux-sound@vger.kernel.org, linux-spi@vger.kernel.org From: Kuninori Morimoto Subject: [PATCH 2/7] spi: sh-msiof: ignore driver probing if it was MSIOF Sound In-Reply-To: <875xjeb0wu.wl-kuninori.morimoto.gx@renesas.com> References: <875xjeb0wu.wl-kuninori.morimoto.gx@renesas.com> Date: Wed, 9 Apr 2025 01:05:07 +0000 X-ClientProxiedBy: TYAPR01CA0031.jpnprd01.prod.outlook.com (2603:1096:404:28::19) To TYCPR01MB10914.jpnprd01.prod.outlook.com (2603:1096:400:3a9::11) Precedence: bulk X-Mailing-List: linux-spi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYCPR01MB10914:EE_|OS3PR01MB6437:EE_ X-MS-Office365-Filtering-Correlation-Id: fe8cfa58-e030-41bd-2e3e-08dd7702918d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|366016|1800799024|376014|7416014|52116014|921020|38350700014; X-Microsoft-Antispam-Message-Info: ww0RsiNHWJW0TVGN+J43b6R0n2PpUvg63fpQTjNmTy1L3XCQNVEdifWa7uuuz9N6I1iLtLc3Hm7LHhJ4klUt96gUjJtwQpTLlU0X1m8BJF5N+i+cMtJDdpfNt/821+jHmvwDzYl9tdfgo/5A6cMu9dGCspbNubpBXV30tgXB8Juctyisn5oYDPriDmhSHbgTrlzCgDcuFRlw3UKOVtr8hWyV6sL6H7JkN9+PILFmmHNcLBSDEb+cCzbYU3UM4wEnPSdIueFbqfkZpY7qmuU5xRRCP2SC/t1q45LMSUVLGcBDx57TZ7+k8D7r5Tq/wT2BUgdx5vmIXgmw0o25eEebSk8b7V7wI3fiJua0/EnVACtK0oXw8gfCDRskRY9WbGM/AC5Somjr51f926pQWWaCWr9Z2kWeOnR0/ujbWdQ9ZmRhit68V6FD57gqnauJrI2QynAsrSknxbiWyoTo5qY/swBfozHgqo91Me253QMX4cKA56ENy23yTiGb01DlenqJcn1mGEb46OqsS24YtuhFjLi0UDJ8fWTp92rkmCoLkZz/fBldEJgBPShJ7ETWurimd4XqyMYb4R/Epfy4KFqy5QEvFqi9C+78FSgyUTgZDJSzQOYG1bgOub0saOl5X8XVY5wN6gWQeppKnSggd1p2S9eOlt10SbD71ugBadrw1gfDMcGE0QBPHaqpquz/zrVLJnhEfoAO89NTXhneroayz00ajQoqLFdhdrxst3LHMliMw6rwFQxHWM9UY0D6ve3ZlMLAj6RXIL8yU2R3wyARjSGruedswbKYnW6fhcoVspPRhDpaVdWr43BzVa1MW7UPlkKyNp1J/7k6UhVClIIioSWe3ec6n1eU0rssif1sZGj7A/ha3KMPwED1qDeelphA2y5lx0q83gNeG2wNAPOuwuQlnxOQzCjcqXheTrzit459QUmCQhWkmPtwNJxGb57qKxRRNUutK9R++ymCUMk+yyl/7hBEm+8Jb4KKj36PYMY2hh0hd+huIAaIOoaRkHqBkfLoB/3HZMat+je2JSnYkUVn3chUXW0roN7p69sli8Mo+HkC12ByXvrvoj98XzM8Rk7SPAj0ZCGj525QrZu1puoBw/AF2VnLAJ8elk/ZdBUxN3n420+fATPR/28JnARxRsFqwiIysAoGfcYAC18buuKq9yyYVOSEs0DBCoqpqOcgjyyLXt5P5T0ZawRBwzFTKm7kQpNJz8P/6AfWkzVhMxIuBr4l5s92+vFaPZVlRfpOcJsppeO20bLzo/TFPGaze8PPBoygZdw7x/Ss3VyJFX1Hfuko1vDNHBPwmEOCCZ7FrJYddA8RX5DphwcykCurkQeTX2ue7VPwOZr2pvt8Rr0eJiTF6Q59Ny/kyccv5KMcV79+j0sZZjikKOSoH6y8OH6liHmbDSXGIN51TEFJ6z5klOA8Pht2G2PrxwaIVTGrw27ba9TDHZyrGKBCt1JNHFcsSWmq+5P9cR94oqwLOg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:TYCPR01MB10914.jpnprd01.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(1800799024)(376014)(7416014)(52116014)(921020)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: HcW+3uz8dE74gDC526/zGRWrA1jl9MSsKP5PCHbuHjtTfJmisLoBJcRliPfLA88YqNLkyDFbG99VagNa8nj2CZn+/zz80gOToZlZnh1vsZg/qOaRq51A0haOunNZv6qpp3OdYMjlbOsnSWRprReGGtNPoqvf2qurXUs/3w4Zyit8ElbEOWFbXkS8N3OtYx9Jwefm8uF/vpf0i8DtAYvI6We4lE85cEHOPJtzOunGVhDk6ko03xDK3lZIvQtrJRtsnrd0WWZ8UoCGMP+BngM2EEA/M9Y7Drus9HpyJdZZdnJ1eS51BJPTxbZvYp8QIwQaoP1LEPWs+4pAu2Ck+iYQPsr3fsqb20iiEsKHwYK0r523f6uGBg+sSeEGAQMo8k+WceXFgR4iBuDPf8BOFSKJV1kCJvP8+n2wg8x1/NeXT7RjNXkkxo0u5NI2hPEpwSF3hjuiOiDqpMFOKy50Mu51exUVwmZFIAF5BjmO9cufYeevMHVKrlF81hYUbOYrrOAgpMqU7c1zX6hM1qd1Fdw1uxq1hVE2T3aL7D+dySBkl0hncBOt8FwO7PFdiu5121xVeYQz9CUb1rnDp3l9bEYX1PgicFbqpqWEIDdnzoPPlZJKvY2LZA/RSlh/2PGcol7BCJHtF04HzHZZjchYKln9Pt5CAEzF0dEuoPySwCHzkNJhKQIfnmNqn7z4HPETXyIlNuRJP1/cTjRCTUTfIfNIW76PGrdZMR/mWHBiK1+WNg0T1OhbhWfpwF7SWQIi2zBkY1DroGYLTCY4qTyG1Z9lJ/6MM748cKZUZHdLrYU39rby+8enRcA65OOZI5UQfF6uY/fkfM3Z7Q8jgFLLhnqi2Ggjeye8kWuzy+kv+C3iJly0kbZ3b793TwH42fxM/3auyaGFAHO1Yzn4mf4EqbdzJTgtCiCHP7UQKmndhLGyLoWe1MM5L81GhRF9Kkrfi0iZh3dK3pcV7ErMieeMEklzZinMlOJi4s8PymP5UFoZt0kFozVCKTl6U2Su7Qd/8uQ+Li/5ygDTERmH9ps0fue0b9W4gsQlYgJbacwNUQRPE+rFH+gib6QO0PGml6PawWldxXlqLskzd211HdrSZm3jRY4eswS+VFJnNDOZzNT5PP6Ws8EsyS2P5HKyR5niQR5me0egWoX/ubkOcO7fxMicGxPE5C79v1CrGpHHaf33CoODyxKc4TY4ZTVHVX67z/ZPlfveECmCgBwuNyQVhjr3w0/SpEYMFnCtRwl25IaO7WjwBVJ3CW2Lbs71T9Q9mjEKPqjHcIAdg4LzKtkYnibosfKyR+XwqPwF/VC3d3O8jsM2eLroYe2loBCH5DIZZ+6dHYj2X+VhWyXFiIW1E8bT1sH//KtZuuckQqyvgTNOb4Sef2IXGjx/Avkxn6gL0nfcG5R+zcPykeKLGQhRql8pjRD7LzidjjG8I8nUEp50BG2jgHVDmQ/8jmsRzCtgZ3eZlR7UAiteVPTRKHpobaBE/6T2UiDeqNJ1bwbcx4hu+Zb10qT7JcdRAqHDyVI6MiOcJeGsGUhVb8uj4OBscTFn3t8Tge6+st32vNkvKJdJUObLv0WnMRPRNht9reLnrmSqBjknLABgaB//dgwDtXw5WAEeLT89ilFboTiPnY7FeoI= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: fe8cfa58-e030-41bd-2e3e-08dd7702918d X-MS-Exchange-CrossTenant-AuthSource: TYCPR01MB10914.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Apr 2025 01:05:07.3237 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: kObv+eoRCKGCJvcjz9tcQQoSbAQaZkOiX+bshh6Yxl4zFYqlTHsN/1vgnser0SiAnbl3nO/w0YLq6tnxBjbl36OCVrSA7lO0us00cTzlrVPMOtj1nRhId/ZnYUpi1RK4 X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS3PR01MB6437 Renesas MSIOF (Clock-Synchronized Serial Interface with FIFO) can work as both SPI and I2S. MSIOF-I2S will use Audio Graph Card/Card2 driver which Of-Graph in DT. MSIOF-SPI/I2S are using same DT compatible properties. MSIOF-I2S uses Of-Graph for Audio-Graph-Card/Card2, MSIOF-SPI doesn't use Of-Graph. Check "port" node when driver probing Signed-off-by: Kuninori Morimoto Reviewed-by: Geert Uytterhoeven --- drivers/spi/spi-sh-msiof.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/spi/spi-sh-msiof.c b/drivers/spi/spi-sh-msiof.c index 8a98c313548e..51415131eff1 100644 --- a/drivers/spi/spi-sh-msiof.c +++ b/drivers/spi/spi-sh-msiof.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include @@ -1276,10 +1277,19 @@ static int sh_msiof_spi_probe(struct platform_device *pdev) const struct sh_msiof_chipdata *chipdata; struct sh_msiof_spi_info *info; struct sh_msiof_spi_priv *p; + struct device_node *port; unsigned long clksrc; int i; int ret; + /* Check whether MSIOF is used as I2S mode or SPI mode by checking "port" node */ + port = of_graph_get_next_port(pdev->dev.of_node, NULL); + if (port) { + /* It was MSIOF-I2S */ + of_node_put(port); + return -ENODEV; + } + chipdata = of_device_get_match_data(&pdev->dev); if (chipdata) { info = sh_msiof_spi_parse_dt(&pdev->dev); From patchwork Wed Apr 9 01:05:12 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 880109 Received: from TYVP286CU001.outbound.protection.outlook.com (mail-japaneastazon11011012.outbound.protection.outlook.com [52.101.125.12]) (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 4516F41760; Wed, 9 Apr 2025 01:05:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.125.12 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744160722; cv=fail; b=gWbyJ1roxWoBbd1PtvFjL677sI6hZono71cDGQcF10rrBGcLLpBAC2yncIWHwHBzDq36QYiui7Cw5tTuc0UvULNBgthiHSdurfDmbIMcaAVxnPjbzh/HrZ0pJqwbQvMalSpWC5+qA+TFKMZbfD18m/Y15zneNX02XxH9/tTKpQw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744160722; c=relaxed/simple; bh=5qHCs+kC1BP6WfYYckz1els1K38Ju97D8PqvI5k+rn4=; h=Message-ID:To:From:Subject:In-Reply-To:References:Content-Type: Date:MIME-Version; b=htJt162JRsJKYixM16nrY0MnSqrJSpWp8d2BVoPSmhQPTl/qg0RGvWIa/AJHoyLAdNal5Gak8y4ZyiRPWixorNp+7i42ZoJE3geWDexldHQ98Ppi34ChY8b/mE0LPRpi+8s5e4CGy6fA9ml8u23qYBt2DGehFlCJDIiMrYLo59s= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=renesas.com; spf=pass smtp.mailfrom=renesas.com; dkim=pass (1024-bit key) header.d=renesas.com header.i=@renesas.com header.b=Ntf69yEG; arc=fail smtp.client-ip=52.101.125.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=renesas.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=renesas.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=renesas.com header.i=@renesas.com header.b="Ntf69yEG" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=WRwIEJ/K7ghc8ZxKEpSP1nKiW9niwnQF0lpdopqMYRJe3Tu8IEncxOTGKmbca6uORQOKN+1DCV2F0rTGBkSEAwljIFBNbGdY8EiV4SgOWUyeB3gdYh1y3zlb9V2tBlZ+RfJ4/4NUcc0PTmaAqvmP6hEj455/eSeEyjsc1xZ2MJYBjdz71ojOB/ed5SPTbRFJHC0EqzYJAh4vubM2M8lzkhgACl0/bN+BS5U8yJcgOjOtJnXo3xw4/S7LYNA0JlRyrAReJZOKG1x60ymxCfwjOQ7lkXmkaFULA7S/+FfvXg1eXu+pTpVjeQa/3d9B8A9UwAD6M7Stdrc/NU+Oqx3+SA== 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=dkmnnvlSbeHRtnkmJw581bR7rWnD9X/S/sxUARVzG6A=; b=dA51T0b5Xke1GJ2IaAfoUEw+BSl5jTc35UMBSkBnyqidRZgYfKf1Y3RXu6emUbQRCQodGUOM1admAuuzbLVukXrfO4hPU7/aHfqkEwApeiveUdGQpRTyTIbpl4U1SxlS6YRtohKhtqp5rc5KSnuIGfpV8ZWxu/KGh/XtZNC4JbfGeUCnsdrjSPy1pocFU3TgEJmtpvSAA+F6HoI35/zi2s9EtXUmgx9ViaAQs7h28/wSDyY5YFZ1ARIRJFY/fYLy39BZLGbwes1sF5DEoB2bM8jyHYhnVqYjXmYcnl54mMffHQ13+Zhuf/IZxdrulvi5FD7mlEHUcbV0FVJbuyA9TQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=renesas.com; dmarc=pass action=none header.from=renesas.com; dkim=pass header.d=renesas.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=renesas.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dkmnnvlSbeHRtnkmJw581bR7rWnD9X/S/sxUARVzG6A=; b=Ntf69yEGzGtiz8leSHdRIBElUyre0ZPgcCDurouMsBMkobiUS2ZoSB+qqQKnXcR4CkvNlsaXoFurXhFomsNuwao8SWp0iffpqlRTwzYQcFEw2e+lH28c0aQHeFpcgidNEjCG00GzmRY5m4+69VXvNxWBmZMuaeEmUnG5XvaXO7o= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=renesas.com; Received: from TYCPR01MB10914.jpnprd01.prod.outlook.com (2603:1096:400:3a9::11) by TYVPR01MB10623.jpnprd01.prod.outlook.com (2603:1096:400:2ac::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.33; Wed, 9 Apr 2025 01:05:12 +0000 Received: from TYCPR01MB10914.jpnprd01.prod.outlook.com ([fe80::c568:1028:2fd1:6e11]) by TYCPR01MB10914.jpnprd01.prod.outlook.com ([fe80::c568:1028:2fd1:6e11%5]) with mapi id 15.20.8606.033; Wed, 9 Apr 2025 01:05:12 +0000 Message-ID: <871pu2b0vs.wl-kuninori.morimoto.gx@renesas.com> To: Conor Dooley , Geert Uytterhoeven , Jaroslav Kysela , Krzysztof Kozlowski , Liam Girdwood , Mark Brown , Rob Herring , Takashi Iwai , devicetree@vger.kernel.org, linux-renesas-soc@vger.kernel.org, linux-sound@vger.kernel.org, linux-spi@vger.kernel.org From: Kuninori Morimoto Subject: [PATCH 3/7] ASoC: rsnd: allow to use ADG only In-Reply-To: <875xjeb0wu.wl-kuninori.morimoto.gx@renesas.com> References: <875xjeb0wu.wl-kuninori.morimoto.gx@renesas.com> Date: Wed, 9 Apr 2025 01:05:12 +0000 X-ClientProxiedBy: TYAPR04CA0024.apcprd04.prod.outlook.com (2603:1096:404:15::36) To TYCPR01MB10914.jpnprd01.prod.outlook.com (2603:1096:400:3a9::11) Precedence: bulk X-Mailing-List: linux-spi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYCPR01MB10914:EE_|TYVPR01MB10623:EE_ X-MS-Office365-Filtering-Correlation-Id: c9b22e6d-d288-41f7-c453-08dd770294a2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|376014|52116014|7416014|366016|1800799024|921020|38350700014; X-Microsoft-Antispam-Message-Info: wFyty4FIIECQ0ZKruD7fhxJTQoBhd2hZHn0ieiR1DsvvDgJOmXsnSEf/H31cnaxxRm5fuhURzCQQtrU7DHFHxLRbchCwB62ED41gSu/mPE9tZD2ELCremxxOkQdEdsPvV3Em1wdwbioeXYevgBlT67AsI5ECUOb77T4RsZ/on0T4TzKJRjxurmZei/4IuKXHb2EIlOJECeHNjD8K+lfWszk0Esm99XXHDYLJC0rGdct5GQQlCnfzNSRM1uAul2cwLJfk1Lpmq/zw39/d4MzXM8hgJioFe3iAADYjnp6Oufi5ABUpGeYvVFCIVDw0T/jNEhRD7QYD4VxmrHEm1PaoqJLQrq8Ioye2PcgXiKfE1Hj1JPrG+7HI3xTRA2Ra9ZBWeh5s7YUnhfKcnUWYWyi8cUAXxWP/eASycAC3RqcUTSKZTaaTBmjW4a4CN8ZfAUQA2/Mo+0g06v2/K5/1To9+HwMJyUe1n6GwYI96hmuzHRNMdkMRmE/rng1uUuqOMojgUySHTQgrIM2paEMHPeFeIUfZdb2wlGLsq9JQXsH49UDWnzZ5TPlqBa/HZZoC+ZxgzweEAgKkKLb3FgaMJH1tNbNQpTBtCgpA9oy1NRaRPrYfGUT19n5NXIO0CG1gGmeoYZLkw+YB+x5P9bxmwFmpuFlGLoKLgruRNFBdxJ47ugLvSr1nmhiqTT9fxD0Y/GMG1Tk0nS+IseLg2A7QzQTY8EuZekXrwqbqR+Q8RQGf9ZniKUzk6ZJIHf8IgEnubqGb3ETXHqSIyUnIvTHXflQGriN1/tPoZRSm9ygbRzn9BwC0M6UlN0cuDfOTNTXk05SafBkVndfjAMItiIku4qQN1079Vt7RvnmqyAh5aJB49qwJEggziyMHehVrLjPrILozDA/OIC+CoW6aJVRd8Jwvr2/ldjBeMRtbWoYUv/udAuXy7aUxUuEkyi2ucC0V4ON0XwspxQ1dhjmWdQMAPCFhrsgH59i0jwzBdRx+4TjbwpvRkYXfstEGzjcSJEYOSHwHJsiOoZVS7VoODfJKMn7JIkdm0Z7HKE20cbDcIf/0dJklSADh/hsFnKfzy/VcAEFIizIvYDJZtgEkEhe5CZ8GzYmMBwih5PWExhHZTZIUxk0WTCxQ9Jne0gL6a9WzQIzAs4vPoe/HoP0EBSnzHAI6RUCHvTSpTcLAogODXf3GdeY9WmNWoFvaJVQOMyFQVRlj01ry4S7OFOFzE3HTEG7SVLMkpRTlj2bzAj8BOuKtk+i9qlJ5ycK7wly7qI6D+/MCJ3tIRnMW8WJD0N0GeMZUD7Wy7QYidxox8npE4cXbWUbpy69FRCLOsjEXxSXjCuz4MT7gVxIVaCr1/lAP/9HFBpuDVXeRmJORkUCo1Zu/V2Ib/vHz2kREvcg0/vA7lMW+uk0uEH5YHhCjM8gphXArKS6VV70sJnPnJSif7oDDlagwih+WVI+Wjhb5DnvQ7x9nbbCLHyE4gK85GJaM704p1rBqmhjyJ7Fbn5UFAB9K5ts= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:TYCPR01MB10914.jpnprd01.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(376014)(52116014)(7416014)(366016)(1800799024)(921020)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: x4SmcofAnd+AyZicomgxkhBF3lMjQK9WkTUCxX5lds1xlU5SPI3hXrsXb6zs20oIMQiDP723qUVIACsz3rUp3PqgHb5hcPMzhlErTujwngHjDyLzbdBzlFLqQ5HiLaraEtj6zfU9wGolMiG25bKbHjyZO2h7jxdKMuCzlzd/iMwqtCgRdxYeUJMhh+X/tuyBqRlNsf/gDQIfGy+mfLmTc8tiHa0ZECi1xcosVSvMsU+osGpVZZwRtdsY4hmwBM3qWZsjV7CprvjTJtwokpGQlNNnMI79fNtHLQelsggpu0/BQPjt+4TO7wgMP9hRzppWibdDDXktkwBglocPPSkeJtmMzu4BGPEh+2QLzW5xec+2kUHOM+yTD0/mryNIQcX9MFsWYaySLHAFNeEdPtHbgxBn4vcDWFASYlTru12slHHERxlvJKsc4p61xV7gaTZi1mwmmH2NVCED5oc25emf/qo3k3HifqMHV/0QyWLsBa9iHAEkto5C6R+d6n/umfif79na8svxRXt/eFAMycjP1jFiy1C4Vav0DmMBRSWe8SitVci4A6A2nfCG4XBrr0TZVOFd7FTKbIqceA1eCoPYv0wziXo/KeU55kP9ZeolKZwXR075bTh1Tsa87a6PLOZ9eDY6/eR/CCt6XpMGaJFzeOKkI2hIvG2NgF8zBjerwMh2M5ODbWZqX6BP8S7Y0CFFblYq6Q1pfTd7byKBomtXXpz/y+TNEjf1tPcMcgkgP4k6Dr35T4Tu7HfMZRuJETXrfXOXigJqDxouySgseZKzfkrknAMPvL7FQ6mwgN0QZLoYKGwyiZUqYwE4Y1QQT5xrUCrK/w81QFPI/lj6UOd5qLeqJq8eHQNZvj+hfNp2K+0jkH6N558FnYlAi25LLIOgODBYfP9Iocv9vnmn2QeASoQH/YhOA0JXaeWjm7C3afDllq5LLUvuPFVMRNfXe5ZW61srsiN59zHBnNmIoItFfGI/GtFwb4WjmcDF36+c5DYvCvEYFZYtKuKtIDDyFb1II2SDi5qdW5q1eqwlq8FgZNdgHB9YUluQdvq5+hl/FnOFuj21RS/eKdtENxi4X4wKQhyiu8QZvhaX+2J1r77mjIQVh4bzPqbXl68aYE6DGZJhiiMA0dskiOs+4YkyUJn2rK9bN838LaUOFbZ8184UcJqpKITshlsLuhdCceDt2qPw8GvEIcwROw0FI0UBZBMaNHX6w77wwjfJg6bu/XwFCScS+X4aCf7Q04ZZkSh0Tn8A0xY543W+HA5X2ZP0XDaTV8lhZQjH7FOu2n74AH/VyWoEQgndHHwQNXnQHxzFxELFDQlOXNtKgn1g+4vWq+lSmRO2CnRl6AQNBE311oHFk7oYT1YC+qwoFz1hvB9GDUE533bVX6NXfZUWNs+TAEmhvPznASHC2NME8P1wolC1VPPKzr4wRm2+LrwthilWD6YHsT0y6rC9WK1ws17LwGUKrarJVQMFbzcoJEfflfL6zsc4u5pAyqfCfVnGkAqMKhkkdg6tZNXm6tFHxXcublbyySXejzodpJKtqIZ/2KIc9N7mbA7BYBs7eDUt5heavUUqs7kFpcSbN+U9hGT156kDu3j+t43kfmTC1a3R0Dp+fQ== X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: c9b22e6d-d288-41f7-c453-08dd770294a2 X-MS-Exchange-CrossTenant-AuthSource: TYCPR01MB10914.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Apr 2025 01:05:12.4877 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: rNfhY/usGzyvdCeXNUkYqJWYQ60+1YZQt74AZKYXeHuRJ0eEAsufwNclnvouAVx50+yOVlmlWiXhOYwwnTK2i5GFWcacbK6raocwAn4bd83GP2qaB1gRgrFXlEE7JQL9 X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYVPR01MB10623 Audio clock generator (= ADG) can be used standalone, but current driver will be error in such use case. Makes it as not error. And, current driver registers it as fixed rate clock, but actual clkout was handled when SSI start works. Setup clkout setting when it was probed. Otherwise it can't be used ADG only. Because of this fixup, current rsnd_adg_get_clkout() function name will be strange. Rename get -> init. Signed-off-by: Kuninori Morimoto --- sound/soc/renesas/rcar/adg.c | 28 ++++++++++++++++------------ sound/soc/renesas/rcar/core.c | 7 ++++++- 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/sound/soc/renesas/rcar/adg.c b/sound/soc/renesas/rcar/adg.c index 191f212d338c..db980e4642b8 100644 --- a/sound/soc/renesas/rcar/adg.c +++ b/sound/soc/renesas/rcar/adg.c @@ -377,16 +377,9 @@ int rsnd_adg_ssi_clk_try_start(struct rsnd_mod *ssi_mod, unsigned int rate) int rsnd_adg_clk_control(struct rsnd_priv *priv, int enable) { struct rsnd_adg *adg = rsnd_priv_to_adg(priv); - struct rsnd_mod *adg_mod = rsnd_mod_get(adg); struct clk *clk; int ret = 0, i; - if (enable) { - rsnd_mod_bset(adg_mod, BRGCKR, 0x80770000, adg->ckr); - rsnd_mod_write(adg_mod, BRRA, adg->brga); - rsnd_mod_write(adg_mod, BRRB, adg->brgb); - } - for_each_rsnd_clkin(clk, adg, i) { if (enable) { ret = clk_prepare_enable(clk); @@ -504,13 +497,14 @@ static void rsnd_adg_unregister_clkout(struct rsnd_priv *priv) clk_unregister_fixed_rate(clk); } -static int rsnd_adg_get_clkout(struct rsnd_priv *priv) +static int rsnd_adg_init_clkout(struct rsnd_priv *priv) { struct rsnd_adg *adg = priv->adg; struct clk *clk; struct device *dev = rsnd_priv_to_dev(priv); struct device_node *np = dev->of_node; struct property *prop; + struct rsnd_mod *adg_mod = rsnd_mod_get(adg); u32 ckr, brgx, brga, brgb; u32 req_rate[ADG_HZ_SIZE] = {}; uint32_t count = 0; @@ -537,7 +531,7 @@ static int rsnd_adg_get_clkout(struct rsnd_priv *priv) */ prop = of_find_property(np, "clock-frequency", NULL); if (!prop) - goto rsnd_adg_get_clkout_end; + goto rsnd_adg_init_clkout_end; req_size = prop->length / sizeof(u32); if (req_size > ADG_HZ_SIZE) { @@ -633,7 +627,7 @@ static int rsnd_adg_get_clkout(struct rsnd_priv *priv) if (!(adg->brg_rate[ADG_HZ_48] && req_Hz[ADG_HZ_48]) && !(adg->brg_rate[ADG_HZ_441] && req_Hz[ADG_HZ_441])) - goto rsnd_adg_get_clkout_end; + goto rsnd_adg_init_clkout_end; if (approximate) dev_info(dev, "It uses CLK_I as approximate rate"); @@ -682,11 +676,21 @@ static int rsnd_adg_get_clkout(struct rsnd_priv *priv) &adg->onecell); } -rsnd_adg_get_clkout_end: +rsnd_adg_init_clkout_end: adg->ckr = ckr; adg->brga = brga; adg->brgb = brgb; + /* + * setup default clkout + */ + if (0 == (req_rate[0] % 8000)) + ckr = 0x80000000; /* use BRGB output */ + + rsnd_mod_bset(adg_mod, BRGCKR, 0x80770000, adg->ckr | ckr); + rsnd_mod_write(adg_mod, BRRA, adg->brga); + rsnd_mod_write(adg_mod, BRRB, adg->brgb); + return 0; err: @@ -764,7 +768,7 @@ int rsnd_adg_probe(struct rsnd_priv *priv) if (ret) return ret; - ret = rsnd_adg_get_clkout(priv); + ret = rsnd_adg_init_clkout(priv); if (ret) return ret; diff --git a/sound/soc/renesas/rcar/core.c b/sound/soc/renesas/rcar/core.c index 30afc942d381..4f4ed24cb361 100644 --- a/sound/soc/renesas/rcar/core.c +++ b/sound/soc/renesas/rcar/core.c @@ -1482,8 +1482,13 @@ static int rsnd_dai_probe(struct rsnd_priv *priv) int dai_i; nr = rsnd_dai_of_node(priv, &is_graph); + + /* + * There is a case that it is used only for ADG (Sound Clock). + * No DAI is not error + */ if (!nr) - return -EINVAL; + return 0; rdrv = devm_kcalloc(dev, nr, sizeof(*rdrv), GFP_KERNEL); rdai = devm_kcalloc(dev, nr, sizeof(*rdai), GFP_KERNEL); From patchwork Wed Apr 9 01:05:16 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 879299 Received: from TYVP286CU001.outbound.protection.outlook.com (mail-japaneastazon11011012.outbound.protection.outlook.com [52.101.125.12]) (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 6A02813AA3E; Wed, 9 Apr 2025 01:05:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.125.12 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744160724; cv=fail; b=CWCCfCpg88x9hbnRA5NyrYMnE4eVDxzZkZCgnMLhvFpLwDhVHAKRuH10BV2T1NiNv9IhwjeIASwixuv3X96jfQaAC7Qqcip0H3IadcaOjXeHUqQu18Z2Ilr6+jrXrBkR63fkEjFnvra0/yJq+0dgXbln0pWhGjFlOJQ2sH/Tuek= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744160724; c=relaxed/simple; bh=X/MCGX5ZcEMl5UC4fpZNVVfxDCD3uS3+nwaLDbtYJd4=; h=Message-ID:To:From:Subject:In-Reply-To:References:Content-Type: Date:MIME-Version; b=p4SM1pNiBRlrRAqe4CdX/4doRG6w90DR5VRMucngcpTUeyH2/luWFz+p5ER3DkmaTE56Pn1dvv7ZEBXtglHwpzOs+Ajgz9ZgfbU9M4gnvTsMsP/S4Yqr8NfD8jOCFf4ySzH6BY+B8LG5b6xLY9VVE7IFN1kwAgEqggw4ISuancA= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=renesas.com; spf=pass smtp.mailfrom=renesas.com; dkim=pass (1024-bit key) header.d=renesas.com header.i=@renesas.com header.b=BCVv+i1j; arc=fail smtp.client-ip=52.101.125.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=renesas.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=renesas.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=renesas.com header.i=@renesas.com header.b="BCVv+i1j" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=nuOXfImFdT5pJOtiEPVXCPNYsukkJPIWrFVWOwVWFMisNrWZJSnDRXCD+0TJxBEUgt/lU656Y8Ch+KqWy/ffdLTP3lD4jhkdCQtif1ssdszlIRqOOvI4lqu+YLVtDfizdrW+cIy5on+seRXe3AGHt3PhZKuF4OMufGp9K3ycYr4xyVnv3BaDHATqNyIbcarbtjyvtnZnjUGxCggcwcPByNmdAOMICwSuvYCH8nbYEAVrnrDRtsKxiPzGcW/348F/SUgF/KSdfadb/N58X/evPUXn83MLF726Usvd+jOXeraXsmyT5drLTW05KHu4hOQzcGax1XtYscDnerb+BXSEog== 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=SFM3jCzjElgHmGdWxlofjxtDE98tuz72axM5ApAUgag=; b=S4riTD17H623bJtuKtqPiUFWD+LR6proZbARlO6THZKDNu0tiETEJ92R+BIDWxoNioiZl9+/MLus/LBZqNIZDvnHYkRZfdDlxYFaOIA+C7ulOdT2gkYGwZPQxuZOlVqAeLH4JgCT19lnQVeEmObnEs0Eha0alqdzbHPfU+MH8lFnzlKG8EXF3Vt4j3WKRP6m3W+6AekfUbW0vekK7CTWLGDGI5drguTfrlBx6M83b3sEl4UGpD3ZWkY8fW7TlqB4xGnjqCUmlGhOc7eIfcb/oNrAK6gUfGcaY/27KKwWkd/kt42F46trkugqdDpxQcYB7uAnOAfbeErY2lehkG+fSw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=renesas.com; dmarc=pass action=none header.from=renesas.com; dkim=pass header.d=renesas.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=renesas.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=SFM3jCzjElgHmGdWxlofjxtDE98tuz72axM5ApAUgag=; b=BCVv+i1jONxQ0wRLv86CTstkTtkzJIxG/ERy55iFOLfJ5rnW3UqnDTH6x1jk7XtkU0QuvGg9DAXNMhFRU/VSU4nlNB0EWTuG00gdbvVjn7uVjZAmM3aAqsPWEofh6C5CCkvY1MACddp9mc4nSq5ApfBVS7//f/s7+gJFDeC4wH0= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=renesas.com; Received: from TYCPR01MB10914.jpnprd01.prod.outlook.com (2603:1096:400:3a9::11) by TYVPR01MB10623.jpnprd01.prod.outlook.com (2603:1096:400:2ac::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.33; Wed, 9 Apr 2025 01:05:17 +0000 Received: from TYCPR01MB10914.jpnprd01.prod.outlook.com ([fe80::c568:1028:2fd1:6e11]) by TYCPR01MB10914.jpnprd01.prod.outlook.com ([fe80::c568:1028:2fd1:6e11%5]) with mapi id 15.20.8606.033; Wed, 9 Apr 2025 01:05:17 +0000 Message-ID: <87zfgq9mb7.wl-kuninori.morimoto.gx@renesas.com> To: Conor Dooley , Geert Uytterhoeven , Jaroslav Kysela , Krzysztof Kozlowski , Liam Girdwood , Mark Brown , Rob Herring , Takashi Iwai , devicetree@vger.kernel.org, linux-renesas-soc@vger.kernel.org, linux-sound@vger.kernel.org, linux-spi@vger.kernel.org From: Kuninori Morimoto Subject: [PATCH 4/7] ASoC: rsnd: enable to use "adg" clock In-Reply-To: <875xjeb0wu.wl-kuninori.morimoto.gx@renesas.com> References: <875xjeb0wu.wl-kuninori.morimoto.gx@renesas.com> Date: Wed, 9 Apr 2025 01:05:16 +0000 X-ClientProxiedBy: TYAPR04CA0004.apcprd04.prod.outlook.com (2603:1096:404:15::16) To TYCPR01MB10914.jpnprd01.prod.outlook.com (2603:1096:400:3a9::11) Precedence: bulk X-Mailing-List: linux-spi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYCPR01MB10914:EE_|TYVPR01MB10623:EE_ X-MS-Office365-Filtering-Correlation-Id: b322345f-3f7f-4b33-122a-08dd7702974e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|376014|52116014|7416014|366016|1800799024|921020|38350700014; X-Microsoft-Antispam-Message-Info: 70aP5ZN2G1+KUh0wAJrs2gYezeKv/0ZRAixme771L7Zo++yziM5I2DJFBbYkZPi20u9QlhpMJM9HHBsiTlzw4UUHEYh5u2+I8sShFZvkg11erM6rQYzNGccmXyocDzphRl4fkkMNSE9aAVBg7uGXmzRxj6opMc2ZJEjuTeiUUAZmt4hFBsMfn/NnvoJRq6mCY3/qQQn4SxRtOVN/qxXKyTreHec1zWnLuOsbDX7DkKJ6A0tyPlSkzoAI8JeSKqRh4Tj5rq+mj49ylAeh47+FYl9Etvhm+2gEMm9pWzRvd83PTStE5UM+eEctYqnT/97BPmWc42D3Um0V+oRjDIFlkR9HYVsI4HFVsOSN1dnCcM+DpWq4/nmy0SmdFeQ9RU0eVrfuD++llWY0fXuoLV94eEULdY1PLvdUTpGkr1ibc7+YZiOMr/1fnNfQ9zJRbWdZ0EJgVhZ18eTnseM5Q0lgmlUzhepfKFvwSfn7GF158gMUSTPdOqXbnq8UnQMQDpl+o8VCPA0u6uD7/y79dkduwPqSxj+qFRDs/ZQ/vgEwgMLzGS3EyVfcAYciM2ZkCcJA5DJ3sesYcwohesmyK8hjcScIqgHjGHjybcJ3vBTZ5QP819xRfFZJO+cJNdqCCrJdKmoBjV57B0p9qxRhNS25nByvD74lcT1uIp8jiIN469irqvJFdX2WrhHfSjoQVSiT0/TuXPEUb5dDwaYaJi2eLnDEhthC/Amvt+PnslpIpSCn/EwP1fsUDKQxOV93ietH+pfSTX10PMWQgnlY3cRAaoNwztPebkWweMtumQaqr64qta42sq6lmzoX3BP8a7Pw6Ufl8bQQmcsjVvP07tJIXgJPZXh1SC0pt4TrIMmbcrYFfXxz9oWyJkiHWsI6zKJesKKgDRNGOvmFPcgtSCdsTQmFPMoKVuyDDxWwwwedVGh/Vch3fLWnKblnS78AfT9569Ti242rTHldEeKIlU65TmS6dzTLjQ2lKbGNJMR2djsL1w9vbmmQJiljdz0234sXgjE2eaxrekpEHj2DJJQLcPPVIu2qAf9SL6oIqSrXHm7aqpclOpu5xGnPmLX6vPsoO3RkiB+a7pu/ZUQYyiEYhJ42HduHl+6yHY/BlPSa0uXellAZJVZ3vnf/LAipElHxrsgjfnQyCYIobn8a+ezTfAW5ItBO7Bo8/tNi7Lknub+ofCuVCelVVs0s7nS692WdP2LSiAteIAqMHN09pIJ3b6nwf/IvCdimORYKbQhfASNvsWAVVP9C8Q8eD926Or5ETIOMImnNXbuHVwPzdRvO5AX1gH/ucQRBmQlbcEEjEAKSSPaHHrhIJsqzWE/7Ns660TLU8jW24DAu/C4BFvpjxy6/a+JuF3Gt29ngp03MENBiqV/ZDFVvyW24auXz+PZbqakDmT0B/90Br3/8v/isAsp+4Qr3THGZxplx077KtXk3eSzZwk9aSuKTjbDMUnlyxd/aBIDoACRHi5Nmc7o9/WV4a/rZV/r4+ZlV80XGqxo= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:TYCPR01MB10914.jpnprd01.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(376014)(52116014)(7416014)(366016)(1800799024)(921020)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 29yKNF1RzBG+xKDVjkkY1agvGa2kjlsLvsq73oRyE/8aJa2Tua8KJ3GtLuB0htDupuN8lM1dDJeRpTTy80AFRXKeOYJBfX8ezg18n0C7/OXlHX9hCMVPXNVyqOptthlK4D23oU2g8nj+HFJTbehIyA1eDMPZ/J4H9api6fYAnuOr08u7VUs0DZOPZXVs+ru1Y1z5jyertTRbA76N6JGjTRbs6no49g57OleaHi+Uz3c6+QR+7oesrZy1Dvab4FA2F7WPgzWEr1F0P/9vc5At7EciPRfOqQPDXJULpxdi1YxUr45TRkE83wvXR/BKufSxgISy5B6PQs742N0zlwbzU5FCp8MzIiN8GuVfs2DeJwnztTdk4iDjGKaYp8N9So078JfYk2xB9eiJUoUYjvxwjit5YYopDnXJqU4YvqCTGwvBRoBWeYScvEXCKOaTvNeZVTW/phrl9oRe6MAd9D759DRp8Z7HCAOuSN1K2zhg/OirRjsEnutDR8yAYhHS56d6bqwjgfSYKpuVqbx6zvkl5iEXtLN3CUnfSDGJZCzurX70mvROq91KRvi3aJgqh7kqiIagHoq1V03aXf3YyKzx6KsskMXQivSwIxVpFq4twGiD4BLMf4AgLW3uIr349phdmPHsO8U6IxXGxSvvJfQPUgBYa0bdLK4fwIQEZzHK42LDKLWMPlNi4ws6XGmOIis7eUds25jzwjXta40s83Cfpw5EL4IZeo4Iy3vv0d/PjRJQSRajvOXvLxBmCr9Z/h9n8h2INu4dwGB9LcOSAH37DG2kWxyVrZJchuN5M4nAJHee9x61OvVbkobzIAhfR6iFCzdAO81dYvAF74xiyxg7RPlunpG/WyQyQDIQx2r8dbAoFl1c8qmTy9cdiBUxsWJlVOh6sMZk2okhEQkbO2IfV0yDo83FGjlMEyqMPk77JUqkXHfYKR0boOEv6QOpyOqJ1H0xjKV9YzCYhmtv/+HwmbOB/KhXeWzH2D154ydWwl9ieUeT2crZ2XaebHL1nidCKHQST3cda65wRvbb1PLXiC9aiCLotOQS/iuku/zvCEWd9A4taEiecRnzvYs5l7dRRoXOMwIuwHgW3IDHc8R3Ail2YuLfS7GsSG7cZzT3tZBfWqRdW3hO+a/Z0aMwMJECorAmRuTBkaDcxlHlDT+9nq7eRnFIai6nDtwp0CpRM5bcM+/68NHy4nsNC57R//acRiJcCz8i6c+5q4TPu+jXEgjTXeYLJupQNWSwJosigwxjNk3NTTNI7QG7tZpBrFOQvwGU+IyaZrM87+Vs84/NEEfuM1PS5aR5ArQ+xtfLuTYnnoP2IN5BVm2jSC7qwJIoU3NGPusytUmdJNMFQlnZ7C7CBPj6OrnShEdOOdYRyf79gbE110Dnx0EC06w66myS/3KSOSFBPvEkCb13O0qSep4LQE8hoksv0coJ6vfPJCf3rCh8MX+Bhd5VHm/sE35bq6i5I813xJtkeslHxGhkHhNhaj63+EcQhTjsTpbaPLkfjwCjmYsx2dHJydz2hk5R+EF1t21ZzcO4VWA02w+mm/RyKztgTpHI9UWhD/h2aVZPQzAHmXIZf0d9AB0jCa3GO2cNv2gSaCBWRCA8NBVK4d/36AeSuujUQYlkAqHuKos= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: b322345f-3f7f-4b33-122a-08dd7702974e X-MS-Exchange-CrossTenant-AuthSource: TYCPR01MB10914.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Apr 2025 01:05:17.0003 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: umNw0NdMn9qvFFEo9DVvPmcRPasEr8RyLBTdQpY5/L8PiT1c/EFOOfTdZBpyyTJJaVDlF+02Km1CnSqwH+H2CTMrul3KefyiJCWQ8SVI/UbkLW0Y+Aws6w6n6jumGaQi X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYVPR01MB10623 ADG needs its MSTP to use it, and it was handled as "clk_i" before. R-Car Gen2/Gen3 are using it, but Gen4 doesn't have it. "clk_i" is not intuitive for ADG MSTP. Let's enable to use "adg" clock. It can keep compatible with R-Car Gen2/Gen3 and Gen4. Signed-off-by: Kuninori Morimoto --- sound/soc/renesas/rcar/adg.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/sound/soc/renesas/rcar/adg.c b/sound/soc/renesas/rcar/adg.c index db980e4642b8..5f132b95a85c 100644 --- a/sound/soc/renesas/rcar/adg.c +++ b/sound/soc/renesas/rcar/adg.c @@ -30,6 +30,7 @@ static struct rsnd_mod_ops adg_ops = { #define ADG_HZ_SIZE 2 struct rsnd_adg { + struct clk *adg; struct clk *clkin[CLKINMAX]; struct clk *clkout[CLKOUTMAX]; struct clk *null_clk; @@ -380,6 +381,13 @@ int rsnd_adg_clk_control(struct rsnd_priv *priv, int enable) struct clk *clk; int ret = 0, i; + /* enable adg */ + if (enable) { + ret = clk_prepare_enable(adg->adg); + if (ret < 0) + return ret; + } + for_each_rsnd_clkin(clk, adg, i) { if (enable) { ret = clk_prepare_enable(clk); @@ -408,6 +416,10 @@ int rsnd_adg_clk_control(struct rsnd_priv *priv, int enable) if (ret < 0) rsnd_adg_clk_disable(priv); + /* disable adg */ + if (!enable) + clk_disable_unprepare(adg->adg); + return ret; } @@ -464,6 +476,16 @@ static int rsnd_adg_get_clkin(struct rsnd_priv *priv) clkin_size = ARRAY_SIZE(clkin_name_gen4); } + /* + * get adg + * No "adg" is not error + */ + clk = devm_clk_get(dev, "adg"); + if (IS_ERR_OR_NULL(clk)) + clk = rsnd_adg_null_clk_get(priv); + adg->adg = clk; + + /* get clkin */ for (i = 0; i < clkin_size; i++) { clk = devm_clk_get(dev, clkin_name[i]); From patchwork Wed Apr 9 01:05:21 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 880108 Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazon11010010.outbound.protection.outlook.com [52.101.228.10]) (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 EEF8A29A2; Wed, 9 Apr 2025 01:05:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.228.10 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744160730; cv=fail; b=JyJaGHI8Vvwcv69TN01m1I6LAGLx+PB4k1yZEEcjsqrvf5UFCapzjero7E+zkBeIacONmhiRO/QhlNdA09ZALAFWX2ZlXGseJwh5VffJKHYxP6qRr2R3Wx3Cg6QlHd2POTx4cQaSJs969Sh3DxGdz2rPcnfLc+/qF35oRuO1H8o= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744160730; c=relaxed/simple; bh=5RHehGzBlZOmJgVFHyeR0x6Azh5hG4RDv/DT4b8Um0k=; h=Message-ID:To:From:Subject:In-Reply-To:References:Content-Type: Date:MIME-Version; b=YBG/z2SjpAQ+3cmOq9LGf1uaz71FytZsM2DFEtRXPpADcB6/uyggfCoies4+1AJHotQREuo6NOXm43mONhyhXYAIAlkvybxUfX4tfe8RqrH2iAqIXUphPe7G+u+E14KoBxii9bh132Ohvp4zf+XW5ya3dHaFPnI4nXQVcR26qP0= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=renesas.com; spf=pass smtp.mailfrom=renesas.com; dkim=pass (1024-bit key) header.d=renesas.com header.i=@renesas.com header.b=akE7RZUy; arc=fail smtp.client-ip=52.101.228.10 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=renesas.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=renesas.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=renesas.com header.i=@renesas.com header.b="akE7RZUy" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=OEv/98sJx+j7ascN86Sq+DsaS8uaZtx3krFsWNSrNdE4d4O8nDnRvFaGxkV+XR4h0/3/wga+KgXs0RLwOuOcjXaFewGi0glz6b4Ehnn2IOxc43bJ4DYJXZSJExP2bsqoAHsoX8Va0X8P9Xr0fRvtG+uKU8PQlZtomGo8xRCuk+NkU1k04OFy58Ow7EjZRBHYCo3SCIhXo8BN7RTva3HaaGAWgzbQWxt/SxBkVbUceXolC4AHEVMjJ1L3Jq1BfF7roepUQmtAVKpuV8us8o4epAaByr12Jt2xD5eIuUa6crCGm0GhZBomH5+U/A1S+OUHnPFFRwMjnFwGO/6ndtxi2w== 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=+DZ2Y2+fZJt8mKSKPNwSHhs4ctdr075701FHoEUUA9Y=; b=cJfy0FMGwywea21EEcTCeRXEzScoIK9KhmMuQyvVqGEHTs7kxc2dOLjTTKFsrDIW2IMhH9ddsnwAz9bQg3QoNCtTHuj9fWDpGQ4w6zPoxCHUO9fGja90AaP9vCDOANvKIfg8nqsjyAIdp45z0LXjF2lOLklRhm5t7QM3IFFPmrikTdoIQxw2gUEysARO6DdlDQpwwNZT1etSVKf1t2K+xDrcTaIdX5xV3UN4rcNpR66BNUcvIiqSY/BlYjqyrI5MPVYPb4K097zzj270nesVhxsb1l13PvZEBbSSoT1sCzePj4Sq7Xd5mFFebiO/yO8mfkYONOH8M5rSXhqN04EF+g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=renesas.com; dmarc=pass action=none header.from=renesas.com; dkim=pass header.d=renesas.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=renesas.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+DZ2Y2+fZJt8mKSKPNwSHhs4ctdr075701FHoEUUA9Y=; b=akE7RZUymjAKCpTO2E1AbE430hotD2Jbm8dpBwNkEWtrYxXvoamdvIHqykMZoPY5CFrJM7nFcrsRddRM+atraxdw6wq0y8T/DirTK8yx/yHDZVb6v1hZ12GWqIbd/9ylBUY18tJ0/V8956aIc7kbCtrinyyMxsNLy/E3SKPRPuw= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=renesas.com; Received: from TYCPR01MB10914.jpnprd01.prod.outlook.com (2603:1096:400:3a9::11) by TYVPR01MB10623.jpnprd01.prod.outlook.com (2603:1096:400:2ac::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.33; Wed, 9 Apr 2025 01:05:21 +0000 Received: from TYCPR01MB10914.jpnprd01.prod.outlook.com ([fe80::c568:1028:2fd1:6e11]) by TYCPR01MB10914.jpnprd01.prod.outlook.com ([fe80::c568:1028:2fd1:6e11%5]) with mapi id 15.20.8606.033; Wed, 9 Apr 2025 01:05:21 +0000 Message-ID: <87y0wa9mb2.wl-kuninori.morimoto.gx@renesas.com> To: Conor Dooley , Geert Uytterhoeven , Jaroslav Kysela , Krzysztof Kozlowski , Liam Girdwood , Mark Brown , Rob Herring , Takashi Iwai , devicetree@vger.kernel.org, linux-renesas-soc@vger.kernel.org, linux-sound@vger.kernel.org, linux-spi@vger.kernel.org From: Kuninori Morimoto Subject: [PATCH 5/7] ASoC: renesas: add MSIOF sound Documentation In-Reply-To: <875xjeb0wu.wl-kuninori.morimoto.gx@renesas.com> References: <875xjeb0wu.wl-kuninori.morimoto.gx@renesas.com> Date: Wed, 9 Apr 2025 01:05:21 +0000 X-ClientProxiedBy: TY2PR02CA0026.apcprd02.prod.outlook.com (2603:1096:404:a6::14) To TYCPR01MB10914.jpnprd01.prod.outlook.com (2603:1096:400:3a9::11) Precedence: bulk X-Mailing-List: linux-spi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYCPR01MB10914:EE_|TYVPR01MB10623:EE_ X-MS-Office365-Filtering-Correlation-Id: dcf67cec-8d89-46a4-7298-08dd77029a03 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|376014|52116014|7416014|366016|1800799024|921020|38350700014; X-Microsoft-Antispam-Message-Info: KLAiQxjFGFUtkxPDiFuRIMgYhL9tv5ZJAT1BzxWqlTGLKdirRmEXFIczDKgLAKF5au45TELDpX2eaCTx0iX5Iz9LJ35uP342RifMoL4xwOgx09XkYM5vmRLCjK/MUl7V4NhoilnaCHGhzFtF09xV5rsxEHNa2eX7x17lQcK3kVscKB5ikoGyHcdG8KsQqTn8ApImqTKK5OQYoZVGqRlUTznNFE6C2APnaVtD48wNft29nEzBnS8AxLAFj1gNnhPER1Zqifpi0R4O18BKmH8oMjZh1DO71feOf7Yj9z5VwFikuTmaNZKiD/oWYDlj3QX61Btniun7sCoPUTg22NjoxG3nWmrUJjo/SKdFcIGb1J57bFsVZap3g1uMANSuba3Jt3vM5prGAG28gwaJ4NT6Ay9mXrGVECKRlJY1oj+vFMpT/nwz/2V6I8QGkZij5+RtThGpRKEQAD4ZAVGZ4KZnblJDinClAvi30Jm9a26AKhMkRZXuJCVN4lHpPutn0NwZLtmYCZCQ4C1ULoPz4XqvoCZ7cOIzJF/rYstZHScel8VWnFvBU1F3sB4FGcWlDlvax/UhYCCJHt7XtFZ/W99mI3NDGUBTgGUNZ6vkiYDfOr0a89xlmH87MyitwJ5Xp8jUfNqEHUFvGqhCYkJlDSniIMO2JqHtjXhgfjwRSNA4mgbVtVQjrDdpGjRZYTNRf+AkhQMCTVr1GThDrf5R4gCtzNEtOU0+wdNQtQOVbzlsuJI1+ckzgX1tOySF9sWfS0GK7NCOiAhUS8taRBuYvjVcRh74Iun/a1Dle/X9o2JCbuELUQ6iEPeMsKoe+YgjmNUqt8oW8j6wLOY7tosrnRSyiQ/evKpW3ATJzCAiaZRbAxSijplNPISplGNMoYf0ArbrqbaE8qCXlUgQHjAzSOINt7xH8FnZcyqUGNgD1lpSArwm6qDLE9/oPQLHLWkvvCCxGE055/jemU8WiHFgo4RTA8FoxFXBqFzSgY5AMdOGdx5BfzQWDFY2JUAiM9XIBUyDeG3jUvoqLSzeDYxEm/nvBftPL78N8XXRp0wFJZ3BXbRVGxeh4Oc/PAOPpH6filCvfgf9TP2ahgI7H4yTdALeyf/TXQpi6yl6ittUWs1ttTqt5uNUjm1u+OU6J4Y2Yug4IGjPGRwyg2qw+7vd2BVfQ4IovrZNo5PAgiQWGJD68lET8q87qvOVlv0yXUpgX3G/H3YX+OjD+CEWJJ+CDhBPxW+3g/vDxsO43x/esiKgp6delJLaBYsCFQzoFErFhW1QBv3LxnTOgPg6qQ5fQa0Q4qCY1ccc0D4ZITfElYVc1QOykYkoLgbOaHso7SdT55OgflzmlRnIJWDVF70xN0cbtBe9OI0br9m5Iv7v4DMM0rZxTqeb7uY8DRZdZDjtHmQd8FN6fhKk466fDAqY9LpyNbxaIAfgMDuySiHyUZLNo9dLgClpjbqyiErKRg4McmI9 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:TYCPR01MB10914.jpnprd01.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(376014)(52116014)(7416014)(366016)(1800799024)(921020)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: yLKbqv1NzpJMjBQx4gzIjXTB1QoFbp2+Hz1BtoHS2rSBfj3raJSd5BO+D4MP9CdnEMF4uiLBh/bAGE9rQ0mo58vxvh4NZ0cfp51RyQ3I83pqlgjB7+i2HZMQiWU+7stkLctjI0dkMM7qBIk4GAJYi586E+lOM6Xej51a2Znug1xFOrni58/e0bdsQ/EzM1FRYrGGXejtpujWFDAj4kVeeYo1PdjeJdhHaxhAxiEYKpjX3eFBMTf3GppnySfOJzpHh11lj8DVoeUPmQrXb9lSGRFjsn9XrCl/3uVcr1dBYIAH4J/bxa/j84Xy0+iXUvKs2FCWfKg4ulZslSvx9dv2YHnvwWX3JZvPhHJmXJDymlLj5IiXGFd5ObBwEatwi0WJHjqHzCnuT1XNJAg2pQFHWqS38vEUS78SiilfqsMPlH5w74jlEdUaHJ+j1aReX7wCUU53VIIdDE5N5bBwTS7ekq37KSAPzAInNpLZP8KHeRFNAJCpSc5PDhuZVAih4ytEVIHeJGA8Gfw6JSyYjTL4n1snZ0suGWXQu0LS0exbWeW9IUjss7j4q14tsDOrCWbvzTIzle+Rf0zurtHyFGsFKl/YmXhycki659V1Z8uV1RWAUmt/q4f8WlofdJpSHwbu3JTsa5+k4XIekEF+mDhEDiINcJ9uIQZA597DpZv2Fg0WmOzxprZ/0hCs85SXoz8MiS0TIbrY6qDsZ2iRaMKGogBg0/lnTh7br/HjQPNv80lG0aXJsOXQdfvQVA6poJ3sjeCd8cBHK0PFAcEISaMyEwt3RDzwg1IuExb3tMVivOeGvMlKD1ChgXdnqcLXH0iW2rBt8JwGFJP9+9VQYahjzn7mBsGUv1fZfqLtrleNPCI7JhAnsAKqUha4kxx18+IYq0hoVdL7u5RRVM9Bi34oQdVYe9TsVSGuunW0qZkAvTyLnrk6gbPKkjIbDaHVhj+kdKi9deR39IRD+FzlelezT+96GvRxmB+5js9i0rA9OTztjPRJxYVwzuvZCaBUeBm0xzgv3rfOfx9ELAJ3A17CmBKTHU8gqBEgXKWoc7loklqFNN1wj8kYQNUt2wdPbm9Sp0bIEhpo17RBW49pW3qslJ0DAF63GVdienTMRPUtv0SDI+JxoQLlLjY8SjItj+ycMFf1NEIyuh+4LCKtekA5kI6xKtyrgfSgcYc1Sus3Htn0kSNGLJCm3g8XQyCj5zh9OOFD3TC68tKQceITKJovAHCKxZmlw2OP+BDdYIYtgeB2hktlg4vHKO08T41XtxYCyyqUBTM8KKAnYZq4+1rBolqs5tMNZZ5ygC08WO9oi16oYu4MwbaE9n4jMUb1djpNGeT6X1+FPqIXh70D0bgPweQgUMSSXIZ1cfHX3yH3l24V+zsRQh5f+C2uZXZ+p8L6wGLpYX44GrpQo0wa50BWQuuU837/JRHJrwZJJUHv71Kxw3EoIHF95WEq6mEvYkrCjwWZOj8gBhV4e6JglhPGIwVZltc9Z6hSwiGMIxYDZLDA16T4g89fbrfDlJGf44/HiXYjwKyloy0/kVfzj1Rp8ntxI4HOl4ubR6hwtTD+x5w0EEs7TwdhusIIZcz8nVxerEWa+0N+zt2uBcPn6YkjHf1SdPzn6NuvUIbJYJoQ/ng= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: dcf67cec-8d89-46a4-7298-08dd77029a03 X-MS-Exchange-CrossTenant-AuthSource: TYCPR01MB10914.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Apr 2025 01:05:21.5189 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: sFcfEpT0TJj0bL0aTP2jBaDfYgDxiiQ3jJRih16+7d/Zu0SVgEJnivzGQ50E5TbXUpXJHwj4Kpp9JfcbrZGPk0rVbuR2QWFKm9pTUEVbRE/lvv+S2f7DJaPqJzmvDUaf X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYVPR01MB10623 Renesas MSIOF (Clock-Synchronized Serial Interface with FIFO) can work as both SPI and I2S. MSIOF-I2S will use Audio Graph Card/Card2 driver which uses Of-Graph in DT. MSIOF-SPI/I2S are using same DT compatible properties. MSIOF-I2S uses Of-Graph for Audio-Graph-Card/Card2, MSIOF-SPI doesn't use Of-Graph. Adds MSIOF-I2S documentation for Sound. Signed-off-by: Kuninori Morimoto --- .../bindings/sound/renesas,msiof.yaml | 112 ++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 Documentation/devicetree/bindings/sound/renesas,msiof.yaml diff --git a/Documentation/devicetree/bindings/sound/renesas,msiof.yaml b/Documentation/devicetree/bindings/sound/renesas,msiof.yaml new file mode 100644 index 000000000000..5173e80698fb --- /dev/null +++ b/Documentation/devicetree/bindings/sound/renesas,msiof.yaml @@ -0,0 +1,112 @@ +# SPDX-License-Identifier: GPL-2.0 +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/sound/renesas,msiof.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Renesas MSIOF I2S controller + +maintainers: + - Kuninori Morimoto + +# sharing with MSIOF SPI +# see +# ${LINUX}/Documentation/devicetree/bindings/spi/renesas,sh-msiof.yaml +select: + properties: + compatible: + contains: + pattern: "renesas,.*-msiof" + required: + - compatible + - port + +properties: + compatible: + items: + - const: renesas,msiof-r8a779g0 # R-Car V4H + - const: renesas,rcar-gen4-msiof # generic R-Car Gen4 + + reg: + minItems: 1 + maxItems: 2 + oneOf: + - items: + - description: CPU and DMA engine registers + - items: + - description: CPU registers + - description: DMA engine registers + + interrupts: + maxItems: 1 + + clocks: + maxItems: 1 + + power-domains: + maxItems: 1 + + resets: + maxItems: 1 + + dmas: + minItems: 2 + maxItems: 4 + + dma-names: + minItems: 2 + maxItems: 4 + items: + enum: [ tx, rx ] + + port: + $ref: audio-graph-port.yaml#/definitions/port-base + unevaluatedProperties: false + patternProperties: + "^endpoint(@[0-9a-f]+)?": + $ref: audio-graph-port.yaml#/definitions/endpoint-base + +required: + - compatible + - reg + - interrupts + - clocks + - power-domains + - port + +unevaluatedProperties: false + +examples: + - | + #include + #include + #include + + dummy-codec { + compatible = "test-codec"; + + port { + codec_ep: endpoint { + remote-endpoint = <&msiof1_snd_ep>; + }; + }; + }; + + msiof1: serial@e6ea0000 { + compatible = "renesas,msiof-r8a779g0", + "renesas,rcar-gen4-msiof"; + reg = <0 0xe6ea0000 0 0x0064>; + interrupts = ; + clocks = <&cpg CPG_MOD 619>; + dmas = <&dmac0 0x43>, <&dmac0 0x42>, + <&dmac1 0x43>, <&dmac1 0x42>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&sysc R8A779G0_PD_ALWAYS_ON>; + resets = <&cpg 619>; + + port { + msiof1_snd_ep: endpoint { + remote-endpoint = <&codec_ep>; + }; + }; + }; From patchwork Wed Apr 9 01:05:25 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 879298 Received: from TY3P286CU002.outbound.protection.outlook.com (mail-japaneastazon11010025.outbound.protection.outlook.com [52.101.229.25]) (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 B611329A2; Wed, 9 Apr 2025 01:05:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.229.25 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744160736; cv=fail; b=k8uQKI9rJxaGO87u16f+y64jp6zGAPQtLyKkqW1etep6ONjX7Gnxk9rZrPMFRX2Eh3Rh5oaF+K7v4hb4jXBslDJwNDzb8MmPVaiq7V/XAdpDoqX+D2IpG1eMTZ/nXNL8oxMztqYkUFbWXy2/TNGbe/ObzDxns8m+gI5SX7AeuEQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744160736; c=relaxed/simple; bh=i3k5erMsPALrfq6yCbzUwdeKW38YrwAGjLB/bDDs4iw=; h=Message-ID:To:From:Subject:In-Reply-To:References:Content-Type: Date:MIME-Version; b=FBiQEhKZLyYJK4G5OWGXMrse5GkH6brTYU2NK2BHyYfomEx3wKKNJCVO8bniDO1jDRZnB+3H65jKZgxTiMJJjBmcGyMUMhuUx5mFdSfK/dFxMdNugsTM/WXcrPd8p2RgY2S52n7oDB7VcnanmOWHgoxaNGSO8Q28k4vkRFQ7+RI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=renesas.com; spf=pass smtp.mailfrom=renesas.com; dkim=pass (1024-bit key) header.d=renesas.com header.i=@renesas.com header.b=W27l3WsP; arc=fail smtp.client-ip=52.101.229.25 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=renesas.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=renesas.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=renesas.com header.i=@renesas.com header.b="W27l3WsP" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=eGJ6T29G828tZvojR6gT7C+g6Q82VMUsiENSjv/wNiV96qleB9Kl4wEH8VM5y2l1eBbEzZuCrMQHuCsD3IH122TXDZoXwvJ/y1zsIsKFS82qElshuiEbvvdjzMe3TO/s0xYoeiLZi0jgAZX05SgTB6+pxmWltMpdoUDeZ6SIfIhFDexiKT4gnc+aWiY2fmp1Nb2KGnaZ/vUCJwT/8IVlbJwlcygEVfdWw+ruTgtgXte7JkyAsDFkgFsjap8JcHG4BFdgpgh2UTRWB61W4qMHRxVLYJMWVEv9hBD+ypv5HfMoy/dkETm2eKdHGe+CJC9FY58mQj/EyAA13yt2vLAegw== 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=7LYPYYEz3FIN8rNA2YThaZKmULZY2jJqVl92kTBl9c0=; b=u4E4t61yJE1xhigE24Lgw7wQqh3d9coOsj0hkysJVLHMLGStEeWMajWqk4QytcbHrAv/TeK+AazN+01OZgvIJvPcnTJ0l7+O9PcVwPdMG6B6w2S7YdNgbpnI834i2EXhXISnuEdlg4zO4y5FsbM9JVgEJoviqGy7vRcFVTQ9WqvunwXp+guE7U28iRf0HVr53EaJ0TVGCoM2/YC3SlbxvxjPXVMYUD18oaxMApVqt+fvWTPtfJWfSWQFKBojfxQdtoEh+g/UsqVNVhEPPSpdtjGSzuguxIkW76mwLJdx/QfavF2OjGvKS6rUuZUlZSWXcSeFK5fnNs2wBBz7/ZkVWw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=renesas.com; dmarc=pass action=none header.from=renesas.com; dkim=pass header.d=renesas.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=renesas.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7LYPYYEz3FIN8rNA2YThaZKmULZY2jJqVl92kTBl9c0=; b=W27l3WsPoEyahvT/HvxP4W1SVJDEnblr0yv6HdencOGeA+CyzY+hM2ZgYRN8Ez3NG7hGQafbcUioU3BOdltI57QH4J7/ofBsC/hzZO65X6jQNyR6UKTJO6VUQgA8HWjKbHMMCteVoZk9lLfHk55kUv2u86aO5OXIuHDiH1yJJ3I= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=renesas.com; Received: from TYCPR01MB10914.jpnprd01.prod.outlook.com (2603:1096:400:3a9::11) by OS7PR01MB14942.jpnprd01.prod.outlook.com (2603:1096:604:395::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.27; Wed, 9 Apr 2025 01:05:26 +0000 Received: from TYCPR01MB10914.jpnprd01.prod.outlook.com ([fe80::c568:1028:2fd1:6e11]) by TYCPR01MB10914.jpnprd01.prod.outlook.com ([fe80::c568:1028:2fd1:6e11%5]) with mapi id 15.20.8606.033; Wed, 9 Apr 2025 01:05:26 +0000 Message-ID: <87wmbu9may.wl-kuninori.morimoto.gx@renesas.com> To: Conor Dooley , Geert Uytterhoeven , Jaroslav Kysela , Krzysztof Kozlowski , Liam Girdwood , Mark Brown , Rob Herring , Takashi Iwai , devicetree@vger.kernel.org, linux-renesas-soc@vger.kernel.org, linux-sound@vger.kernel.org, linux-spi@vger.kernel.org From: Kuninori Morimoto Subject: [PATCH 6/7] ASoC: renesas: add MSIOF sound support In-Reply-To: <875xjeb0wu.wl-kuninori.morimoto.gx@renesas.com> References: <875xjeb0wu.wl-kuninori.morimoto.gx@renesas.com> Date: Wed, 9 Apr 2025 01:05:25 +0000 X-ClientProxiedBy: TY2PR02CA0025.apcprd02.prod.outlook.com (2603:1096:404:a6::13) To TYCPR01MB10914.jpnprd01.prod.outlook.com (2603:1096:400:3a9::11) Precedence: bulk X-Mailing-List: linux-spi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYCPR01MB10914:EE_|OS7PR01MB14942:EE_ X-MS-Office365-Filtering-Correlation-Id: c020e015-8512-4f60-45f6-08dd77029cca X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|7416014|52116014|376014|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: mmu2iuMKCFFQgi9GRh4TQkSLeYn6EVWcQrEab1mPLfAbIJDR0Lle/4C5l4gwK8SGMMk3T5kyqlObHoj8xhIm1Bgw+8/f7DjSF4My/zKTwXo2swKtyOWmvmb1mDiYfVu0j4AUyGb+f5wKDVVK0LROgEJpJEW08rkrkoLNsAPuCaBGCr1EuvZCEPJdY0xS2ui71iRnIQA2QNUD4u9M/i0jya94Oqar4DcjIOft4hQfl5DBen/Cqr1aq6Uwb3pJtUbsV7AACWjwzalVnUPC7MDm5wrz241/fnyAfkOdeBX2NsEnR4YGyaT6anu/1xKC60l4u9vhSZV6xvC/521/BV1WFGaZq6w6OKmlNWq/auv7XPFTP9LYaQE2st5YZEV5ZcFABpEjrEOPwxKMJo4KIy1oklM9hM35WEGwRxRcXqsrmnxWjHhOcNqOFeEa/VcHAhF/yI1y3x0LTPvYLPiGGkUQgc0czbRdsNB1SODQXyn2qBctD2mdDiD0XExSHvCMNFkjQfUjl8k1+KKrTK76h2xCxFATwEetpiY326Cja1BVE3+VeT/PT3Ro8eksOtrv0J413rpfikNFB3O9E/lGexxMOfyWzYUnypu9TvVxAnMINQ9Y6Oh29ng4mB/+Lp517O2YW9NZq2xpgr5xqP4eDcsAUKq7yi6qEuXHrGW4JtB6GNKD+vWIYanyxjB1ahxSAQogjNJpBfTlM2W424yHRygckEOWheOFyaluAW8hVL7EJ1zyTn5K6Sr7hvjozw9WPkj2CHpCtMO6wONUzHmSqC3TK1slPzDArBk1/YvDs59BLIXbG+UeeBwzMOxPbd0orRmhT4s3BLJeU9QihqKAm4prETQOYd5wNIH+C0zL8lC2es+++tRdHZJH188ihDvXuZml9Ximy3l+ibup7fm0rbbaaVqZDExDzUiNEk7jb/7QiGynU4CaBceYYMVCOu+7jqwedySlSOv2laQ9m2MDvFqREJHhWvNpxf7DjI1eKoQhJksgrAuNVNnJRkqLp95QlFVBouK2o8OR5NOaB1bIipVj5ahbrvzdX+AvmnnzdRcYZ5z4eJvKTv+bs6sw5ixnDK6+eS+DN/HJvJ+xvtY4q5xbGxyQRezBdybkzVUoiyHUJl4ssWOBZRzRtKFvrwKykyYmuIc39BAvSr6n4jCmykQ3wTs/GVdC/gnf+V7FUNsRdPVoQVe+rQRcR15i2n3D4dBNilj1ldrJICK6zmucLrJnthXLsSv/cuSS0R43Xv1l3paAPXYTQlru79NJM2gaKQwvJx5qmukOwNAHJtTyVN1rlpT8TmtFNKh8gTlM/S9XKRJ2BS12zmwB3uCPNXA2P3F/59rPYysXU5uLINtaDnruiUakAX1ttfgUxjS3rF+TiKnRvOdLX7j0kQK6g/8NILR2Xl+zTEiPRpILYiFgeZ8FJ5QvYa7oWK11u/dhqSYmGnHa63An+l93lMaUJILQ87+4UWWCx2LWdy9gmVPyijPN8z1QJ0r2Jj3FpnoIUwCY+/s= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:TYCPR01MB10914.jpnprd01.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(7416014)(52116014)(376014)(366016)(38350700014)(921020); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: XUHdIkqfZCt4HZCvOGrM2A/f83UK6Dei2T9ufJubjhVt4rclNIAn8jFzurcULGFOk6agaR7oE5FHCnyODlLCoWm4yyMLAvpg1Mcrm0TlqOzoLlwJE+Xs0tbnuFlLKRQeif+p1raIdVkb3SgsFpTfWnuEL2T1D3bSTI0lIrLBLbr+IxtVWv8fwe+4kkBzHkqaXxxjxRRv5cKgkUfoVUZcuvLUsXpD0cwhyGYQi8kS5PJEHzD/3RwRhledKgTGw8JAJaaQnG+UKyWBB3Cfwja6EvVxbjm1qdVtmiHIRrGEkBTabr1HwIAj1EHg6LNRgO5Daqi59Sy8gdOCzgyrp7Zg3NC+wDDjDfrj6JtZolgDYMg2BhlqZrJvvnbOlGTFg7WXSZSk03DpWr1ntOsnStesBhMdV2su0p/AiEzJkluEOsY28Xtd5Ur//XE1wA2cx0SEhUA+bBQpZv/2OqXnurOU9s8Zi0409Zp4S1BJo/eiXLZn2q4swJO3RKO50kyy9vCDsCDiG2rzqnKMb6nlImUF5HcNGQp5xiIah68ogKtpWJjdImn3UPb1hl1BhjLsSysJcxQIv88unj09AA7bU2Gl8CSbiPV1zv/PVQ/rzwdC+csqzTVx0HOw0RsKwcm61Yx+wiws8GeELuKmQumwEbIqJQ6erv+Sc4d/RIu5AKQVyA0IiWiLhpP6oSLXAO26lGVYax7NvPN4qUxW+QdU/ORYXjrKQJ4wFyxxwrKlMSOz1R9o6moWJIQXzon1Ow6RvLpFrkV5SmOQmsEnlss0wThlbII/YzVitHvU84tsVhfFDu0m2LMo3p0ShlyCmOcvS6r2bNlbVL6WBQ98G9ZLLMaxwsdAetejwKkxzxNecoaMfMWIKmngsDJtkY/Sjvl9jlkg5ZmlrzZPyM0xK7SNUmYdEJhL5gXEf1c1qae01vJqi5XDkryw5GtEvVe1+WUWvE5jZa5c4wusK7LwQCBhMcPHepH8tY3q8uMAMjpT9w+vkj2Bfj8Nr5RPC9yuahdahlz79iDFldpH3EIKJ+KAvv+acceezzDJ+7CtqaALosbhVLm4OTIuiq3O+JHAOTxEx/8sFoq5UjaEmASTysqNq9QT/ikILBz1nUWjxxdVRe2HoEY+zAW0x2jzaCjKHXOYou9rSaCdeOnxGkVLplZbk5croQ8NrLs+ARZWZiWOo+jjvUOCvNVHf32JC0DB/KHS3V62k8JYIzNsfZgnxEp61zPPbQRziRvTKrpp+MrWGQUx64f79fDcXsGtOrdf+CKkmvOydlRJdSdTod81r1OOZWi5LNjvDLqw8BCh+eaNpSINDH1HAtdBqDtEfWhrWAW9ca69JRstfMWTNqnNAK05k2dmkUWbZ0WbO63z4Xvokf4guGy+ltTGBHM1LsftvbOVRMwKvQ+JMP1WqcsgvzQ3QLRFFmQvlUXG2iPKY2kBScYaqrJ4aHmQmrbp3CtG186d5QkeDMlaLbPi+RaRbl27SyqPOpvfWkME0HBcHEJUHqRLroWiy0rrte1O/w0GZiJ7Cf6NGBS+oyjpzKJxyTaK6l33bL1iovTgP5soet9VSAFn9bopuCsua6k8AgrplhCgxlbkbqeCXJZw5mYIg5f3R0b86Sz10t/mM8JNF37mv2hF7+I= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: c020e015-8512-4f60-45f6-08dd77029cca X-MS-Exchange-CrossTenant-AuthSource: TYCPR01MB10914.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Apr 2025 01:05:26.2107 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: O0b1/Ie2Mgky6XsYsK9a4VO6EXxjjcpf9LQRSRtrtrfG3NTuXYDus2chVcjVRgKayUn49Vz6Qy09WcDUMwxMuFI2+fZJq28zVNAwL9DR7q0NiLPCUwb/MjIkzIkQxUE8 X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS7PR01MB14942 Renesas MSIOF (Clock-Synchronized Serial Interface with FIFO) can work as both SPI and I2S. Adds MSIOF-I2S driver. MSIOF-SPI/I2S are using same DT compatible properties. MSIOF-I2S uses Of-Graph for Audio-Graph-Card/Card2, MSIOF-SPI doesn't use Of-Graph. Signed-off-by: Kuninori Morimoto --- sound/soc/renesas/Kconfig | 7 + sound/soc/renesas/rcar/Makefile | 3 + sound/soc/renesas/rcar/msiof.c | 579 ++++++++++++++++++++++++++++++++ 3 files changed, 589 insertions(+) create mode 100644 sound/soc/renesas/rcar/msiof.c diff --git a/sound/soc/renesas/Kconfig b/sound/soc/renesas/Kconfig index cb01fb36355f..dabf02a955ca 100644 --- a/sound/soc/renesas/Kconfig +++ b/sound/soc/renesas/Kconfig @@ -46,6 +46,13 @@ config SND_SOC_RCAR help This option enables R-Car SRU/SCU/SSIU/SSI sound support +config SND_SOC_MSIOF + tristate "R-Car series MSIOF support" + depends on OF + select SND_DMAENGINE_PCM + help + This option enables R-Car MSIOF sound support + config SND_SOC_RZ tristate "RZ/G2L series SSIF-2 support" depends on ARCH_RZG2L || COMPILE_TEST diff --git a/sound/soc/renesas/rcar/Makefile b/sound/soc/renesas/rcar/Makefile index 45eb875a912a..3a2c875595bd 100644 --- a/sound/soc/renesas/rcar/Makefile +++ b/sound/soc/renesas/rcar/Makefile @@ -1,3 +1,6 @@ # SPDX-License-Identifier: GPL-2.0 snd-soc-rcar-y := core.o gen.o dma.o adg.o ssi.o ssiu.o src.o ctu.o mix.o dvc.o cmd.o debugfs.o obj-$(CONFIG_SND_SOC_RCAR) += snd-soc-rcar.o + +snd-soc-msiof-y := msiof.o +obj-$(CONFIG_SND_SOC_MSIOF) += snd-soc-msiof.o diff --git a/sound/soc/renesas/rcar/msiof.c b/sound/soc/renesas/rcar/msiof.c new file mode 100644 index 000000000000..de8de3468402 --- /dev/null +++ b/sound/soc/renesas/rcar/msiof.c @@ -0,0 +1,579 @@ +// SPDX-License-Identifier: GPL-2.0 +// +// Renesas R-Car MSIOF (Clock-Synchronized Serial Interface with FIFO) I2S driver +// +// Copyright (C) 2025 Renesas Solutions Corp. +// Author: Kuninori Morimoto +// + +/* + * [NOTE] + * + * This driver doesn't support Clock/Frame Provider Mode + * + * Basically MSIOF is created for SPI, but we can use it as I2S (Sound). Because of it, when we use + * it as I2S (Sound) with Provider Mode, we need to send dummy TX data even though it is used for + * RX. Because SPI HW needs TX Clock/Frame output for RX purpose also. It makes driver code complex. + * + * And when we use MSIOF (Sound) as Provider Mode, the clock source is [MSO clock] (= 133.33MHz) + * SoC internal clock. It is not for 48kHz/44.1kHz base clock. Thus the output/input will not be + * accurate sound. + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +/* register */ +#define SITMDR1 0x00 +#define SITMDR2 0x04 +#define SITMDR3 0x08 +#define SIRMDR1 0x10 +#define SIRMDR2 0x14 +#define SIRMDR3 0x18 +#define SITSCR 0x20 +#define SICTR 0x28 +#define SIFCTR 0x30 +#define SISTR 0x40 +#define SIIER 0x44 +#define SITFDR 0x50 +#define SIRFDR 0x60 + +/* SITMDR1/ SIRMDR1 */ +#define TRMD (1 << 31) /* Transfer Mode (1 = Master mode) */ +#define PCON (1 << 30) /* Transfer Signal Connection */ +#define SYNCMD_SPI (2 << 28) /* Level mode/SPI */ +#define SYNCMD_LR (3 << 28) /* L/R mode */ +#define SYNCAC (1 << 25) /* Sync Polarity (Active-low) */ +#define DTDL_1 (1 << 20) /* 1-clock-cycle delay */ +#define TXSTP (1 << 0) /* Transmission/Reception Stop on FIFO */ + +/* SITMDR2 and SIRMDR2 */ +#define BITLEN1(x) (((x) - 1) << 24) /* Data Size (8-32 bits) */ +#define WDLEN1(x) (((x) - 1) << 16) /* Word Count (1-64/256 (SH, A1))) */ +#define GRP (1 << 30) /* Group count */ + +/* SITSCR */ +#define SITSCR_V(p, d) ((p << 8) + d) + +/* SICTR */ +#define TEDG (1 << 27) /* Transmit Timing (1 = falling edge) */ +#define REDG (1 << 26) /* Receive Timing (1 = rising edge) */ +#define TSCKE (1 << 15) /* Transmit Serial Clock Output Enable */ +#define TFSE (1 << 14) /* Transmit Frame Sync Signal Output Enable */ +#define TXE (1 << 9) /* Transmit Enable */ +#define RXE (1 << 8) /* Receive Enable */ +#define TXRST (1 << 1) /* Transmit Reset */ +#define RXRST (1 << 0) /* Receive Reset */ + +/* SISTR */ +#define TFEMP (1 << 29) /* Transmit FIFO Empty */ +#define TDREQ (1 << 28) /* Transmit Data Transfer Request */ +#define TEOF (1 << 23) /* Frame Transmission End */ +#define TFSERR (1 << 21) /* Transmit Frame Synchronization Error */ +#define TFOVF (1 << 20) /* Transmit FIFO Overflow */ +#define TFUDF (1 << 19) /* Transmit FIFO Underflow */ +#define RFFUL (1 << 13) /* Receive FIFO Full */ +#define RDREQ (1 << 12) /* Receive Data Transfer Request */ +#define REOF (1 << 7) /* Frame Reception End */ +#define RFSERR (1 << 5) /* Receive Frame Synchronization Error */ +#define RFUDF (1 << 4) /* Receive FIFO Underflow */ +#define RFOVF (1 << 3) /* Receive FIFO Overflow */ +#define SISTR_ERR_TX (TFSERR | TFOVF | TFUDF) +#define SISTR_ERR_RX (RFSERR | RFOVF | RFUDF) +#define SISTR_ERR (SISTR_ERR_TX | SISTR_ERR_RX) + +/* SIIER */ +#define TDMAE (1 << 31) /* Transmit Data DMA Transfer Req. Enable */ +#define TDREQE (1 << 28) /* Transmit Data Transfer Request Enable */ +#define RDMAE (1 << 15) /* Receive Data DMA Transfer Req. Enable */ +#define RDREQE (1 << 12) /* Receive Data Transfer Request Enable */ + +/* + * The data on memory in 24bit case is located at side + * [ xxxxxx] + * [ xxxxxx] + * [ xxxxxx] + * + * HW assuming signal in 24bit case is located at side + * ---+ +--------+ + * +--------+ +--------+... + * [xxxxx ][xxxxx ][xxxxx ] + * + * When we use 24bit data, it will be transfered via 32bit width via DMA, + * and MSIOF/DMA doesn't support data shift, we can't use 24bit data correctly. + * There is no such issue on 16/32bit data case. + */ +#define MSIOF_RATES SNDRV_PCM_RATE_8000_192000 +#define MSIOF_FMTS (SNDRV_PCM_FMTBIT_S16_LE |\ + SNDRV_PCM_FMTBIT_S32_LE) + +struct msiof_priv { + struct device *dev; + struct snd_pcm_substream *substream[SNDRV_PCM_STREAM_LAST + 1]; + spinlock_t lock; + void __iomem *base; + resource_size_t phy_addr; + + /* for error */ + int err_syc[SNDRV_PCM_STREAM_LAST + 1]; + int err_ovf[SNDRV_PCM_STREAM_LAST + 1]; + int err_udf[SNDRV_PCM_STREAM_LAST + 1]; + + /* bit field */ + u32 flags; +#define MSIOF_FLAGS_NEED_DELAY (1 << 0) +}; +#define msiof_flag_has(priv, flag) (priv->flags & flag) +#define msiof_flag_set(priv, flag) (priv->flags |= flag) + +#define msiof_is_play(substream) (substream)->stream == SNDRV_PCM_STREAM_PLAYBACK +#define msiof_read(priv, reg) ioread32((priv)->base + reg) +#define msiof_write(priv, reg, val) iowrite32(val, (priv)->base + reg) +#define msiof_status_clear(priv) msiof_write(priv, SISTR, SISTR_ERR) + +static void msiof_update(struct msiof_priv *priv, u32 reg, u32 mask, u32 val) +{ + u32 old = msiof_read(priv, reg); + u32 new = (old & ~mask) | (val & mask); + + if (old != new) + msiof_write(priv, reg, new); +} + +static void msiof_update_and_wait(struct msiof_priv *priv, u32 reg, u32 mask, u32 val, u32 expect) +{ + u32 data; + int ret; + + msiof_update(priv, reg, mask, val); + + ret = readl_poll_timeout_atomic(priv->base + reg, data, + (data & mask) == expect, 1, 128); + if (ret) + dev_warn(priv->dev, "write timeout [0x%02x] 0x%08x / 0x%08x\n", + reg, data, expect); +} + +static int msiof_hw_start(struct snd_soc_component *component, + struct snd_pcm_substream *substream, int cmd) +{ + struct msiof_priv *priv = snd_soc_component_get_drvdata(component); + struct snd_pcm_runtime *runtime = substream->runtime; + int is_play = msiof_is_play(substream); + int width = snd_pcm_format_width(runtime->format); + u32 val; + + /* + * see + * Datasheet 109.3.6 [Transmit and Receive Procedures] + * + * TX: Fig 109.14 - Fig 109.23 + * RX: Fig 109.15 + */ + + /* reset errors */ + priv->err_syc[substream->stream] = + priv->err_ovf[substream->stream] = + priv->err_udf[substream->stream] = 0; + + /* SITMDRx */ + if (is_play) { + val = PCON | SYNCMD_LR | SYNCAC | TXSTP; + if (msiof_flag_has(priv, MSIOF_FLAGS_NEED_DELAY)) + val |= DTDL_1; + + msiof_write(priv, SITMDR1, val); + + val = BITLEN1(width); + msiof_write(priv, SITMDR2, val | GRP); + msiof_write(priv, SITMDR3, val); + + } + /* SIRMDRx */ + else { + val = SYNCMD_LR | SYNCAC; + if (msiof_flag_has(priv, MSIOF_FLAGS_NEED_DELAY)) + val |= DTDL_1; + + msiof_write(priv, SIRMDR1, val); + + val = BITLEN1(width); + msiof_write(priv, SIRMDR2, val | GRP); + msiof_write(priv, SIRMDR3, val); + } + + /* SIIER */ + if (is_play) + val = TDREQE | TDMAE | SISTR_ERR_TX; + else + val = RDREQE | RDMAE | SISTR_ERR_RX; + msiof_update(priv, SIIER, val, val); + + /* SICTR */ + if (is_play) + val = TXE | TEDG; + else + val = RXE | REDG; + msiof_update_and_wait(priv, SICTR, val, val, val); + + msiof_status_clear(priv); + + /* Start DMAC */ + snd_dmaengine_pcm_trigger(substream, cmd); + + return 0; +} + +static int msiof_hw_stop(struct snd_soc_component *component, + struct snd_pcm_substream *substream, int cmd) +{ + struct msiof_priv *priv = snd_soc_component_get_drvdata(component); + struct device *dev = component->dev; + int is_play = msiof_is_play(substream); + u32 val; + + /* SIIER */ + if (is_play) + val = TDREQE | TDMAE | SISTR_ERR_TX; + else + val = RDREQE | RDMAE | SISTR_ERR_RX; + msiof_update(priv, SIIER, val, 0); + + /* Stop DMAC */ + snd_dmaengine_pcm_trigger(substream, cmd); + + /* SICTR */ + if (is_play) + val = TXE; + else + val = RXE; + msiof_update_and_wait(priv, SICTR, val, 0, 0); + + /* indicate error status if exist */ + if (priv->err_syc[substream->stream] || + priv->err_ovf[substream->stream] || + priv->err_udf[substream->stream]) + dev_warn(dev, "FSERR(%s) = %d, FOVF = %d, FUDF = %d\n", + snd_pcm_direction_name(substream->stream), + priv->err_syc[substream->stream], + priv->err_ovf[substream->stream], + priv->err_udf[substream->stream]); + + return 0; +} + +static int msiof_dai_set_fmt(struct snd_soc_dai *dai, unsigned int fmt) +{ + struct msiof_priv *priv = snd_soc_dai_get_drvdata(dai); + + switch (fmt & SND_SOC_DAIFMT_CLOCK_PROVIDER_MASK) { + /* it supports Clock/Frame consumer mode only */ + case SND_SOC_DAIFMT_BC_FC: + break; + /* others are error */ + default: + return -EINVAL; + } + + switch (fmt & SND_SOC_DAIFMT_INV_MASK) { + /* it supports NB_NF only */ + case SND_SOC_DAIFMT_NB_NF: + default: + break; + /* others are error */ + case SND_SOC_DAIFMT_NB_IF: + case SND_SOC_DAIFMT_IB_NF: + case SND_SOC_DAIFMT_IB_IF: + return -EINVAL; + } + + switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) { + case SND_SOC_DAIFMT_I2S: + msiof_flag_set(priv, MSIOF_FLAGS_NEED_DELAY); + break; + case SND_SOC_DAIFMT_LEFT_J: + break; + default: + return -EINVAL; + } + + return 0; +} + +/* + * Select below from Sound Card, not auto + * SND_SOC_DAIFMT_CBC_CFC + * SND_SOC_DAIFMT_CBP_CFP + */ +static const u64 msiof_dai_formats = SND_SOC_POSSIBLE_DAIFMT_I2S | + SND_SOC_POSSIBLE_DAIFMT_LEFT_J | + SND_SOC_POSSIBLE_DAIFMT_NB_NF; + +static const struct snd_soc_dai_ops msiof_dai_ops = { + .set_fmt = msiof_dai_set_fmt, + .auto_selectable_formats = &msiof_dai_formats, + .num_auto_selectable_formats = 1, +}; + +static struct snd_soc_dai_driver msiof_dai_driver = { + .name = "msiof-dai", + .playback = { + .rates = MSIOF_RATES, + .formats = MSIOF_FMTS, + .channels_min = 2, + .channels_max = 2, + }, + .capture = { + .rates = MSIOF_RATES, + .formats = MSIOF_FMTS, + .channels_min = 2, + .channels_max = 2, + }, + .ops = &msiof_dai_ops, +}; + +static struct snd_pcm_hardware msiof_pcm_hardware = { + .info = SNDRV_PCM_INFO_INTERLEAVED | + SNDRV_PCM_INFO_MMAP | + SNDRV_PCM_INFO_MMAP_VALID, + .buffer_bytes_max = 64 * 1024, + .period_bytes_min = 32, + .period_bytes_max = 8192, + .periods_min = 1, + .periods_max = 32, + .fifo_size = 64, +}; + +static int msiof_open(struct snd_soc_component *component, + struct snd_pcm_substream *substream) +{ + struct device *dev = component->dev; + struct dma_chan *chan; + static const char *dma_names[] = {"rx", "tx"}; + int is_play = msiof_is_play(substream); + int ret; + + chan = of_dma_request_slave_channel(dev->of_node, dma_names[is_play]); + if (IS_ERR_OR_NULL(chan)) + return PTR_ERR(chan); + + ret = snd_dmaengine_pcm_open(substream, chan); + if (ret < 0) + goto open_err_dma; + + snd_soc_set_runtime_hwparams(substream, &msiof_pcm_hardware); + + ret = snd_pcm_hw_constraint_integer(substream->runtime, SNDRV_PCM_HW_PARAM_PERIODS); + +open_err_dma: + if (ret < 0) + dma_release_channel(chan); + + return ret; +} + +static int msiof_close(struct snd_soc_component *component, + struct snd_pcm_substream *substream) +{ + return snd_dmaengine_pcm_close_release_chan(substream); +} + +static snd_pcm_uframes_t msiof_pointer(struct snd_soc_component *component, + struct snd_pcm_substream *substream) +{ + return snd_dmaengine_pcm_pointer(substream); +} + +#define PREALLOC_BUFFER (32 * 1024) +#define PREALLOC_BUFFER_MAX (32 * 1024) +static int msiof_new(struct snd_soc_component *component, + struct snd_soc_pcm_runtime *rtd) +{ + snd_pcm_set_managed_buffer_all(rtd->pcm, SNDRV_DMA_TYPE_DEV, + rtd->card->snd_card->dev, + PREALLOC_BUFFER, PREALLOC_BUFFER_MAX); + return 0; +} + +static int msiof_trigger(struct snd_soc_component *component, + struct snd_pcm_substream *substream, int cmd) +{ + struct device *dev = component->dev; + struct msiof_priv *priv = dev_get_drvdata(dev); + unsigned long flags; + int ret = -EINVAL; + + spin_lock_irqsave(&priv->lock, flags); + + switch (cmd) { + case SNDRV_PCM_TRIGGER_START: + priv->substream[substream->stream] = substream; + fallthrough; + case SNDRV_PCM_TRIGGER_RESUME: + ret = msiof_hw_start(component, substream, cmd); + break; + case SNDRV_PCM_TRIGGER_STOP: + priv->substream[substream->stream] = NULL; + fallthrough; + case SNDRV_PCM_TRIGGER_SUSPEND: + ret = msiof_hw_stop(component, substream, cmd); + break; + } + + spin_unlock_irqrestore(&priv->lock, flags); + + return ret; +} + +static int msiof_hw_params(struct snd_soc_component *component, + struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *params) +{ + struct msiof_priv *priv = dev_get_drvdata(component->dev); + struct dma_chan *chan = snd_dmaengine_pcm_get_chan(substream); + struct dma_slave_config cfg = {}; + unsigned long flags; + int ret; + + spin_lock_irqsave(&priv->lock, flags); + + ret = snd_hwparams_to_dma_slave_config(substream, params, &cfg); + if (ret < 0) + goto hw_params_out; + + cfg.dst_addr = priv->phy_addr + SITFDR; + cfg.src_addr = priv->phy_addr + SIRFDR; + + ret = dmaengine_slave_config(chan, &cfg); +hw_params_out: + spin_unlock_irqrestore(&priv->lock, flags); + + return ret; +} + +static const struct snd_soc_component_driver msiof_component_driver = { + .name = "msiof", + .open = msiof_open, + .close = msiof_close, + .pointer = msiof_pointer, + .pcm_construct = msiof_new, + .trigger = msiof_trigger, + .hw_params = msiof_hw_params, +}; + +static irqreturn_t msiof_interrupt(int irq, void *data) +{ + struct msiof_priv *priv = data; + struct snd_pcm_substream *substream; + u32 sistr; + + spin_lock(&priv->lock); + + sistr = msiof_read(priv, SISTR); + msiof_status_clear(priv); + + spin_unlock(&priv->lock); + + /* overflow/underflow error */ + substream = priv->substream[SNDRV_PCM_STREAM_PLAYBACK]; + if (substream && (sistr & SISTR_ERR_TX)) { + // snd_pcm_stop_xrun(substream); + if (sistr & TFSERR) + priv->err_syc[SNDRV_PCM_STREAM_PLAYBACK]++; + if (sistr & TFOVF) + priv->err_ovf[SNDRV_PCM_STREAM_PLAYBACK]++; + if (sistr & TFUDF) + priv->err_udf[SNDRV_PCM_STREAM_PLAYBACK]++; + } + + substream = priv->substream[SNDRV_PCM_STREAM_CAPTURE]; + if (substream && (sistr & SISTR_ERR_RX)) { + // snd_pcm_stop_xrun(substream); + if (sistr & RFSERR) + priv->err_syc[SNDRV_PCM_STREAM_CAPTURE]++; + if (sistr & RFOVF) + priv->err_ovf[SNDRV_PCM_STREAM_CAPTURE]++; + if (sistr & RFUDF) + priv->err_udf[SNDRV_PCM_STREAM_CAPTURE]++; + } + + return IRQ_HANDLED; +} + +static int msiof_probe(struct platform_device *pdev) +{ + struct msiof_priv *priv; + struct device *dev = &pdev->dev; + struct resource *res; + struct device_node *port; + int irq, ret; + + /* Check MSIOF as Sound mode or SPI mode */ + port = of_graph_get_next_port(dev->of_node, NULL); + if (!port) + return -ENODEV; + of_node_put(port); + + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + if (!res) + return -ENODEV; + + irq = platform_get_irq(pdev, 0); + if (irq <= 0) + return -ENODEV; + + priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); + if (!priv) + return -ENODEV; + + priv->base = devm_ioremap_resource(dev, res); + if (IS_ERR(priv->base)) + return PTR_ERR(priv->base); + + ret = devm_request_irq(dev, irq, msiof_interrupt, 0, dev_name(dev), priv); + if (ret) + return ret; + + priv->dev = dev; + priv->phy_addr = res->start; + + spin_lock_init(&priv->lock); + platform_set_drvdata(pdev, priv); + + devm_pm_runtime_enable(dev); + + ret = devm_snd_soc_register_component(dev, &msiof_component_driver, + &msiof_dai_driver, 1); + if (ret) + return ret; + + dev_info(dev, "probed\n"); + + return ret; +} + +static const struct of_device_id msiof_of_match[] = { + { .compatible = "renesas,rcar-gen4-msiof", }, + {}, +}; +MODULE_DEVICE_TABLE(of, msiof_of_match); + +static struct platform_driver msiof_driver = { + .driver = { + .name = "msiof-pcm-audio", + .of_match_table = msiof_of_match, + }, + .probe = msiof_probe, +}; +module_platform_driver(msiof_driver); + +MODULE_LICENSE("GPL v2"); +MODULE_DESCRIPTION("Renesas R-Car MSIOF I2S audio driver"); +MODULE_AUTHOR("Kuninori Morimoto "); +MODULE_ALIAS("platform:msiof-pcm-audio"); From patchwork Wed Apr 9 01:05:32 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 880107 Received: from TY3P286CU002.outbound.protection.outlook.com (mail-japaneastazon11010063.outbound.protection.outlook.com [52.101.229.63]) (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 AC05729A2; Wed, 9 Apr 2025 01:05:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.229.63 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744160740; cv=fail; b=WFxb0KsRLCxfy718WgymIJtZGWlKgQOs2Dcu5ekbrHBfOz10Qb6yj8p2UgggztBj1aqblib2qay53n5jKTnmiSwRvGNfeZ/xCwsRpRzFLFDqf1PUVGpKi5dr9ou8xibvL0KWei3MOsxhUIb/mgRsXdeiD9gYyxiBohWKzwD8oXE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744160740; c=relaxed/simple; bh=HkMwrYxWDsiky3tt0l9jNXlJNbF0DIC6zbmf4kFvVLY=; h=Message-ID:To:From:Subject:In-Reply-To:References:Content-Type: Date:MIME-Version; b=ov5oe7P/+Luq4PXaDmQWAUtCZyUhH7S8IbECVb1YTRRMmdXEMhc88xzbETbvjEnEu+jOUg9KTPH2o5//alasZ5ESB5UbIfANBYtn3SMTjRK2ZGM2fLtXHwMo5Ru/VCGi+4v9HI7jRKo34XHNpYWrjlKHYf5iISGPW4dE2MxGgXI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=renesas.com; spf=pass smtp.mailfrom=renesas.com; dkim=pass (1024-bit key) header.d=renesas.com header.i=@renesas.com header.b=ig5qgCWZ; arc=fail smtp.client-ip=52.101.229.63 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=renesas.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=renesas.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=renesas.com header.i=@renesas.com header.b="ig5qgCWZ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Fn6itGPdrcL7I5lkygXImkjDmWE5TdpSmQO5vxJ5nbARECIyin7cglAkMUQdW5SmjHPS2lEYnXsUtBb3Hjh2BwoUw6CjwM9mpDqORNani481sTHD8AfvycerswdH6v6wdWgoDTnfCgLvh5KjDQkARjZQw6wHFAMiGyfh9Evs/sFLQ1qKN9jA7th67X8YjJyRPWAdu85MJUri8NMizKSJjDD1NeETLbc37ehONf1DZ0D4Naubg7ZLsRva9vRgHhyK+pDDDSOZfU4EmSlcq9M6y8kxdCkbVPju0ZTLQP05MdLCk1IFDJGAURO8WAlbIZOuzjLVRGZE2auDXYhI2DUAwQ== 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=UtNDLxtDEB7g4fp3SUHO5RsnCljySzmUOXbCN3J4q9s=; b=fITfLqb/+WGYuIZmGM/40BEeL6OjsZMUq5xR+aO0hqCK53RyzLcCMQRyRxNDMqCRxbXkqT2NqGjuyfR7TXYyPFavcffmysjKVX2l+GCKmSPTM4TOBhhBzAqFH7r57SSC+3zDJF9mWZru29lNHEaHJq2V1aVHKdyU7qKjZYXREqBOlAOS3DOx4inBrKyRbA4ujubu93u4JPmEPzlA3Qv15iD9Leg1xSbIW+F5uzD88z8JVQe+J2WfVaS9fiKme1f6mAwYUIbeMcm0JBA8jWt0W67Nl8GWkgMz/9l8Qu0Mh6Efn2ywYTw5D11r1e5rNy+Ny65s1Oc3PvN1kPjqqPRpvA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=renesas.com; dmarc=pass action=none header.from=renesas.com; dkim=pass header.d=renesas.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=renesas.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=UtNDLxtDEB7g4fp3SUHO5RsnCljySzmUOXbCN3J4q9s=; b=ig5qgCWZYQrMcFP3d3ztAD2vsbO5uckSLc3EQKV5m2Q6lkW+n4MT9B3KhN26JeEftW10+DcG69UNHOQUnwwJcz3Be4mMkvCRaQK0wObAgeSlKt/M4SxrcrzwZCX8Xoah+CAQDd/0++P/nHMBeJ6fnC13UjYGVuPOVA3pPIXPo20= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=renesas.com; Received: from TYCPR01MB10914.jpnprd01.prod.outlook.com (2603:1096:400:3a9::11) by OS7PR01MB14942.jpnprd01.prod.outlook.com (2603:1096:604:395::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.27; Wed, 9 Apr 2025 01:05:32 +0000 Received: from TYCPR01MB10914.jpnprd01.prod.outlook.com ([fe80::c568:1028:2fd1:6e11]) by TYCPR01MB10914.jpnprd01.prod.outlook.com ([fe80::c568:1028:2fd1:6e11%5]) with mapi id 15.20.8606.033; Wed, 9 Apr 2025 01:05:32 +0000 Message-ID: <87v7re9mar.wl-kuninori.morimoto.gx@renesas.com> To: Conor Dooley , Geert Uytterhoeven , Jaroslav Kysela , Krzysztof Kozlowski , Liam Girdwood , Mark Brown , Rob Herring , Takashi Iwai , devicetree@vger.kernel.org, linux-renesas-soc@vger.kernel.org, linux-sound@vger.kernel.org, linux-spi@vger.kernel.org From: Kuninori Morimoto Subject: [PATCH 7/7] arm64: dts: renesas: sparrow hawk: Add MSIOF Sound support In-Reply-To: <875xjeb0wu.wl-kuninori.morimoto.gx@renesas.com> References: <875xjeb0wu.wl-kuninori.morimoto.gx@renesas.com> Date: Wed, 9 Apr 2025 01:05:32 +0000 X-ClientProxiedBy: TYWPR01CA0024.jpnprd01.prod.outlook.com (2603:1096:400:aa::11) To TYCPR01MB10914.jpnprd01.prod.outlook.com (2603:1096:400:3a9::11) Precedence: bulk X-Mailing-List: linux-spi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYCPR01MB10914:EE_|OS7PR01MB14942:EE_ X-MS-Office365-Filtering-Correlation-Id: 11b50b39-5e96-456c-ce7c-08dd7702a0a8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|7416014|52116014|376014|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: dlvoLhT4x1C8qjEiabMnYLVKBqLB1GaVQDTdGkfvErqkHpyejn3dsyWRxjQV55w2IeP2mybpXGJdZoIFs8GDQJislm7enSwBsBILCjjp/pUzTkpqCDq7VQRuE+5YuYrBAvKfrqxbFQUWZ0JIC7QKIndg1OLG6srSZCjdi9KFnUOkeyqB7zGB4M96teVjyI4Wc0OtR6BHzloA5mEMJNkYfQuhwXTGDCu4Tm93A9N04gsPp0k7wFia0PBjHIHouQp6fj8Qi0wco2woMJud14qX/SGAgVRov63xsI9GHD/Tm276UvlsPR+E1fswFBKFHPdTcXCtcBIqpZ8OWqFa6CVFatyVk1v1Ubo/9yWWqb8AMTa/MmpZ0ne/jf7WrYQ2GPL54sI7G9c3PsGnJ7X3FCytpQiMk7j9q8N3uMHCguTA2fth6K7AxNzuos/lD23w17Eqtpr4zodl8S1Lo0ByldaA+3ToWdY9yvXwqm7JhLCfzXzMgaW6L9r0J0nDMYmV0Ucx4hEJjYsdhcc5BqthVBVNAQkEDV5PKFk7iZGXxXPHMWcyb3a2ZXH/vFC5SJr48C+Yo+VBLbFxya+yu4I1w32bh7Tl88vZdvihXahzBEfFrn++IE/w99CS4Lz8/hTkqTbd+amGri6BuBqCwW8jWbvjGvXp0J4R+1CFNcQHmAMQzvDlGlxPGOF2Bv6sIdDCkE48YXYDQetaI/fNuPM60aPTwhZRPghKuUziBhNEmpuOx4EmDypydMaV/WJYWVS+Vjxd5dwlACnnRjAOXpsPM20IFj0UHRbI4xBmwP6K/dt5fyWT6gYdbg6oF4upf+yY+zSkv/7OGFdgF+xB1bwd+y6XwbQF5KBBw3ee+kQeQCDPiUBztdUfigvwqJgsEeHynVWO9xL0oJ9xuBxxqReFqfvifxH2BZga5i6nQM1pDSiFAevpWv4xsHRcnjBSaSFBGHYGdYo1Kdfc+Q0lQp4luLFbu7PTk8Zxur4mZJSzDQNEDz1LXkqU+vBW4x10CDM+Sjns9HAt6TcHV0/zE2+Ao0LNgeU+4hWwxNrmXSbJDlY0GDwGBHtCPbvgkfdsZNJouWxbM0MaznvqqRwp9WX6tV8J20fOoUWRiqYbmiVuKMU11pbcwdyFEXEQ7loNkPvMhNTxM+63HchD7r8J2ZZuzUGGNRpLohANoCUmnayaPlUpA1KeD0yb5/YebcAHmHWbBTtZtHQKIQ9U2OUw8Kg7NTlTE50zmkb50PU7u5nqTQF8KxPhye/kD3GPcjqPx5uhcRINwUQSN7DKyg+LLbRHmllXX5cCyjtgYezQyajOu9T5eHZDxr6fPEiKT3gC29mKq5OKNPWhFEK8mPUgJ76kt72HmhxfZcs5jDI/d53f6Vd59CtWKEorWKRZag6aKn9ilSO3HUDq/5ktV0eJBagu4RKHeNpwq7IGL3W4KiqEOBgmhVNSnbZdw3K08L6VyGz5HD9GJ6Wt6XiVjR5WlMwtqlvVBdcxNYP+Db8zMmL+cZYGeZY= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:TYCPR01MB10914.jpnprd01.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(7416014)(52116014)(376014)(366016)(38350700014)(921020); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 2w2//PYWr1OPRRavlTnOk2lMyQwNRW9XNN+++9n3WeI+cwr7b3w1tIXxYt6GwoJOIXt5z8FdYLrt00PXCg3hkBQM3aDw88JMxyscvrkiHIrvtLcSMG1Ni8vElj9WcRgXSWcrlqbvg40BtYmovYAUo2wWyF0rxXlFlE/RQwgK/M/EzQACJtrry7GmpgR3Rt4IERHTiyf6SzvzAzjEb2JXtIJ2Yg0ne8I+oPKZ94DpGso3DFoFLrhaYfj0r4BbSoa3ooOZU3wlY2CzmBzkHIBDyPD1NPqBPHfRWAj0eYD7jEtzaxjbJIR1MoQBOy40oXy0FXXIaAFpK9Y+xU5N6SYFK2HPoAa+igtaRFQNrLd7NWmDXNm1efQOLOBcr/+Z/5WZoozcCfIgg+muQ/keczVfQgRGWUYVexD1UPkbZQucUy7TSBem/24W4klnuBSnozmOFLzmf3WHXnNiaXL7nKZzLUEXwaNAjGtDXAXUILUoSLw5IU91LKrwIDgQMTRzDq7TA4HYrHgZi1BV3t301D+8EnTiA6yTDiF5zbGmnMQUfzPDKeWt/tKgF3VoUTszchQiWOKebRxQSUsN4d6Rw+l50JZ1bKA0dSpBDIUGhQOanlGyqvfUOFv/0ntm2AabrJmGhGnKhNgpC5jW3Xuy2nY90nNBHL2XHOWFgU8VyRUdqKg1AnatUs34hdqoF0MCbeL+16bl3myfuUTW0zj9wI8lw/nY61mvOuVKqb889M2UPJWtBhPE17JfIVz84s4VsXIphAbmHLpi+MB1IBEgLKROgc7ZWA4hCGkToxbBTko6e3gMju3gYaT6cdmwgE4rB46iQe2OHi9IxASGYCIBhnAukAKYjuWvlrfjKZ8Oyivl8rlybfAsoICrT3c8/Ro1sNFPEF95OSf9ZBuR8vBh11QA1tOBDEnzYlAjv2h/NmLxSW0faBSWtvdJJcTtJe4b09hAJG49EBLOwpiam96s5SfVf0oHWaXabFThpVA8t/4Vvg1G3s82LJaO9pllJl689wNg7zgpW1pmmJxHz4YkhHKfeAvc8J8mEg87iMU5MtEpAtN9ddOQARy2/aZXd5R4ZeC6xwLFIBFyn1MoMv7crbKShEXTq6Bbjq7wi4Cy1W3+p8Bt8SAs8GE/K4rrbG9t1uhkJlg+/EXnmcrOaO4j2iugu0FTqNJARGZRHSz2F23A9QHMO4LBTWa/dOZmnLi1/CEo393l6GmrWJk5I86xeByrZA7EMaNE8TDDXcJicRXAGw53Xz7I+ih256HZ/sCuKNuszZdi+DAONyj5DpapzIvKt/0fd7P918ekTRAvHDxqDrujQiQoo+XZBS1Aa5ntPbR7z49m3lrvsMkKPQ2jsS4TUId9yrLHWZDUkdn8X0InDA+x7fDiLAkpOSZKTfWEwjLb6JK3W5K1bs9801R+IOGXZPHEuR/din3D2PVYGrEEu+2qvDOyT8xwyBW+zVvY3/PPXZc7Lti58zr+YE7flRg1aR/YDe6xvmc8lOR3/UKbM1nqMOWu51908o29OgVApDUkLkeOjnwibiP5ja6liGH749QJma2aFOp/GyutnEc5EI8oR2D1JVysdTJzTREc2FasnyGskovk19Xws2gWhFdGxukdOF925XIpnpDKo8f2wYU= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: 11b50b39-5e96-456c-ce7c-08dd7702a0a8 X-MS-Exchange-CrossTenant-AuthSource: TYCPR01MB10914.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Apr 2025 01:05:32.6901 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: gvwbVhcCJDUXKyWMV/qAT4RBB8W4Vphhbxqt/w1w7XdNgUcCrpvKLVOyu81VSOby7pjaDBR42lWsYP7dS1WU3uIX71J8gzcmh+zKlrTejbfr83VKx6jmN+31KkAH7SjP X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS7PR01MB14942 Signed-off-by: Kuninori Morimoto --- .../dts/renesas/r8a779g3-sparrow-hawk.dts | 98 +++++++++++++++++++ 1 file changed, 98 insertions(+) diff --git a/arch/arm64/boot/dts/renesas/r8a779g3-sparrow-hawk.dts b/arch/arm64/boot/dts/renesas/r8a779g3-sparrow-hawk.dts index b54d45115a85..0a4a9e1f85a5 100644 --- a/arch/arm64/boot/dts/renesas/r8a779g3-sparrow-hawk.dts +++ b/arch/arm64/boot/dts/renesas/r8a779g3-sparrow-hawk.dts @@ -4,6 +4,29 @@ * * Copyright (C) 2025 Marek Vasut */ +/* + * DA7212 Codec settings + * + * for Playback + * > amixer set "Headphone" 40% + * > amixer set "Headphone" on + * > amixer set "Mixout Left DAC Left" on + * > amixer set "Mixout Right DAC Right" on + * + * for Capture (Aux/Mic) + * > amixer set "Aux" on + * > amixer set "Aux" 80% + * > amixer set "Mixin PGA" on + * > amixer set "Mixin PGA" 50% + * > amixer set "ADC" on + * > amixer set "ADC" 80% + * > amixer set "Mixin Left Aux Left" on + * > amixer set "Mixin Right Aux Right" on + * > amixer set "Mic 1" on + * > amixer set "Mic 1" 80% + * > amixer set "Mixin Left Mic 1" on + * > amixer set "Mixin Right Mic 1" on + */ /dts-v1/; #include @@ -150,6 +173,12 @@ vcc_sdhi: regulator-vcc-sdhi { gpios-states = <1>; states = <3300000 0>, <1800000 1>; }; + + /* Page 30 / Audio_Codec */ + sound_card: sound { + compatible = "audio-graph-card2"; + links = <&msiof1_snd>; + }; }; /* Page 22 / Ether_AVB0 */ @@ -341,6 +370,29 @@ i2c0_mux1: i2c@1 { reg = <1>; #address-cells = <1>; #size-cells = <0>; + + /* Page 30 / Audio_Codec */ + codec@1a { + compatible = "dlg,da7212"; + + #sound-dai-cells = <0>; + reg = <0x1a>; + + clocks = <&rcar_sound>; + clock-names = "mclk"; + + VDDA-supply = <®_1p8v>; + VDDMIC-supply = <®_3p3v>; + VDDIO-supply = <®_3p3v>; + + port { + da7212_endpoint: endpoint { + bitclock-master; + frame-master; + remote-endpoint = <&msiof1_snd_endpoint>; + }; + }; + }; }; i2c0_mux2: i2c@2 { @@ -603,6 +655,52 @@ sd_uhs_pins: sd-uhs { function = "mmc"; power-source = <1800>; }; + + /* Page 30 / Audio_Codec */ + msiof1_pins: sound { + groups = "msiof1_clk", "msiof1_sync", "msiof1_txd", "msiof1_rxd"; + function = "msiof1"; + }; + + /* Page 30 / Audio_Codec */ + sound_clk_pins: sound-clk { + groups = "audio_clkin", "audio_clkout"; + function = "audio_clk"; + }; +}; + +&audio_clkin { + clock-frequency = <24576000>; +}; + +/* Page 30 / Audio_Codec */ +&rcar_sound { + pinctrl-0 = <&sound_clk_pins>; + pinctrl-names = "default"; + + /* It is used for ADG output as DA7212_MCLK */ + + /* audio_clkout */ + clock-frequency = <12288000>; /* 48 kHz groups */ + + status = "okay"; +}; + +&msiof1 { + pinctrl-0 = <&msiof1_pins>; + pinctrl-names = "default"; + + status = "okay"; + + /* ignore DT warning */ + /delete-property/#address-cells; + /delete-property/#size-cells; + + msiof1_snd: port { + msiof1_snd_endpoint: endpoint { + remote-endpoint = <&da7212_endpoint>; + }; + }; }; /* Page 31 / FAN */