From nobody Thu Sep 24 16:57:27 2026 Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazon11013049.outbound.protection.outlook.com [40.107.159.49]) (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 8EF1F3A1A21; Tue, 22 Sep 2026 07:33:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.159.49 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790062413; cv=fail; b=k/+79gUPL3U0T/LbgKQvL7VTBV7jxIwZLCgYdFK+CnOOp2p42JdZuXIJPXYg0Me1+9H54sdMqEtcArVbVTSPepIhRpWq6F2uAS1WhU5fx8xCJnMyP1156rPzzABuN2jSokAzIBLeHnvEJ+sS2E/fmHVb6+veCpmXljHmf6eR8BI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790062413; c=relaxed/simple; bh=U2tzVEz0JK08IWbV0s8nIDirr3fkOVae54aP0HVhR4M=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Bth38lXi8Mk0OCqyCvlrArMCDrjLDQvohB2deEC176WYRnH0RFJVPt0AaGHoRoJCmlYMeNK5G7ij5/Fq0Zla7guDE30h3JwVasSHcOF8mb0zwES7VaTbERKm/JSis4ZziafRZnvJ0oUFdoWUXZFNOnQVTMK5zRmZYbGe7c41Brk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=fgmCgpJr; arc=fail smtp.client-ip=40.107.159.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="fgmCgpJr" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=NPcE2JGmuN45OVBGuCEDkxub7wihu4kQzDXFm+M5q/J7rh8CH03Yisap7MHojLA0A1soXxj+nJn2MYre8XfCYDdFLmgOMKW0DcszuDtEun4sADAl3oY9B13lLArxw8uhzNJpV16xg0Qy4k3LguguhC0TkdcdtP4LtfmJcPBl/po+V03vQZi/U+cgSedLxSVzVwcjYy3TLio8YYAAzYjk51R4sZC0/GEu85G+HODk+9Hteqkr102mvngIrPtK/FBhSaDCQicW60uEyGpHy8wn2OUsaCmouORXM1g2I8jM1opU38HwvMdnxx1lz9+c0Z5E15aUcp+bEEN1RZn4v7tVYA== 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=2oJ4yNhSpBeZuELzbBJ0Td1y8pC8lwDln4OtsLAUXW4=; b=IPYAmhn+2GaoLDfILtCVNzD/aBEddzgcsIxbchL0YCO1dT0OPP5JF7b9lX/uaBtgPMo6ObQzbN6F0ezcyBJpnjIpwxfKFz+j8ATI6ghRpxEqUa5Lb95NkrFtScZhp/mRYQB/XnB2wDV9mdJH0kFyPqbMw93X+RjSbJeFsTDdGfidK98Q6lpohI6x4ewLkFk2KamfpJ0lupBwhA513iy+ghRDIVOr5tZEQfIAkBYzAWwqCh4HFM6aaz76V3shQIVqmsd54Aem/YgHM6F+0MVTVaCjDRcd2Eamhi2EnrWhuTFLuF/A4AQ9j+Q72NCco2XUYLCuHdBcKXB0ZRSoyfH/nw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2oJ4yNhSpBeZuELzbBJ0Td1y8pC8lwDln4OtsLAUXW4=; b=fgmCgpJrcW8gHy4dEhFsGHkG/D9Z8/wvygcXo76luE32z4F0twZrPBtvCFv68dvtiUKHitkt/HDoVOCUz98Qc0A6m/qCS4KswkQPfgqfg6+Dudny+ClQrMCkhGKnunJk7bf866nXyer6zOeYdNA/rpZDThCExyMujTmAksOT0Kwzf4qsy4+zLmtFLSYLYREvQsmzAfA2l9JvMOVvZ4kUxqrOtu6J/JusCnnSpbvyejR0KW0bIymmuXMnMrKHo6iknIrkZs9HKygwBwqZ1hQzzvb3Xc+H6hre63I4hzguaNuVbTDbtLt3Q82lF9BljwpbqMMZ90l3Hz/Wg3kac3H2ww== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GV2PR04MB12558.eurprd04.prod.outlook.com (2603:10a6:150:368::10) by MMZPR04MB213195.eurprd04.prod.outlook.com (2603:10a6:190:4f::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.16; Tue, 22 Sep 2026 07:33:15 +0000 Received: from GV2PR04MB12558.eurprd04.prod.outlook.com ([fe80::cd9f:102:ea58:4c49]) by GV2PR04MB12558.eurprd04.prod.outlook.com ([fe80::cd9f:102:ea58:4c49%6]) with mapi id 15.21.0428.015; Tue, 22 Sep 2026 07:33:15 +0000 From: Larisa Grigore To: Larisa Grigore , NXP S32 Linux Team , Alim Akhtar , Avri Altman , Bart Van Assche , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , "James E.J. Bottomley" , "Martin K. Petersen" , Sai Krishna Potthuri , Ajay Neeli , Manivannan Sadhasivam , Pedro Sousa , Hannes Reinicke , Joao Pinto Cc: linux-scsi@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, clizzi@redhat.com, aruizrui@redhat.com, eballetb@redhat.com, echanude@redhat.com Subject: [PATCH v5 01/12] scsi: ufs: dwc: Return a negative error if the link is down Date: Tue, 22 Sep 2026 09:29:58 +0200 Message-ID: <20260922073009.1449688-2-larisa.grigore@oss.nxp.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260922073009.1449688-1-larisa.grigore@oss.nxp.com> References: <20260922073009.1449688-1-larisa.grigore@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AM0PR10CA0017.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:208:17c::27) To GV2PR04MB12558.eurprd04.prod.outlook.com (2603:10a6:150:368::10) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV2PR04MB12558:EE_|MMZPR04MB213195:EE_ X-MS-Office365-Filtering-Correlation-Id: 1e722540-f7d6-42d2-ba47-08df187bc3a8 X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|1800799024|376014|7416014|23010399003|366016|921020|10067099003|56012099006|11063799006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: Z1D6fKMQdyOaHsHxyQsfL4VdO8sp2VA3dh8Y+j+qsDyO9cuZP8v2G/kD5qOaaCMlS3/5W1Our1gsUXR6zopIMO4cnCosMfRj65IXnEDb1xGp/CtQt3sm6hAIDTSInuP9YyyFxAY7XQJuGP3iIcAgS4eHo3FjNNSbL4Zj6eFK/P3ECLxnyhN8fewOGxmcnMUJt9R5r6SVqcguygmA9Fjz5984HtOAjUOhSAZg8ssHwt0cF+bFasP9Pei7eu0ocdRB/is4aGFMWGEUbILMEObcb/WbuIEr7E8zcdGti5jD4S5Pc14zN4Be7eGSXFKiesAD3FR0k+3lscH5O2/sOjVUFXZmXPZV0Els9PrQm3ibzlamHkl7tNlaraiPU89JvMU7cQ7XmPQ7FTzQ6Uj7a03M735jASnv4PNdlclnjtfH83sKLUwAtxQOXdY0lbv9MXRes1HLNCi1VwEW1VLFqv9fUXOXE/Lf4B5sr8zJEXtVvNuWM1OFiWDiNLZHPAEK22q9u7sZo0a5UWGiswpSK8ppQmU+LZU/U3T3Yh2qh5S0QPxRKj1HQUswbH49wu/+m/7YtIXaU1lhBAqJbQo29kb7jdL1as6841vw8E65MlpBq5GezfCv96BluwbRJXjROhuCXBlc/qLY8gbxAETXG++753SV8DT1zKy89mUeyPTIrwllFbdL5Mfn3jpnhzXTZnIuTWy8sDt6HbvL+VFtDaMCPg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR04MB12558.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(1800799024)(376014)(7416014)(23010399003)(366016)(921020)(10067099003)(56012099006)(11063799006)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dTVRdWN3U2FMVTI2azBJSGNvS21qSjE0WjJjUDFENWR1K0p5cVNHVWxPV0U2?= =?utf-8?B?bDVzc2NpdG85aVFFeE5aSEVpT1R1blhaczlOcVlzaTZHL1RlZGJzai9vSnhx?= =?utf-8?B?V2xFdjczWlh4QVlCMklGMFFtcjAyU1RpWnJTK2FpeE9QcUtGRm14TnlEYnh5?= =?utf-8?B?bXBoVjdlL1ZXdkl4KzhjMnlEVVpSbHBSSkdINW5MdHQySWh6MEhIN0JWaUFj?= =?utf-8?B?bHdKclBBNm1hT01jMFJNcGNEb1hsWUhFNkNJaUJpQVJUb01WeEh0dHA2dG9T?= =?utf-8?B?aFk2OWNrR0tlQzRPOG5RMjZkTEVXeTNmUk1RbWhpUXNGWnVEbTByUXpqV2VS?= =?utf-8?B?UzBWNDQrRnpmMEI4dDRpalBURjdmWnljRHBGd080WHRyalpNdnptK29EQ3VJ?= =?utf-8?B?c0xCLzhYc3cyalF2bWxqeFZjTlllSUF2MC9OZUQvTGtVOVRoSXljQ0pDWklp?= =?utf-8?B?R1p5Y1V1NnlmQlJIZ1lZMUdGdTYrbWM2WWUzbWRnenFEM1hkVXZBU0JLdGtP?= =?utf-8?B?dmh3aW9tN05ZUkhJb3R4cnZjcW9nM0YySVVFUHE4RzBGUlJBS3pLU3RUZ3RV?= =?utf-8?B?V2ZqTEZ5aVMzd2UxS2JHSC9xVVBqbExpcTgwK2NzVmkwS2lyUElzNXdiYWtn?= =?utf-8?B?YUU0UnlnanZSOXFGdEgwVVhuaTBRd1B3d2tJU3lhZ3dleGYyZXQxbk1YNCs0?= =?utf-8?B?QUxOQm9NS3VPaUxjNng2TURsejNqYzBQM2paSlk4bUpEVWNoejZRb3VtMHRP?= =?utf-8?B?V1RGYVJQK09vK0xmU1UzbVZmZHlFNjNGNWcwRDlKODRhWDdjMkt4K3RnYXor?= =?utf-8?B?Vld1bFBqY3AvUExIU1VSM0hJQmdWWmVabkVLNmtBenRWaUR5S3ZKQmxrTWM3?= =?utf-8?B?akhrT2JtamNKMVZNak00aWJMQjhSRUlHRzN6RzRRUVJOVE42T1kwV1MyMk1D?= =?utf-8?B?NUhieTNvanp5T2xPeTdKbnhPdEg0ZkE2V1B6V0FrS2cxMmJZK0o1UFN0Q3B0?= =?utf-8?B?RTQrYkFZeldkOHJNWG5VR0RXU2o1Y2dEc2liaW5zcUJNR2NTWDdFZ2Y2SzBu?= =?utf-8?B?aWZBajl1MnA4dk9KVmdXS0hYcWRBL2FoRG9jaWlxSE0yYmt0VDVRUnhCWC8w?= =?utf-8?B?dkduS09zWjJaYjI0NVd4TmlRa1RzYituNVIvMjVUV1p1amltVXNDQk5vaXgz?= =?utf-8?B?Ym12a1dlMTVIb3NNVlZkL3FpbklrYkZDM0NEbnpCMHg3a1J4T2RtNFR5OWUr?= =?utf-8?B?WmxXMXdHc05oVHdNNjRsSzJCaTVxejVEbWF5dnV1TThqTElPa1BWb0JRcy9y?= =?utf-8?B?YWtKamd3STlQTTloUCswQUhuWjZTTzQySzZNc0NKWTZYRHBkM1ZhajgvVm1P?= =?utf-8?B?VWhGcmUwc3BXaUR3VEpLbm9xZXhuNVFFV0MwVWFta3F5MEx3clYyeC9POExH?= =?utf-8?B?L0M4MGt6c2Y4WjNVQnpKdnFSQjJZdkpRUlFkWmNnWnRicVIzVlRvNG1LZk1J?= =?utf-8?B?cE1EamNaNFUxdnBUWUlZaGpqMFRkaU14RmkwMGNoeFljMGJUYUUzY2JPZ2Ro?= =?utf-8?B?THIvVlJaWUN4ZTYyWDBuNVQ5MzRHT0tsbUkrR3BFRmloTzdEcGs3MDVVYkcw?= =?utf-8?B?cG03Qlh0cWN0OTZ4V01sa1FSZnRNL0d0alVlcTB2WTRBRnFTb2hQNlVUbnlC?= =?utf-8?B?cjBsRmFkdHZzeDYrZDFxL216ZnFLUU93K3Z4REJCSUkyVWNYdmJ0c2RNOHps?= =?utf-8?B?WnZVLzM3VnJZdStlU1JFa08ybXh4MmpUcDltbHAvYXF6Tkc1N244RWtxMjNv?= =?utf-8?B?UlMrOTdXTTV0VFo2MUJ2dTlERWozSFd2dkJ6UnNxTTlVUGc1MEdjMUo2OGhT?= =?utf-8?B?OU9jVFlNT0VTT0YzaGs1MmxPRFVpZk1OWHZ2Q0o3K25vOGZLbDZjMmZrUml3?= =?utf-8?B?ZjlKczh5eWxUYzljTW5GZFVocXpNQisvaXRGQTdTcjVUSG82V3RIeE03UnhG?= =?utf-8?B?NWRRZEJ0bndkbE5hTjNtd0p1RUZIbWQrM1RRZTBCZkhFUjc4Z1dySHB4T1Rv?= =?utf-8?B?eGo2dFhEUGJRb1Jhd1VmS3AySkx5N0JwazUrYWhua3h2VnNnYWhxc3lhRTkr?= =?utf-8?B?eGdCSUUydnVpRUtTcm9xTjZrV2gzbEtRQVVVWVAxRCtVTGc4NWloVXhlSHJY?= =?utf-8?B?NTJISjJIQVo5SCtUSTFab2FONHhzMnlzdUNDdkxEMFdkVzFzZ0dyVlgxeEQ3?= =?utf-8?B?SDdOU0lKdlVyekdKdjFmTmdlOVNjNGc1bWFKOGxJRXB6WHVoUVJ1WmZFT1A3?= =?utf-8?B?SFR0SDd5VXVGM0ozbDkvU2Q4dUswZDBHbWNFdHRvSU5UUi9iSnpPUT09?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1e722540-f7d6-42d2-ba47-08df187bc3a8 X-MS-Exchange-CrossTenant-AuthSource: GV2PR04MB12558.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Sep 2026 07:33:15.3548 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: k6Azgu7fb/9mhCXZXzX0txLqVLHNBmS3Fu1/DrG/w9D5pQRuBUI+74pXjHJwM4T3I6vknc1gsP+d34eIx1dJQA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MMZPR04MB213195 Content-Type: text/plain; charset="utf-8" ufshcd_dwc_link_is_up() returns 1 when the UniPro link is not up. The value may propagate through callers that expect failures to be reported as negative errno values. Return -ENOLINK when the link is down and propagate errors returned by ufshcd_dme_get(). Fixes: 4b9ffb5a353b ("ufs: add support for DesignWare Controller") Signed-off-by: Larisa Grigore Reviewed-by: Frank Li --- drivers/ufs/host/ufshcd-dwc.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/ufs/host/ufshcd-dwc.c b/drivers/ufs/host/ufshcd-dwc.c index 21b1cf912dcc..ccf785fce6cc 100644 --- a/drivers/ufs/host/ufshcd-dwc.c +++ b/drivers/ufs/host/ufshcd-dwc.c @@ -48,20 +48,23 @@ static void ufshcd_dwc_program_clk_div(struct ufs_hba *= hba, u32 divider_val) * ufshcd_dwc_link_is_up() - check if link is up. * @hba: private structure pointer * - * Return: 0 on success, non-zero value on failure. + * Return: 0 on success, a negative errno value on failure. */ static int ufshcd_dwc_link_is_up(struct ufs_hba *hba) { int dme_result =3D 0; + int ret; =20 - ufshcd_dme_get(hba, UIC_ARG_MIB(VS_POWERSTATE), &dme_result); + ret =3D ufshcd_dme_get(hba, UIC_ARG_MIB(VS_POWERSTATE), &dme_result); + if (ret) + return ret; =20 if (dme_result =3D=3D UFSHCD_LINK_IS_UP) { ufshcd_set_link_active(hba); return 0; } =20 - return 1; + return -ENOLINK; } =20 /** --=20 2.43.0 From nobody Thu Sep 24 16:57:27 2026 Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11010045.outbound.protection.outlook.com [52.101.84.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 59965377ED7; Tue, 22 Sep 2026 07:33:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.84.45 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790062420; cv=fail; b=caSJ6V8QPkIhExM8Yx9OdAAN49En20QpjbneyRAChOpt8OJtPCkBvOywWv0KveBmRcDd7UB2qoAZA0pJasH2i/5cu5AeLoup7SSmDvqDva5GeliL8zWcArlhTg+jDuAPG5Nb7InV2mZKnjC/XIXc8RycWOHdt3ikXo8Yq/T8pHw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790062420; c=relaxed/simple; bh=b8yFhbe5RmU8hRdUh1VkilrIemV5CvKP0zNsavASvBI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=UfQBBqo9ge1FJtko/Zqd64E0UH3TGhAoPqOg4lJ8T6Hf79NNn7EwmXDZIPPF/qOJ5cc1KfWvgtZzfYiJO6bFhnKu5mLkRj5BjxjclnwheekA/+iJWN9oKFwCxVzgtMnwfoHWcF6xnaZb9CoRuai55+ZkwUAW+cKYfK+b6LW7N7g= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=t8l0Bixu; arc=fail smtp.client-ip=52.101.84.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="t8l0Bixu" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=m7/BXSNaqiIddNoCZq67LH5Eivdh3rsnOjYJSNLv5kUUd1XevKpjEe5InjRZLpoiIoaEbA7D3UuoRdIyiRHb698msFdbFs80q198wgMBZSOdd8aHFd7PczX9nbh4RbRgyFbIh+YTSl1FYKdcnnlBl90JG36vJRUfWbG1/QKbRNiZ/N2pQtcVNe3xbkucyJ1R2Pi8RDkqoe0gNbMioBWaqQNmf2tW8+Qlb33YyC40QL/+eYZ8sPCkz1IrIVjKWaxWtfxPv0MyM54GNALTSIiFH7DkHwXKj3/1UPstFszyf/gMuG5zbJ1obkc5j7TSPZ+EEVqWwc2TH8sALMBRnK7nDQ== 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=K2W7h+GjXafG0ENMAMi9o0mKcMCg1+66X3WswR1szRQ=; b=xUVPciFv3JxMD3Z+ddrMx4h6tmxRht+11De1076M5uo792tKKCXxj3w094qglUUvF+LfaeY3cC0DlnDpQi9orwJws8NtiVFKXrXwzgaOsePf+113/5SAlXKKTZWSobpGTN2gs7eux3nEwT+zafMX7KngB1r4girxfy8XRswIS5NduI8wXYflmGhQQ2I4N8ed72FX5NItYg15S4KoKoTtvy8z58Jky5QsrTgLQoCbwSdR86mTIfHGEd4mpiPu5vSjCpGR4vOxL+lArARUBA4b1WWMI2r0txTcY2H2h7tcRRvTXKy66Na83L3NHXRZVjNnY+c4ZDmoZssm8bj7CdHZ+g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=K2W7h+GjXafG0ENMAMi9o0mKcMCg1+66X3WswR1szRQ=; b=t8l0BixuFeFrHpbbK46ReokrCNizD3Tnrmi4tHJET0OCC9TsnYHXjs/6UmlkOegQC2c6MOnbSGne6wGPSQrvf9mpbLThNjhKyTMjDJ3VIEVa8BqUhn7EAKar4q7qPALrRpNTHLFJg/X1a8Ptf2Q5NOM7CO0c/Y/IUnInJY+GHflXzzuWYrDWvprUlMgE66xebNE9qC/sliJtnrymCsPHC+jQIBEFrUhvGdNKJRszjN1lgQkv3sjRfmLZhF+8Ty/Y6Z72He3RVWDCOQ3tlhvg5eM7a/7IhFNBpDR5xVSAWFTf05lSGoSbE3n9esZcpkFjgyRMckPjMpmL4e4HziH15g== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GV2PR04MB12558.eurprd04.prod.outlook.com (2603:10a6:150:368::10) by MMZPR04MB213195.eurprd04.prod.outlook.com (2603:10a6:190:4f::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.16; Tue, 22 Sep 2026 07:33:17 +0000 Received: from GV2PR04MB12558.eurprd04.prod.outlook.com ([fe80::cd9f:102:ea58:4c49]) by GV2PR04MB12558.eurprd04.prod.outlook.com ([fe80::cd9f:102:ea58:4c49%6]) with mapi id 15.21.0428.015; Tue, 22 Sep 2026 07:33:17 +0000 From: Larisa Grigore To: Larisa Grigore , NXP S32 Linux Team , Alim Akhtar , Avri Altman , Bart Van Assche , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , "James E.J. Bottomley" , "Martin K. Petersen" , Sai Krishna Potthuri , Ajay Neeli , Manivannan Sadhasivam , Pedro Sousa , Hannes Reinicke , Joao Pinto Cc: linux-scsi@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, clizzi@redhat.com, aruizrui@redhat.com, eballetb@redhat.com, echanude@redhat.com Subject: [PATCH v5 02/12] ufs: unipro: Move Tx/Rx FSM state definitions to unipro.h Date: Tue, 22 Sep 2026 09:29:59 +0200 Message-ID: <20260922073009.1449688-3-larisa.grigore@oss.nxp.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260922073009.1449688-1-larisa.grigore@oss.nxp.com> References: <20260922073009.1449688-1-larisa.grigore@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AM0PR10CA0009.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:208:17c::19) To GV2PR04MB12558.eurprd04.prod.outlook.com (2603:10a6:150:368::10) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV2PR04MB12558:EE_|MMZPR04MB213195:EE_ X-MS-Office365-Filtering-Correlation-Id: 7edc0ba5-aea5-454d-2787-08df187bc4bc X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|1800799024|376014|7416014|23010399003|366016|921020|6133799003|10067099003|56012099006|11063799006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: I8I4kWj7ibP8AuYOJwDl1NdBoPeCmTfdepXs1UFOw1fHQMkls7MWH5wkKULSOrRShFd2wLsD9E13YDRxItVbXRcwyscjlnpiLeQtT+2/FBClG8q0PZe11dyEaHz7tVMYHX3vS8wzxE4xfQugZg6bDkmpdM9x1pUb1O8iT9sU/OEtfGfGYi03vOXwL8rQiIfRm7dywKUaLadu4VJ9Zxhj/U5Ox9dTa0inKj9mqHFHLz3QbyT4qUvioTPjS38Of9Z7fdVPTTFMfHTvIE2S7LGel0Q1+O+ZE420IIK/8Bv5DNi3L15tSsgGXV1abBRrT4LiEZTvmtQSnuLoHzeFnjG+nAAL0ciLiwSGf/P13UTBxaQ+h0ET+/TyTnsMSopfPU0YbT7mm9Gw1jVv0xxTEjcn+Zg4gD9Sj6YIZ9Emq6SgvwlqlzP+r26WUL5pj5wlys9PVg7d1z+jNR1Y8NGGNr9ufHs1MxF3CO2nbhXKxh2kPr4MKO7vdgdCydNdmRvfrWHx0wd09Luj3gSRAgwJHUZFDCVKuDaun99gJVk+2npS5R7bwQy6A62NUePLiyo1pQn1HN1KFM/49S3rP4EdUCg+qNTS1BZ9bzCNdByoe/xhxIl8O/U8fbJWNqTnc3TKudLkN4Igg2sO6zjeT4WtIIJcfDJPcLzxs463MZ0pw9V1Cbgxfrds8p6kUTE+xfpkc/4bKcl5LEJh9VQi0jcxs8koYQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR04MB12558.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(1800799024)(376014)(7416014)(23010399003)(366016)(921020)(6133799003)(10067099003)(56012099006)(11063799006)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?NWZ4Mi9jTXpDSG41TWxkQlViYmJ3TU0zUGV0N2tINm1yNWNkSjlPdkxRb2x3?= =?utf-8?B?NTUyWWx2MWVIZ3BGQ3ZmcytFaUZxcloxT0k3OXVnaXBDVlBSU2NUUFp0a2lw?= =?utf-8?B?YnJHNXJvZVFjZkxOaDYwWm1LMG1ZMXBoVFFKVko4SXlKUUdPcmc1dmtkUk1s?= =?utf-8?B?NHl2T3NQVHZJYS90SU0yd2pFcUNwTmFiYld6TEkyeks1Y0RUM3kvV3hjVXR4?= =?utf-8?B?RUpXUVVTMFo5SjZxZGFiWVVJSEo4Qkh5WXpjdzc1MXRnY0llREkxcm9VNGxZ?= =?utf-8?B?a0hJM3BzNGRNMS9MYmdLVU5weFYzQk1XZWZGdnl6bGhFbVpNeGF5OXlGVWt4?= =?utf-8?B?SEFEMjdwbXRHS0VMa09ZdG03cVRuYkhvT1dydVAwZEhwVXhVc0gvQk5aZVdu?= =?utf-8?B?UUJvQys5TlFRQ3VTVE5ZaU1kZElHa1Bxdis3MGlmazhwVmhTU3A4YU1GSWY3?= =?utf-8?B?ZnA0dXlLSnI1WEZuTmo0cit1UUtDQnRjRWtRa1F6NTduSWRqYlZ4MUtkTW10?= =?utf-8?B?M0ZSZ1o2TWNrd28vWUptMjZod2ZLSW5XTGp3MWh0VVlKd3ZQczQ1ZVRhdEpt?= =?utf-8?B?c1lwakgvRkd5b21rdEJVUm4rcG1GSlhJdlBwL0x4QVlvcWxsWWtMaXE5cnNw?= =?utf-8?B?SnVUcUxwZWI1RElCZ0hUVHJUYWxZMGxrWjcvUFg1TU9CdFhNNXB5NVBBZHdk?= =?utf-8?B?dUtHS3c3Ky85MEhlNjZncTgvU01kWEdVVWJEdjJ4TU9mQndFUGt5MTlPZlV3?= =?utf-8?B?cHpMN3V3K3VadXFPNkxCLzRxdEN3d3gzN0tDR0xjaEcrOXY3M1IraDA1bVVI?= =?utf-8?B?YWk5YjNKRlRVZ21hcCttNTZkUTk1UHJlNmRBVkJxek1Xb0V4QUNGWnNJYTNG?= =?utf-8?B?WHJpYnZMeW94UkdhMmJ1UUw4VzNvMXlRQ1B4SVdFMDUydDV3djVldSt1SjBK?= =?utf-8?B?RmdUaXRDTTJjUkovZk5oekZoRG9LdGpYeFVJWGtkNzlEejRIRkZCYlI5SU42?= =?utf-8?B?N0NVbllxTEZjUEFocWRJV3Z5WmRtVkdSdVdYWHdKeTluUjJLbUNYSzNrTnNy?= =?utf-8?B?eXR5ZFlQdEVWQm5qTGRLay9tTjdLYUFrUGtWK1Qxdy9PbE53YjBlWjFiSVFu?= =?utf-8?B?TXhBNWJHcUZqQjk3NTFBclhsdGFOMFVoZG9ldFZlOUNOMHcrT2YrVnBpUEQy?= =?utf-8?B?TXdKRFBNS0hoVVNyYllJVHgwaEkwNlFTZmJJMWdUeGhJaS9McjRWOXliNXZ6?= =?utf-8?B?YU1PdlMveTdRYnlwOFNsbVZ4c1JFVStrWjdXNlZsaHcrWFhwTzkzMmVoaGFD?= =?utf-8?B?RmFBclc2Y3ZFKzluTTZSTGFzdU1zY3ora21DR0Y4NEFCV1BLa3ppNzdkSERY?= =?utf-8?B?UXJhVGsrQThtRHlaaExYOHlscHBEZzBLMEFvNGxqRmxGejkxamtIZzFOMU1V?= =?utf-8?B?UklqclByQllmN01qeXBwZFhUcnVFSFBSZGVRMlNLTFR3ZVdOWXVKQmowUXZL?= =?utf-8?B?MzFjZ25GRUhoMUhxNHFiemdDZlFQS0JwZFpFUUx5M1FBbGRBa2dwWmtGWnFT?= =?utf-8?B?SkM1Ymx0NGZXZU9lamh5d0gwTEh5YWhSZ0JyTEtaL3l5Si9MYjFoU3MzVUJI?= =?utf-8?B?TnZtL1FScHhPN09SNGJZZGl1UmNzZUE5bldEZTd0bnI3TFUrTmpBRkt1djkx?= =?utf-8?B?c3VNR2pBcVFOQUV1eUNiRjVDY1NiTzRiQUpuQXc4U29vam1XR21hNmc5VlZS?= =?utf-8?B?SU1CdytOU2RDblliVS9GcWJnbjhHUWh0RnQrQXdYSlNCSXdSOW0zZGt5SjZG?= =?utf-8?B?eDltQVBCZit5ZXp4WjF6aDcxeVpBcWVoQ3BxcmtlOXV2YmQ3RGpKVXdOc3ox?= =?utf-8?B?Si9qY3oxQ2hqU05aZ3lKcS80Sjd2TFRXTmFDaTB2b0RtNTFGNnBEcVBpL05D?= =?utf-8?B?RjNhdjJ4R1F3OW1BS3ZCQUtIaVdJb1JjODV6ckRsQ0I5bkExdWtHYjEwYngw?= =?utf-8?B?VzBUYzhVNnJvMURFV3hTMmJ2K0FWZThZOXJmYkJaeVZ4eUk4MG9rcEpiWUhJ?= =?utf-8?B?SnE0ck1HK2MrblluS3p0aXZHNnYyWklnUFBWMDlDcWxjc3R5dkdFWGMxTjB2?= =?utf-8?B?Zk9ISXZST2JONHRQTVp1T3oyRjllc2JLbGhoci9hTlBKZ1NuM0ZvemF2MTJy?= =?utf-8?B?ZGZaQmlmem4zQ1VPMDloeFJjbk5pRHB0dWc2cDBtMUsxeUFPWi9TejUvVHVN?= =?utf-8?B?akk4S0pjNWFqemg5SXJpa3VuRk5Kd2hORmFnUVZXeEg4ZXNHZmluc21BNkx3?= =?utf-8?B?dlN4UkVPTXJPbVhTRDBYNEp3c0c2WU1mQUV4ZFlWSS8zaGd6K2UxUT09?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7edc0ba5-aea5-454d-2787-08df187bc4bc X-MS-Exchange-CrossTenant-AuthSource: GV2PR04MB12558.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Sep 2026 07:33:17.1411 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: dzLgWPz8Sne1S6mrXaH6NabBdoOg8DzfTg8kLNP3mRHMUxNDEO6GioPn3tsiFtKqja3V8anZFZDErtbtfqv12A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MMZPR04MB213195 Content-Type: text/plain; charset="utf-8" Move the Tx/Rx FSM state definitions from ufshcd-dwc.h to include/ufs/unipro.h. These state values are UniPro/M-PHY related and are not specific to the DesignWare UFS host controller implementation, so unipro.h is a more appropriate location for sharing them. As part of this move, drop the driver-private TX_FSM_HIBERN8 define in ufs-hisi and ufs-qcom and repoint their Hibern8 checks at the shared TX_STATE_HIBERN8 enum constant. This is a no-op change: TX_FSM_HIBERN8 was 0x1 and TX_STATE_HIBERN8 is 1, so the compared values are identical. This also prepares for using these definitions in a subsequent commit. Signed-off-by: Larisa Grigore Reviewed-by: Frank Li --- drivers/ufs/host/ufs-hisi.c | 8 ++++---- drivers/ufs/host/ufs-hisi.h | 1 - drivers/ufs/host/ufs-qcom.c | 4 ++-- drivers/ufs/host/ufs-qcom.h | 1 - drivers/ufs/host/ufshcd-dwc.h | 19 ------------------- include/ufs/unipro.h | 20 ++++++++++++++++++++ 6 files changed, 26 insertions(+), 27 deletions(-) diff --git a/drivers/ufs/host/ufs-hisi.c b/drivers/ufs/host/ufs-hisi.c index 993e20ac211d..2d214ce9620e 100644 --- a/drivers/ufs/host/ufs-hisi.c +++ b/drivers/ufs/host/ufs-hisi.c @@ -34,8 +34,8 @@ static int ufs_hisi_check_hibern8(struct ufs_hba *hba) &tx_fsm_val_0); err |=3D ufshcd_dme_get(hba, UIC_ARG_MIB_SEL(MPHY_TX_FSM_STATE, 1), &tx_fsm_val_1); - if (err || (tx_fsm_val_0 =3D=3D TX_FSM_HIBERN8 && - tx_fsm_val_1 =3D=3D TX_FSM_HIBERN8)) + if (err || (tx_fsm_val_0 =3D=3D TX_STATE_HIBERN8 && + tx_fsm_val_1 =3D=3D TX_STATE_HIBERN8)) break; =20 /* sleep for max. 200us */ @@ -56,8 +56,8 @@ static int ufs_hisi_check_hibern8(struct ufs_hba *hba) if (err) { dev_err(hba->dev, "%s: unable to get TX_FSM_STATE, err %d\n", __func__, err); - } else if (tx_fsm_val_0 !=3D TX_FSM_HIBERN8 || - tx_fsm_val_1 !=3D TX_FSM_HIBERN8) { + } else if (tx_fsm_val_0 !=3D TX_STATE_HIBERN8 || + tx_fsm_val_1 !=3D TX_STATE_HIBERN8) { err =3D -1; dev_err(hba->dev, "%s: invalid TX_FSM_STATE, lane0 =3D %d, lane1 =3D %d\= n", __func__, tx_fsm_val_0, tx_fsm_val_1); diff --git a/drivers/ufs/host/ufs-hisi.h b/drivers/ufs/host/ufs-hisi.h index 5a90c0f4e90c..6af6a268458d 100644 --- a/drivers/ufs/host/ufs-hisi.h +++ b/drivers/ufs/host/ufs-hisi.h @@ -43,7 +43,6 @@ * M-TX Configuration Attributes for Hixxxx */ #define MPHY_TX_FSM_STATE 0x41 -#define TX_FSM_HIBERN8 0x1 =20 /* * Hixxxx UFS HC specific Registers diff --git a/drivers/ufs/host/ufs-qcom.c b/drivers/ufs/host/ufs-qcom.c index 954be9343f42..38897d01fde2 100644 --- a/drivers/ufs/host/ufs-qcom.c +++ b/drivers/ufs/host/ufs-qcom.c @@ -393,7 +393,7 @@ static int ufs_qcom_check_hibern8(struct ufs_hba *hba) UIC_ARG_MIB_SEL(MPHY_TX_FSM_STATE, UIC_ARG_MPHY_TX_GEN_SEL_INDEX(0)), &tx_fsm_val); - if (err || tx_fsm_val =3D=3D TX_FSM_HIBERN8) + if (err || tx_fsm_val =3D=3D TX_STATE_HIBERN8) break; =20 /* sleep for max. 200us */ @@ -413,7 +413,7 @@ static int ufs_qcom_check_hibern8(struct ufs_hba *hba) if (err) { dev_err(hba->dev, "%s: unable to get TX_FSM_STATE, err %d\n", __func__, err); - } else if (tx_fsm_val !=3D TX_FSM_HIBERN8) { + } else if (tx_fsm_val !=3D TX_STATE_HIBERN8) { err =3D tx_fsm_val; dev_err(hba->dev, "%s: invalid TX_FSM_STATE =3D %d\n", __func__, err); diff --git a/drivers/ufs/host/ufs-qcom.h b/drivers/ufs/host/ufs-qcom.h index a5ad5ce44a19..3c6cb2281af0 100644 --- a/drivers/ufs/host/ufs-qcom.h +++ b/drivers/ufs/host/ufs-qcom.h @@ -11,7 +11,6 @@ #include =20 #define MPHY_TX_FSM_STATE 0x41 -#define TX_FSM_HIBERN8 0x1 #define HBRN8_POLL_TOUT_MS 100 #define DEFAULT_CLK_RATE_HZ 1000000 #define MAX_SUPP_MAC 64 diff --git a/drivers/ufs/host/ufshcd-dwc.h b/drivers/ufs/host/ufshcd-dwc.h index c618bb914904..a5e40e7604a1 100644 --- a/drivers/ufs/host/ufshcd-dwc.h +++ b/drivers/ufs/host/ufshcd-dwc.h @@ -39,25 +39,6 @@ #define RX_AFE_CTLE_IDAC(n) (0x4001 + ((n) * 0x100)) #define FW_CALIB_CCFG(n) (0x404D + ((n) * 0x100)) =20 -/* Tx/Rx FSM state */ -enum rx_fsm_state { - RX_STATE_DISABLED =3D 0, - RX_STATE_HIBERN8 =3D 1, - RX_STATE_SLEEP =3D 2, - RX_STATE_STALL =3D 3, - RX_STATE_LSBURST =3D 4, - RX_STATE_HSBURST =3D 5, -}; - -enum tx_fsm_state { - TX_STATE_DISABLED =3D 0, - TX_STATE_HIBERN8 =3D 1, - TX_STATE_SLEEP =3D 2, - TX_STATE_STALL =3D 3, - TX_STATE_LSBURST =3D 4, - TX_STATE_HSBURST =3D 5, -}; - struct ufshcd_dme_attr_val { u32 attr_sel; u32 mib_val; diff --git a/include/ufs/unipro.h b/include/ufs/unipro.h index 9c168703b104..e0f490e11c7f 100644 --- a/include/ufs/unipro.h +++ b/include/ufs/unipro.h @@ -466,4 +466,24 @@ enum { CPORT_CONNECTED, }; =20 +/* RX_FSM_State encoding, MIPI M-PHY v6.0 Table 50 (M-RX Status Attributes= ) */ +enum ufs_rx_fsm_state { + RX_STATE_DISABLED =3D 0, + RX_STATE_HIBERN8 =3D 1, + RX_STATE_SLEEP =3D 2, + RX_STATE_STALL =3D 3, + RX_STATE_LSBURST =3D 4, + RX_STATE_HSBURST =3D 5, +}; + +/* TX_FSM_State encoding, MIPI M-PHY v6.0 Table 47 (M-TX Status Attributes= ) */ +enum ufs_tx_fsm_state { + TX_STATE_DISABLED =3D 0, + TX_STATE_HIBERN8 =3D 1, + TX_STATE_SLEEP =3D 2, + TX_STATE_STALL =3D 3, + TX_STATE_LSBURST =3D 4, + TX_STATE_HSBURST =3D 5, +}; + #endif /* _UNIPRO_H_ */ --=20 2.43.0 From nobody Thu Sep 24 16:57:27 2026 Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazon11013049.outbound.protection.outlook.com [40.107.159.49]) (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 63A353A5433; Tue, 22 Sep 2026 07:33:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.159.49 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790062417; cv=fail; b=sWNV7NIUeTMLYAX/1nwkKEzTEwXPKyonZaUk2tLuWVOdoheMtjfuJhBm1OcIQUSadLhl6cvMM3gAKSCczc3te0kxrNvrwcA2vDcU288bB8SGx2kYavrtYT3F2lX0rpRe51J5od+MK+1GJP/kyDpHLyn3arxC2yAj0hDtF7ZARyQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790062417; c=relaxed/simple; bh=Gc1TxaOrHN222id8IhR5snYb5IiAsyn5XSCkLEPlpak=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=igCwCNrJmh0/Jbk27vHdumisqmDAYxdNJpKMakVEg7h5L3JLrRJiKvkmnB3GYS9oUEB2yfK1UF9zQrn1eSXyZMdDLuq7gpFcijjXOJRpYm7z5pNvu7AldqYp0bNQO+o12+PKLGQeXbPDPcyGdOgINgu2aDeQYx2qE3+IxJ8FY+c= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=Dgrtbft9; arc=fail smtp.client-ip=40.107.159.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="Dgrtbft9" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=XUqWui2sUj4KLegw+dYW/NSvkfNvKgz4gi8kJoDSAj1vsDCZmzG9Z6PfsQyl7bTReZqA3B29+qkPU1iMoMUb463JZk7cgCO78sqfy2186DKUBpYVdpiCCVnbh4J5jXbfJ01qwLdSKz35g/07GJUZgFhWSCK9rEUfq+i4whgbDZBVdatRgglQx7zCm6ICV+fDZy1H8raSovHkcQIwC7HF5t/USzKe3X812CMrL3l35czyV+0+U0nZdELY/rKc/CSyPwVUfDZHDKdFBJO66tEAmMsZfuWAyaiNcsTAIJKxUyU0rddYtMJd5pdkc4Fj6hJfcUlywYQZftgwzTLjW/RjSg== 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=jU9MXlLnmGKkDOUO394eSJQ0G0ZYr9aiRiTJSZpMkM8=; b=I1k7IjuIGO321cpiqGzfcgbclvGUwB7XZpaCgkgMC3XgVvNQj9SagZRwMF/KtggaGJJ46gUkI29Oh19SFthsZQhbD6HCrxI7IVpMuHWCV3MBpJ4Hh2WA+Wye+EwrrTaLL5MUEl4M3E3U8v9q+HCSM1xBjGlpf1mgasWJDq+kdENf/hPDXbZdCTH2uqoIW9Xl6JC1P2RqGKmbNe+vTp7CSALSLdnFiZHtDltXwpd3FjF/BAU9rcee48b0wgiC5kwz0JG/JkZ2TYYdQyraiVd9YASkiQtyKApGjkjSyJ1TlQryrUMxB+BVG6xzO4AMhDCRLgFnez9JKRKoHQQDthYxEg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jU9MXlLnmGKkDOUO394eSJQ0G0ZYr9aiRiTJSZpMkM8=; b=Dgrtbft9fhBglFsizcZ0fHf8+fPTYZeM1mqgayR49QWkxdN5Jv9SELj1FuUAVGjgx6GCln+1nxfi03OOnAlBDMpk5HfjMKgal0xs+K083/CcNJWjjj5dnrU4Kj4QIUaBTBX4dSwWnC7I7WzI0DwqmY5jxFFMMoJb0QWpKhRaCv02jpT1QNyyW7Ohq1ZOBDoHDftkU9zA+DbGj4F05ewDjvZJJGvGJAdNOQFjCtKtJZ5vN0LaOLpJmz7wRitwzJnzVUgeLXDawc7uwBfx8NlCYvDYSUzdu7lqemi/kcAYRIwzXe3opVvemq14TDi5L8wdTX0rn8NPUdqwhNQm0vX2Ow== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GV2PR04MB12558.eurprd04.prod.outlook.com (2603:10a6:150:368::10) by MMZPR04MB213195.eurprd04.prod.outlook.com (2603:10a6:190:4f::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.16; Tue, 22 Sep 2026 07:33:19 +0000 Received: from GV2PR04MB12558.eurprd04.prod.outlook.com ([fe80::cd9f:102:ea58:4c49]) by GV2PR04MB12558.eurprd04.prod.outlook.com ([fe80::cd9f:102:ea58:4c49%6]) with mapi id 15.21.0428.015; Tue, 22 Sep 2026 07:33:19 +0000 From: Larisa Grigore To: Larisa Grigore , NXP S32 Linux Team , Alim Akhtar , Avri Altman , Bart Van Assche , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , "James E.J. Bottomley" , "Martin K. Petersen" , Sai Krishna Potthuri , Ajay Neeli , Manivannan Sadhasivam , Pedro Sousa , Hannes Reinicke , Joao Pinto Cc: linux-scsi@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, clizzi@redhat.com, aruizrui@redhat.com, eballetb@redhat.com, echanude@redhat.com Subject: [PATCH v5 03/12] ufs: unipro: Add TX/RX FSM state attributes Date: Tue, 22 Sep 2026 09:30:00 +0200 Message-ID: <20260922073009.1449688-4-larisa.grigore@oss.nxp.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260922073009.1449688-1-larisa.grigore@oss.nxp.com> References: <20260922073009.1449688-1-larisa.grigore@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AM0PR10CA0001.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:208:17c::11) To GV2PR04MB12558.eurprd04.prod.outlook.com (2603:10a6:150:368::10) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV2PR04MB12558:EE_|MMZPR04MB213195:EE_ X-MS-Office365-Filtering-Correlation-Id: cb4d34ed-27d6-482c-a118-08df187bc5e8 X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|1800799024|376014|7416014|23010399003|366016|921020|6133799003|10067099003|56012099006|11063799006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: woBCBcztCGAh5xvU8vuIh08aBRWv43Da3t/iDQ4m3P1t0048ZHnt4dlOZmG05vteCAqfbOf2rSZzcuac6vnQRs66DrptGNSji02/u8f0UQXnOnEdrusv3set29Zf9UDotQloxIqd7A+ZcroIJWGzVadF5GjTWglKYpD8Kta4XlpZY4vWEXuQdU+kxh6lufnRLZpOC24zipc/MNaHdfAwWikzmEZVp7xyR292l8dhjyLQGh9RG0DXGkvRUL3ixqefUi2yk1fHwpHK3O0bi6jk2o5Duv0kRxeORA3HEz+xrlfoYHdw/JOKUnMMyJcal1iB/pfeihyhsaR96MOZ8T8pSxh+iqt6DCCWqO4PRqFg5R7rOHFZmAvMd6y6p6F5rOr4yfEGlDaN+Skp9yA6k9V5ih1Xx8uBBy+cbrn9u1RstRCAAjQgqx/Vnns8CRcP3rFGeHuoIWkkUK92WSmkvmoxqPHsmZ9JD6bd9JqwLFGHJv/Y5fuv7GmHWBXl3zuwFLwCWO5ZgqHJKPN15qe0PQwDx33SBerNTuFCNUYQARugIXoU0ODrcRB6Slx+H0uwGnCHDAuzgs9B4RgpijTdS/ny9PF3a1RDolHWFCfjlNyuElOH8WIWJvdT4wEOlOKTBMcPWGBGzcelnbXKnfmxBKUQp8Nv71rfbzzJ/o5uS2wg9d3sg1WTw/i9y2T5oQbRaHq86G2nSHddLpKlx/Zlub9kPw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR04MB12558.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(1800799024)(376014)(7416014)(23010399003)(366016)(921020)(6133799003)(10067099003)(56012099006)(11063799006)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZUNmbHoyRis2d1JkUkFmWEVyTWtrV1A2ZDFBSEZxY3NLYXQrNyswYW5sNnFN?= =?utf-8?B?Z0NhcXY2bENpOTRQOW9pbFhpblFXblczT09jYnBNVXpxb3F4bUhEdzV2czhP?= =?utf-8?B?WDdWbVJEaVAwb3RxQXBNaW8xQXlaMjhwSnRUSTBCQXhHdWhoUUdNKzFjbFo3?= =?utf-8?B?SDNHUVhoYWtlSGNnd3dYQnFNVFVaSm9PZnh1d2Z3eWJBRlJBMXZsMDFiajRp?= =?utf-8?B?R0JqNTFvWktNeE9RYmgxVjI0NkJZd2Nvano0M3A1M29oNEg1WXE2cklaV21J?= =?utf-8?B?MFB0MUpHd1NBTHdhSFdQNUNHb1FYZGhRN0lVdHVGREM2RW1LZmZGdnE3UnA1?= =?utf-8?B?TGEzL1YrMjFKR2J6NHF4VkN6UFR6eXlnZzl5MkJBVnhMVXNRS3hjc296VHVV?= =?utf-8?B?U3pUWFQvc25hSHM1OUY1VWRIcTBDSFJab2hoTkFjVFdqV0hQRzlWdWFTNzBM?= =?utf-8?B?Y1JUdlRNTkJDQUdOclRrL0tDWmptWkI2ek9xOWVFRFNHVmpGYXNGVVpyaWF5?= =?utf-8?B?S0t1UnNHeXNlUVB1OVVLa0cwYnNJZGdEZng5ZGtoRVdYWS9VNWxCVUJhdjd3?= =?utf-8?B?cEVPWCt3b2h1bkxKUUhIeHNIU1JLZG1vY3dUQ1NYSy9oSHIzT2FEd1doNGpu?= =?utf-8?B?bC9wK3pWSmo4VUJ2c1FZYUt5TEQzeW42ZFVYYW50OEtxVk9EWnlVcUxCMnZT?= =?utf-8?B?RDdIZ2dFZVFJa25acXlKdGN3Ny9ZRTZXMUtPTDQxNEp2Z0RSZC9rLytVbWpH?= =?utf-8?B?SGRwd1I0Z1dWMVN6VkZiL04zUmRrMzVhSnB3U1VvZ3BFZkVveXdEYldka2F1?= =?utf-8?B?c1F6ckU5MCtuamhuYnNna0VPRXZsVXpubmJuaFBVc3JuWXZ1RHh6TWc1WEI1?= =?utf-8?B?Rit1bHNSVDg0TXlYaXRJZzVSZXFaODlXWG9BbnVPY3JEdHZPOGVseURGUGow?= =?utf-8?B?M0xIVTRDWC8wYmxpRGZFSUROcHhYNllnNFVnem1KNGwveEFVVGJLcDVOQ2t0?= =?utf-8?B?OG1NKzNUVlJMY3lYbm1VSlMra3JRNXhPdzNxRHgwNXN1OTJLcmFCWFJ5VVI1?= =?utf-8?B?ZlBoUkN2QmZuL2Zkc0pMd1U4c0dXeVZ0eTdIUDJGTTFlTGJYbStlZUZNQ01j?= =?utf-8?B?b0dVMzlsV0dUSDBJcTVNLzM5bTRPVjBRTU9JOVAyRHo5SXN5RUk2TmZhZytT?= =?utf-8?B?bVpCb29WdEVuUU9VWHNqd1UrMHczazI4azhuZ3gxUGFWcnVHNWlrU3MzK2Q1?= =?utf-8?B?RzJiYVhQeXVsZ3BlajRPRUFaeElWWk9EZXFYNTZTYjVQQm01M045b0I1TFV6?= =?utf-8?B?QVJ1OTF0UHJqSDg4eG5WOVd4cDZzYUlrNVBoeWlxY2pRMDhlcGhMaHJ0eGNm?= =?utf-8?B?WFlWaWZPVjFtbDQ2YXpVV21BWEVZMHVydVBjeDhNa0I1VkdMTHUyNi9NWUNu?= =?utf-8?B?OVEyMG8vWmxNQmFpc2E1QlIyVVlkUHgxNTFDTENlTFFGSXRXbllZNFpjTTRS?= =?utf-8?B?YVo5NUdRZjVrMXZnc0Q5K01OaGU1RXJPdlZFc29TOUhlRlNNWDZwVVR3dTdG?= =?utf-8?B?alE5QTVvNFdVTXMvcjZURitITXhzWUo4WkRwcVVFbW5FcTlWSVBidXh0Yng4?= =?utf-8?B?cnZyQmZwQ09GRERVTW1zZVdPOFk4UlY3VVNOR2hEdVNVcXZPeUY2UnlLeDgx?= =?utf-8?B?ME9IdUVHK0RsNDAyV01sdVhxUmVZTkpadU5WSjh1MmVOb3E5a1Y0eEc3RFFC?= =?utf-8?B?T3F5MlZwa1d2aE9zVTdEa3g0ekp5U2hDTlNmN2tkdXNBb1BlWE50Z3oyZWdZ?= =?utf-8?B?WE43RDFWRHY3N0tHZHRSTzhXVFVxMUFoeis4S2dIL0s3ZjB2Y3ZQL2NxWGlZ?= =?utf-8?B?S2ozUVlMeTNRQXViZlZ5UWxzbXhTRmMxSCtJVC9senJkVGxNUHJNN1hyL2dq?= =?utf-8?B?dzdzVVZtR0hIemlKd21uMkM3UGxpWEw4eVFibGcwWlVOR2lEelk2NzZjckNk?= =?utf-8?B?bDB5WjV0cTRPbnIrcEJ6Z2R4Z1Z0b1ZON0ZNd0wyekhKS0ViOHQveDhwS3Jn?= =?utf-8?B?QzhObGtVYlA4UE1MSDlSQ1RxS1YyWUdzVEg2QW1mZ21xQzR6clVsdE5RL0pB?= =?utf-8?B?WUd3TDZzT0gwZGFBZ0F5eG56S2NicmtoYjRsVElyNDEweE9XUUI5OENxUTlS?= =?utf-8?B?YXdsRkJpYnZKMmNCa0t4SVV6UGI2RXNTSWZMMG5oWXAxMENoaStSNkVaOERM?= =?utf-8?B?OVIwU1JMUXdDYWI0SUJsc1JoYjRYeVBoKzR3WDhSSGZXQklON2ZNK1QreHdk?= =?utf-8?B?cVFJQjBmZUIvd2l2N3YyKzU0bXpKSjAyRXhMMkF5MWttM2hUM1RrZz09?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: cb4d34ed-27d6-482c-a118-08df187bc5e8 X-MS-Exchange-CrossTenant-AuthSource: GV2PR04MB12558.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Sep 2026 07:33:19.1075 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ZmjJGdoYQufBZnPQG/6tv3eJkDXU1yH0fQRpbCVVPJ0DicdzG9ijYd29S9HubmS+Pm4DPg8lO8CkC1zWOEWhcg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MMZPR04MB213195 Content-Type: text/plain; charset="utf-8" Add TX_FSM_STATE and RX_FSM_STATE to include/ufs/unipro.h, as these are UniPro M-PHY attribute definitions rather than host controller specific ones. Remove the duplicated local definitions from the HiSilicon, Qualcomm, AMD Versal and DesignWare UFS headers. This also prepares for using these definitions in a subsequent commit. Signed-off-by: Larisa Grigore Reviewed-by: Frank Li --- drivers/ufs/host/ufs-amd-versal2.c | 4 ++-- drivers/ufs/host/ufs-hisi.c | 8 ++++---- drivers/ufs/host/ufs-hisi.h | 5 ----- drivers/ufs/host/ufs-qcom.c | 4 ++-- drivers/ufs/host/ufs-qcom.h | 1 - drivers/ufs/host/ufshcd-dwc.h | 4 ---- include/ufs/unipro.h | 2 ++ 7 files changed, 10 insertions(+), 18 deletions(-) diff --git a/drivers/ufs/host/ufs-amd-versal2.c b/drivers/ufs/host/ufs-amd-= versal2.c index 2154d6286817..0d4d5e98ad65 100644 --- a/drivers/ufs/host/ufs-amd-versal2.c +++ b/drivers/ufs/host/ufs-amd-versal2.c @@ -112,7 +112,7 @@ static int ufs_versal2_enable_phy(struct ufs_hba *hba) u32 time_left, mibsel; =20 time_left =3D TIMEOUT_MICROSEC; - mibsel =3D UIC_ARG_MIB_SEL(MTX_FSM_STATE, UIC_ARG_MPHY_TX_GEN_SEL_INDEX(= offset)); + mibsel =3D UIC_ARG_MIB_SEL(TX_FSM_STATE, UIC_ARG_MPHY_TX_GEN_SEL_INDEX(o= ffset)); do { ret =3D ufshcd_dme_get(hba, mibsel, ®); if (ret) @@ -132,7 +132,7 @@ static int ufs_versal2_enable_phy(struct ufs_hba *hba) } =20 time_left =3D TIMEOUT_MICROSEC; - mibsel =3D UIC_ARG_MIB_SEL(MRX_FSM_STATE, UIC_ARG_MPHY_RX_GEN_SEL_INDEX(= offset)); + mibsel =3D UIC_ARG_MIB_SEL(RX_FSM_STATE, UIC_ARG_MPHY_RX_GEN_SEL_INDEX(o= ffset)); do { ret =3D ufshcd_dme_get(hba, mibsel, ®); if (ret) diff --git a/drivers/ufs/host/ufs-hisi.c b/drivers/ufs/host/ufs-hisi.c index 2d214ce9620e..bd223bda1ce2 100644 --- a/drivers/ufs/host/ufs-hisi.c +++ b/drivers/ufs/host/ufs-hisi.c @@ -30,10 +30,10 @@ static int ufs_hisi_check_hibern8(struct ufs_hba *hba) unsigned long timeout =3D jiffies + msecs_to_jiffies(HBRN8_POLL_TOUT_MS); =20 do { - err =3D ufshcd_dme_get(hba, UIC_ARG_MIB_SEL(MPHY_TX_FSM_STATE, 0), + err =3D ufshcd_dme_get(hba, UIC_ARG_MIB_SEL(TX_FSM_STATE, 0), &tx_fsm_val_0); err |=3D ufshcd_dme_get(hba, - UIC_ARG_MIB_SEL(MPHY_TX_FSM_STATE, 1), &tx_fsm_val_1); + UIC_ARG_MIB_SEL(TX_FSM_STATE, 1), &tx_fsm_val_1); if (err || (tx_fsm_val_0 =3D=3D TX_STATE_HIBERN8 && tx_fsm_val_1 =3D=3D TX_STATE_HIBERN8)) break; @@ -47,10 +47,10 @@ static int ufs_hisi_check_hibern8(struct ufs_hba *hba) * check the state again. */ if (time_after(jiffies, timeout)) { - err =3D ufshcd_dme_get(hba, UIC_ARG_MIB_SEL(MPHY_TX_FSM_STATE, 0), + err =3D ufshcd_dme_get(hba, UIC_ARG_MIB_SEL(TX_FSM_STATE, 0), &tx_fsm_val_0); err |=3D ufshcd_dme_get(hba, - UIC_ARG_MIB_SEL(MPHY_TX_FSM_STATE, 1), &tx_fsm_val_1); + UIC_ARG_MIB_SEL(TX_FSM_STATE, 1), &tx_fsm_val_1); } =20 if (err) { diff --git a/drivers/ufs/host/ufs-hisi.h b/drivers/ufs/host/ufs-hisi.h index 6af6a268458d..08dccfbec404 100644 --- a/drivers/ufs/host/ufs-hisi.h +++ b/drivers/ufs/host/ufs-hisi.h @@ -39,11 +39,6 @@ #define MASK_UFS_DEVICE_RESET (0x1 << 16) #define BIT_UFS_DEVICE_RESET (0x1) =20 -/* - * M-TX Configuration Attributes for Hixxxx - */ -#define MPHY_TX_FSM_STATE 0x41 - /* * Hixxxx UFS HC specific Registers */ diff --git a/drivers/ufs/host/ufs-qcom.c b/drivers/ufs/host/ufs-qcom.c index 38897d01fde2..1e492dac8d93 100644 --- a/drivers/ufs/host/ufs-qcom.c +++ b/drivers/ufs/host/ufs-qcom.c @@ -390,7 +390,7 @@ static int ufs_qcom_check_hibern8(struct ufs_hba *hba) =20 do { err =3D ufshcd_dme_get(hba, - UIC_ARG_MIB_SEL(MPHY_TX_FSM_STATE, + UIC_ARG_MIB_SEL(TX_FSM_STATE, UIC_ARG_MPHY_TX_GEN_SEL_INDEX(0)), &tx_fsm_val); if (err || tx_fsm_val =3D=3D TX_STATE_HIBERN8) @@ -406,7 +406,7 @@ static int ufs_qcom_check_hibern8(struct ufs_hba *hba) */ if (time_after(jiffies, timeout)) err =3D ufshcd_dme_get(hba, - UIC_ARG_MIB_SEL(MPHY_TX_FSM_STATE, + UIC_ARG_MIB_SEL(TX_FSM_STATE, UIC_ARG_MPHY_TX_GEN_SEL_INDEX(0)), &tx_fsm_val); =20 diff --git a/drivers/ufs/host/ufs-qcom.h b/drivers/ufs/host/ufs-qcom.h index 3c6cb2281af0..1ec661277c1d 100644 --- a/drivers/ufs/host/ufs-qcom.h +++ b/drivers/ufs/host/ufs-qcom.h @@ -10,7 +10,6 @@ #include #include =20 -#define MPHY_TX_FSM_STATE 0x41 #define HBRN8_POLL_TOUT_MS 100 #define DEFAULT_CLK_RATE_HZ 1000000 #define MAX_SUPP_MAC 64 diff --git a/drivers/ufs/host/ufshcd-dwc.h b/drivers/ufs/host/ufshcd-dwc.h index a5e40e7604a1..0406f2bb576b 100644 --- a/drivers/ufs/host/ufshcd-dwc.h +++ b/drivers/ufs/host/ufshcd-dwc.h @@ -27,10 +27,6 @@ =20 #define CBREFREFCLK_GATE_OVR_EN BIT(7) =20 -/* M-PHY Attributes */ -#define MTX_FSM_STATE 0x41 -#define MRX_FSM_STATE 0xC1 - /* M-PHY registers */ #define RX_OVRD_IN_1(n) (0x3006 + ((n) * 0x100)) #define RX_PCS_OUT(n) (0x300F + ((n) * 0x100)) diff --git a/include/ufs/unipro.h b/include/ufs/unipro.h index e0f490e11c7f..6fee545bdee5 100644 --- a/include/ufs/unipro.h +++ b/include/ufs/unipro.h @@ -34,6 +34,7 @@ #define TX_PWM_G6_G7_SYNC_LENGTH 0x0034 #define TX_HS_DEEMPHASIS_SETTING 0x0037 #define TX_HS_PRESHOOT_SETTING 0x003B +#define TX_FSM_STATE 0x0041 #define TX_REFCLKFREQ 0x00EB #define TX_CFGCLKFREQVAL 0x00EC #define CFGEXTRATTR 0x00F0 @@ -72,6 +73,7 @@ #define CFGRXCDR8 0x00BA #define CFGRXOVR8 0x00BD #define CFGRXOVR6 0x00BF +#define RX_FSM_STATE 0x00C1 #define RX_FOM 0x00C2 #define RXDIRECTCTRL2 0x00C7 #define CFGRXOVR4 0x00E9 --=20 2.43.0 From nobody Thu Sep 24 16:57:27 2026 Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazon11013049.outbound.protection.outlook.com [40.107.159.49]) (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 688973E6DC8; Tue, 22 Sep 2026 07:33:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.159.49 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790062422; cv=fail; b=PRW55UP008+Ye5AQIiMYDdaqjT/rtbcYUW3dM0kvR/Gj8UfB1GcBLvtarhhvSyGm98MFz3GxChSn3deSqJK+67bzvexfhzjN5g+BkUAF7rl6vFDWYammHNDlsvPfmPQncWJBi9ArJBbCp7ViMBu6KBycuqp3ryDrHvQPMgoAHqQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790062422; c=relaxed/simple; bh=m6szGpBKsXIUl1/uJVhVROiVGi6vyEU658NnP6M97sE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Pcr20VzsdWQEczoqSUUszNv6OsidP9k2OlE8Eu44cGQ8NLinyx6J6aLIcfqWS0oj5weG09QpFHZ6ANkhnB9N9WkpqliiDZc03R5SbXGPB9xoY0BXmud/HCdA8q3m2XhjKg6sdB82fN5h6p33sEFZl1YqMjOhY1g8jaAGY9RXO6M= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=Xe6ng8W5; arc=fail smtp.client-ip=40.107.159.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="Xe6ng8W5" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=lK9WHIzo/O2am0dPBpu7aJWpK3BvNpLuR+de2rEPURFs/YTcp+VHnMNHkxbVmlAA2PCm5Bw0BeRixUFytqSswXK6HGTZU59sHQmmDqCUgqHohtluvuubVNlmcc5a/E7NZYW1OCmdyU+mPFcL7o9aCzdO+uuOctL/52guoEx1+icD/oeiOX7mQDNU/K2uUrXlBKRyR3wxARAZvIaOxk6m9nFCJB+u4Yf9FfBo6NVQ+hqC9hmqed7ySY036A7SMcuW5Q1f7XAvlKsPAFc6Vrix+wHY/6CvfCXdQMKYRQv+23TMhSzlhJV1kOz8qhW4EphfKIwblz85XqSYzBfiLkwR3w== 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=x5VCOxmrakOZvoozZLzX4mZ50JYYQpMdb1k6aGo+n70=; b=OzYyq6r1EgxM11ndk+YGZqx9dHN2HjnaT3BbbcTqruJgsBISfL+P9y0y4P9+xMK/2uHyaQT5zjCKtm9/o2l8ktFviW3hHzJVivbw7cMhaYPhWdDiBkSxRPrKE8Gg0r4+/ZLVodJDUKEoU4X61F90splW9likGnITAieX4pLkO5nE2OfjraymQ/VSycHytTAve8BjugfXVr7xSC3zu6/+STH8gAOa923NNtxNzmCQus4R3GEr3cMKJW4olng4ZMr40/V4RglFt9CWYMWfUorxM8ESB3M4iFimE79jVVbejTbN6se5vTcYwyz1KX9kZS+682uLBmgjtFdavR+k4s3q9g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=x5VCOxmrakOZvoozZLzX4mZ50JYYQpMdb1k6aGo+n70=; b=Xe6ng8W5F3/Nwo2Fyxq0BAz7m9Z3Pg4C9XFt7P9XdpaMPfWTS9YVCUFe2ONX7V8XtSgquBOALWBQKBbUt6Hx2VdEIJxfI0tbCtDJ+X+86pSGSF2TfeXkdQLcYs+PhIi4FTtX2M4MaPAVtl9J9xy4ZAmYlHGWETtvD8BkRUw3ZrYj305Pg7ax++ePFwmnBj/bjU1l/WbqTyUCS9u8S6Z2iiQzcLfRCUnkbhdYi2gHKHw/tNXVzZSgy9yeA+C0ep4cGwzkYtCqrqXlInGq4fEoT4PJL5V9NFbBfx/X8Z8Yx52D3ARxZ8EFMDiAW86L3gZrQg1k0fE46BDlVv7+7BW+lw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GV2PR04MB12558.eurprd04.prod.outlook.com (2603:10a6:150:368::10) by MMZPR04MB213195.eurprd04.prod.outlook.com (2603:10a6:190:4f::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.16; Tue, 22 Sep 2026 07:33:21 +0000 Received: from GV2PR04MB12558.eurprd04.prod.outlook.com ([fe80::cd9f:102:ea58:4c49]) by GV2PR04MB12558.eurprd04.prod.outlook.com ([fe80::cd9f:102:ea58:4c49%6]) with mapi id 15.21.0428.015; Tue, 22 Sep 2026 07:33:21 +0000 From: Larisa Grigore To: Larisa Grigore , NXP S32 Linux Team , Alim Akhtar , Avri Altman , Bart Van Assche , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , "James E.J. Bottomley" , "Martin K. Petersen" , Sai Krishna Potthuri , Ajay Neeli , Manivannan Sadhasivam , Pedro Sousa , Hannes Reinicke , Joao Pinto Cc: linux-scsi@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, clizzi@redhat.com, aruizrui@redhat.com, eballetb@redhat.com, echanude@redhat.com Subject: [PATCH v5 04/12] ufs: host: Add common Hibern8 TX FSM polling helper Date: Tue, 22 Sep 2026 09:30:01 +0200 Message-ID: <20260922073009.1449688-5-larisa.grigore@oss.nxp.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260922073009.1449688-1-larisa.grigore@oss.nxp.com> References: <20260922073009.1449688-1-larisa.grigore@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AM0PR10CA0001.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:208:17c::11) To GV2PR04MB12558.eurprd04.prod.outlook.com (2603:10a6:150:368::10) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV2PR04MB12558:EE_|MMZPR04MB213195:EE_ X-MS-Office365-Filtering-Correlation-Id: 1eb83102-07ad-443b-0273-08df187bc71c X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|1800799024|376014|7416014|23010399003|366016|921020|10067099003|56012099006|11063799006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: c1swE1nrYgDeAve6onmxqi8QqMjh8bZXpH8urRt7uFNxTBRv5dmgg+QDx4v/3Kqr2JoSsL+X4+F/aZ4cDdC9GXCrz6/8GqnG4C6YOHFiG/VP+qsDnXZg8NpZmqbtYrOVSQa8sQ+KsiHkygvfaH0HbNgx2GuaYWw0WFnaa80k/M8J/4lIxFvY1b0NGPwDdtlKcZGfcQwHmtvtdP/YjHu2k3YgTApLby7mqp41yqyNUo3m++Ho5xQT2VKr6YbAAHkK3xTuBmoc5Nd8OovH4BrIx746fQu2N8BysTYwhJfA8yhWKq1MP56FKKKWfax7F9dQisPbsAgO6jYtRYRV+mDr7bDhfo4kK51JdwNgTSMDl/ynUk7mGML+9paNQjJ1VB/sJ3sM6eDex1cfc0lYN3rE6HJUZgHMcF3vShWouztBDaz2lnNksO+0N7iR4q/YGwBDHMiV/Ryo1kLVk2EOT7WNXSgK8lt539jTyryqHivyWDHc0r6trwvGQbsumpn3A9XUQuHk/7ZKZ8DQthl7BTurQmro6p8oV/m8lF0WoF07LjNrVMhV6euB1ZNNS3dSNv+FjNqAkLF+JYtyDbxBxEcityHMDoKhMzHK9Tf3QoHLzt9DMLuhgRb0pxuM6oRicYLmyYDE9Zpi1BJHNpitF7xiFEnm4EQalnPIcfTzuL5EmuYFdvOP8oziWEVsZWpm01LdNk21XvKKUwW2FHnj27sELQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR04MB12558.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(1800799024)(376014)(7416014)(23010399003)(366016)(921020)(10067099003)(56012099006)(11063799006)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?eWhXN0pEMEQ4Nm9SYjJiYWFVNWtQeitHWUF5ZmlIZXdpK3kwM2wxUmYzTFAx?= =?utf-8?B?dW5NYmp2QTRYdHRKb1lTUjZZZmY5eUNGTExjZ3gzMHJHQ2t1bGwrbDFaZFRj?= =?utf-8?B?LzZrcDJGbHVzRXBhbmVVUU9qTGdCOE44SFpJZVNZT2FPWitneWYxWVUxS244?= =?utf-8?B?L1FYUmk3Y3NYOUdhdUlLQ1UwNkpKakFlZVRDTFpLUWpabnYxeWhFaWYxZ3Zl?= =?utf-8?B?WEhoUDk5Tm1CNFlwMk1VMXdEOGdiWVU0c0lzcUh1KzdMNVQrMG1sRkI5TGdW?= =?utf-8?B?M2dLZjNvVXhOWjdLS0ZsUGlNNXFXaStvK3FYSkxqNTBlTUs3ZVZXQk44WnJq?= =?utf-8?B?cklTRzNmcU9oT2UrVWZUMVpKT2lBc0FteHc5VFkweUh0SmhJbk5pdGFSYksx?= =?utf-8?B?V25pQmp0Vi9FU0lKNXFQSVJWeUxRNWgwdDFqMURrWTlBdndzMm1lODZFVlVO?= =?utf-8?B?dE5XQTNCTERCN3UzN2lGd0JBYnZrNFFmN0ZuY3YyR3ZlK1FRZStiNTFxbmdi?= =?utf-8?B?THZFZzJMVlVSNzdTZUwvYjd6NFI5TGoyclZpcmVnMEhyZ2J0dzZiaVVoajZL?= =?utf-8?B?ZjA1TCtCbVllVmRyNE9kemxEVUVuVEV4ekxla3lQREtyRmpIbk5UeFIzWnhv?= =?utf-8?B?WnUxQmxCa2RMMFF3cE9SV2JMQlhuNEpYdzQrVVFDWE9qK3pTc3FkZXJiWGIz?= =?utf-8?B?TTIvZHpSUHB3aXJNcXczNzlUYjlyZ3pVYzB2L083aWFNMmRYL01DMkJFV0hz?= =?utf-8?B?SjUrYitFVXVzNVNKdnJsMFpJczZ5QjQ2M04rNVlRMzZ0NnJXU05ZV3VtcFVT?= =?utf-8?B?L0xtaWhickR0RFJCNko2dFlCL2VscTlnMW05eWcvY3VkZ0JqclBXVFZERzRw?= =?utf-8?B?NVBYUzVwS3VvellFcVZtUkRxTWV1WUhldFFSaEtLQ3RCRzM3bEFXcGtKQTUx?= =?utf-8?B?SjFuUHY5d3BOWXpCRUU4aXAxei9XSGdsUG9XWDIvRDN4SXNhTEkvQTlOTzFu?= =?utf-8?B?S2d0NHFVamRtcVpzeHJvZURwWitPVmJIZHVBbkdIQUZTTkRaMys2bzQvaGNO?= =?utf-8?B?Tk9ERnBseGRaek1qMG5SZFBSNnJOVmk3eWIvSng1TjlGQmZ0cEVaTFdCMUdo?= =?utf-8?B?SU5lUmYzQm0waVphOVVrS2g5Q2ZENmhrU0k4RWZLcHJmaDBMbG1rOHA2aXor?= =?utf-8?B?Qm9oelJaSExCc0hjdTk4OGJhZWFXUkI4R2YrT1hyQk1SOTVWTTNCRU1uUk94?= =?utf-8?B?RmFqYm51UkVlN1pBT3pGN09VNmVEdjZTdE5TMG5WWEpIKy9yeDJhaDFqbVRJ?= =?utf-8?B?Um1oVEJCc2tyNmJLeVh2YXd6RjFveWFDSmt1Z213bTlISjlzRGI4czJGbnlO?= =?utf-8?B?STZ4cC9SbGlxTmJSTmZvRHBJSHMzVlBmNDhzT1ArVnJjeDRJVmk4WEh6elgv?= =?utf-8?B?cW1nN2g2STRGMG5Xa201Z0VsZFpacXNBbFNCWmdGMWNsSC9LL0RSTk1KOUJS?= =?utf-8?B?Ri9heW4wU3RWSUVremVQY0tzQlc3d1d2ai9iK09uQVczSE5kSEpCdGo3aENv?= =?utf-8?B?bTFJZkw1WVk1SHZycFE2bWwreVZVajZCdUgzSzdTWFpPQ1N4WHdmY1IxeDhE?= =?utf-8?B?ZHV4ZGhFbVlQR2F6ODlxSkRuWFhLK0kvMGJGZXlzT1lyWHFCZFNLMUUxZ0Ja?= =?utf-8?B?Y3d3YlhZTHluVjk3YjJNNDlpR0ZndUdZL241NnlKbzl6TU5rTys2cWMyOUZJ?= =?utf-8?B?OTM2bkRhbnV4Szg5d0wwVWl2SDBKMkpNMnBwbFhVbEZGUVRxOGpuY1ZMU1NJ?= =?utf-8?B?amg4T3Z2R2lHUDJVMWYxNzU0S2xwbEVWL0grNEtzUWl2Q2Q2d2Q5MHBMSlg3?= =?utf-8?B?REpQdDI5cnJlbTdjdnNINVRQbjVrdHZzTi9qRW8ybC9xYk1QQ1A2YURwMnht?= =?utf-8?B?M2Q5MVJMeWVJdTVQZGRTbjZHZFRjNWdPOG9wWGxnUUU2SVh0NE5LS1N3SU5w?= =?utf-8?B?STNpOEdRVEJWTjNYQkw0N2hUU1gwdUFma2VnZnppc1Y4NE9taUVDVUFZcTBl?= =?utf-8?B?REFsQmJxOEMwOGZTQjZlbGlFbmZsTkFpQ05ueHVWandhT01lSGZMcTRtY2Q1?= =?utf-8?B?a3pQRytHSWZ3dlRRRzNpSWx0cUQ3YXdxbDlDbVdLalJ1bXhHc2wrbzk4QWdE?= =?utf-8?B?UmxjTFhrOExockNrZ0V0R3ZNOHJ1azh2dmliNHNRNkpIQnNnaTR0Zkpaa1RS?= =?utf-8?B?UWdqSHRIZzU5TFhqaHRpRWcrNXBXQ2JuSUo3UHdEamZoMCtwQ05pVEJLa0FP?= =?utf-8?B?N3EyL0dJazJ1eTV0V0pJQk55K0UzZ2ZCU3d4RVhmVHVuTXYwUjRqdz09?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1eb83102-07ad-443b-0273-08df187bc71c X-MS-Exchange-CrossTenant-AuthSource: GV2PR04MB12558.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Sep 2026 07:33:21.1242 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Wjt97RGiKNzv6t93/JK86kAIs65ONlAiQqXBHKldbCHlGKczZMD8NozlcWUFqwaHABBX81W/2XLI5oxuGcmY6A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MMZPR04MB213195 Content-Type: text/plain; charset="utf-8" Factor out the common logic used to poll TX_FSM_STATE until the TX lanes enter Hibern8 into ufshcd_check_hibern8(). The HiSilicon and Qualcomm drivers currently implement similar checks using the UniPro TX_FSM_STATE attribute after link/PHY bring-up. Move this logic to a common helper in ufshcd so it can be shared across host controller drivers. Switch the HiSilicon and Qualcomm drivers to use the new helper and drop their local implementations. While at it, normalize the "TX lane failed to reach Hibern8" error path to return -ETIMEDOUT instead of the raw TX_FSM_STATE value (qcom) or -1 (hisi), so all callers get a proper errno. This is an intentional, harmless change of the returned error value; the pass/fail behaviour at the call sites is unchanged. Unlike the initial implementation, the timeout error is now reported only once by ufshcd_dme_check_tx_hibern8() after its final check, instead of per lane. This also prepares for reusing the same UniPro-specific Hibern8 check in a subsequent commit. Signed-off-by: Larisa Grigore Reviewed-by: Frank Li --- drivers/ufs/core/ufshcd.c | 73 +++++++++++++++++++++++++++++++++++++ drivers/ufs/host/ufs-hisi.c | 48 +----------------------- drivers/ufs/host/ufs-qcom.c | 42 +-------------------- include/ufs/ufshcd.h | 3 ++ 4 files changed, 78 insertions(+), 88 deletions(-) diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c index 2ba244cf40ac..985573726d67 100644 --- a/drivers/ufs/core/ufshcd.c +++ b/drivers/ufs/core/ufshcd.c @@ -4448,6 +4448,79 @@ int ufshcd_dme_get_attr(struct ufs_hba *hba, u32 att= r_sel, } EXPORT_SYMBOL_GPL(ufshcd_dme_get_attr); =20 +/** + * ufshcd_poll_tx_hibern8_lanes - Check TX_FSM_STATE of all TX lanes once + * @hba: host controller instance + * @num_lanes: number of TX lanes to check + * + * Read TX_FSM_STATE for every lane and verify it reached Hibern8. + * + * Return: 0 if all lanes are in Hibern8, -EAGAIN if any lane is not (yet) + * in Hibern8, or a negative errno (e.g. -ETIMEDOUT from a hard UIC command + * timeout) if the attribute read fails. + */ +static int ufshcd_poll_tx_hibern8_lanes(struct ufs_hba *hba, + unsigned int num_lanes) +{ + u32 tx_fsm_val =3D 0; + unsigned int i; + int err; + + for (i =3D 0; i < num_lanes; i++) { + err =3D ufshcd_dme_get(hba, + UIC_ARG_MIB_SEL(TX_FSM_STATE, + UIC_ARG_MPHY_TX_GEN_SEL_INDEX(i)), + &tx_fsm_val); + if (err) { + dev_err(hba->dev, + "%s: unable to get TX_FSM_STATE for lane %u, err %d\n", + __func__, i, err); + return err; + } + + if (tx_fsm_val !=3D TX_STATE_HIBERN8) + return -EAGAIN; + } + + return 0; +} + +/** + * ufshcd_dme_check_tx_hibern8 - Check if all TX lanes entered Hibern8 sta= te + * @hba: host controller instance + * @num_lanes: number of TX lanes to check + * @timeout_ms: overall timeout in milliseconds shared by all lanes + * + * Return: 0 on success, negative errno on failure. + */ +int ufshcd_dme_check_tx_hibern8(struct ufs_hba *hba, unsigned int num_lane= s, + unsigned int timeout_ms) +{ + int err, ret; + + if (!num_lanes) + return -EINVAL; + + /* + * Poll every lane until ufshcd_poll_tx_hibern8_lanes() stops returning + * -EAGAIN, i.e. all lanes reached HIBERN8 (err =3D=3D 0) or a real error + * was hit. + */ + ret =3D read_poll_timeout(ufshcd_poll_tx_hibern8_lanes, err, + err !=3D -EAGAIN, 200, + (u64)timeout_ms * USEC_PER_MSEC, false, + hba, num_lanes); + if (ret) { + dev_err(hba->dev, + "%s: timeout waiting for TX lanes to enter HIBERN8\n", + __func__); + return ret; + } + + return err; +} +EXPORT_SYMBOL_GPL(ufshcd_dme_check_tx_hibern8); + /** * ufshcd_dme_rmw - get modify set a DME attribute * @hba: per adapter instance diff --git a/drivers/ufs/host/ufs-hisi.c b/drivers/ufs/host/ufs-hisi.c index bd223bda1ce2..b84075dfe00d 100644 --- a/drivers/ufs/host/ufs-hisi.c +++ b/drivers/ufs/host/ufs-hisi.c @@ -22,50 +22,6 @@ #include #include =20 -static int ufs_hisi_check_hibern8(struct ufs_hba *hba) -{ - int err =3D 0; - u32 tx_fsm_val_0 =3D 0; - u32 tx_fsm_val_1 =3D 0; - unsigned long timeout =3D jiffies + msecs_to_jiffies(HBRN8_POLL_TOUT_MS); - - do { - err =3D ufshcd_dme_get(hba, UIC_ARG_MIB_SEL(TX_FSM_STATE, 0), - &tx_fsm_val_0); - err |=3D ufshcd_dme_get(hba, - UIC_ARG_MIB_SEL(TX_FSM_STATE, 1), &tx_fsm_val_1); - if (err || (tx_fsm_val_0 =3D=3D TX_STATE_HIBERN8 && - tx_fsm_val_1 =3D=3D TX_STATE_HIBERN8)) - break; - - /* sleep for max. 200us */ - usleep_range(100, 200); - } while (time_before(jiffies, timeout)); - - /* - * we might have scheduled out for long during polling so - * check the state again. - */ - if (time_after(jiffies, timeout)) { - err =3D ufshcd_dme_get(hba, UIC_ARG_MIB_SEL(TX_FSM_STATE, 0), - &tx_fsm_val_0); - err |=3D ufshcd_dme_get(hba, - UIC_ARG_MIB_SEL(TX_FSM_STATE, 1), &tx_fsm_val_1); - } - - if (err) { - dev_err(hba->dev, "%s: unable to get TX_FSM_STATE, err %d\n", - __func__, err); - } else if (tx_fsm_val_0 !=3D TX_STATE_HIBERN8 || - tx_fsm_val_1 !=3D TX_STATE_HIBERN8) { - err =3D -1; - dev_err(hba->dev, "%s: invalid TX_FSM_STATE, lane0 =3D %d, lane1 =3D %d\= n", - __func__, tx_fsm_val_0, tx_fsm_val_1); - } - - return err; -} - static void ufs_hisi_clk_init(struct ufs_hba *hba) { struct ufs_hisi_host *host =3D ufshcd_get_variant(hba); @@ -224,9 +180,7 @@ static int ufs_hisi_link_startup_pre_change(struct ufs_= hba *hba) =20 /* Unipro VS_mphy_disable */ ufshcd_dme_set(hba, UIC_ARG_MIB_SEL(0xD0C1, 0x0), 0x0); - err =3D ufs_hisi_check_hibern8(hba); - if (err) - dev_err(hba->dev, "ufs_hisi_check_hibern8 error\n"); + err =3D ufshcd_dme_check_tx_hibern8(hba, 2, HBRN8_POLL_TOUT_MS); =20 if (!(host->caps & UFS_HISI_CAP_PHY10nm)) ufshcd_writel(hba, UFS_HCLKDIV_NORMAL_VALUE, UFS_REG_HCLKDIV); diff --git a/drivers/ufs/host/ufs-qcom.c b/drivers/ufs/host/ufs-qcom.c index 1e492dac8d93..815ca82a0878 100644 --- a/drivers/ufs/host/ufs-qcom.c +++ b/drivers/ufs/host/ufs-qcom.c @@ -382,46 +382,6 @@ static int ufs_qcom_init_lane_clks(struct ufs_qcom_hos= t *host) return 0; } =20 -static int ufs_qcom_check_hibern8(struct ufs_hba *hba) -{ - int err; - u32 tx_fsm_val; - unsigned long timeout =3D jiffies + msecs_to_jiffies(HBRN8_POLL_TOUT_MS); - - do { - err =3D ufshcd_dme_get(hba, - UIC_ARG_MIB_SEL(TX_FSM_STATE, - UIC_ARG_MPHY_TX_GEN_SEL_INDEX(0)), - &tx_fsm_val); - if (err || tx_fsm_val =3D=3D TX_STATE_HIBERN8) - break; - - /* sleep for max. 200us */ - usleep_range(100, 200); - } while (time_before(jiffies, timeout)); - - /* - * we might have scheduled out for long during polling so - * check the state again. - */ - if (time_after(jiffies, timeout)) - err =3D ufshcd_dme_get(hba, - UIC_ARG_MIB_SEL(TX_FSM_STATE, - UIC_ARG_MPHY_TX_GEN_SEL_INDEX(0)), - &tx_fsm_val); - - if (err) { - dev_err(hba->dev, "%s: unable to get TX_FSM_STATE, err %d\n", - __func__, err); - } else if (tx_fsm_val !=3D TX_STATE_HIBERN8) { - err =3D tx_fsm_val; - dev_err(hba->dev, "%s: invalid TX_FSM_STATE =3D %d\n", - __func__, err); - } - - return err; -} - static void ufs_qcom_select_unipro_mode(struct ufs_qcom_host *host) { ufshcd_rmwl(host->hba, QUNIPRO_SEL, QUNIPRO_SEL, REG_UFS_CFG1); @@ -607,7 +567,7 @@ static int ufs_qcom_hce_enable_notify(struct ufs_hba *h= ba, break; case POST_CHANGE: /* check if UFS PHY moved from DISABLED to HIBERN8 */ - err =3D ufs_qcom_check_hibern8(hba); + err =3D ufshcd_dme_check_tx_hibern8(hba, 1, HBRN8_POLL_TOUT_MS); ufs_qcom_enable_hw_clk_gating(hba); ufs_qcom_ice_enable(host); ufs_qcom_config_ice_allocator(host); diff --git a/include/ufs/ufshcd.h b/include/ufs/ufshcd.h index dfd302f2dc7c..0d9d0a26eb20 100644 --- a/include/ufs/ufshcd.h +++ b/include/ufs/ufshcd.h @@ -1556,6 +1556,9 @@ extern int ufshcd_dme_set_attr(struct ufs_hba *hba, u= 32 attr_sel, u8 attr_set, u32 mib_val, u8 peer); extern int ufshcd_dme_get_attr(struct ufs_hba *hba, u32 attr_sel, u32 *mib_val, u8 peer); +extern int ufshcd_dme_check_tx_hibern8(struct ufs_hba *hba, + unsigned int num_lanes, + unsigned int timeout_ms); extern int ufshcd_change_power_mode(struct ufs_hba *hba, struct ufs_pa_layer_attr *pwr_mode, enum ufshcd_pmc_policy pmc_policy); --=20 2.43.0 From nobody Thu Sep 24 16:57:27 2026 Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11010045.outbound.protection.outlook.com [52.101.84.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 863144CDDCD; Tue, 22 Sep 2026 07:33:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.84.45 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790062431; cv=fail; b=uveDtxF2up8IZhbd15VPZbEi+aOwvO+Gqi9D6T66epDuZP9Za25aho0Ajz4wQoZ76BwORZ7bj0tQohbBCfJJ9Ufzc/SCNXhpXoDWsgNqgqW9qqmAWCJT8/Q+Pfv0HpunHRalXMM9rUdACIXg5Rcb9T/tixJw8uXq59ysK5nSkdQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790062431; c=relaxed/simple; bh=ZE0egIIW+z4ZjNTCfSbAu2SZBsTcN9KsSboPzVqe9sU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=hVLtx5hJqF9nlGN6EyPfFEYSMEqNROZYn2j81w0yk5hxhfP9YPzr6M7BmkkP5ml/BpxsdXsz2OR+A8aMgzNco517NsCnzPkiEPuSxEUkkyh4aDmbkNKTe6iJR3FNJV5kYfjZBWKROUgR5CydYafnkGWzP/eVRwlXcJlGqSGCpuk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=C2ZVZBfl; arc=fail smtp.client-ip=52.101.84.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="C2ZVZBfl" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=AYFUuf8kQFf9z0wVAtK7tsm0FPp8DBu7Xkc9ja7x8qBFpeswdH1gk60i59LHBAEYMtxpCp/sZxeh4s4MecqlJONuxM7v4XEttcx4NizgqsIBJQpqoTc0iWktQGgwio6ueE0M0ICIx6VogK2nN6VyvxTL+SbWuGBBpE3BgMv7WzuOGuQFdSGkvg6OTIW6LWKL72MvwcDo3ON2darBRJAg+F8yQjM/gXPuRrv9Am/dls2fON9YlTIqzYylbAKjuFBH47RkN5scbV5QGMSacpPir2j3Jaq9V+ReaUcoW/wFZL1apqkkfUY560wKvzUNY2IW85rvc69djfpdZ5Tl/BIHbA== 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=x7uoqsx2zML32xzDcSRhGJ174iSzdn9mEilSglZ3myI=; b=lLqrKnJ7tQ7gvefwtc16M+iLG10ZMoO7hOoXOx6jMDH71bLcz02c6jU+RTrmQ/iA+b9C8OIbG3f7+FwoB7RbpSuEWdNonONjX9SxwveX1XClpJVA7hRstxOHe/sjn1b079AgZVNxA7jQRxLQrVVpMK2WLWFdeIXNeHqfpBHPROtI7OQ0IAXJ7i3ZAJxoMETeXbuzjYaYrrR75+kJB7vz3/jLtgyiX/JM3kY5jgYt95Ff1kPqyZXDunLbYUBtAI9OZ/+3JtSC2YwHpatcy9LR/8Mqc8/raTskCUI/iMlnsswcclP6bokxkE1b/RhbfWCIIEMX8jLvIcXv9RY75TJV8A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=x7uoqsx2zML32xzDcSRhGJ174iSzdn9mEilSglZ3myI=; b=C2ZVZBflv5Vmv9NoOkDIraYa5pKCq1VS4S101aOf/ZRJkhZSwjctp/VcAwGya0nik5wEhtgWM61UAxeQF5rJMN7uaApv1v1VXgAEJMReISmmpB697ecuGfZP8TEZeJzetKsG+DMNbA3JZqlRQHRfRJvhBf6LVdn5pEpgsCoK8iiQ+msp0T1s0ZcDhzf/AKutf1Xyjsu60euw5oz+o+8BNUu6J5MNCo8jmxBIbAOmNMHXAHS1O8UEecbqq6GuMEDds8f/ejUmRQdwTJRI5jQacEEd+bIuMSQ0X4QzYEtLsQCGxID/qYguiloHbujt187HYoIOJ3s0TgbtJfT2gXQ5ZA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GV2PR04MB12558.eurprd04.prod.outlook.com (2603:10a6:150:368::10) by MMZPR04MB213195.eurprd04.prod.outlook.com (2603:10a6:190:4f::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.16; Tue, 22 Sep 2026 07:33:23 +0000 Received: from GV2PR04MB12558.eurprd04.prod.outlook.com ([fe80::cd9f:102:ea58:4c49]) by GV2PR04MB12558.eurprd04.prod.outlook.com ([fe80::cd9f:102:ea58:4c49%6]) with mapi id 15.21.0428.015; Tue, 22 Sep 2026 07:33:22 +0000 From: Larisa Grigore To: Larisa Grigore , NXP S32 Linux Team , Alim Akhtar , Avri Altman , Bart Van Assche , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , "James E.J. Bottomley" , "Martin K. Petersen" , Sai Krishna Potthuri , Ajay Neeli , Manivannan Sadhasivam , Pedro Sousa , Hannes Reinicke , Joao Pinto Cc: linux-scsi@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, clizzi@redhat.com, aruizrui@redhat.com, eballetb@redhat.com, echanude@redhat.com Subject: [PATCH v5 05/12] scsi: ufs: Move Versal2 M-PHY CREG access helpers into ufshcd-dwc Date: Tue, 22 Sep 2026 09:30:02 +0200 Message-ID: <20260922073009.1449688-6-larisa.grigore@oss.nxp.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260922073009.1449688-1-larisa.grigore@oss.nxp.com> References: <20260922073009.1449688-1-larisa.grigore@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AM0PR10CA0002.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:208:17c::12) To GV2PR04MB12558.eurprd04.prod.outlook.com (2603:10a6:150:368::10) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV2PR04MB12558:EE_|MMZPR04MB213195:EE_ X-MS-Office365-Filtering-Correlation-Id: 24188cd1-9ddc-4810-3a52-08df187bc82b X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|1800799024|376014|7416014|23010399003|366016|921020|3023799007|10067099003|56012099006|11063799006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: Iu7fd52/8AIvAj0PHmRCYkTdzlY7ulC86tYAIXbF49Bzni+BosuhQWCFUjR0ilCbBJNOGz+E7MVJ4gCaT0znMmjCJd/cRwn4VG7eqL02tyaHog3s26uq1AXgmk8BC5J0fKvRlRCV2XOyxJAYUriJBApmjfkH5JnH4SPhdVxPARm2VhflJlBgk0OwyTrE4EahmvbfosVyAD9zhwtAvwNY99qbNkCigNIfmRKShtU3rZBKUfExSXSnGg+fFy0rvb9vNQld1EWG9fSdbCKza3ZDqYbXO1Vu/WkkNR0dC3JyhEgTinvXYs2GaWs/ITa72xK0kWQnkzwjdHZNodGJn/jACIavvZkEQ88FQxmSgwQpy54RwiOJWM3HwdNbox5riL7oUOtBI5H5ErBXDONMhe2psRV5xv6jQzMYcaLW1ahk6cbrCdKds7Dh+3Q9ypYPIMPv6eYzXE/VISIMNL4fDVQiQanzvKAsvBLavN2WKeCpi5gbPxOFUZameoqkcHdd9Z5ci2MJJh4eOlpzKz3JZBAU4gYxgFJ0e/Qo4qUA8iw5gbC2i7PGE24m4amek0d9swBwsJ2NMY/1K8TLkptNA3i9nCbx0/+gpyOLsnP9CWrBF4Km+02Diz+TLqIGNUdPaGBpNieNEUppLVLDGpDa1SJw6DgjA4MV4oUaB1TKW4vZlCX+veXvgF5AyGtfrqNSJWEr4KVcq2BcvMCKOILgV3buPA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR04MB12558.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(1800799024)(376014)(7416014)(23010399003)(366016)(921020)(3023799007)(10067099003)(56012099006)(11063799006)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Wmd2M24reWlmaVVPeGdJWEw5TVlHMXEwbkR2WGpTdFBrK1VnSzV4Q3BadEMx?= =?utf-8?B?NjRnUHBTRGxsalk5Yzh5SFp0Nm1WNnVBajlMaXF0cTFqRGZWVFRXR2YxUDFS?= =?utf-8?B?MDk1dlhseXQzb3hESUczUCs3cm5Sd2ZGUVdtNWNEU0swbDhyRU9UVy9Cdm5Z?= =?utf-8?B?cVpFN2hnWFRQbklZeEwrSmhEc21zb29hbW1EdUpLdUVUNmVIR1J0UGVNVGht?= =?utf-8?B?RGRSellOSFlrMldFY1gvWTJPa0xBWkFLYXVuRDBWd0YyVUNYRjVDNUhFQUov?= =?utf-8?B?OVd2aDVuQitzRmlkMWQwVHRrYm1sNkZQMEMzWndJUXE1am1qYW9jOVJQZVJ3?= =?utf-8?B?d3Jxc3VoeDdiY3hiK21WMUVKblhaSkdwcWxiZTREUmc1emowTEVuMVMwMGpl?= =?utf-8?B?K2dkT2lSZmtSbUxYQUhjSXRSczRhMEVueS9EYmdiZzBTUllyMGtxeUhCQitp?= =?utf-8?B?bU9JOVdPTG9keEJ4dEJiZk5nTmlwU1BSMzlJRmMwRTllWDMxV1RlZVNSK1h5?= =?utf-8?B?VmI2c2wvZk9YRU9hN1hpSXFyQndYN0hCc05ZZG1XNDlmNjIyYktFY2xld1FZ?= =?utf-8?B?ZkhLcC8wcU9acTV1eloxNE05Z2E2WUxjSVd4VXc0NnYxcEM5M052aElyYUpQ?= =?utf-8?B?OHRoZldaZVBoMVlVNDFUTC9IZG1hcDJLYnRGSDN4UlFiU0U4ZkNqY2VyTUpE?= =?utf-8?B?bHUzWFBkblAxT0lGVFhtSWtEaEFqSUtMR1FLKzZRZ0QxUmtLeGRSTVpVb2xZ?= =?utf-8?B?TldFbHVrMmFVQTNMUTRPbVN3dkZSaEloOGtPY0VYM1ZkOFA4TTlQdW85TU5D?= =?utf-8?B?V2JLaDFHdEd6cUZKaHNPNitWaWF4cmFMaXZiNHN5T2RTS3VSVmNEOFFxc0tJ?= =?utf-8?B?WW9LcGw0dERkK1lTd1VNZjhMR2k1eitnbmJZMUtGYUNaTS9BYzVoQmwxWnQy?= =?utf-8?B?YzVNRjJFaWV3azdSdHdjKzRGaGZUdnBmdlV6bVFNOE9Hcm1sY09WY3BHN01U?= =?utf-8?B?SmlOdzR5d1AxNW1PS3VhWXBXWTdjcWhRcDdGWURKdDZ6VXNVWWVWaFpITlZm?= =?utf-8?B?RVQ0RzhqbzdIaDRqa0cxc3BkVmltQ2xuYkdmaXZiV1hhbm9YZnovOTJSRENs?= =?utf-8?B?ZC9LOUdjcSt4cXVhTmhka2pQQVJ5QitXdFpYQnMvZ1FsRGhBRWsvTVp4Y2NO?= =?utf-8?B?NmFXZE4yWjdXSEtNVC9rSU5SMWZaZktabzVYaERiNnJ4S1p6WmYxNUxrZWRr?= =?utf-8?B?bGRjVTdBaGd0OXFrUnNBSHQ5OWVXR3pOL2NRS09nWlJMQlJQSjlMbEdCb2Zl?= =?utf-8?B?MktoeUNuQlFxYWdsTHJVUHFEa0NIY0ZtOHBaL3pOVWphci81cXluNTc5b0Jq?= =?utf-8?B?VUdwbG9IVkVyRmR0ME9VNVI2bHp0SklKN0pQM0VycVZEdnlHekszd3Z0cUxG?= =?utf-8?B?NUlldUFSd3hWS21iWktyM0JQVVczMnFHL09lTkpoMUQybGY4TE9DbkZJcFJP?= =?utf-8?B?SGpUSjlCV3prY2lvV0FOUkVsZVhIMUJ2UjQvbEFtcitGNHFyVW1hVGpOTk9y?= =?utf-8?B?WU9oYk1oTysxb0psYXhlajdUOXJSS2ljdGY1TmhmaHo3NXUzTTY1NjZ1QTFo?= =?utf-8?B?aGRGbGg2NUdHWjdMSjlrcUVHU24rUzZjY1d5WHZ6eE1mTWNFeGo0MzRvRnor?= =?utf-8?B?VVJTZlJqaHMzeVFVWjJIei9lazlLTjZPVmxxcFIyMGRsVmpleTBwRVlyWDVw?= =?utf-8?B?VUw4eUtpVjNaZ3ZnYmpWUXJtUHo0ZkpkUGo5eERJRlRLVTIzQ2tHN3J6WUFx?= =?utf-8?B?RHBSY0FjMVlXMk1tWElxVnZDQ1YvTmVFY3JhZDZUeWoyb0UxQ3YzSFlqeFJp?= =?utf-8?B?VHZZNXEydkVjcWRTcTV4T2N1dndjWExUa1oraEpGYzVJVmN6Yy9ralpKdFk0?= =?utf-8?B?d29OSkdQRXM2WWxjV2NNNWxqY1RiMVk1ZWszYXRYVnhLRkp2WEFBSFo0QUpl?= =?utf-8?B?VS9HZEdaaUFxaXU1c2puUm5PMWZjR0M4N1NYNlFBNHlITkRTdXRybFc4akw4?= =?utf-8?B?Tk4yQ2J4VGtYaGRINVI2OS9ESlZFazRVWmw5TmRnWXNxN1p2VVFDc0Nsc2pn?= =?utf-8?B?Q3NKQTlnRkdBMGpnREd6ZlFFS09za2MrYVN6b2liUEFkbUJLdkVoZUYvVjB5?= =?utf-8?B?S2R6YzFCVmI0MmxoSlVubUVTRCtXRmR6SVVudC9oaHN5WkJOOEFVMnJ0bkw5?= =?utf-8?B?N3JLSXVSdDlBejF3YmNWaXA3YjFHb0pWS2RPYzlTbUdiZDZPRHQwT0JEUENq?= =?utf-8?B?a01EUkRrbUNva3QxUUg4MXc4ZlNiOHFMTVFBMXJzRVZwMVR1Kyt6QT09?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 24188cd1-9ddc-4810-3a52-08df187bc82b X-MS-Exchange-CrossTenant-AuthSource: GV2PR04MB12558.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Sep 2026 07:33:22.9200 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: c4YOVPZ0tUxeOR45ZxEPmYruFI0Z0sLpxiewRiUAjGUM2OCvK2kWNq6fQxarlwmMNSiAw7zk9537ZiANps1yXw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MMZPR04MB213195 Content-Type: text/plain; charset="utf-8" The AMD Versal Gen 2 UFS platform driver carries local helpers to access M-PHY control registers through the UniPro CREG interface. Move these helpers into the common Synopsys DWC layer as ufshcd_dwc_phy_reg_read() and ufshcd_dwc_phy_reg_write(). This avoids code duplication in DWC-based glue drivers and provides a single implementation for future reuse. Dropped `static` from `phy_write_attrs` and `phy_read_attrs` since there is no benefit in keeping them persistent. Update the AMD Versal2 glue driver to use the new ufshcd-dwc helpers. Signed-off-by: Larisa Grigore Reviewed-by: Frank Li --- drivers/ufs/host/ufs-amd-versal2.c | 85 ++++++------------------------ drivers/ufs/host/ufshcd-dwc.c | 69 ++++++++++++++++++++++++ drivers/ufs/host/ufshcd-dwc.h | 2 + 3 files changed, 88 insertions(+), 68 deletions(-) diff --git a/drivers/ufs/host/ufs-amd-versal2.c b/drivers/ufs/host/ufs-amd-= versal2.c index 0d4d5e98ad65..c7da95999c85 100644 --- a/drivers/ufs/host/ufs-amd-versal2.c +++ b/drivers/ufs/host/ufs-amd-versal2.c @@ -43,57 +43,6 @@ struct ufs_versal2_host { u8 ctlecompval1; }; =20 -static int ufs_versal2_phy_reg_write(struct ufs_hba *hba, u32 addr, u32 va= l) -{ - static struct ufshcd_dme_attr_val phy_write_attrs[] =3D { - { UIC_ARG_MIB(CBCREGADDRLSB), 0, DME_LOCAL }, - { UIC_ARG_MIB(CBCREGADDRMSB), 0, DME_LOCAL }, - { UIC_ARG_MIB(CBCREGWRLSB), 0, DME_LOCAL }, - { UIC_ARG_MIB(CBCREGWRMSB), 0, DME_LOCAL }, - { UIC_ARG_MIB(CBCREGRDWRSEL), 1, DME_LOCAL }, - { UIC_ARG_MIB(VS_MPHYCFGUPDT), 1, DME_LOCAL } - }; - - phy_write_attrs[0].mib_val =3D (u8)addr; - phy_write_attrs[1].mib_val =3D (u8)(addr >> 8); - phy_write_attrs[2].mib_val =3D (u8)val; - phy_write_attrs[3].mib_val =3D (u8)(val >> 8); - - return ufshcd_dwc_dme_set_attrs(hba, phy_write_attrs, ARRAY_SIZE(phy_writ= e_attrs)); -} - -static int ufs_versal2_phy_reg_read(struct ufs_hba *hba, u32 addr, u32 *va= l) -{ - u32 mib_val; - int ret; - static struct ufshcd_dme_attr_val phy_read_attrs[] =3D { - { UIC_ARG_MIB(CBCREGADDRLSB), 0, DME_LOCAL }, - { UIC_ARG_MIB(CBCREGADDRMSB), 0, DME_LOCAL }, - { UIC_ARG_MIB(CBCREGRDWRSEL), 0, DME_LOCAL }, - { UIC_ARG_MIB(VS_MPHYCFGUPDT), 1, DME_LOCAL } - }; - - phy_read_attrs[0].mib_val =3D (u8)addr; - phy_read_attrs[1].mib_val =3D (u8)(addr >> 8); - - ret =3D ufshcd_dwc_dme_set_attrs(hba, phy_read_attrs, ARRAY_SIZE(phy_read= _attrs)); - if (ret) - return ret; - - ret =3D ufshcd_dme_get(hba, UIC_ARG_MIB(CBCREGRDLSB), &mib_val); - if (ret) - return ret; - - *val =3D mib_val; - ret =3D ufshcd_dme_get(hba, UIC_ARG_MIB(CBCREGRDMSB), &mib_val); - if (ret) - return ret; - - *val |=3D (mib_val << 8); - - return 0; -} - static int ufs_versal2_enable_phy(struct ufs_hba *hba) { u32 offset, reg; @@ -162,64 +111,64 @@ static int ufs_versal2_setup_phy(struct ufs_hba *hba) u32 reg; =20 /* Bypass RX-AFE offset calibrations (ATT/CTLE) */ - ret =3D ufs_versal2_phy_reg_read(hba, FAST_FLAGS(0), ®); + ret =3D ufshcd_dwc_phy_reg_read(hba, FAST_FLAGS(0), ®); if (ret) return ret; =20 reg |=3D MPHY_FAST_RX_AFE_CAL; - ret =3D ufs_versal2_phy_reg_write(hba, FAST_FLAGS(0), reg); + ret =3D ufshcd_dwc_phy_reg_write(hba, FAST_FLAGS(0), reg); if (ret) return ret; =20 - ret =3D ufs_versal2_phy_reg_read(hba, FAST_FLAGS(1), ®); + ret =3D ufshcd_dwc_phy_reg_read(hba, FAST_FLAGS(1), ®); if (ret) return ret; =20 reg |=3D MPHY_FAST_RX_AFE_CAL; - ret =3D ufs_versal2_phy_reg_write(hba, FAST_FLAGS(1), reg); + ret =3D ufshcd_dwc_phy_reg_write(hba, FAST_FLAGS(1), reg); if (ret) return ret; =20 /* Program ATT and CTLE compensation values */ if (host->attcompval0) { - ret =3D ufs_versal2_phy_reg_write(hba, RX_AFE_ATT_IDAC(0), host->attcomp= val0); + ret =3D ufshcd_dwc_phy_reg_write(hba, RX_AFE_ATT_IDAC(0), host->attcompv= al0); if (ret) return ret; } =20 if (host->attcompval1) { - ret =3D ufs_versal2_phy_reg_write(hba, RX_AFE_ATT_IDAC(1), host->attcomp= val1); + ret =3D ufshcd_dwc_phy_reg_write(hba, RX_AFE_ATT_IDAC(1), host->attcompv= al1); if (ret) return ret; } =20 if (host->ctlecompval0) { - ret =3D ufs_versal2_phy_reg_write(hba, RX_AFE_CTLE_IDAC(0), host->ctleco= mpval0); + ret =3D ufshcd_dwc_phy_reg_write(hba, RX_AFE_CTLE_IDAC(0), host->ctlecom= pval0); if (ret) return ret; } =20 if (host->ctlecompval1) { - ret =3D ufs_versal2_phy_reg_write(hba, RX_AFE_CTLE_IDAC(1), host->ctleco= mpval1); + ret =3D ufshcd_dwc_phy_reg_write(hba, RX_AFE_CTLE_IDAC(1), host->ctlecom= pval1); if (ret) return ret; } =20 - ret =3D ufs_versal2_phy_reg_read(hba, FW_CALIB_CCFG(0), ®); + ret =3D ufshcd_dwc_phy_reg_read(hba, FW_CALIB_CCFG(0), ®); if (ret) return ret; =20 reg |=3D MPHY_FW_CALIB_CFG_VAL; - ret =3D ufs_versal2_phy_reg_write(hba, FW_CALIB_CCFG(0), reg); + ret =3D ufshcd_dwc_phy_reg_write(hba, FW_CALIB_CCFG(0), reg); if (ret) return ret; =20 - ret =3D ufs_versal2_phy_reg_read(hba, FW_CALIB_CCFG(1), ®); + ret =3D ufshcd_dwc_phy_reg_read(hba, FW_CALIB_CCFG(1), ®); if (ret) return ret; =20 reg |=3D MPHY_FW_CALIB_CFG_VAL; - return ufs_versal2_phy_reg_write(hba, FW_CALIB_CCFG(1), reg); + return ufshcd_dwc_phy_reg_write(hba, FW_CALIB_CCFG(1), reg); } =20 static int ufs_versal2_phy_init(struct ufs_hba *hba) @@ -406,7 +355,7 @@ static int ufs_versal2_phy_ratesel(struct ufs_hba *hba,= u32 activelanes, u32 rx_ =20 for (lane =3D 0; lane < activelanes; lane++) { time_left =3D TIMEOUT_MICROSEC; - ret =3D ufs_versal2_phy_reg_read(hba, RX_OVRD_IN_1(lane), ®); + ret =3D ufshcd_dwc_phy_reg_read(hba, RX_OVRD_IN_1(lane), ®); if (ret) return ret; =20 @@ -416,12 +365,12 @@ static int ufs_versal2_phy_ratesel(struct ufs_hba *hb= a, u32 activelanes, u32 rx_ else reg &=3D ~MPHY_RX_OVRD_VAL; =20 - ret =3D ufs_versal2_phy_reg_write(hba, RX_OVRD_IN_1(lane), reg); + ret =3D ufshcd_dwc_phy_reg_write(hba, RX_OVRD_IN_1(lane), reg); if (ret) return ret; =20 do { - ret =3D ufs_versal2_phy_reg_read(hba, RX_PCS_OUT(lane), ®); + ret =3D ufshcd_dwc_phy_reg_read(hba, RX_PCS_OUT(lane), ®); if (ret) return ret; =20 @@ -483,12 +432,12 @@ static int ufs_versal2_pwr_change_notify(struct ufs_h= ba *hba, enum ufs_notify_ch =20 /* Remove rx_req override */ for (lane =3D 0; lane < dev_req_params->lane_tx; lane++) { - ret =3D ufs_versal2_phy_reg_read(hba, RX_OVRD_IN_1(lane), ®); + ret =3D ufshcd_dwc_phy_reg_read(hba, RX_OVRD_IN_1(lane), ®); if (ret) return ret; =20 reg &=3D ~MPHY_RX_OVRD_EN; - ret =3D ufs_versal2_phy_reg_write(hba, RX_OVRD_IN_1(lane), reg); + ret =3D ufshcd_dwc_phy_reg_write(hba, RX_OVRD_IN_1(lane), reg); if (ret) return ret; } diff --git a/drivers/ufs/host/ufshcd-dwc.c b/drivers/ufs/host/ufshcd-dwc.c index ccf785fce6cc..82b03b926e77 100644 --- a/drivers/ufs/host/ufshcd-dwc.c +++ b/drivers/ufs/host/ufshcd-dwc.c @@ -144,6 +144,75 @@ int ufshcd_dwc_link_startup_notify(struct ufs_hba *hba, } EXPORT_SYMBOL(ufshcd_dwc_link_startup_notify); =20 +/** + * ufshcd_dwc_phy_reg_write - Write a DWC M-PHY CREG register + * @hba: private structure pointer + * @addr: M-PHY CREG register address + * @val: value to write + * + * Write a 16-bit M-PHY CREG register through the Synopsys DesignWare + * UniPro indirect register access interface. + * + * Return: 0 on success, non-zero value on failure. + */ +int ufshcd_dwc_phy_reg_write(struct ufs_hba *hba, u32 addr, u32 val) +{ + const struct ufshcd_dme_attr_val phy_write_attrs[] =3D { + { UIC_ARG_MIB(CBCREGADDRLSB), (u8)addr, DME_LOCAL }, + { UIC_ARG_MIB(CBCREGADDRMSB), (u8)(addr >> 8), DME_LOCAL }, + { UIC_ARG_MIB(CBCREGWRLSB), (u8)val, DME_LOCAL }, + { UIC_ARG_MIB(CBCREGWRMSB), (u8)(val >> 8), DME_LOCAL }, + { UIC_ARG_MIB(CBCREGRDWRSEL), 1, DME_LOCAL }, + { UIC_ARG_MIB(VS_MPHYCFGUPDT), 1, DME_LOCAL } + }; + + return ufshcd_dwc_dme_set_attrs(hba, phy_write_attrs, + ARRAY_SIZE(phy_write_attrs)); +} +EXPORT_SYMBOL(ufshcd_dwc_phy_reg_write); + +/** + * ufshcd_dwc_phy_reg_read - Read a DWC M-PHY CREG register + * @hba: private structure pointer + * @addr: M-PHY CREG register address + * @val: pointer where the read value is stored + * + * Read a 16-bit M-PHY CREG register through the Synopsys DesignWare + * UniPro indirect register access interface. + * + * Return: 0 on success, non-zero value on failure. + */ +int ufshcd_dwc_phy_reg_read(struct ufs_hba *hba, u32 addr, u32 *val) +{ + const struct ufshcd_dme_attr_val phy_read_attrs[] =3D { + { UIC_ARG_MIB(CBCREGADDRLSB), (u8)addr, DME_LOCAL }, + { UIC_ARG_MIB(CBCREGADDRMSB), (u8)(addr >> 8), DME_LOCAL }, + { UIC_ARG_MIB(CBCREGRDWRSEL), 0, DME_LOCAL }, + { UIC_ARG_MIB(VS_MPHYCFGUPDT), 1, DME_LOCAL } + }; + u32 mib_val; + int ret; + + ret =3D ufshcd_dwc_dme_set_attrs(hba, phy_read_attrs, + ARRAY_SIZE(phy_read_attrs)); + if (ret) + return ret; + + ret =3D ufshcd_dme_get(hba, UIC_ARG_MIB(CBCREGRDLSB), &mib_val); + if (ret) + return ret; + + *val =3D mib_val; + ret =3D ufshcd_dme_get(hba, UIC_ARG_MIB(CBCREGRDMSB), &mib_val); + if (ret) + return ret; + + *val |=3D (mib_val << 8); + + return 0; +} +EXPORT_SYMBOL(ufshcd_dwc_phy_reg_read); + MODULE_AUTHOR("Joao Pinto "); MODULE_DESCRIPTION("UFS Host driver for Synopsys Designware Core"); MODULE_LICENSE("Dual BSD/GPL"); diff --git a/drivers/ufs/host/ufshcd-dwc.h b/drivers/ufs/host/ufshcd-dwc.h index 0406f2bb576b..d8673cd54d4c 100644 --- a/drivers/ufs/host/ufshcd-dwc.h +++ b/drivers/ufs/host/ufshcd-dwc.h @@ -45,4 +45,6 @@ int ufshcd_dwc_link_startup_notify(struct ufs_hba *hba, enum ufs_notify_change_status status); int ufshcd_dwc_dme_set_attrs(struct ufs_hba *hba, const struct ufshcd_dme_attr_val *v, int n); +int ufshcd_dwc_phy_reg_write(struct ufs_hba *hba, u32 addr, u32 val); +int ufshcd_dwc_phy_reg_read(struct ufs_hba *hba, u32 addr, u32 *val); #endif /* End of Header */ --=20 2.43.0 From nobody Thu Sep 24 16:57:27 2026 Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazon11013049.outbound.protection.outlook.com [40.107.159.49]) (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 3356E4EF12F; Tue, 22 Sep 2026 07:33:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.159.49 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790062431; cv=fail; b=jMmJ4Ffhu6uqgqMWn9BCf/bbsIiGeOSmkPStr1FdD19zUk/B/5koc8UF8nv8b9eSAdkjzI/JfbbbIBM/bP4FkwozPp3dBck/W27F70qYKxQhzoRsGhvtTwPY890I5Tt8PWfYXP/FBi0ulzibxnYeEER7GalQgggxAAV3xPL+v8U= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790062431; c=relaxed/simple; bh=93SRhXjUxz1byGfzUvmXDstTzFRRiX+x6ziIEntNfGo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=U3idyFS4kSsETY51B93rR3ceuKn0Ar+1b+IbnTIt/XxR4UIbk7orFzERVfdoLxaC71n8SdnH7xYutzot2qu4wIc/mi8ycJ5bbM4MfufiM5pNjqJ/R/E/01RoWeimAF/EicAqxllw9JeXsD3aLnwvL71tLdyt0WK3ZgBQ7Xq+hPQ= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=hF6H0ymA; arc=fail smtp.client-ip=40.107.159.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="hF6H0ymA" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=xtI5sd9GTm+mOQJluTFbmquXCn6cmtIrfBlknz9OomYkoYyfPdI/BY0kNKPM742rjl+w71DHJ/kNZXtivJZlMHGmG5b/yf5tYcX+pVQb7P/xuTzqTrdnrlRSGIfx8jZlLhJ2wj9ttl0XqVeR+E842vs5HTafBypHeG/Z+lE5m5bKulPyOdc+0hGZ/pV4fzC9I9ktG3dCghrnEYHOxbMbpJlF+VKWx00dARdBXKRY9CINoep8txj+ByRNhoeIY42R6mm2EsHpBbt87/sPeYZDj1dCKpJFEF9yDjz84tkiagS4HtNQOtKQdZ0VjzIAvgHg2VRjMrfzed5poHlP+F2E2w== 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=tPM4cIMEuK/SLaKck7AgGlfS4gGu3+p7D0uDQrXERn8=; b=mLrrva2Y58bvd4j5puLGdJ/K64k5GlVH5G7xu3VTQIo5vUj/lEGnDuYnkO70N5pmKblrIjLx/EUHFBvXFpJ0Arsgz0MWozz4vCER/N3z/nn052+nnEDT7ypjwoPWhPuhknnWRzLcCX707i3Sn+8rR13ZfB645OA6czw+VovyDLpJPbf8znNvSgXVblIfZS7WZrX5DrwiWtRJokb2ZyG5ab7M5Lam/xg66VLsM1fu8P8PAjixIRrECOsCq9FvMKN1dpr/S/B4k1CnNQTCCJFIc5AG+fZwAf9H5kU6Wn7Q/cfyXqr5U90ZDZnsoCzRQVjpJy9tLHsINQc5WKgPxLvcyA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=tPM4cIMEuK/SLaKck7AgGlfS4gGu3+p7D0uDQrXERn8=; b=hF6H0ymAaqN5dy+eNboniORUOCkU3idBupUNZpKFfIfAup1hoOncc/Asac7rw8wYABD8lhLwDHfiinVx1WdwdzP9zFh1r8sX2RDCoJhBUI4eCECB0SvsWkm6X9Vndc5FFMa7tZS2xefTr3a2ZcFNxzy2IAUUluhp+X6265KlEpwzYZYD5D7K8cR9cuR9Kd7inm2wnvmQrPX1SlWueXfomrj86H1jyi9AcwHuR2x26Y6z2GwigVs620c6t1LwJD1Pe3ehd40eO1AUViKXs/XRFUO1zJsjgvFsi6JsHfKv/UHE/8mQ7m5zPsNUg5O0zOSRFOmC3G79mQDmZRxMKeiZ1w== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GV2PR04MB12558.eurprd04.prod.outlook.com (2603:10a6:150:368::10) by MMZPR04MB213195.eurprd04.prod.outlook.com (2603:10a6:190:4f::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.16; Tue, 22 Sep 2026 07:33:25 +0000 Received: from GV2PR04MB12558.eurprd04.prod.outlook.com ([fe80::cd9f:102:ea58:4c49]) by GV2PR04MB12558.eurprd04.prod.outlook.com ([fe80::cd9f:102:ea58:4c49%6]) with mapi id 15.21.0428.015; Tue, 22 Sep 2026 07:33:24 +0000 From: Larisa Grigore To: Larisa Grigore , NXP S32 Linux Team , Alim Akhtar , Avri Altman , Bart Van Assche , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , "James E.J. Bottomley" , "Martin K. Petersen" , Sai Krishna Potthuri , Ajay Neeli , Manivannan Sadhasivam , Pedro Sousa , Hannes Reinicke , Joao Pinto Cc: linux-scsi@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, clizzi@redhat.com, aruizrui@redhat.com, eballetb@redhat.com, echanude@redhat.com Subject: [PATCH v5 06/12] scsi: ufs: dwc: Export common clock divider and link status helpers Date: Tue, 22 Sep 2026 09:30:03 +0200 Message-ID: <20260922073009.1449688-7-larisa.grigore@oss.nxp.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260922073009.1449688-1-larisa.grigore@oss.nxp.com> References: <20260922073009.1449688-1-larisa.grigore@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AM0PR10CA0006.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:208:17c::16) To GV2PR04MB12558.eurprd04.prod.outlook.com (2603:10a6:150:368::10) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV2PR04MB12558:EE_|MMZPR04MB213195:EE_ X-MS-Office365-Filtering-Correlation-Id: 7e1d277a-8d58-4db1-bdcd-08df187bc934 X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|1800799024|376014|7416014|23010399003|366016|921020|6133799003|10067099003|56012099006|11063799006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: 1KkTwvjE+if/Jo1gU2iwgCQ77SAJz8PCyV8CssNq5CJ/GbvuNoLVXAFB1moIOWl2DoJlnlzNDUEvw0HEfnUTa84c8Qe5+XbhcXTKtuB7epq7zuEAhNvgMyajgVUkTso0IYtSMVfv/qrnGciwZD6Bz93qTqKFb7doeIniFp3wA+nd8DeMu/KsyoxPtsrdz6kFeRdCxUCjQYNuEFo6GJ3INpEyWDa3U5o9G4zU75sFVIWhzQIwzR9us6Nez15MV44Pv/2IEje7zpscT5oFTQcf5shp3njmfyM309Tism//c0EwuMCE7r+bTFT4NvNmOb4HfdlBNDoXBF27/tfBgqfHMgU9uWyO8gLbRw92f0Yh1WHFFDPWtz4TZ/Q9rbaJi7+Jydcdp6pqbHSErXVuustvRGVf3yxzZ+n1X3hgfzt5Cq24w+EivCpLb81CtsdMfNEucGOnQEXkLHBCkvJSuegpok1HDXQZ9y2w3nan6i45fu1471KRZ5KhA7lXzsuICvedc6VQnqOGzITkQPWFU7xfM9nij+9dAP3q3uYAX1+1zzTbkQE4OrYQTuKc9uL/mc3AObFWb7R0vgINiE8+jMNnCFUWuBC8y/y73E4swLFi3Brwa420ps7ND7DwOgiIRqwYkyif5Kc8n5MfSKMtK3iV+JMZ7T9KQPzKd9SwNFeY+Gws43J5Uy3eRCaW/Bz8gwjyKeszbZTETwIQ2x4agYvBMg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR04MB12558.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(1800799024)(376014)(7416014)(23010399003)(366016)(921020)(6133799003)(10067099003)(56012099006)(11063799006)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?T2JER2RoVVhrSlh6NVpiVEVCRThFbHVZM0t1bHZOaDU5bTRjTThNSHBtVlYz?= =?utf-8?B?dStPM1NXSFllZkRSTXQrZWk1bHVwVW1JanFFRzdSaVVHV0JZUVEyMWZwVkpp?= =?utf-8?B?MjNjcFVjV2dvaEVzN2lJMjdRR3FOVWk4cTZVRHZqT3E4ZVNaRUY0bzdnd1h0?= =?utf-8?B?c2lvN3FvUzkwTU1HVjNEclhIYjY2ZkFJSEYrVG1TNm41NGtEV1orTTBBaTlL?= =?utf-8?B?b0FqcDR0bEoxVFJONlJCeEI2RytLVDFGcmxiWkNZTmJKQ0xPd2JhYUEzSVFy?= =?utf-8?B?Z2JQVjZjZXJmU2Zma1h5ZFgvVkg1REJoblZ5MERTdzhQVm8zRGl6Z2Z6ZFND?= =?utf-8?B?eEVXMlJhKzFLWTVxRXFjbHhhdkttUEQxT0EySGRKRzVtY0QxdTBTL3ZBdUEy?= =?utf-8?B?eGVvb3p5RWsrRkc2ZTJMNjg1RU5hZHNCRDlsUGFpZ2F1S01UT0RsOS9oMzRo?= =?utf-8?B?VlM4Zmhhd2Zhd3FKMVFsVGxqVFRsYVpOZ25OdGt0ZGpBNGtBMmJIbjRxcFAy?= =?utf-8?B?UktaczEybEkvVEdxUm83TDJ3WmFuQ2YwaEtmb0VvbWpFRW9vbkRWUVN6WWdz?= =?utf-8?B?WGdxQll1SkVTSnJNajJYUHF2YW9ZdjkrZ01sMjVJV1UxNXdBaWh0MlUwcW53?= =?utf-8?B?QlVtT0drTnNkQ0M0ejgzRWFBcFl2WTA5NHg1NERrTWw3bFNURk5XQkZEZzM4?= =?utf-8?B?N295Rko2b3V6cHRMTkppdDlyampxdndJdndpL2dUN0wydWdtVHFKRkpiWlI1?= =?utf-8?B?WXUvNHN2Q1FHak91cVUxMGdNa3FZTkQ2ZkxZVFFnRnpLNG9lWEwzUHVuZUhs?= =?utf-8?B?aENRa2FnbU9GZ3hnakwrZUcwSDdvY01tcjYycEp5dGpFQ1JtcDIrMTRHMmV0?= =?utf-8?B?Z3JvNXhGbUt0SVRHRUhKSmliR0dxN2VQV2xHTmRhaE84U3lPdFZRTnZXTzdY?= =?utf-8?B?Y0F0Ui9RWmhVZHpoYUIvOFhmeElFWTNJTmkyaDVCL3V6T2lzck9mS2MzTGtl?= =?utf-8?B?c1BjOWdybnE1VndTWkZuMk1UeUI5TWowWHpzanQ3cE5FbHM2N24yNDRrSEwz?= =?utf-8?B?S1I1bFZBSEM2NHhWNnBPZVEzUG5EQjVpYUlzTldmbzhrSmxCajQrdHVVTFpB?= =?utf-8?B?MXVRa3UzSnV3cEQ0T0lBM1lIaUVvcUVLUWtSTjBZR1Z5bmZXbS96SVAraXlZ?= =?utf-8?B?cHloZ3JiR1R6djY5a2srbWxUcXZ4ZXBPMGgydFN1ZzZOTWFFOGZuSFNucGVt?= =?utf-8?B?dUxQT1dCT3lqalVUV1p4T3FMTDRVMmFZR3pzM0ZQN0lKa3NLSXdPK2tGTDJH?= =?utf-8?B?aUZKZnM0Tm1KOERSWmZlVnJXam1oeER2djlCODZZdHFjODYrbHFFc3k1d2ZW?= =?utf-8?B?aVNiVU5hWWhTYldRZ3lrNVNuZVIvRFd2RFJjN0xkclNLTHhIakZmOXV6Ylg5?= =?utf-8?B?V1UyWWVtU2IrazdKUWJoZWY4a0pUd2hURmRVSkZ3SU9tMmh1VEtTMlRESGEv?= =?utf-8?B?YVIyQTA5R0J5K2dlekQ0R1JqYVpVeUFaWVljdUJMcGYydkRTdkxuUWdONDhS?= =?utf-8?B?MWtpcXhsTE1Wa0t3U2FsNy9aMktYVmJ4WTNoVC9vQkVTWGdHWUhiZUc4QklU?= =?utf-8?B?K0poa2VOS2lwQmVLWEZaMXBqbVdGY0h4Rm1OUTZQTXczckRrTGk1VWM3QXkr?= =?utf-8?B?ZTVsOU5ZWU1vRkowcmtTZGlEdTBBWEJQaXF2aitOemdTTDNIWHB6YmQyYkVs?= =?utf-8?B?U1ozY3RkSjU0a3ZyUnhEZjJNNUpEVk10TFlGM2hST3BWS0svWGhzYk1WdmV3?= =?utf-8?B?cldMVFc0K3p2ZDBNRWkxalRTZzJwVUIwZCtjN1h1S0JpZlIwZnRJNldJWU9O?= =?utf-8?B?S0ZpQU5yQ2F0Qm5FRitzRlBKZjVvMkpiMkdhUzhBQWRZWlVKWVo4YjJzOXkv?= =?utf-8?B?OG4vTUs4R1ZWc2tldkxicU9yV1M0Nk1jaU1OR1VRRGlBY05kK1JQeTZJUW5V?= =?utf-8?B?M2t5anZEa1lTblJsNGEvcy95YmV5d3ZRWkhmaGtlWDkzWlphZ2V6eWNZOTda?= =?utf-8?B?SXh6Ym5KaVJTK1FXNW1YaVcyd1ByYURjcGM2VkZuOVVlUlZLb3U5ODhQZ2dq?= =?utf-8?B?ZVFUbnFubG9UQjlsMUR3bEMvUDUwdTdLRVZrTGpvTTFIQTJFOWxvY01YeGpm?= =?utf-8?B?bW5yMFZoU0VYaVlTSUkrd1VEMG01ZXJHL0NSYzF6Lzk0V3k0QVkrS1g2SVdk?= =?utf-8?B?eUg4c0ZqbkNTY1AyVmpac25ZQkh1T25CeUhBRHNsay9mV1RZMVd6SlUzZUZC?= =?utf-8?B?Z0FwTUY0a2NJSldFZ3ZBTmxYUmtkWE1wb0hST1RTb0lPeVNiM0pjOEIvSWtT?= =?utf-8?Q?sEbMa86WCde17/pU=3D?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7e1d277a-8d58-4db1-bdcd-08df187bc934 X-MS-Exchange-CrossTenant-AuthSource: GV2PR04MB12558.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Sep 2026 07:33:24.6443 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: WLDk6HBerlUdNLKYQiFLtUQ8mFLFqn5vYinS+z5wrdA0MyRxWQ9uAUtjpPT1cQXGFgOQL5QoXrOLQS9pESCaJw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MMZPR04MB213195 Content-Type: text/plain; charset="utf-8" Make ufshcd_dwc_program_clk_div() and ufshcd_dwc_link_is_up() available to DWC-based platform glue drivers. These helpers are needed by platform drivers that must program the controller HCLK divider and verify link state during their vendor-specific initialization flows. Signed-off-by: Larisa Grigore Reviewed-by: Frank Li --- drivers/ufs/host/ufshcd-dwc.c | 6 ++++-- drivers/ufs/host/ufshcd-dwc.h | 2 ++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/ufs/host/ufshcd-dwc.c b/drivers/ufs/host/ufshcd-dwc.c index 82b03b926e77..977b368474b0 100644 --- a/drivers/ufs/host/ufshcd-dwc.c +++ b/drivers/ufs/host/ufshcd-dwc.c @@ -39,10 +39,11 @@ EXPORT_SYMBOL(ufshcd_dwc_dme_set_attrs); * @divider_val: clock divider value to be programmed * */ -static void ufshcd_dwc_program_clk_div(struct ufs_hba *hba, u32 divider_va= l) +void ufshcd_dwc_program_clk_div(struct ufs_hba *hba, u32 divider_val) { ufshcd_writel(hba, divider_val, DWC_UFS_REG_HCLKDIV); } +EXPORT_SYMBOL(ufshcd_dwc_program_clk_div); =20 /** * ufshcd_dwc_link_is_up() - check if link is up. @@ -50,7 +51,7 @@ static void ufshcd_dwc_program_clk_div(struct ufs_hba *hb= a, u32 divider_val) * * Return: 0 on success, a negative errno value on failure. */ -static int ufshcd_dwc_link_is_up(struct ufs_hba *hba) +int ufshcd_dwc_link_is_up(struct ufs_hba *hba) { int dme_result =3D 0; int ret; @@ -66,6 +67,7 @@ static int ufshcd_dwc_link_is_up(struct ufs_hba *hba) =20 return -ENOLINK; } +EXPORT_SYMBOL(ufshcd_dwc_link_is_up); =20 /** * ufshcd_dwc_connection_setup() - configure unipro attributes. diff --git a/drivers/ufs/host/ufshcd-dwc.h b/drivers/ufs/host/ufshcd-dwc.h index d8673cd54d4c..53b523ef59df 100644 --- a/drivers/ufs/host/ufshcd-dwc.h +++ b/drivers/ufs/host/ufshcd-dwc.h @@ -47,4 +47,6 @@ int ufshcd_dwc_dme_set_attrs(struct ufs_hba *hba, const struct ufshcd_dme_attr_val *v, int n); int ufshcd_dwc_phy_reg_write(struct ufs_hba *hba, u32 addr, u32 val); int ufshcd_dwc_phy_reg_read(struct ufs_hba *hba, u32 addr, u32 *val); +int ufshcd_dwc_link_is_up(struct ufs_hba *hba); +void ufshcd_dwc_program_clk_div(struct ufs_hba *hba, u32 divider_val); #endif /* End of Header */ --=20 2.43.0 From nobody Thu Sep 24 16:57:27 2026 Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazon11013049.outbound.protection.outlook.com [40.107.159.49]) (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 6461E3C4B68; Tue, 22 Sep 2026 07:33:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.159.49 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790062444; cv=fail; b=UvGiHnaq8ximIv31CjzOOhspOz81lIPE2Yk/Ai/caENQ1oTY/a2q2mSAeKbhlGSDbOqn/2o2LDwAWpnqO4ataLaNy5AWhGWe3WMCAorKgC6mZIBbU5c1lFFEMqRNYbU3SW8CpFMyf67EbamEVxWm/mIFSnyPIVU42T1razeQseM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790062444; c=relaxed/simple; bh=vxHiHQ8TCou2gMacBhYKabBwcQsImxAuGRXVVJ0KjeM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=JVkhoaz3TLTFwemvASNc+frig/vHOHjogCIjYIGeIbd2ja+C1v7A8oMOAYtnJGpGZwYSvp9IeyXcoyQeLrbEVQy82Jbq8O7uAiWefBFZustUhzo5C+wEi8PZG0SGyLSoqmAZLAXCQcIXtnO9bemmTqT4rlnZXuB+xIyW1vuJ08Q= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=OW5/24sL; arc=fail smtp.client-ip=40.107.159.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="OW5/24sL" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=YKJiHXJdBFX5AAwAKs0hav1xZM15j0fu8fO2W0ffUKlVdXLaJ78koiI226EG3B5qQsPDHXBjvAALRbfIAfRTe+huFEW/bHQRLWrUjLqyU2P/SSwSCb8C+/Y5FwzZmjjExLVNp84GrElAVqjDCVAznUFZT/Qn0InRvKrPo334jueGu4ZSwcQs5l+fmr6YfSBASkOFViH8wU3X8pf7Wjldtkw/HSeXVowPkO993A+FyAUZlD/iRa9dpVEZjYQ0ARzeFxnrwU3/xe1N/hNZVeGkQf2XCy911IYNEoCUnzYzGo1sAkZ2316m9XTAUv43FS6UBN3dReaHNl6xHtluMD2T4A== 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=zFtPGxIpz3UV9fRrrYum/6wEcffLzC7frZcFRmMGgmc=; b=hEMskO+xTtYRAOwXFy0hBCpeDCaM+Q+J/hdkzShHLvAGQEIqhhSZ8UtMk0ehxtHy3PLGUdZOBlOnxMrMrCkKlmiRZ3VjkKKoI2CjNL4O2JMXadhnsKMll3gFE3gDwFe2aTlYyFn0+9rsKBPAxoank0X4+X32kZOjxbFeQJv2JBxmhY3BJWrOenPfE3kxLihwTT9ltYZ9KqCJUOhwxahIMX4g4EEUPHXjB4csCttR25/Ouz3t01igkCybWXeBIE2XGBqfBBQqOKx2TFFIjecbVcrwFR9eyYueN1Ez+v7fUsDmHDJOvR1N3Ymo4erahsAMjoaKRyE9eH4qr+3jq5ajFg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=zFtPGxIpz3UV9fRrrYum/6wEcffLzC7frZcFRmMGgmc=; b=OW5/24sLAtkHbqLRKd63Ba0Zn+tIKosrbPiBe7y690SqzH3dtaOQ9M0TUmkkuuf1RsZZvxutev6ky3L2qlIjIeAUOgHj6RjbY6yqSjKxgd82mgUFwJNt0lN6b++SZKGXfX5Us7dUvLQfJoZj7FkH2DR9fdjEeC2BHYlJ4hVrnpEYgj8jfxEI7OHCB/GybaxMbKQBENtlR9DTugTORtRqLg1tWnpsPYNOirefcXSgnZ3QU0oeuRhVFsk/fWegecsKjzEGeboxnLcBUzGa0kQGPO30J6PQYnYIxMPknkDfGs35qK4GjCS1TclsCr60m5DvzK5FjVUnBpmV58fet6uZOA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GV2PR04MB12558.eurprd04.prod.outlook.com (2603:10a6:150:368::10) by MMZPR04MB213195.eurprd04.prod.outlook.com (2603:10a6:190:4f::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.16; Tue, 22 Sep 2026 07:33:26 +0000 Received: from GV2PR04MB12558.eurprd04.prod.outlook.com ([fe80::cd9f:102:ea58:4c49]) by GV2PR04MB12558.eurprd04.prod.outlook.com ([fe80::cd9f:102:ea58:4c49%6]) with mapi id 15.21.0428.015; Tue, 22 Sep 2026 07:33:26 +0000 From: Larisa Grigore To: Larisa Grigore , NXP S32 Linux Team , Alim Akhtar , Avri Altman , Bart Van Assche , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , "James E.J. Bottomley" , "Martin K. Petersen" , Sai Krishna Potthuri , Ajay Neeli , Manivannan Sadhasivam , Pedro Sousa , Hannes Reinicke , Joao Pinto Cc: linux-scsi@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, clizzi@redhat.com, aruizrui@redhat.com, eballetb@redhat.com, echanude@redhat.com Subject: [PATCH v5 07/12] dt-bindings: ufs: Add NXP S32N79 UFS host controller Date: Tue, 22 Sep 2026 09:30:04 +0200 Message-ID: <20260922073009.1449688-8-larisa.grigore@oss.nxp.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260922073009.1449688-1-larisa.grigore@oss.nxp.com> References: <20260922073009.1449688-1-larisa.grigore@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AM0PR10CA0008.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:208:17c::18) To GV2PR04MB12558.eurprd04.prod.outlook.com (2603:10a6:150:368::10) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV2PR04MB12558:EE_|MMZPR04MB213195:EE_ X-MS-Office365-Filtering-Correlation-Id: ca7b3a9e-0884-490c-3b20-08df187bca60 X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|1800799024|376014|7416014|23010399003|366016|921020|3023799007|10067099003|56012099006|11063799006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: 98c0iozF+U4jdT25CtklWPxjNvwJowfJfPdf4j1rYHs6TcNLy/F2agmH75cSWalUXZvOu25rm7pYLVPCpwe7bj7PqqjN7ifauzdtl1b3J/Qlqo4QVX8cCmMkZMYyaODKWMBMGZ51SBoSYUVW5rnI0/gdueckeVT80xXD960qGfqbWdHPl1MI9+nc5xdwE0EKxahvev4bkssNkszn2rYowbK7ceiJyCa1QuBMEeHIz/Yv8fdImhWMINBxazuda2C+UGgtno7KN+oB+5y17PcWWYREGfjVHpuAZtWXb9RzjiN3VJOFJzESKBao3OJ7KBCsvDRY7c5d7VtXN3JvpUJ7VBrz7hxu7R6O4f+i+I20Ogjt94VdsLYEVdG52nziDXUsfdmwCF5qqPLyWrjUqinQGm3W1u0LqORv/rJF5URnIWbw9kEDvgC9y20vu/bjVFzJxCCqWFWFcU3aWgYD2+wi5mUdib0dP/HRzBedBiG3MRCSzc2cAEKAxkETB9xwasy0N0QRJR1nzbIzxckNNZPTn9WI1SU4Eah4y3ByFZu+xaL2gHMSlo35V00vAdiCW4ezILMcFWTvm0BoiebghHmOaN7raMuzPD38jTdYUlJsmBxglO+k32HnjsICoeOgB3db79YW7m0zFk8ECcgZIeWNcWG/W7s44fZJdIsk5baSWCc= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR04MB12558.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(1800799024)(376014)(7416014)(23010399003)(366016)(921020)(3023799007)(10067099003)(56012099006)(11063799006)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?YjBnSm9icWRxT0c4eSthS09WNGVWSjFPTTJ0UHZzdVRFalE5Zit2RnlwMk0z?= =?utf-8?B?alB4QWZiZks4NUdTdjQ1YUdROGVyamlGU2ptTlgxbkUwNjllalRLbWIrNklx?= =?utf-8?B?NS9rbWV6ZnovVTNOaFJtNjhKTU9ZbVdDQXYrUHBQZkJ1OFJJeVJuNWppTXFR?= =?utf-8?B?dUFuZEovWDBmdmV1ODMwemNtVmR2T25rQTd2WlVKNTNFeTBRblhXWlJLSXlP?= =?utf-8?B?YTZZWDJQOVdhb3NIa3phV2dkSitXSVhWMzNjZWVNUmNrQ2dJTlliLzFHS0Ur?= =?utf-8?B?Q1hYcmRXVDh6TUgyQ05jMmhDN2sreVF1TXZsNVFYazYxOE4zK3V4a3paaUpX?= =?utf-8?B?YVdzbExPOGM5Mk1hQ0VDc2RvKzkvMTRRT21VMjBSZUorZE52djBBTWJzUzM1?= =?utf-8?B?S2tQWE9YekRUWnlSNVlkNnpiTjhERXJ2UWxZWHJVOU5BTGYwMjE3cFBhOVpm?= =?utf-8?B?Vmc3SFZqZGpuaVlqOUE2RmNhaEpxMWlBbnZhVkFPZFlKejVVOG9aNThPcWlQ?= =?utf-8?B?UmcvaktYLzN0d2YrTkh2VFdoc3NHL1RKUStVS05zMk5yczRGVEJOdHF6dzVL?= =?utf-8?B?QTBvanR1cDhLNWNHRUNWbWxNV0hBc21WTi9LblBJRFJGd1JWbjl0aStiS3NX?= =?utf-8?B?M09JTjlWQ1dWcitpVDZYUVBSa3JLSWk2Z2FCRXJhMk1ITWJIcUNpaTZUbExN?= =?utf-8?B?dGwwOVJZN3dCYk5kcWpISzU2Q2tDRlliSVVSek12a0c0M0g5QTR6OWJmZG1H?= =?utf-8?B?ZGZ2RGZhaWxuWENEMnBmczJNWE1abVFXdU9oZkhINVM5T1IwcDU0Z3BQVVpv?= =?utf-8?B?UXV3WDFWS2EybTFIc0N1NW0wREdGNUlLcXl5RTRkRmNPdDJmM2NEZllmSVJ2?= =?utf-8?B?dnp0c21JaWF5TnBXQ1A3OXJZUmFzdWxoNHRFMXZvM08xOWtBVVFrLzV0ak9l?= =?utf-8?B?WHl0anJLdHl6aEpjVTJSQ1JWclovQUJvSytjTERmZGJ4NEdnVG9HS0VIVnA2?= =?utf-8?B?VCswYitlUFpKZ1dIeGR1WHJEakE5ZytyMldJbTQvUTliWVZCMGhGbkpYVlYw?= =?utf-8?B?SHBGVkk3bjdGajVEM3Z1Q21jSERIWmk4TVoyU0lRY1c1UWZ6eTh4Ujl2Tzc5?= =?utf-8?B?Vk16aHNXV2NBamN0c3lTdk02RFN2Sk94Wk1GQlBIbzJ3NDN4Ti8rZzdvTFFS?= =?utf-8?B?cW9QeG5UWDlhMnB6anNjMUpQWURHcVNJeFpUK2ppcEE3bGVCRWZWc2o4WjRS?= =?utf-8?B?d0hwODFXeXo5QzM0THFiK2xrbnZMR0E3dEp1OC9WQjlLdjdEcEcvQlNZczVT?= =?utf-8?B?ZEFzVmVIdHowbXA3a3lXNmF0eXJyNjE0ejByM2hBQy9UbWZidHN2bXY2MXk3?= =?utf-8?B?UGhyUnVNWEM5NVBqVTBQb1hycFRUZkU1Ri81NjJxTk5LRFBaOTU3WjREdUN0?= =?utf-8?B?M1ZHUzR4c3BzVW5pUFVKcEFMM1VzV2wyekFwdTNCa1hvaXNoM1VxOWk0QW5y?= =?utf-8?B?ZVVFQk1VdFNVd1VINGYvckt2ZGl5SHl6Q2tFb3BCMWszb3hERzVhb1V0aWw5?= =?utf-8?B?YXovU2toMldIY3E1TEpzQzZiRWxrb0dyMDRyTzJ3SzNPSklVN2dJUWRNc21S?= =?utf-8?B?QVFzbHorYlJiWCtIOUNYMFQ3UmZHOUMrQVA3RXluWlZTT1B5b091UE1KV3hh?= =?utf-8?B?RGR6Sk1iSTdkeDZ6OXdHRlFTZ3RMTGh5T09TQSs3SGd2WWc5Yjk1TEFYeHRy?= =?utf-8?B?OFlzWU1vMG9QbkRMd0JqSXEzVzhUczNreVVDL01jTlhzandkTnpOVHhkWUpn?= =?utf-8?B?WlVDbkovaUJCUTJBRUVlYnl0ZktxMUVqY0toR2xseVkxbGhoU2dXZnlZeStj?= =?utf-8?B?Tnp1dHEvMCtPUnlodS9tbWxGSlVwZE42V21SRG9MZVoxb2M4MkdDaEZhU2tN?= =?utf-8?B?VzdBSnRQbDhITVVPV0d3WjRUUFpsaGtlZjNLSUFZNjEvTVhHUzh6NGVHY01M?= =?utf-8?B?SDZQemFZSUpvVnNWeUp3eHZSbXQ4ZTd5VFEwaHQ4ZUg0cWlmRWJiSzF2MlF1?= =?utf-8?B?aEdiZFQ1end5RTA5UHAzR2NmNFlqM2tKZ1ovWStaajdzTHJQN2hKYllZSkll?= =?utf-8?B?T21GaXpic1VLSStHVExlRUF1SUdRNUlNeTcxcmI4SktBRGRkWTIyY29lc1U0?= =?utf-8?B?ZzRodWk1UlpGY0JsNExudFNjSUFnVlRjWlZIbHdaeGRwUkVmdFFMcFhjcnRw?= =?utf-8?B?ZEEySWoyOFJpdzJKd04xUytuSzQzQWthS3kvRjhNMzVxK1ZtRkwrMHloVjVV?= =?utf-8?B?SW81ZFlhbkx0NUlnRjNOdkpnMjJhR0RTZlFoOVFxdVlXYXFFWUxOVGFKZGpn?= =?utf-8?Q?Ly2LbMwO2YSDJIQI=3D?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: ca7b3a9e-0884-490c-3b20-08df187bca60 X-MS-Exchange-CrossTenant-AuthSource: GV2PR04MB12558.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Sep 2026 07:33:26.6063 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ux51KURV5omtH4Ix2jhEQjEOx0r9knjwUe8ciRwDx2Tx28uszfN24IGnKaFIRcMQV2UIV4mLT1T5d406G/Ds7A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MMZPR04MB213195 Content-Type: text/plain; charset="utf-8" Document the UFS host controller on the NXP S32N79 SoC. Signed-off-by: Larisa Grigore Reviewed-by: Frank Li --- .../bindings/ufs/nxp,s32n79-ufshc.yaml | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 Documentation/devicetree/bindings/ufs/nxp,s32n79-ufshc.= yaml diff --git a/Documentation/devicetree/bindings/ufs/nxp,s32n79-ufshc.yaml b/= Documentation/devicetree/bindings/ufs/nxp,s32n79-ufshc.yaml new file mode 100644 index 000000000000..b825fc1f5e25 --- /dev/null +++ b/Documentation/devicetree/bindings/ufs/nxp,s32n79-ufshc.yaml @@ -0,0 +1,49 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/ufs/nxp,s32n79-ufshc.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: NXP S32N79 Universal Flash Storage (UFS) Controller + +maintainers: + - Larisa Grigore + +properties: + compatible: + const: nxp,s32n79-ufshc + + reg: + items: + - description: UFS Host Controller registers + - description: System Control Module registers + + reg-names: + items: + - const: ufshc + - const: scm + + clocks: + maxItems: 1 + +required: + - compatible + - reg + - reg-names + - clocks + +allOf: + - $ref: ufs-common.yaml + +unevaluatedProperties: false + +examples: + - | + ufshc@4ac80000 { + compatible =3D "nxp,s32n79-ufshc"; + reg =3D <0x4ac80000 0x1000>, <0x4ac40000 0x1000>; + reg-names =3D "ufshc", "scm"; + interrupt-parent =3D <&irqsteer_coss>; + interrupts =3D <211>; + clocks =3D <&clks 0x92>; + }; --=20 2.43.0 From nobody Thu Sep 24 16:57:27 2026 Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11010045.outbound.protection.outlook.com [52.101.84.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 645073C3F44; Tue, 22 Sep 2026 07:33:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.84.45 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790062441; cv=fail; b=OQwFTl/Zt73ctp6XpuDR28A5/tM94G/dNq//Z/d4L33pUsPAfKk12V+EC+EhpK3+XMbp+0fgcg5/BfaK8Mh96RG/ipK9yh7q06PrSptVMOQrfqpIduWxTefCXSq4atw4XBEsH9VeK6NnDpctKwp8raKrkwO1XKOo1Z+q4dMvrew= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790062441; c=relaxed/simple; bh=X/ajk0kWDqeHp+au9/dco6+O8CqCA97D+c3zKikzZ2g=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=MnTa4Y64gbs2OwoCNUceEh6p7iHPeQJuTLfOI2Krdo9APka4IBVFRPENQumGx2YuBRhhFGBXkrTxFFDKz4fSsbqsHwLlFnc65dwnPdpRwMYMcWpRXYZ61HVoUUABxzzG8rUD0IPYiFzd+XQ/JXNqSKn7d6WdLHGmi9F7xCSDFAA= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=kslI1u70; arc=fail smtp.client-ip=52.101.84.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="kslI1u70" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=irHYBWwnRiRNkczW9dAGBeKZG3Om3U8DjwO1vFAYPhS2HZLN3nTFYpj9b3t0xOJdSXAxRMEPjUIbxA7jcTN1Df2hOKmADeJNv9KcFVh9/MNjjYRrt5GM6cG4aCMmylvVJ7TREK6q4rR4pZoV+ECuSExobhcS3CXOQ/xtjan0P4rckUAhlf/d5PB8GLVcJKU0N8CjDcrML1LS6trGPKX6ZtnjHTDT5QTCAB7w07/atq9x59icVrvbOzCUE+59wkszmKMdyByet36idJ42JXqu5WFDEQtmmsOfTwb0ap7R/E1UjECIrRgSzEewVJO9sRvgvJjH7sYO8JkYqS/quUXnzg== 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=SzUpn0ruXAMZihjkL7hd55pRrzHxBtwT5AMQPoNWHcE=; b=c9HdYgZ3TnngOOXQTkvrBttMhi0A6zt4pkjKXeua3xToldU06VaKuxDV1SG/F02x83+P30veja+6qra2zakXi3FnZhtyww6q0t0hRNeaORvwOyPV+82nhVhe8XFdxC8s0IkBNjjXWBs4KFFxZcIi9j1uMy8CXQXnS9aJSZQlzwxWxBoTraaHLF44Jlp8i14kzw0tT5MlFmkSdXJFommbXvUktfR5J5h297Rn/AcmxURyiJJn1Z8lhUylkqC2GbFYePOh9/BY2A43KL3By28RRDBFkHVvdeBnAyq9aVEMvjc+2tHmWBk3iqKiBSjN5yng6spQ2lHAvDhu6lGxnsWuiw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=SzUpn0ruXAMZihjkL7hd55pRrzHxBtwT5AMQPoNWHcE=; b=kslI1u70Mv/Jfn+4UCibuspKtaFS6gsb64J+7XUS4WwWHAMlZnGIhQoK9zp2ZCENR0o4H9dWQ+fmqwKIhi6xNajQFk+BuXvujg72WHiaoVdg6CKDLON6yF82IHSy2I6x3IAMm0K6X5/3geVTgoPFMhMPFuQCwm3jIugE6FKylvjnnqNlGcrQJDTgbnmYBVBylcI7UnbncKHSv5BXGwOOJ9Twni/yY5MxKOIMzOY2TK4QWl1bQph9AxJDxyw0kGruArBwCeyu1Tk/ermi52pp6fLiO3dSS2HsrKjQOh+02sSXVYMC8Gsqh/LYXvISbOym8HGCqFw97CGg3ANYpj534g== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GV2PR04MB12558.eurprd04.prod.outlook.com (2603:10a6:150:368::10) by MMZPR04MB213195.eurprd04.prod.outlook.com (2603:10a6:190:4f::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.16; Tue, 22 Sep 2026 07:33:28 +0000 Received: from GV2PR04MB12558.eurprd04.prod.outlook.com ([fe80::cd9f:102:ea58:4c49]) by GV2PR04MB12558.eurprd04.prod.outlook.com ([fe80::cd9f:102:ea58:4c49%6]) with mapi id 15.21.0428.015; Tue, 22 Sep 2026 07:33:28 +0000 From: Larisa Grigore To: Larisa Grigore , NXP S32 Linux Team , Alim Akhtar , Avri Altman , Bart Van Assche , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , "James E.J. Bottomley" , "Martin K. Petersen" , Sai Krishna Potthuri , Ajay Neeli , Manivannan Sadhasivam , Pedro Sousa , Hannes Reinicke , Joao Pinto Cc: linux-scsi@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, clizzi@redhat.com, aruizrui@redhat.com, eballetb@redhat.com, echanude@redhat.com Subject: [PATCH v5 08/12] scsi: ufs: dwc: Sort CBCRCTRL and CBREFCLKCTRL2 by offset Date: Tue, 22 Sep 2026 09:30:05 +0200 Message-ID: <20260922073009.1449688-9-larisa.grigore@oss.nxp.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260922073009.1449688-1-larisa.grigore@oss.nxp.com> References: <20260922073009.1449688-1-larisa.grigore@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AM0PR10CA0014.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:208:17c::24) To GV2PR04MB12558.eurprd04.prod.outlook.com (2603:10a6:150:368::10) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV2PR04MB12558:EE_|MMZPR04MB213195:EE_ X-MS-Office365-Filtering-Correlation-Id: 9c07e512-f6ef-4546-9943-08df187bcb70 X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|1800799024|376014|7416014|23010399003|366016|921020|10067099003|56012099006|11063799006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: CwhonL8AYb9eer5YWeDvvxpdUI+vozcqigFO7WoAqhcRDyPkIBfLjQOl1FshyOLwJuhpnOFgFK45g/ku36G0GG/AHj/oOEZyt9800NfeTsHfOXJtwi/gTYjamejeD5kXGpRzoIdIzcnqMsfliR7NZxhBD8awx6Y7pkOznOk9OY51e5ZlluLNhUIWWfNP/OYcVG8vmXIjny/Ro6VDU8zDBL93P7m9KFOxx+RIowpSX/7lMJ5Uin/gn7VsMpRxKvgNX8QsBhrdvnnObllw51McM6YnCK3PG+Eem040GTBrw5SsrIqMIKaB6nFswEN+LH/JsW7jR4tT3hw2NqaVJKDYlDQki+YQYsVDSe2xlJY3lqr/KEpWBkVfFHm1S4DiEimic9eA+2saOimssHhsoRzCT6B/wqefkxc1HA27H7rNSFah0Lobr+THnGd0uV0o8TM56gr+EULPn6tysHNVebR2HTy62ihvD+RL+udistY2WOyI4wQ7y9wTk8JkCkqpAiTFB9oRKFgQ4fsJUpTO7hYQ5TXWK4r5BpeufPIRzpk42bqgb7AJH4s2wWPphKr5cqaYAJQQF41GV8o/ikh8M3oRbz5pFKFBfJ6ihVdPSyID8BPcdQ/VmjV6MJk6ql3T4p5S0coqoX+mL7rTk3hhrjcTYu3G8eRjd2630P49NPuv/xNmiZswftIExp/jirIXtAQTfNkB+IxETrEETxpVnA3I3g== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR04MB12558.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(1800799024)(376014)(7416014)(23010399003)(366016)(921020)(10067099003)(56012099006)(11063799006)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?aU5oODJjWnlkMElWSWJCeGYyR2dkb2RZU1J5L0ZnRVdjNThnYXhvbC9qaWJ6?= =?utf-8?B?UGYvdzB5MDhaTkJVMERwQnZqMGthY0RoVTRrSzJEOXo5WXVlN2ErK2RtWnEx?= =?utf-8?B?ck5CVmYzMnhaOW5zUHlpaHFpQWJFa05Da284cjliOEhXbjBuNlFSUFF6aElV?= =?utf-8?B?cDF2VG9zYUxBeEwrUlFjTEdIYkFyb2ZPb21Day9tWGNFRi85empBLzNWOWxr?= =?utf-8?B?TVpjWXEybCtleTJoNlRiN3FPOVNJSHlWdnhJT0tDQ1gwZVNyS2x4bk12TzR1?= =?utf-8?B?eFRqdDMwYmFGM2dSdFZ2UFVxYkRtcXJzRUdJd2RCdS9saTVuTGJnUlVobEJ6?= =?utf-8?B?ZXB2ank3R1IyNk5Tbzl4SDlKK1NybkMzV0F5L0JKOU5CckF3Tjc1Tkt1OEJW?= =?utf-8?B?a2d0WFluaHF4RUZabjJvOEhJZ1Jld2d2bnBrQUYvZjVsQjdkVlVLNlRIWEhi?= =?utf-8?B?UFl3ekJPaUNXc2NlcVVTekxNSlNjdWswaFEwSkpwY3FNSUd1Z2t0dWNNUFRZ?= =?utf-8?B?V0o5QWo1OEFVRmhPVk5qN2VuZkFxSzlpYWxjT1FDK3l4eEx2TVNnZjBhcElK?= =?utf-8?B?MS9uOW9LL01Da0k2SHlEUFIwV0NUdDFRekgxWnZTWmloSmV5RUxRU2xxdThK?= =?utf-8?B?Z24vOXpNTStwUU9ic2ZUbEplUmp4MG5Ha3NiQ2VPM0RrR3lKWWQrVjFuaVF1?= =?utf-8?B?UkJtYnBLMUQrZjRDWXh6SEN5WUxFdjBlUHk2alRuQXFrS1Vla3UzWitYS1JV?= =?utf-8?B?akdxNTlXTkdTTlk5RjB3WmFZbC9WWGRMS1VseUNJbTQ0VVFwVndNWkhHT0p1?= =?utf-8?B?cFd6cC9TOXRZVjVGVzBxdzFVZ2s1M3RoSnBhMUw5NmI4b2hQY3BXdDRLZUJ5?= =?utf-8?B?V29WQVVweGZKQWtCNUlMREpwSmdnUzFjcFQ5bGx0Q0JmSDhHR0hROHlXOEpZ?= =?utf-8?B?cGtaNVhnQnExT0pvU21FcUF1d0w5Tm9kS090QzQ4SHptVGxPT0JzdVhOdjBB?= =?utf-8?B?UjRLTVhlWTlkK3ozNWdVUU9yc212QlVkTzI3VUxSaStaSW9DV3NobFlNSmh2?= =?utf-8?B?SGhnQ0czR2htWW1VVWlRUUN5SC9JL0Z0RUoxbjFzT0pneEhaU3Nvbm9qWHNu?= =?utf-8?B?MmpCQ3hBYUxSS1ZHaE55L050Wkc0Y2NyU053bWpPVEdIbUlsQWZIOFgxakhm?= =?utf-8?B?NnhoSm5vczN6QTl3WWJSYjJnRTRsOUk1RUNHT1NISHNXMDZOUVFkQUxjcStC?= =?utf-8?B?ZHNaR3psSWk5Q3hLWWd4ZjJPVGVRdmJIeUdrQkJ5b0pDR2tPTVVuNC9OWlFm?= =?utf-8?B?elpINUY4NWd6Yjgwa2hxRVJuMWdhOWpCN1RjbkRLZW9XbXhXUzBaREt5eWpM?= =?utf-8?B?K0hvdWNaMFZ0VFdlR1pFVHVhZzRKNWNrR09zWnFhS1c1RitYOTJnQkhEcGg3?= =?utf-8?B?UVFUYTgyVmlNRklzN0hYTlFUYzl4ajZTL2pyYXluNFlCY1hUWmxVbnIvYmhy?= =?utf-8?B?Szk5SGZTZVpYMGYvZXJra3l1R3ZOV0dsY2VPSzQzekZJOGZwY2d5dlBxL3ZG?= =?utf-8?B?enF0S1AzN0ZGY1ZtcDV5Zzh1dlMydmVUUVVpbXRvZWhkaFpMSlljZ3ZRM2Qw?= =?utf-8?B?OFVQa0JNdVFFTmNhdkJ1VWwxT2xIYjBXTXVnTk51SzlxNDNpUlVNcW1JL0Mz?= =?utf-8?B?YmI1OGlVSytZbFRadzVoM0RUVXMxUWFwUDBJTzUvNVNkdHlod0laQnREaHBn?= =?utf-8?B?c0o4SGQxcXM4RUtmZkh3b0JLSWNqUEpBQndJTkxya2dFamh6NnRCeVNST04y?= =?utf-8?B?aXByMW1iOEJ2ODZueGpQUE9tOWw0R2sxTm12RjFCZ0pEck9JNVhVYmI0QUEy?= =?utf-8?B?UjRwM2NXZiswVDIzd0lTSDhieTM3VXdnWFF1Rzk3N1F1ZU1TODR2NTEwZTRh?= =?utf-8?B?Sk9Vc2Z5cXhSSnRSNXJJK2syQmRUR3NCMWt2NHU0cExTY1dLWGx5L0ozTlE0?= =?utf-8?B?Wk9SSUJTL2o1YXFsRXVHRm1FRGNrdG11OHRvRnZWY0pVTVNoZWM4MFpYVVNT?= =?utf-8?B?UXlURUNQc2RNeGcza2tBWVMyQnorb1kzbVdkY1YwRnErZEk1RDhtb0liVHJW?= =?utf-8?B?WkpjOGtxTUZNeGhxalZ4ZFd6blJjTG5EQXVIRzVWN2xESjZUZjEvZmlZekxk?= =?utf-8?B?alZOZTdYdytaaDBnZyttcnBWTWR5N0FyWEhqcUlPRldMTUx2S0Nhd0FqU1Fz?= =?utf-8?B?ZFBVVk1RZGFwd0R4Sjc2ZG1tcGFMNHUvTE9TQ3BrVlRlQ1BxU29ENkl1SjAx?= =?utf-8?B?Y0VGbTRqTmIwN1lhOXlMVGVZcFJRK0lpSHBRWk9jS2hrU0QwemRXNDlkVC9D?= =?utf-8?Q?lPzsw2NAdquRybI0=3D?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9c07e512-f6ef-4546-9943-08df187bcb70 X-MS-Exchange-CrossTenant-AuthSource: GV2PR04MB12558.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Sep 2026 07:33:28.3879 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Doq8SI8Janj2RZpP8FpfF4flixvxVffFIn9sZMVdpg9J9b9chT3JBqIlcxx6i+xOQL09B16+RHOtPK4yuQTlSQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MMZPR04MB213195 Content-Type: text/plain; charset="utf-8" The RMMI attribute defines in ufshcd-dwc.h are otherwise listed in ascending register-offset order, but CBREFCLKCTRL2 (0x8132) and CBCRCTRL (0x811F) were placed at the top out of order. Move them down into their sorted position next to the other CBCREG* attributes. Pure cleanup, no functional change. Signed-off-by: Larisa Grigore Reviewed-by: Frank Li --- drivers/ufs/host/ufshcd-dwc.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/ufs/host/ufshcd-dwc.h b/drivers/ufs/host/ufshcd-dwc.h index 53b523ef59df..1abf2b1deac4 100644 --- a/drivers/ufs/host/ufshcd-dwc.h +++ b/drivers/ufs/host/ufshcd-dwc.h @@ -13,8 +13,6 @@ #include =20 /* RMMI Attributes */ -#define CBREFCLKCTRL2 0x8132 -#define CBCRCTRL 0x811F #define CBC10DIRECTCONF2 0x810E #define CBRATESEL 0x8114 #define CBCREGADDRLSB 0x8116 @@ -24,6 +22,8 @@ #define CBCREGRDLSB 0x811A #define CBCREGRDMSB 0x811B #define CBCREGRDWRSEL 0x811C +#define CBCRCTRL 0x811F +#define CBREFCLKCTRL2 0x8132 =20 #define CBREFREFCLK_GATE_OVR_EN BIT(7) =20 --=20 2.43.0 From nobody Thu Sep 24 16:57:27 2026 Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11010045.outbound.protection.outlook.com [52.101.84.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0D02E3D8902; Tue, 22 Sep 2026 07:34:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.84.45 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790062451; cv=fail; b=LNOwqADZ24Fl4Pp1iD3+7H7VpeRMV6sUfZgXZ2/Gry6rpbFaeBcukwlE94ftCSlwIzglTkfG5IFxcalWG//llSpXXLBs37X8/z8XUQJs6j1O4rN3ieV39LNdplflSAJ6t2ToH/TxkZWzqxi3A7udlJ2PzO3dFaACKo3tZukI10k= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790062451; c=relaxed/simple; bh=14VsI3G2WaXdA4FZO2QBcUI880rJjQmW0ggj1L1KuOA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=kNZMCwDx6DjRBWuRM19suZBHPtcjzTCCIHIDu3PgOm+Qz1gQdiQZ9OsbRAk5qL+dtXC+Rc2D8yrzAYGgaWolXBLciSQN36HPHQOOi64PpApzvWhIFXJ/6IzElW0gyxTs+JxgeWOWAZzA1FxUDv+R0jJ7WBbUv62KHg/ru5RhH8s= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=pJV3k1JQ; arc=fail smtp.client-ip=52.101.84.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="pJV3k1JQ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=qPVrYyp9dIJAE3SSw7yRoKSVN1nelDqSEnQIgItMImYXm69ltsawMP2Xcz6rEp5ZDfqkqIhP2hw1kjbnm2WdVdN+1XlSwGCSIDby2Y0q5nLZCgtnJ8nlugoRxyOpw0I71053/ZQPQXHr7pzlgg1wOTKJLVjgSpqxmhzX82JWSGK7ckpRmroWfBjz3iqNXGevg+7LB4g38bD14N3iU629u2VyzM5l18gjVsPrZmRtUf9yY6dViGOkmsWRZ+idh/1IuUoWyERECexGC6TQzjB0GUi/XmOofYqmEwavyefI3lvi7DFTsoET7A181bBbUTmUFraP0XI8P6hg582sgiXNiA== 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=lLStrd2iRK8nQMTjaR45/CO9KlH73sPwBGI9tTxQsdQ=; b=O4RORYSWdVdcSuxES8uLyDmt2xg4/P6eqrAJItDNthWT3yqpO3t7GI0Xc06LswkROM2U0HBa+kF9RCHJih52jv8uZILGvn+o64bo53iYqMSDizRGYjd8gf1Z5hRpBR4P24ugWxD4eJgXEaBKEXWLH5a9r7QzGkaZuu+2jqHxajBCPfptL9XoRXYE2DGBebklc6d0V3/Ath1WkBs1nkc0GJkSVKwjAy3R2PQmAvdSo8+/L9Qwn5tgteVz4YUU/fvcQHetASJeIwQWmdX9lOFY4h0g5Ib3fy0Ng1mJnwnCbuZauMPk7TuTE78C05o3YibOb3Uu/6Y/g5psvtGCRKO0nw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=lLStrd2iRK8nQMTjaR45/CO9KlH73sPwBGI9tTxQsdQ=; b=pJV3k1JQWZ5Beew666W5a+xtEmfoPOLc0A5fMpTGaPg1FRCJZ/3Urm+YZcTovrbpaqEzmjrtBs5y1XymZYKlQw/fSpSIMHs0Ht80QAYh+JTIlOorrL+OuUe8C/uIhBA6IODTG2fZtSyzu4Wl6O3fItEb3MnEr0T4K+3VIQwUWSqx3zKYLtiUu2kRUcrI/58yAKY6vI1l5deiQZwltLJ2Ko/kQtlSv6PnR2bepQz/M20pzyS5eV8oUfNky4i1FaiQp5QILMrDDgFdBbWkIfNRe8npxxXAIbre8oLpdggKbJbURZF5rO47w2OgPVv6A24hYGjiYxVLtgB2vlaMNlmo3Q== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GV2PR04MB12558.eurprd04.prod.outlook.com (2603:10a6:150:368::10) by MMZPR04MB213195.eurprd04.prod.outlook.com (2603:10a6:190:4f::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.16; Tue, 22 Sep 2026 07:33:30 +0000 Received: from GV2PR04MB12558.eurprd04.prod.outlook.com ([fe80::cd9f:102:ea58:4c49]) by GV2PR04MB12558.eurprd04.prod.outlook.com ([fe80::cd9f:102:ea58:4c49%6]) with mapi id 15.21.0428.015; Tue, 22 Sep 2026 07:33:30 +0000 From: Larisa Grigore To: Larisa Grigore , NXP S32 Linux Team , Alim Akhtar , Avri Altman , Bart Van Assche , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , "James E.J. Bottomley" , "Martin K. Petersen" , Sai Krishna Potthuri , Ajay Neeli , Manivannan Sadhasivam , Pedro Sousa , Hannes Reinicke , Joao Pinto Cc: linux-scsi@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, clizzi@redhat.com, aruizrui@redhat.com, eballetb@redhat.com, echanude@redhat.com Subject: [PATCH v5 09/12] scsi: ufs: Add NXP S32N79 UFS host controller driver Date: Tue, 22 Sep 2026 09:30:06 +0200 Message-ID: <20260922073009.1449688-10-larisa.grigore@oss.nxp.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260922073009.1449688-1-larisa.grigore@oss.nxp.com> References: <20260922073009.1449688-1-larisa.grigore@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AM0P309CA0022.EURP309.PROD.OUTLOOK.COM (2603:10a6:20b:28f::9) To GV2PR04MB12558.eurprd04.prod.outlook.com (2603:10a6:150:368::10) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV2PR04MB12558:EE_|MMZPR04MB213195:EE_ X-MS-Office365-Filtering-Correlation-Id: a4329eb4-d0ba-4acc-0483-08df187bcca9 X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|1800799024|376014|7416014|23010399003|366016|921020|3023799007|6133799003|10067099003|56012099006|11063799006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: VE5hQblOV7v14i9HQvWT6kon3VpDrR2QBhT3mWLK1IvV4wjEdthYVKNi9cGgpaZz4QNKIb8eDyLDTlsPNB8e6KsE6G8WSPiPuwe6RnMvwr3rTNKxBykUHpWx8RYh9HUJ4opyT1ZE2qzoT0hkPSTUbLY65xAftEHwr+it8gzafDYK02QZ/m6h3cYX3rbkJMfRRvZeO7cbLK6fZakLes0JkUoCzDXih0ugP88ApFltG/RWZIIcBQludc7V5gLuHWXNg8NIqkfiCoqKqcC4E+Gi8ndDt9nL9ZSR29W57MJd175yU3LYop9eDC/dN3kc1DebAKJWj9HsLvYrLFNPapFl8Qxh/Fpn4Ct0uZfHPmt4Tu354uV9hZMz7sGBUVEc5hvflqMMu/Ha+CFYn7JmKqL3vcoozgPjhHHL9k2IFk3neBRqqr/E4EOB6BCJ9w3JGmWcfsD1dfgu1HfNiEhB8FJui/Xrz3GsGALq2rnH6HApOAyEaWgbs6U8vhhSoZF3eZ+JsexMNA9wHrtUQ1a2TaqNbMZnhXiOXS2yxyDiqzzF7ucf923vaUIIf98eTOzf/6JZaxRAIs1bslTzMS3oUzyNlFFbCCuUzPesj4PcyJXwWbcJuLn6Qil+qIz/bwFLtNpGC9Z0icbISwjKeYNw8SkizXhpvqkePxINfCAp/xqDDVMuN4cnjvKvylJWCdwUKQNi7l9T/NXyzjnyKWgyv4sLXg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR04MB12558.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(1800799024)(376014)(7416014)(23010399003)(366016)(921020)(3023799007)(6133799003)(10067099003)(56012099006)(11063799006)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Z0kzS3ZSa2M3QkNTaE9zdGs4enp4enN6NkM2RXlZMlM1MDJENUowdDZOTGNT?= =?utf-8?B?WGUyd3dNc3RhUGJlMFU5NnpHUFFWYmlwZkdsOUhTMW1BS2s3VU9JTzJNQVJk?= =?utf-8?B?M1JVenY2dythMUVsdUR5YlF3WnhmSjZ0V2dQRjVSVWpDMVdnU0lteWZRVTho?= =?utf-8?B?R1krYTNwN08yZzlPVzgzYUhReXQ3VjJSMEhjT1ZsSmVUMFQ2WGp5N0NvWjI2?= =?utf-8?B?Vmo0czlNMVRoWXIzenEyMnRNQXhmbVROYTFLc21xUC92TXNweXpuODBFRk9v?= =?utf-8?B?R2pNWUhNUGpWYXpueEU2NmljWWMwTk4xTVlJOTJLNTMrbEo5VjdiM2NYeFQ1?= =?utf-8?B?V24rdXZqYXJmWEdjYnJMME1mcmRUejBpVDBlQ05HTVNVYmx6RGVrUFRHTUdk?= =?utf-8?B?VlQzYmh6eVRBYzVySzFCV1NmTVNnYzNGbkM1WFJYY1lJTUN5clZhM2JaZVRl?= =?utf-8?B?ZHFyUExOYTBYb0dJeUt5am1qQ2JNTU0ybzZRYWU2b0tSR2xodktIVnFncmxC?= =?utf-8?B?dS9vZVhFTm0vSDdRemRhOTlSbTk5MTZWOGVDQzlhSmxSa3BZeEp2bnpyZjZH?= =?utf-8?B?YVRpdkE2MGJIdUYyN0F3bTB0c0F1RERhem92RU50eDVRRm01K1RleC9aTnFs?= =?utf-8?B?RUVScXUxUnZEQ3BvQmNqblRvYTBiRHRWeHZMZElvWVBFUmcxY2NQQ2ROSWtl?= =?utf-8?B?VjZYS2RwR05wRWxqT1AwcHpHaE1vRzJ4RHdBdnBLR0x2eVFZS1N3S2VHajFI?= =?utf-8?B?MzZHUEs2OFlCSzArNHl0VVNxMXFxeVZXUG13NnNhL09HZnpwLzV5ZnJOSERO?= =?utf-8?B?SUNhamFJZndlckhKWC9IZ0x0cHMwVzRhWkpZWVh6UFZnL3ZId25Mb2t3dlVR?= =?utf-8?B?ZE1XUDEyQ0hwUm5MMmpiMTRld2dObW5Ub0lnbmxSUmtmQzNldXAxMTVsL2d3?= =?utf-8?B?eXU5a2p2S3dQcVZBVVErckl4TWtOQ0pZOWlwVTdnbzlkOXQrWnU1NjN1UVp5?= =?utf-8?B?NzIrWGlKZnViLyt3eXQxMzh6dVozL09kTkd1cmJTdkkvcW9jNHZPK0NROG1E?= =?utf-8?B?K1piaFNiaE9DQnVIbTY3WThOVUM1OHdhUEhQZHl2bjhpQnpseEZLVTR3RXJk?= =?utf-8?B?eS84b2hlbklqNWdDQmhadEx4UHRyb0Q3Rkp1dHdpQzBmYVJKQkJWZXpxbXVt?= =?utf-8?B?dkhjd1prcHJpaG1VenlUa3JVNkpjbjRiTjVKZCtZTDJEZm4wd3doelg1Qkpn?= =?utf-8?B?K1h2bU1OeXUwY01UcitaMXRUYWx2dFlYdEdCd0RJRmRUSlE5d1JKUTRyUW9l?= =?utf-8?B?c2NZeTRPdlRQOWc4Y3JnL2ZaYXNnTGtFT2UrVHlXNWxQMDdGbmFsNDVBSTFN?= =?utf-8?B?R3psZ21PcDlvWTJ5UkpWMXk1UEM5cVl3TlhrL09QYkgxWlRJYmpIN1F5ZWpp?= =?utf-8?B?L1dHWllJN2lFWU1iNVZ6N2FYSm1uQ3pwREU5d3NIdXlJU0RlNFdlajdNSFpZ?= =?utf-8?B?WmltQ3JIT29jWVJCS09EMTNLcFBYc3FsMDhZaTVKR0k4MHZsRUc5RnpGeWcr?= =?utf-8?B?UWNsNUpWTEJZd3pCSkhhd2JFMXJCOHBnUERKZ2lqV0NvTFIyOG1kbFgvbmxP?= =?utf-8?B?S3oxbEJlUUo1WmxJZHRnN2RLRzJ2NGJUTVRwdmQzWDRhZkJJaGZ1REZNaWFE?= =?utf-8?B?YWw1V1N5alFCekkxdWtlTXhaTW8zY2dxTFhKeGNrWGFXUDI1UDFiWFh2NzRF?= =?utf-8?B?b1hMVk9SdnFxZGFKSVhxdERyMUU3R0VvelFkamcyOUlVQUZpNnFacUFJdHow?= =?utf-8?B?a3Z5RFluM095Mi92SUZacEVBTEoxWHVKNVA3dHFqUzZ2bWhwb2l5Z3dFaVI1?= =?utf-8?B?b0c0L0d3ZFJTeW9PTWMwNFBnczUrdEtwUFVJQjJxTjE3ekgzemJZMEwzV0Ir?= =?utf-8?B?YWk1eGwxK2ZlRUd6U3dySUUvNC9zKzNKZXNnNFpoRzdkZEhGbTFTY1NSWklJ?= =?utf-8?B?OXdEYVFlZzVpN1VIWm1wUlRPb05pT2sra2pQOTg2REgwd3ErOUdrWXdlbjhx?= =?utf-8?B?ZTZvckNXZFljYk5WZHJrRnF4UjBoU3BZZmJobHBUZGFlNjRsaWxMQTlrOHEv?= =?utf-8?B?MW1COHhyaG1hMitqYS85NnVOT1dVcGRQa3FpNmIzZC9MVElDU3pXbVV2N1Bx?= =?utf-8?B?NlVyemZHdWlFUHgxM0xITHlYbmFYeFhRajd2UExWc1l3WTB0a0dXN3F5YWla?= =?utf-8?B?WEN5VTZQek93OGFTbWlySDJEa1VON2tXb09taGRpeWhLU3o2WWwvcEJkVjNs?= =?utf-8?B?NzdvNnBUWWJsOWFFUnI3MjNLMXFPWjdkTWtTQXVwSTJsN1NxcUJIMVdDdm5N?= =?utf-8?Q?g59dRfPcuNd4rF0c=3D?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: a4329eb4-d0ba-4acc-0483-08df187bcca9 X-MS-Exchange-CrossTenant-AuthSource: GV2PR04MB12558.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Sep 2026 07:33:30.4670 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 7/KRCeR1iYml3cxl1jI7G6W0I2XDrKMMXGCdyMiqlsXAcpnoRVw1KEsbGHaOoFuyf6CPESZ86lJI/+rx4L9TGg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MMZPR04MB213195 Content-Type: text/plain; charset="utf-8" Add support for the UFS host controller on the NXP S32N79 SoC, built on the Synopsys DesignWare (DWC) UFS architecture, using the UFSHCD DWC and UFSHCD platform glue. This controller requires S32N79-specific initialization prior to UIC_LINKSTARTUP, including: - programming SCM.ONE_US_TICK and HC.HCLKDIV based on the core clock, - applying the vendor-defined M-PHY calibration sequence, and - performing post-link calibration steps needed for HS operation. The M-PHY supports several boot modes for loading its firmware. Only the mode where the firmware runs from the internal ROM is supported for now. Signed-off-by: Larisa Grigore Reviewed-by: Frank Li --- drivers/ufs/host/Kconfig | 12 + drivers/ufs/host/Makefile | 1 + drivers/ufs/host/ufs-nxp-s32n7.c | 546 +++++++++++++++++++++++++++++++ drivers/ufs/host/ufshcd-dwc.h | 10 + drivers/ufs/host/ufshci-dwc.h | 6 + 5 files changed, 575 insertions(+) create mode 100644 drivers/ufs/host/ufs-nxp-s32n7.c diff --git a/drivers/ufs/host/Kconfig b/drivers/ufs/host/Kconfig index ff170c0b6da0..e8ee7dd05f1a 100644 --- a/drivers/ufs/host/Kconfig +++ b/drivers/ufs/host/Kconfig @@ -168,3 +168,15 @@ config SCSI_UFS_AMD_VERSAL2 =20 Select this if you have UFS controller on AMD Versal Gen 2 SoC. If unsure, say N. + +config SCSI_UFS_S32N7 + tristate "NXP S32N7 platform driver" + depends on SCSI_UFSHCD_PLATFORM && (ARCH_S32 || COMPILE_TEST) + help + This selects the S32N7 specific additions on top of the UFSHCD DWC + and UFSHCD platform driver. UFS host on S32N79 needs some vendor + specific configurations like PHY and vendor specific register accesses + before accessing the hardware. + + Select this if you have UFS controller on an S32N7 based board. + If unsure, say N. diff --git a/drivers/ufs/host/Makefile b/drivers/ufs/host/Makefile index 7d8db67eb23c..a2f4a1d0b3ae 100644 --- a/drivers/ufs/host/Makefile +++ b/drivers/ufs/host/Makefile @@ -4,6 +4,7 @@ CONTEXT_ANALYSIS :=3D y =20 obj-$(CONFIG_SCSI_UFS_DWC_TC_PCI) +=3D tc-dwc-g210-pci.o ufshcd-dwc.o tc-d= wc-g210.o obj-$(CONFIG_SCSI_UFS_DWC_TC_PLATFORM) +=3D tc-dwc-g210-pltfrm.o ufshcd-dw= c.o tc-dwc-g210.o +obj-$(CONFIG_SCSI_UFS_S32N7) +=3D ufs-nxp-s32n7.o ufshcd-dwc.o obj-$(CONFIG_SCSI_UFS_CDNS_PLATFORM) +=3D cdns-pltfrm.o obj-$(CONFIG_SCSI_UFS_QCOM) +=3D ufs-qcom.o obj-$(CONFIG_SCSI_UFS_EXYNOS) +=3D ufs-exynos.o diff --git a/drivers/ufs/host/ufs-nxp-s32n7.c b/drivers/ufs/host/ufs-nxp-s3= 2n7.c new file mode 100644 index 000000000000..f7a017a6d9ae --- /dev/null +++ b/drivers/ufs/host/ufs-nxp-s32n7.c @@ -0,0 +1,546 @@ +// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-3-Clause) +/* + * Copyright 2026 NXP + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "ufshcd-pltfrm.h" +#include "ufshcd-dwc.h" +#include "ufshci-dwc.h" + +/* SCM Register Offsets. */ +#define SCM_ONE_US_TICK 0x2CU +#define SCM_STATUS 0x30 + +/* SCM_ONE_US_TICK Register. */ +#define SCM_ONE_US_TICK_MASK GENMASK(8, 0) + +/* SCM_MPHY_RAM_CONFIG_STATUS Register Fields. */ +#define SCM_STATUS_PHY_RESET_MASK BIT(0) +#define SCM_STATUS_SRAM_BYPASS_MASK BIT(1) +#define SCM_STATUS_SRAM_INIT_DONE_MASK BIT(16) + +#define SCM_STATUS_PHY_RESET(val) \ + FIELD_PREP(SCM_STATUS_PHY_RESET_MASK, val) + +#define SCM_STATUS_SRAM_BYPASS(val) \ + FIELD_PREP(SCM_STATUS_SRAM_BYPASS_MASK, val) + +/* Driver-defined upper bound for the M-PHY SRAM init to complete: 3 s. */ +#define CFG_MPHY_INIT_TIMEOUT_VALUE_US 3000000 +/* Driver-defined poll interval while waiting for SRAM_INIT_DONE: 1 ms. */ +#define CFG_MPHY_INIT_POLL_INTERVAL_US 1000 + +/* Clock validation limits. */ +#define MAX_VALID_ONE_US_TICK SCM_ONE_US_TICK_MASK + +/* CPort definitions */ +#define CPORT_0 0 + +/* Driver-defined upper bound for completing a Hibern8 transition: 1 s. */ +#define HBRN8_POLL_TOUT_MS 1000 + +/** + * struct s32n7_phy_reg - PHY CR (config-register) write entry + * @reg: Register offset/address + * @val: Value to write + */ +struct s32n7_phy_reg { + u32 reg; + u32 val; +}; + +/** + * struct s32n7_soc_data - SoC-specific configuration data + * @vops: UFS host controller variant operations + * @reset_config: MPHY reset DME attributes (programmed while PHY held in = reset) + * @reset_config_count: number of entries in @reset_config + * @calib_mphy_disabled: CR calibration writes performed while the MPHY is= disabled + * @calib_mphy_disabled_count: number of entries in @calib_mphy_disabled + * @calib_mphy_enabled: CR calibration writes performed while the MPHY is = enabled + * @calib_mphy_enabled_count: number of entries in @calib_mphy_enabled + */ +struct s32n7_soc_data { + const struct ufs_hba_variant_ops *vops; + const struct ufshcd_dme_attr_val *reset_config; + size_t reset_config_count; + const struct s32n7_phy_reg *calib_mphy_disabled; + size_t calib_mphy_disabled_count; + const struct s32n7_phy_reg *calib_mphy_enabled; + size_t calib_mphy_enabled_count; +}; + +/** + * struct s32n7_ufs - S32N7 UFS host controller data + * @hba: UFS host controller instance + * @reg_scm: SCM register base address + * @core_clk: core reference clock used to derive ONE_US_TICK/HCLKDIV + * @soc_data: SoC-specific configuration data + */ +struct s32n7_ufs { + struct ufs_hba *hba; + void __iomem *reg_scm; + struct clk *core_clk; + const struct s32n7_soc_data *soc_data; +}; + +/** + * ufs_s32n7_phy_write_sequence - Write a sequence of PHY registers + * @hba: UFS host controller instance + * @cfg: Array of register configurations + * @count: Number of entries in the array + * + * Return: 0 on success, error code on failure + */ +static int ufs_s32n7_phy_write_sequence(struct ufs_hba *hba, + const struct s32n7_phy_reg *cfg, + size_t count) +{ + int ret; + size_t i; + + for (i =3D 0; i < count; i++) { + ret =3D ufshcd_dwc_phy_reg_write(hba, cfg[i].reg, cfg[i].val); + if (ret) { + dev_err(hba->dev, + "Failed to write PHY reg 0x%x =3D 0x%x (step %zu)\n", + cfg[i].reg, cfg[i].val, i); + return ret; + } + } + + return 0; +} + +static unsigned long ufs_s32n7_calculate_us_tick(unsigned long clk_rate) +{ + return clk_rate / USEC_PER_SEC; +} + +static int ufs_s32n7_configure_clocks(struct ufs_hba *hba) +{ + struct s32n7_ufs *ufs =3D ufshcd_get_variant(hba); + struct device *dev =3D hba->dev; + unsigned long clk_rate =3D 0; + unsigned long one_us_tick; + + clk_rate =3D clk_get_rate(ufs->core_clk); + if (!clk_rate) { + dev_err(dev, "Failed to get valid clock rate.\n"); + return -EINVAL; + } + + one_us_tick =3D ufs_s32n7_calculate_us_tick(clk_rate); + if (one_us_tick =3D=3D 0 || one_us_tick > MAX_VALID_ONE_US_TICK) { + dev_err(dev, "Invalid one_us_tick value: %lu (clk_rate: %lu Hz).\n", + one_us_tick, clk_rate); + return -EINVAL; + } + + dev_dbg(dev, "Core clock rate: %lu Hz, one_us_tick =3D %lu.\n", + clk_rate, one_us_tick); + + /* + * Configure the micro-second tick rate generator based on core + * clock rate. + */ + writel(one_us_tick, ufs->reg_scm + SCM_ONE_US_TICK); + ufshcd_dwc_program_clk_div(hba, one_us_tick); + + return 0; +} + +static int ufs_s32n7_hce_enable_notify(struct ufs_hba *hba, + enum ufs_notify_change_status status) +{ + u32 reg; + + if (status !=3D POST_CHANGE) + return 0; + + /* + * Clear the DWC low-power gating (BUSTHRTL) so a doorbell write can + * wake the link out of hibernate. LP_PGE (generic low-power) and + * LP_AH8_PGE (Auto-Hibern8) both reset to 1. + */ + reg =3D ufshcd_readl(hba, DWC_UFS_REG_BUSTHRTL); + reg &=3D ~(DWC_UFS_BUSTHRTL_LP_PGE | DWC_UFS_BUSTHRTL_LP_AH8_PGE); + ufshcd_writel(hba, reg, DWC_UFS_REG_BUSTHRTL); + + return 0; +} + +static int ufs_s32n7_phy_initial_calib(struct ufs_hba *hba) +{ + struct s32n7_ufs *ufs =3D ufshcd_get_variant(hba); + int ret; + + /* Calibrations that must run while the MPHY is disabled. */ + ret =3D ufs_s32n7_phy_write_sequence(hba, ufs->soc_data->calib_mphy_disab= led, + ufs->soc_data->calib_mphy_disabled_count); + if (ret) + return ret; + + ret =3D ufshcd_dme_set(hba, UIC_ARG_MIB_SEL(VS_MPHYCFGUPDT, 0), 0x1); + if (ret) + return ret; + + ret =3D ufshcd_dme_set(hba, UIC_ARG_MIB_SEL(VS_MPHYDISABLE, 0), 0x0); + if (ret) + return ret; + + /* Calibrations that must run while the MPHY is enabled. */ + ret =3D ufs_s32n7_phy_write_sequence(hba, ufs->soc_data->calib_mphy_enabl= ed, + ufs->soc_data->calib_mphy_enabled_count); + if (ret) + return ret; + + return ufshcd_dme_set(hba, UIC_ARG_MIB_SEL(VS_MPHYCFGUPDT, 0), 0x1); +} + +static int ufs_s32n7_link_startup_pre_change(struct ufs_hba *hba) +{ + struct s32n7_ufs *ufs =3D ufshcd_get_variant(hba); + struct device *dev =3D hba->dev; + int ret; + u32 reg; + + ret =3D ufs_s32n7_configure_clocks(hba); + if (ret) + return ret; + + /* Reset SCM.MPHY_RAM_CONFIG_STATUS to default value; keep MPHY in reset.= */ + writel(SCM_STATUS_PHY_RESET(1), ufs->reg_scm + SCM_STATUS); + + /* + * The M-PHY firmware runs from the internal ROM: + * MPHY_RAM_CONFIG_STATUS.SRAM_BYPASS =3D 1 + * MPHY_RAM_CONFIG_STATUS.SRAM_EXT_LD_DONE =3D 0 + */ + writel(SCM_STATUS_PHY_RESET(1) | SCM_STATUS_SRAM_BYPASS(1), + ufs->reg_scm + SCM_STATUS); + + /* MPHY reset configuration: vendor attributes set while PHY in reset. */ + ret =3D ufshcd_dwc_dme_set_attrs(hba, ufs->soc_data->reset_config, + ufs->soc_data->reset_config_count); + if (ret) + return ret; + + ret =3D ufshcd_dme_set(hba, UIC_ARG_MIB_SEL(VS_MPHYCFGUPDT, 0), 0x1); + if (ret) + return ret; + + /* Release PHY_RESET. */ + writel(readl(ufs->reg_scm + SCM_STATUS) & ~SCM_STATUS_PHY_RESET_MASK, + ufs->reg_scm + SCM_STATUS); + + /* Wait until SRAM_INIT_DONE =3D 1. */ + ret =3D readl_poll_timeout(ufs->reg_scm + SCM_STATUS, reg, + reg & SCM_STATUS_SRAM_INIT_DONE_MASK, + CFG_MPHY_INIT_POLL_INTERVAL_US, + CFG_MPHY_INIT_TIMEOUT_VALUE_US); + if (ret) { + dev_err(dev, "UFS MPHY init not done!\n"); + return ret; + } + + /* Start of initial calibration */ + ret =3D ufs_s32n7_phy_initial_calib(hba); + if (ret) { + dev_err(dev, "UFS MPHY initial calibration failed!\n"); + return ret; + } + + /* End of Gear1 settings */ + + return ufshcd_dme_check_tx_hibern8(hba, hba->lanes_per_direction, + HBRN8_POLL_TOUT_MS); +} + +static int ufs_s32n7_link_startup_post_change(struct ufs_hba *hba) +{ + static const struct ufshcd_dme_attr_val cport_setup[] =3D { + { UIC_ARG_MIB_SEL(T_CONNECTIONSTATE, CPORT_0), + CPORT_IDLE, DME_LOCAL }, + { UIC_ARG_MIB_SEL(T_CPORTFLAGS, CPORT_0), + CPORT_DEF_FLAGS, DME_LOCAL }, + { UIC_ARG_MIB_SEL(T_CONNECTIONSTATE, CPORT_0), + CPORT_CONNECTED, DME_LOCAL }, + }; + unsigned int data =3D 0; + int ret; + + /* Network layer: set Local DeviceID. */ + ret =3D ufshcd_dme_set(hba, UIC_ARG_MIB_SEL(N_DEVICEID, 0), 0x0); + if (ret) + return ret; + + /* Set Connection State to IDLE (it allows CPort Attributes to be set). */ + ret =3D ufshcd_dwc_dme_set_attrs(hba, cport_setup, ARRAY_SIZE(cport_setup= )); + if (ret) + return ret; + + ret =3D ufshcd_dme_get(hba, UIC_ARG_MIB_SEL(T_CONNECTIONSTATE, CPORT_0), = &data); + if (ret) + return ret; + + if (data !=3D CPORT_CONNECTED) + return -EIO; + + return 0; +} + +static int ufs_s32n7_link_startup_notify(struct ufs_hba *hba, + enum ufs_notify_change_status status) +{ + int err; + + if (status =3D=3D PRE_CHANGE) { + err =3D ufs_s32n7_link_startup_pre_change(hba); + if (err) { + dev_err(hba->dev, "MPHY setup failed (%d).\n", err); + return err; + } + return 0; + } + + /* POST_CHANGE */ + err =3D ufshcd_dwc_link_is_up(hba); + if (err) { + dev_err(hba->dev, "Link is not up.\n"); + return err; + } + + err =3D ufs_s32n7_link_startup_post_change(hba); + if (err) + dev_err(hba->dev, "Connection setup failed (%d).\n", err); + + return err; +} + +static int ufs_s32n7_pwr_change_pre_change(struct ufs_hba *hba, + const struct ufs_pa_layer_attr *pwr) +{ + /* + * RX rate-select override sequence: assert the override, then deassert + * the value, then drop the override enable so normal operation resumes. + */ + static const struct s32n7_phy_reg pwr_change_phy_regs[] =3D { + { RX_OVRD_IN_1(0), 0xc }, + { RX_OVRD_IN_1(1), 0xc }, + { RX_OVRD_IN_1(0), 0x8 }, + { RX_OVRD_IN_1(1), 0x8 }, + { RX_OVRD_IN_1(0), 0x0 }, + { RX_OVRD_IN_1(1), 0x0 }, + }; + u32 rate; + int ret; + + /* Rate change only applies to the HS power modes. */ + if (!ufshcd_is_hs_mode(pwr)) + return 0; + + /* + * Select the M-PHY rate (rate series) that matches the mode the core + * has negotiated with the device. + */ + rate =3D (pwr->hs_rate =3D=3D PA_HS_MODE_B) ? CB_RATE_B : CB_RATE_A; + + ret =3D ufshcd_dme_set(hba, UIC_ARG_MIB_SEL(CBRATESEL, 0), rate); + if (ret) + return ret; + + ret =3D ufshcd_dme_set(hba, UIC_ARG_MIB_SEL(VS_MPHYCFGUPDT, 0), 0x1); + if (ret) + return ret; + + /* Apply the RX rate-select override now that the target rate is set. */ + return ufs_s32n7_phy_write_sequence(hba, pwr_change_phy_regs, + ARRAY_SIZE(pwr_change_phy_regs)); +} + +static int ufs_s32n7_pwr_change_notify(struct ufs_hba *hba, + enum ufs_notify_change_status status, + struct ufs_pa_layer_attr *pwr) +{ + int err =3D 0; + + if (status =3D=3D PRE_CHANGE) { + err =3D ufs_s32n7_pwr_change_pre_change(hba, pwr); + if (err) + dev_err(hba->dev, "Power mode pre-change failed (%d).\n", + err); + } + + return err; +} + +static int ufs_s32n7_init(struct ufs_hba *hba) +{ + struct device *dev =3D hba->dev; + struct platform_device *pdev =3D to_platform_device(dev); + struct s32n7_ufs *ufs; + + ufs =3D devm_kzalloc(dev, sizeof(*ufs), GFP_KERNEL); + if (!ufs) + return -ENOMEM; + + ufs->hba =3D hba; + ufs->soc_data =3D device_get_match_data(dev); + if (!ufs->soc_data) + return -ENODEV; + + hba->quirks |=3D UFSHCD_QUIRK_PERFORM_LINK_STARTUP_ONCE; + hba->spm_lvl =3D UFS_PM_LVL_5; + + ufs->reg_scm =3D devm_platform_ioremap_resource_byname(pdev, "scm"); + if (IS_ERR(ufs->reg_scm)) + return dev_err_probe(dev, PTR_ERR(ufs->reg_scm), + "ioremap failed for SCM registers.\n"); + + /* + * The core reference clock is not managed by the UFS core (the DT node + * has no clock-names/freq-table-hz, so it is never added to + * hba->clk_list_head). + */ + ufs->core_clk =3D devm_clk_get_enabled(dev, NULL); + if (IS_ERR(ufs->core_clk)) + return dev_err_probe(dev, PTR_ERR(ufs->core_clk), + "Failed to get and enable core clock.\n"); + + ufshcd_set_variant(hba, ufs); + + return 0; +} + +static const struct ufs_hba_variant_ops ufs_hba_s32n79_vops =3D { + .name =3D "s32n79", + .init =3D ufs_s32n7_init, + .link_startup_notify =3D ufs_s32n7_link_startup_notify, + .hce_enable_notify =3D ufs_s32n7_hce_enable_notify, + .pwr_change_notify =3D ufs_s32n7_pwr_change_notify, +}; + +/* + * MPHY reset configuration: vendor DME attributes programmed while the PH= Y is + * held in reset. Programs the reference-clock, RX squelch, RX Rhold and + * CR-parallel control attributes. + */ +static const struct ufshcd_dme_attr_val s32n79_reset_config[] =3D { + /* + * Disable reference clock gating support and override the UniPro and + * application reference clock enable inputs to 0. + */ + { UIC_ARG_MIB_SEL(CBREFCLKCTRL2, 0), 0x8A, DME_LOCAL }, + /* RX squelch control. */ + { UIC_ARG_MIB_SEL(RXSQCONTROL, SELIND_LN0_RX), 0x1, DME_LOCAL }, + { UIC_ARG_MIB_SEL(RXSQCONTROL, SELIND_LN1_RX), 0x1, DME_LOCAL }, + /* RX Rhold control option. */ + { UIC_ARG_MIB_SEL(RXRHOLDCTRLOPT, SELIND_LN0_RX), 0x2, DME_LOCAL }, + { UIC_ARG_MIB_SEL(RXRHOLDCTRLOPT, SELIND_LN1_RX), 0x2, DME_LOCAL }, + /* CR parallel selection. */ + { UIC_ARG_MIB_SEL(CBCRCTRL, 0), 0x1, DME_LOCAL }, +}; + +/* Calibrations that must run while the MPHY is disabled. */ +static const struct s32n7_phy_reg s32n79_calib_mphy_disabled[] =3D { + /* Bypass RX AFE calibration. */ + { FAST_FLAGS(0), 0x4 }, + { FAST_FLAGS(1), 0x4 }, +}; + +/* Calibrations that must run while the MPHY is enabled. */ +static const struct s32n7_phy_reg s32n79_calib_mphy_enabled[] =3D { + /* Write ATT offset compensation code to internal DAC. */ + { RX_DAC_CTRL_OVRD(0), 0x1 }, + { RX_DAC_CTRL_OVRD(1), 0x1 }, + { RX_DAC_CTRL(0), 0x8E }, + { RX_DAC_CTRL(1), 0x91 }, + { RX_DAC_CTRL_SEL(0), 0x1 }, + { RX_DAC_CTRL_SEL(1), 0x1 }, + { RX_DAC_CTRL_EN(0), 0x1 }, + { RX_DAC_CTRL_EN(1), 0x1 }, + { RX_DAC_CTRL_OVRD(0), 0x0 }, + { RX_DAC_CTRL_OVRD(1), 0x0 }, + /* Write CTLE offset compensation code to internal DAC. */ + { RX_DAC_CTRL_OVRD(0), 0x1 }, + { RX_DAC_CTRL_OVRD(1), 0x1 }, + { RX_DAC_CTRL(0), 0x71 }, + { RX_DAC_CTRL(1), 0x7F }, + { RX_DAC_CTRL_SEL(0), 0x2 }, + { RX_DAC_CTRL_SEL(1), 0x2 }, + { RX_DAC_CTRL_EN(0), 0x1 }, + { RX_DAC_CTRL_EN(1), 0x1 }, + { RX_DAC_CTRL_OVRD(0), 0x0 }, + { RX_DAC_CTRL_OVRD(1), 0x0 }, + /* FW Calibration configuration. */ + { FW_CALIB_CCFG(0), 0x100 }, + { FW_CALIB_CCFG(1), 0x100 }, +}; + +static const struct s32n7_soc_data s32n79_soc_data =3D { + .vops =3D &ufs_hba_s32n79_vops, + .reset_config =3D s32n79_reset_config, + .reset_config_count =3D ARRAY_SIZE(s32n79_reset_config), + .calib_mphy_disabled =3D s32n79_calib_mphy_disabled, + .calib_mphy_disabled_count =3D ARRAY_SIZE(s32n79_calib_mphy_disabled), + .calib_mphy_enabled =3D s32n79_calib_mphy_enabled, + .calib_mphy_enabled_count =3D ARRAY_SIZE(s32n79_calib_mphy_enabled), +}; + +static const struct of_device_id ufs_s32n7_match[] =3D { + { + .compatible =3D "nxp,s32n79-ufshc", + .data =3D &s32n79_soc_data, + }, + { /* sentinel */ } +}; +MODULE_DEVICE_TABLE(of, ufs_s32n7_match); + +static int ufs_s32n7_probe(struct platform_device *pdev) +{ + const struct s32n7_soc_data *soc_data; + + soc_data =3D device_get_match_data(&pdev->dev); + if (!soc_data) + return -ENODEV; + + return ufshcd_pltfrm_init(pdev, soc_data->vops); +} + +static void ufs_s32n7_remove(struct platform_device *pdev) +{ + ufshcd_pltfrm_remove(pdev); +} + +static const struct dev_pm_ops ufs_s32n7_pm_ops =3D { + SYSTEM_SLEEP_PM_OPS(ufshcd_system_suspend, ufshcd_system_resume) + RUNTIME_PM_OPS(ufshcd_runtime_suspend, ufshcd_runtime_resume, NULL) + .prepare =3D pm_ptr(ufshcd_suspend_prepare), + .complete =3D pm_ptr(ufshcd_resume_complete), +}; + +static struct platform_driver ufs_s32n7_driver =3D { + .probe =3D ufs_s32n7_probe, + .remove =3D ufs_s32n7_remove, + .driver =3D { + .name =3D "ufs-s32n7", + .pm =3D pm_ptr(&ufs_s32n7_pm_ops), + .of_match_table =3D ufs_s32n7_match, + }, +}; + +module_platform_driver(ufs_s32n7_driver); + +MODULE_AUTHOR("Larisa Grigore "); +MODULE_DESCRIPTION("NXP S32N7 UFS Host Controller platform driver"); +MODULE_LICENSE("Dual BSD/GPL"); diff --git a/drivers/ufs/host/ufshcd-dwc.h b/drivers/ufs/host/ufshcd-dwc.h index 1abf2b1deac4..d62cd4c085ba 100644 --- a/drivers/ufs/host/ufshcd-dwc.h +++ b/drivers/ufs/host/ufshcd-dwc.h @@ -13,6 +13,8 @@ #include =20 /* RMMI Attributes */ +#define RXSQCONTROL 0x8009 +#define RXRHOLDCTRLOPT 0x8013 #define CBC10DIRECTCONF2 0x810E #define CBRATESEL 0x8114 #define CBCREGADDRLSB 0x8116 @@ -27,7 +29,15 @@ =20 #define CBREFREFCLK_GATE_OVR_EN BIT(7) =20 +/* CBRATESEL: 0 - rate A, 1 - rate B. */ +#define CB_RATE_A 0x0 +#define CB_RATE_B 0x1 + /* M-PHY registers */ +#define RX_DAC_CTRL(n) (0x10AF + ((n) * 0x100)) +#define RX_DAC_CTRL_OVRD(n) (0x10B0 + ((n) * 0x100)) +#define RX_DAC_CTRL_SEL(n) (0x10B1 + ((n) * 0x100)) +#define RX_DAC_CTRL_EN(n) (0x10B8 + ((n) * 0x100)) #define RX_OVRD_IN_1(n) (0x3006 + ((n) * 0x100)) #define RX_PCS_OUT(n) (0x300F + ((n) * 0x100)) #define FAST_FLAGS(n) (0x401C + ((n) * 0x100)) diff --git a/drivers/ufs/host/ufshci-dwc.h b/drivers/ufs/host/ufshci-dwc.h index 6c290e272106..c66f33391b65 100644 --- a/drivers/ufs/host/ufshci-dwc.h +++ b/drivers/ufs/host/ufshci-dwc.h @@ -12,9 +12,15 @@ =20 /* DWC HC UFSHCI specific Registers */ enum dwc_specific_registers { + DWC_UFS_REG_BUSTHRTL =3D 0xC0, DWC_UFS_REG_HCLKDIV =3D 0xFC, }; =20 +/* Low-Power Power Gating Enable. */ +#define DWC_UFS_BUSTHRTL_LP_PGE BIT(16) +/* Low Power - AH8 Power Gating Enable. */ +#define DWC_UFS_BUSTHRTL_LP_AH8_PGE BIT(17) + /* Clock Divider Values: Hex equivalent of frequency in MHz */ enum clk_div_values { DWC_UFS_REG_HCLKDIV_DIV_62_5 =3D 0x3e, --=20 2.43.0 From nobody Thu Sep 24 16:57:27 2026 Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazon11013049.outbound.protection.outlook.com [40.107.159.49]) (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 3A3414E1C99; Tue, 22 Sep 2026 07:34:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.159.49 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790062454; cv=fail; b=Tl+MSc/32T8vIqsij6+b1flFuYsxYyesu1D/Omx2b9FJJgSWvpMzZzwGNDaBcLxHQWl+kSNWm7RAROVIQww/tkK0b7B/fdZ4b2UzxRPwlFaRFepE4PGdfdIaYm63EZRasMmQ5qC7vLy1ew/da4KjRj8vXDFGE3GothEboCGK8Lw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790062454; c=relaxed/simple; bh=4xkBl3OG8MRo6BkfecIQ4TfHdFzHjKdQZlBCV4k1foc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=qxo9u/EwhRpW2Rn/Sgb6E55c8M23uAkJ9712cOAtCBymThViwocyJhymkQD4iAaNaSxWlXgIM2PWK/pucj/mxDdk2EF8JHuHyg50W7Oy1KMvjbb+Nk33xvoYHrSCsX5EtsvrdE52TV2K7I4ld+4S+CWH37LZA7g2r3tlWn0Wqbs= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=Xt/9CtRQ; arc=fail smtp.client-ip=40.107.159.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="Xt/9CtRQ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Ln9T/xXvMJ7blqrxk1nRG+kYnTIVxDuUd3rlWjKBZhGDVefk/rMfsczxhZirKkEfXIVetPFGRbdzTuyUrSbP5Sj0h2Xr3bNJe+lGt6fGF5upIBt1YgjOwIUhIdQ3u0CGLckq16pp+ai+KeI+oFni9jK5G4Sk+ZmtfnEJkJmyP40OCKeiFyDcYWOIyrh5CABgjZZ49NZ6PAc1cDOAC8OXrP2XJIwju9XyEX+QPLIX4xjzObCeYn3K3jPdXBhEVdYH9JSEEzRgIx9aVuE34O8m7VfqXog2czzl3MOsTNn4nbys4EahGkcSVyeEoExAhC4/jyOTUAECMhSgdLihmdG8AQ== 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=GqxCE2d5GztTR3HjBlRXysS6u8eaq1wh4DF+uFgkQhQ=; b=iWAFG0OrY6WSPgUl5VEJGbV5qoAU7nItrCN6O1Jl3NdwaCPQf1rcxrZSjKp9iYFUF6pGcZE16f0J8gYdDe2V7WMHFeHax3tZq1NbC6QA3KErsVcPPxuNPHgfCFSOCGlXLJLSsBJjV6MZtYTbiD9AMtc/p3mLTCqxMxfUegqCPsTNhT1QbjwAIPZBpfsmTJWXqPxPvGjVQhSp0xk4rGKY8djUMZdJqzdsk2yp4/rn29Df9FSxJrYsw/Dj97ZRVmLmcf+9jy09phKmQy2fIbP/4O/Y7XGdXQD7JmuslPCTZhQsbo1VuS88oZ5zsPIgRBxUAilMS2UH+omw5kPAB8Q7sg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GqxCE2d5GztTR3HjBlRXysS6u8eaq1wh4DF+uFgkQhQ=; b=Xt/9CtRQtO5V1/3hFnVcBcGeAEqQ8HUr8cBMPHLtsaLHiJZAGazCTjR9+rBRXD9YlDdFUOhPyTjA3hi2ROFu16UcWuL/KJiHcNV0JKozeJq8kwDL4dA0O5GoZvjsSufda7d8KIGLzauPLZ+PWp5mS+cDu1hciQSdkn8Q6gYSlROVPniuwPqlf30w+k/uH5cwj0PRFGG4AnUsB/99DqWG8CHYM9h9pndAEOFLwzW7AoqY32P0Zn58FF69I1SYP9HLmSvYmF3v7etgWlr7p9IQk/nhVVfgMqgomTz5ZSgcKGpmabNj76N/4Z5GbLtl7hZkf9fERDhVJefF8Mxzn3AFOg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GV2PR04MB12558.eurprd04.prod.outlook.com (2603:10a6:150:368::10) by MMZPR04MB213195.eurprd04.prod.outlook.com (2603:10a6:190:4f::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.16; Tue, 22 Sep 2026 07:33:32 +0000 Received: from GV2PR04MB12558.eurprd04.prod.outlook.com ([fe80::cd9f:102:ea58:4c49]) by GV2PR04MB12558.eurprd04.prod.outlook.com ([fe80::cd9f:102:ea58:4c49%6]) with mapi id 15.21.0428.015; Tue, 22 Sep 2026 07:33:32 +0000 From: Larisa Grigore To: Larisa Grigore , NXP S32 Linux Team , Alim Akhtar , Avri Altman , Bart Van Assche , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , "James E.J. Bottomley" , "Martin K. Petersen" , Sai Krishna Potthuri , Ajay Neeli , Manivannan Sadhasivam , Pedro Sousa , Hannes Reinicke , Joao Pinto Cc: linux-scsi@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, clizzi@redhat.com, aruizrui@redhat.com, eballetb@redhat.com, echanude@redhat.com Subject: [PATCH v5 10/12] arm64: dts: freescale: s32n79: Add UFS host controller Date: Tue, 22 Sep 2026 09:30:07 +0200 Message-ID: <20260922073009.1449688-11-larisa.grigore@oss.nxp.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260922073009.1449688-1-larisa.grigore@oss.nxp.com> References: <20260922073009.1449688-1-larisa.grigore@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AM0P309CA0026.EURP309.PROD.OUTLOOK.COM (2603:10a6:20b:28f::7) To GV2PR04MB12558.eurprd04.prod.outlook.com (2603:10a6:150:368::10) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV2PR04MB12558:EE_|MMZPR04MB213195:EE_ X-MS-Office365-Filtering-Correlation-Id: c53779ba-34bc-4ec7-43df-08df187bcdd0 X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|1800799024|376014|7416014|23010399003|366016|921020|10067099003|56012099006|11063799006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: cTf3ofYVvVT4O0WUqLct0yI6WKRrFeXlfQdp6SVB2pv/7zvmGsxu1BM/jHahdWhFhKnNGSLpPP7auJZXpGOU5/PdMPnbcm8S7nzh9gMzbLo/Gn152ggvsvUMhgfEtU8mnoq96cVvz6s/iX0WIGLcIOFbLKKV72Ngz+7+Z/qYi46DLtdkMXikbx9/iNuMPh4CyebQBd63vPF1gk4wehkgUZNoawjfZCruqVTvZyvCPnRjz9sm/mTZ7UVTKzCa9TgjU6eQAGz5N+7u9asaed4UjgTx5mdyGYeH5pZ2Xp8v7/e2xeC07rK1q3CyMz900NJQZojw0IqRlSuLNtG7PHcdeoKpZlPNOCqGnRamDeQmwp/1Xi/k7Sq+6ToeZHPcH4vOCeYlfjbvM3q1gTrYsgK/A/IrIPdTqvh4hD8OQBqC5Pw7xSZVdLSu/Ru/Z2Hptsz1X6eA4Wdof5U2tbDyRrruSZ325Edea9Mnoj7zPMgaRackgDkG1sSSuggPilRs/0rH7vOX6T6mi89UHm8qHigSShCtRO9UGczuj9vvL+KqpGEYpgqnhoZwbZyuSF4wJXuica8+CRqmsDRA2H2kpAX6BQJb17/QdspeHJiOfrX7tvY4yacN9EAJIeKNG3wqVy/qJZEgTowXxOjDLQYK3hXxpIcx4db/w6hLvL9lfN+ab13edNYouLrhH+yJqyL/PbfFFnW89iGRjP5M8rY/U2WxjQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR04MB12558.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(1800799024)(376014)(7416014)(23010399003)(366016)(921020)(10067099003)(56012099006)(11063799006)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cGdkL3ZZY1hGaTUvTTlHMyt1OFRrb3V4ZW1RNW5rNnVEcFFjZlkvTkYwOWJr?= =?utf-8?B?dDY3bk12QXZvZnBqZ0UrRTI0TXU4S0NtQkw4TGg5RCtCU2xwOTZnMmtpd0Zo?= =?utf-8?B?OTZndjI4SUNsSEVkUlc1RUhmR1pGWWFMWmp3eU5HUWFwRmlSTXEzei94S0Zs?= =?utf-8?B?TStGZG9wZFJQc051aVo2MFF6ejJQWS80ZHBpUkd6WkhYYlBuR2N1bjJFT3lw?= =?utf-8?B?cHhWUFVrc0JVWEJxRHdTTkJ5cHRMMVZEUmc1eStDR21wL3dSNVYyeXpscTAz?= =?utf-8?B?U1ZWdjNReTY2alhiUU9vZWNJUVNJRWdKNUtNTmswQlROVVFuSGV5NTdyQXNv?= =?utf-8?B?OWRZcG1qcGR1eDZvRWV6b09zM2pVTVUxOUlWNzIrUXZWTjIveVFQQWVsay9v?= =?utf-8?B?bDZyM3lMMVgyWG5zaXVCLzBYWjVtaGVnQmpXOHFSa2lmcWUxbVVSMkNIbkw2?= =?utf-8?B?ODZsY2JhSnRkelRoNzNlK0J4djZhcGVuZCt1UENKWmJOSmd5NGJqanRiZnJI?= =?utf-8?B?aXZLL3Z3ZEJKSjVIaDZkWVJFNUtucU5kZ05GVnIxbmJ2Y2dMcU1LNVFXNEhU?= =?utf-8?B?YzVDbDZLY1hRQ0ZsMTFjUFdhRVV3b3lZSm41WS9xekRSRDQyWVk1QW5GUU1s?= =?utf-8?B?YUZWLytnUjZ3eGV2dkxCNHpyVEhBSTZNcEwxWC9WcUlESGM0VEkxUWc5RDl3?= =?utf-8?B?QlVCM3ZDYzJWamZnR2I3WmtSQXFuMVJRMlNkWjA5OHhyMDBPTDVPNzF6clc0?= =?utf-8?B?Tk1IcUxvRzNheUIrc3FhTkhGT1FNSk9zTHVGRGVIUlRyakVuMGRVRFYrMUxB?= =?utf-8?B?NklycnpyY3ZGQjQ0R1piZFJ6YVFuQ3h5cWJCa0VDdUdzUGNobkFWWk9xaXJI?= =?utf-8?B?RXd2anZvQ1NjN0l3N2RLR2FRM3RabTY2TmdibDJaYUp5K1JlRFJOM2VKYkxp?= =?utf-8?B?UjNlQ1E0bXhhQVdaMDhUUkFDMExjNmtQZDZLZzVGYWZUVXFSOExtc0VJVU5H?= =?utf-8?B?eWpnSlNWcjd3R2RjZDBqSG5idWoraXJnak5HZFBLTWdUVFdTNzR4TGRSQUhV?= =?utf-8?B?OFdIemlrRzN5QUEyRForUXhsa2t5TEQ4WDlKUlliTEFEM0FQVWNNcEY1OWtq?= =?utf-8?B?djA4ZitpZVJ2SnVSTnpKVUNPS3hqSEJVTEdyaldhOVVrOVQybGppcS84cWJk?= =?utf-8?B?aXJOc2JuWFV4bG1hc2VVMWQ1ZEpOdHpSTmExV3ZYdEJCRUtWazRMbE5HOHo1?= =?utf-8?B?K2tTdFplWFJJOWNiMGdwT3plT1dpOWhqT2pQYjB3TFZvcEpFeWJVeEgxWDh5?= =?utf-8?B?UzJtd3RFRE9IT3hZdVhtS3lnck9UcWMxWUlQL094dSsyN2VwVjdZSXNZV1E1?= =?utf-8?B?NG1EVVJnY2xBRzdwY21GOHJXTmFZVFRwL2t5NFIrVDlZTHE5N3M4emNMdWV6?= =?utf-8?B?RWh2SDFlYzBHOVg1aXAweHFhZ3p4MTYwancxK1lxTTk4OXoyeFZTYzFmbm5J?= =?utf-8?B?Wk13NTR1cERQemEvT3BFZzRRS0FVZ1BNY2tBcG1reThJd1pwT092YkRtRUpv?= =?utf-8?B?TlVMS1FGbURicnVabjU3MnpnTS9lc1lJMjM0TE53VGQ5Ujk4THF1TVdHTFdJ?= =?utf-8?B?TmIrd2Y4L0hHUTdpcEtPaWM4NERPLy9FUFhBR0xvS3ZqaUszL0FjZU5yc28y?= =?utf-8?B?V0c0S3FLeEs1MUhyUHFGYlRSMzVOZERIWjhrWktTZUJZZHBwRFlrb1JWS3lD?= =?utf-8?B?Z1lnalNqZkh4MTYzY3BLZ0FLaVI2UkMzSmN5dEtRbTkrZk1mc1BhMDI1dC8r?= =?utf-8?B?T1JtYzFoTzNtekpJZStmR1JtUDc3dncxbXpZSmF2YlkxeUxSbTRiVjY2OE5C?= =?utf-8?B?Y2Q0cGJBYlBiS3ppdVl0bTlINWgwc255ZFhsVGNIYnhOakpHa3NZZExBTHNj?= =?utf-8?B?bjBld1Z5d1NUK0h0SEdJUU1BNUVBak5GL3UxQlFzQjNiZVlHQ3I2RjdMV3N3?= =?utf-8?B?czFtYS9ON09NaGRuYTZGMmZrMFJnN3pnaXQ5SGRXYXBOQU5va1dOajU0cTVQ?= =?utf-8?B?bTBna0ZnbTRlaml6aTNabzlJbUFMbUlZSGlCNld3cGI2eFdQRDFxRXpOOWQ1?= =?utf-8?B?NTJRLzRuNENwNTN2ditKZXg4Sy9LVmVGV1pjVmJlNWJrbGtxdDhicVdKUDg3?= =?utf-8?B?a2RucThqMmNrL0VxUExZblRHR29YMksxUElVVWdBVm5OenVMQ0ZGY2hUT25E?= =?utf-8?B?eGVSa0g2YWdkU1hqRFhvOUNybkJvUzdKZEc0dmRmRC9Xc1BETUY2UU1ndzJ2?= =?utf-8?B?VUc3VU0rc1ZoSk9PbEZBQU9jMU9Bb3ZPZWNtbmNoSGJsVlREOXloWGV4a0FO?= =?utf-8?Q?zk6kUzydEJ9RnIzM=3D?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: c53779ba-34bc-4ec7-43df-08df187bcdd0 X-MS-Exchange-CrossTenant-AuthSource: GV2PR04MB12558.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Sep 2026 07:33:32.3699 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: i6woXJZv8sDgOqUlMnMfz0PlLEgaK5YbF6Skh85pOMGxjfT4TqSPCo2GP9np23X0B89M46lNACD2pBo0nEkHBQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MMZPR04MB213195 Content-Type: text/plain; charset="utf-8" Add the S32N79 UFS host controller node to the SoC dtsi. The controller remains disabled by default and is enabled by board dts files as needed. Signed-off-by: Larisa Grigore --- arch/arm64/boot/dts/freescale/s32n79.dtsi | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/arch/arm64/boot/dts/freescale/s32n79.dtsi b/arch/arm64/boot/dt= s/freescale/s32n79.dtsi index 94ab58783fdc..9f64a7acc3f8 100644 --- a/arch/arm64/boot/dts/freescale/s32n79.dtsi +++ b/arch/arm64/boot/dts/freescale/s32n79.dtsi @@ -100,6 +100,16 @@ uart7: serial@4aa40000 { status =3D "disabled"; }; =20 + ufshc: ufs@4ac80000 { + compatible =3D "nxp,s32n79-ufshc"; + reg =3D <0x4ac80000 0x1000>, <0x4ac40000 0x1000>; + reg-names =3D "ufshc", "scm"; + interrupt-parent =3D <&irqsteer_coss>; + interrupts =3D <211>; + clocks =3D <&clks 0x92>; + status =3D "disabled"; + }; + irqsteer_coss: interrupt-controller@4ed00000 { compatible =3D "nxp,s32n79-irqsteer"; reg =3D <0x4ed00000 0x10000>; --=20 2.43.0 From nobody Thu Sep 24 16:57:27 2026 Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11010045.outbound.protection.outlook.com [52.101.84.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 76D984E4C4C; Tue, 22 Sep 2026 07:34:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.84.45 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790062458; cv=fail; b=Fqpd9NsvJnyiBzMxBixRreuCnm9tWo1mTP3WQZIZBIjVJ+itK4RD6UaaQuvpJ0Zpe7UFztwFTV/z357JilWHpk8Y3aGlJph0OR0XIttLyGt9X/e9cz/vsdwiuE7/YBBo+hVEQWd4PCBYgobvPOfty37wgzXu1WRX2y2C0WIXjAI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790062458; c=relaxed/simple; bh=SlPckDvgmCgHI3K96wXmE3PZMKP1GnJCHi/dHGpHhM8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=ncDvU037tO6V6szi3ehYHLedlFaJtg60aBPmwyqCHd771vGfzK14eed/EYi4RncEpMepI6KF/BMMTSDcFtJaz0M4Ep/P4XqQdUqlzgTfuLD2/2MO/e73PLNEPQlg9mIzqv5r1Ts4fRQK+Vd7w+tnvI3o5oVPEO/J2smVRpkeR0s= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=pKQT263M; arc=fail smtp.client-ip=52.101.84.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="pKQT263M" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jnbQmgw3XHsKN3rGTfR4Cr4e71NnMYcU4mnMLBThLwDB/2nmgCQCFHnA7YT+Ux2jqqBFxU3ufhQ4uWQ4mSZqCB3SSagFVIrg1lglRzxe1kjycIF+bK5puEoPx8n9hw/ZYTnKo1cInWLuadEnjo4MINK9MuqZQIuRmq7xz85age5s9HMo+IM/4Z7i3mYRjq1MSpLCocA7C8fF6ifBNZ/g+vR+iv8yAbydKtUxXGhurjE+bpdCYrIvGxC3L2+Zijk/7rnIs1g5e2LrdC6YUBSDSOjqAoqCvz3xmos7szE6i0WOogE7sL6FiKEFfV8xVhQeCfliruitG81yraPkVT3zVw== 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=2UOWV9fRxUwt8l0WY2hoefG5eR2DygWkQFZDWhOqVZ0=; b=Rpoye0rUQjxI+PxA476NypYWWZOsclnEe3LgMMkNEMtV4YFzE9lS4cHbYcQzmkVGVYXKUUOsI8dVPIBisvkG+AJDb74c9HZUlobIdyXwgkR4b0BdVr2EUDARipuSRQynj2WbrJNG4UqYC7EPRw0ue42f/ldicyc2jsJzY30599IXWTo3CzjmMoViUqklKsgAOfbq/dxuUgov45gw3I91AkX8bozKvdRGc1v58wrFgxhZa2KR7MgKL+6ggh77IxdJSRjuscASRo2VjVtgBfTXIXTXc1eA8bLJt7eSnAC/c6BwCM0MwZ/BTokIGnNh09UuOg2GfHNjC9UMjF2GLKQAmg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2UOWV9fRxUwt8l0WY2hoefG5eR2DygWkQFZDWhOqVZ0=; b=pKQT263MUISVJlqnA3EiHdXBXtZbgBe0sfgeJA0l4iENCmtR0YxgXDasScmmf0F0wWx8jYhG4Y5rAnN2zsRz//rrXwnS2EZe2LA7kVlyGLqyXPKZExHjSRcgBSfpy5u0QiwR9gXZM9/ZDFw5pPBwr7LI8oDd3vGE+PJJ16wFy28p770AbgeS1Ut4H5PyLqcuIt7mhRLNb6cVjaF6epWZbYH00dfm133CiNGQZIkIrqJxSPqgF/Gt1Njo6Vt6Q5QW2dC7l9kHsDd8XDWKLql44D7OwxYKOO12lvsGN8GBJr2TJM/UTqNPt92fMsbqH+5iOeHfljnf6srXoz6otTgBiw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GV2PR04MB12558.eurprd04.prod.outlook.com (2603:10a6:150:368::10) by MMZPR04MB213195.eurprd04.prod.outlook.com (2603:10a6:190:4f::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.16; Tue, 22 Sep 2026 07:33:34 +0000 Received: from GV2PR04MB12558.eurprd04.prod.outlook.com ([fe80::cd9f:102:ea58:4c49]) by GV2PR04MB12558.eurprd04.prod.outlook.com ([fe80::cd9f:102:ea58:4c49%6]) with mapi id 15.21.0428.015; Tue, 22 Sep 2026 07:33:34 +0000 From: Larisa Grigore To: Larisa Grigore , NXP S32 Linux Team , Alim Akhtar , Avri Altman , Bart Van Assche , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , "James E.J. Bottomley" , "Martin K. Petersen" , Sai Krishna Potthuri , Ajay Neeli , Manivannan Sadhasivam , Pedro Sousa , Hannes Reinicke , Joao Pinto Cc: linux-scsi@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, clizzi@redhat.com, aruizrui@redhat.com, eballetb@redhat.com, echanude@redhat.com Subject: [PATCH v5 11/12] arm64: dts: freescale: s32n79-rdb: Enable UFS Date: Tue, 22 Sep 2026 09:30:08 +0200 Message-ID: <20260922073009.1449688-12-larisa.grigore@oss.nxp.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260922073009.1449688-1-larisa.grigore@oss.nxp.com> References: <20260922073009.1449688-1-larisa.grigore@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AM0P309CA0030.EURP309.PROD.OUTLOOK.COM (2603:10a6:20b:28f::32) To GV2PR04MB12558.eurprd04.prod.outlook.com (2603:10a6:150:368::10) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV2PR04MB12558:EE_|MMZPR04MB213195:EE_ X-MS-Office365-Filtering-Correlation-Id: 10d85a8e-5dee-4182-061f-08df187bcef4 X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|1800799024|376014|7416014|23010399003|366016|921020|10067099003|56012099006|11063799006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: j3bQwdG9a7ZsS3vwSEoS1ILiygp9NbIPbO444YgyfN8dcJIaIM5qQsZQsTBAWMWIJGXGkBIjxcV8e2smFKhr7cB+AO8osw/8sWoT+jBZ2Zvgn7dL660KkdZ6uO0fRlLBnfdVcvCAgOpBrx+mqQwnHLXDPHmHjbVqA7yPWEmI+zp1j3573l9NHeU7M4fsCpCWc9/5+/WRAPxmSIku+rbVXUbSTQdR9f29HU44Zo0yoXW0ss7USC31Up9VQreh0To/av+fd5uSyUhMfXjKk825w8toDhddp4SsVuadXWRR/x1IbFZdEphymd6G1374AqtLICx4MS/e/lIboAUFlOS8Q49aaLalJDhiOt0TyBTqg7jiNuP7V7pASaDEaYSYV/eHSBw3LePDzYXuF0K7uZW9Ph7GEsjJluGLl9a2jG5vxVDStUyTfRTKUQLzakhCwwfPWLID86v8Kn/vw1HEk+bgyf9jluLnLWrZAguldnLezJOkRhiFr3lVPZs8N1lX1aXEbGtk+MOs1yxJe8gEVRswJi6m6bf6tvigOgYdrSrp9UJofM0P5KnVjsgaRKPd1rFphBgTimc5EleP0/W5dwssqXbsiC0j4loj73R1nCxsW9lu3Ofv0B0NzvEZ+jbgexDSLPZZRu5M7+pHWKdqygYGuDss+f4ELbobXNe6b9nfvsA6YzxdvHGVej+UuJLDFZwXCrnt+saaplhuml7/0QmyOQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR04MB12558.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(1800799024)(376014)(7416014)(23010399003)(366016)(921020)(10067099003)(56012099006)(11063799006)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?c0VkRlVZWUJ1cEJkeE9kWDFHUXNtVW9TR2NCa3Q5UjdDSFhEUHloTzdSb2hG?= =?utf-8?B?bHBzQStUOUFFcHB0bFNnRVFUNlZudHoydUM5MnBFaHEwYi9XUnlnL2tGU3Zm?= =?utf-8?B?UEkrb2JuTTN0QXJ2SDU5YzZHbTV4QzRERGJ1L0RLbkh5cUR2bGpla3Y3bXdB?= =?utf-8?B?RUxRNlRmSzkwVC85N0FmT3EzVGozZVFsei9uYzhDVjkxQjd5U3lyLzN6Ny9D?= =?utf-8?B?dE8xdGtDZWhtK09VaVFNTlRRZEJhVWlEanRZbFUyS2N3czVxeUZidDdQVGxX?= =?utf-8?B?dnFkMnhybmM3eThjdkQ3SGxOUDk3bnNJazJWYXBxL3BqUnVCU1pQZCs5cXBO?= =?utf-8?B?SUlVYWNWd3hxNHZzZVV5OENhWFFnOWphNUh1aFlGaDlXYUorQlg3ZFZRMmJW?= =?utf-8?B?VURMeGg5VG93Z3pQTHFlVG0xRWJVSVZlSml3UytrSFIyVlRya0w0dnlXR21J?= =?utf-8?B?VUZEZ1Z6eElISitVTWsvNHNhV0xNcWMxVEh6eFlvWE1sbUl3dUV2Sm5zK0FI?= =?utf-8?B?emNYNWZiditnQ3FEOXJ0S0R1UXFLTllYTk91LzJTUUphMWJFQWlkR3RPUjlK?= =?utf-8?B?SjFiQmw4bkFmQWVNS0oyU0k4WWtVcnFlNG53dlMvZmxRbnYra3J5ekFHQUlC?= =?utf-8?B?clZtaGUvOFFUUEdrQkZ5UkUrMWNheCtrYWZGb0xiRzZWU2k1QXJjSU5aOEpC?= =?utf-8?B?eXFsd05ZQXgwZjRsVDZaOUx4OGZZdzBWMjBaSWdyTXBGdXBoTDl2TWJQVUgw?= =?utf-8?B?akFVSGFMOXA0YllmLzBIRWhxY3d2c0FTSjVsbVFNcGhhR1pWejF1NzZmc2lp?= =?utf-8?B?UHdqMGZnN1RUaGkrcHVwUEIrcW1wY1U5dWtrVDVNWit6WW9MVHh5WUpJUSt3?= =?utf-8?B?MFJ3UFVtWDBMWmt4eXBxRG1oRGdublpKa2Z4c3dyc1ZWYXc0V1VKVUVFVTRh?= =?utf-8?B?UFBQaDhPelJ2RkpiTEhPV0kzRDN3R2J0TXp3WGU3WTFHbUkrelQ3NGVkaDR6?= =?utf-8?B?c0Z4RnBSQVRlaXFrUml3aEFZV2NsM2pXZ3FKWWhlWElvS0dHTGpiaTBSMlpa?= =?utf-8?B?UUFaL0FQWlNFZDVpUUNQM1l2UlZDS2gwSXZtRzAzZWNEV0pXK0lOT2h3UFpB?= =?utf-8?B?eXBUZCttZzVxTjd4QlpsV210T1R0ck5jeWlma2xSQ3BpZUhyTEp5bzM0NGhI?= =?utf-8?B?OWVkVU5jbjJ2YS9HcTcwM2hHeWp0UnFlVXY4SHJrS1grZm5BbXVIMCtpem04?= =?utf-8?B?WDJtWkhXOHMzcGlNNmwrM1k2QzNtWlNvUFFZOTc2T0NiMDE3L3BSSm8wNXRl?= =?utf-8?B?OGhGYkg1VVUyUEMvRFNMNEwyMlZqajR1bWxMRWY4OS9iZVJBR1lGZW5TdndC?= =?utf-8?B?bUlnK1JGeTZ5Mm1CUEsyZGVPNWUzQTI4RGlRL3BYVUpYMTllVEFNNGFzMWFK?= =?utf-8?B?VFRQNDVBWkJRKzd3bVhYeWVqYzZlMkM5emduVk9IZTQ1S0swTHcwRkxmcm1p?= =?utf-8?B?N2V0ZFlvWE5vaStTeE5aUmNYVHJFSUJINEJjVW5VNk9oSUlGWEFHeXRYdHRR?= =?utf-8?B?RHJLR0FoMkk0MEF6ZjV0aVJhbmNmQWJxVUJrdmxzakhsQmpNdE4wYUJtVjZM?= =?utf-8?B?TG0zaGFrQitxS2dqVisxejdHR2w5OHpvUXdLQjJHOHBXMlpHTm5KTXBQdjVs?= =?utf-8?B?K1JIOGhQMFJmNDQ0TVkzUFFOTGZhUmIvREFFbWxqOXF4UHFRVTdQajJ6ZVJR?= =?utf-8?B?R0dROGRDZVBsS0VTU2dLcVd1VHBXVGlOMkFqZzFESDNhbnp3ditNTUJhRElM?= =?utf-8?B?VXlCUWlNSXhlU1dqNlgwWHFnRE15STV1bmkzaGV2ZWRMRGRQK0doMndQNVJ2?= =?utf-8?B?V0wvbnFTYWZBUVRKV1gvaGdCa3BMNDd6dTl5WlBVMTBGelRXUytKOFBSVHBY?= =?utf-8?B?bGY4Qkxvb0NEVkpjRm9BSkdnZVZ1eHpPNVl2NnB2ZDFWVDNER25wV0orWnJR?= =?utf-8?B?M3R1UFFhcVRzZUpabjJ0WFlSQWJxcEthU29RcElDNUNSWFhSRFdaTUEyVXpK?= =?utf-8?B?MHVMNzdkL1Z0bmp4VmZYRUR2RkNyVkxOMlVHYUV3RkdLYjVCTjlqTDNPcllP?= =?utf-8?B?R29mcndLUUN4bFdlaUFzSjEyTHA0SnU1ZFBwa0NyU2FRSnk1SHloeWY1TzhK?= =?utf-8?B?eDVqZXY1ZEZ6ak1Kc25tQ1FTMzhGeTU2S2NoWVVPUTg0akZ4RDVzM3JpUldk?= =?utf-8?B?a2h2WE4zMklHQWdzcldwcmNaaUpPNHUrNDc5TFdRbklPcTgwclFXVHl2N3Jp?= =?utf-8?B?QzZ6dnUvQUovcDZJOGUwWFdOY29nOVM5KzJsTVJ0a1NNYU91ZG1hSW1iOVpB?= =?utf-8?Q?hFEf2XnLr1FhrfD4=3D?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 10d85a8e-5dee-4182-061f-08df187bcef4 X-MS-Exchange-CrossTenant-AuthSource: GV2PR04MB12558.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Sep 2026 07:33:34.2820 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: NAL4ylW3OxLCGT/YomayG/RxR9eR1EvkJbqsfqJ6nJXvXFB35W0uR8rRnD9tlQP5CA9KGixeK5WCOL7s+nxV9g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MMZPR04MB213195 Content-Type: text/plain; charset="utf-8" Enable the UFS host controller on the S32N79 RDB and configure it for two lanes per direction. Signed-off-by: Larisa Grigore --- arch/arm64/boot/dts/freescale/s32n79-rdb.dts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/arch/arm64/boot/dts/freescale/s32n79-rdb.dts b/arch/arm64/boot= /dts/freescale/s32n79-rdb.dts index 1feccd61258e..38c5699e6d54 100644 --- a/arch/arm64/boot/dts/freescale/s32n79-rdb.dts +++ b/arch/arm64/boot/dts/freescale/s32n79-rdb.dts @@ -63,6 +63,11 @@ &uart7 { status =3D "okay"; }; =20 +&ufshc { + lanes-per-direction =3D <2>; + status =3D "okay"; +}; + &usdhc0 { disable-wp; no-sdio; --=20 2.43.0 From nobody Thu Sep 24 16:57:27 2026 Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazon11013049.outbound.protection.outlook.com [40.107.159.49]) (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 22F04517BDA; Tue, 22 Sep 2026 07:34:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.159.49 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790062458; cv=fail; b=OLXhtjGRRJ9Sr4uSoPyudA0fFu1lDAUXMZ6GHe+6mXtoP4SZIAgVnFxmvP+6F1Y5Yy9vvhkYNFtH4L02O4fB5IvqZ4xUQXb2jgmcz36Ic7Izyj7KUjr0X+BRkW4gQAgTbdLx+FndUzNpFbBYxVKtBTxMI2b+ClE5IUPszemaMAc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790062458; c=relaxed/simple; bh=N3b8yvZL8nOr1bSjt359XhvxmXu8OPq8MUm5GsZ50P0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=m3I+3SabGHnpb0WYhpLxvvijAcN49ZmwG1i6LyORs0djdGwGC8qqZC+//yC6NPG/SIu9B2dPYI/c6N/ZLfyG01ybEKCDPQfLMNwrkei61GPBS0ohQpDKqMgKXX/Ln+iT79BPVGVkpd2I6PW+Pw5qTM6AJiqBJSzniMJ5sdZQgvk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=dxfylUef; arc=fail smtp.client-ip=40.107.159.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="dxfylUef" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=FHoWanWoksjvbRp0F2gzjRjxQ1v3+aT/QpzlYf1T7VBtPPdhO69DuO3ElqtQ6SpVNjEbd9sSoejqiJ9hoIJXE4MeHAzU5hRydqVL97bjwgoYs/o1e3PCfJJbnRI1xh8kruzmvhC7as9JLOTOJ2VhYOP+S1vnyL1XBtjwCzLakaDtTXXpRVOp3mak6PF7/8xl99z9tX9fxHxPgIrNUfPMvTZgu5pd7ZlZ9ylixsl52I4qkpYxgQxzdNVV05bD23EB6EDniVjf8uStLvKju/WPIHWIJ3aa8gTPRoD2a7iW4RLlrvvQcuY6g8Uc6Hhepc4tTWRrTTU3/qg4NY6ktQuIRA== 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=b1fYQlKK4Z5jSC4WP88E0Oc7f/fULS2/pKPT2PzeWXM=; b=V2VGQXTJ32L7Syyed86JilmsfMO24QdqMa/FNHsFO4Ca0iZuqsXqtr8aXYQhqWG4eouD1Jn167yHVjwbiGZkuH2nfc1sFJrLGeMTfnX7BMtpo0DddRV5KNKu5tJRQFpL/GGMwEA8G9UIAAuJUDMwgq20wrK24JpQuAddSa7vg8ghsRrj6V0TBIquNUdWeBlojqn7i3LhbPEjI+qD1/ycEXs+J35+kNaFqCGkvAeJXt+Zg6ZA4kZhU3ueM4EaExgXzyAb6/zb4UST4TlZL4LldvZhUGVsp8WK6OsvP6H5GNxDBcFAHsc9a94MOTsmGjAS6+2Ch++zTmjcNPaFAXeiyg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=b1fYQlKK4Z5jSC4WP88E0Oc7f/fULS2/pKPT2PzeWXM=; b=dxfylUefEwcwXM4wig/ESUFkCW5MX1a4ZgA0CkTvicym4yn+0kZA7yN00DFsZC/ySYlETmtlV0VHa7D1Dozi0TAcakTSGomjwKXvGVfI4Kt2CY8SOKmxo3qF8ke3oB8ez/98ipbyUGy62TuG/5mCS+E9Z/v6d20f/h28sqxojqC9hzrJBkbEzz7gFPbxuG1TnqPjCMjnNifFjGSTEIKDLfh2thf6UZXtHolL54Qh+jlPbdL58AtNttSjJz9W2pqSLs5ZCC65fazla0q//l4/h8ZKfRrXKSTnUCAxsRLOu9Or+8XDLSfERMAz45OENbVYW79uJM4fTHnHA/yxz+6NuQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GV2PR04MB12558.eurprd04.prod.outlook.com (2603:10a6:150:368::10) by MMZPR04MB213195.eurprd04.prod.outlook.com (2603:10a6:190:4f::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.16; Tue, 22 Sep 2026 07:33:36 +0000 Received: from GV2PR04MB12558.eurprd04.prod.outlook.com ([fe80::cd9f:102:ea58:4c49]) by GV2PR04MB12558.eurprd04.prod.outlook.com ([fe80::cd9f:102:ea58:4c49%6]) with mapi id 15.21.0428.015; Tue, 22 Sep 2026 07:33:36 +0000 From: Larisa Grigore To: Larisa Grigore , NXP S32 Linux Team , Alim Akhtar , Avri Altman , Bart Van Assche , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , "James E.J. Bottomley" , "Martin K. Petersen" , Sai Krishna Potthuri , Ajay Neeli , Manivannan Sadhasivam , Pedro Sousa , Hannes Reinicke , Joao Pinto Cc: linux-scsi@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, clizzi@redhat.com, aruizrui@redhat.com, eballetb@redhat.com, echanude@redhat.com Subject: [PATCH v5 12/12] MAINTAINERS: Add NXP S32N7 UFS host controller entry Date: Tue, 22 Sep 2026 09:30:09 +0200 Message-ID: <20260922073009.1449688-13-larisa.grigore@oss.nxp.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260922073009.1449688-1-larisa.grigore@oss.nxp.com> References: <20260922073009.1449688-1-larisa.grigore@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AM0P309CA0012.EURP309.PROD.OUTLOOK.COM (2603:10a6:20b:28f::19) To GV2PR04MB12558.eurprd04.prod.outlook.com (2603:10a6:150:368::10) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV2PR04MB12558:EE_|MMZPR04MB213195:EE_ X-MS-Office365-Filtering-Correlation-Id: 9fbed124-1a73-4a36-17fb-08df187bd020 X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|1800799024|376014|7416014|23010399003|366016|921020|10067099003|56012099006|11063799006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: muPIpiz9OxmbK+z1qvMZdH0RxtZQ9Qk/FMvP+nX7joZU9ZajvE4MyDcYa71Gie9nLGCEacfOeQiL8q0jQmAjNwX/fVPg/EmTgmOij+BqYSZgjKJroLQdCcH+HvDQaZC2Zi+93JZtIqk5xjhxcAWdRFf4cVieziXcHw/t/7MU3yYd2GCYeNnd3MI5j/AasXPniL6+M3TTTej/pOEXUIk+Zio2MN1hkCGq1v5Iauio774xPA+1vs533pXk3Z/PFS5VXGLxxRJ3K4WDWvbC9dBj5h+vL2LK2x0mwGZS/mPYFrFXygWdWWkG5jhqRBRkmd4v3Oy83gT+ZNQRpFoGql9U8H290gSqnKxPKp167qf+w31WOgUWaPbAvwFVuk63YTODWHu45bbj0obGcP2U02t26hPiqTJ9g1nq1ymo9nIwpmFJ3z3qXOSScVtnSZcy5I+dwOi6+BDy7/QTVOI7juKWbA+QdNuMMMesHjXQnUh4oubpLUDfgiNxCPaCY94Nb3BmaU+YSi+kIsLoqwYygeoK4cwwma13fTQPvFcNbmr+ksfaJtRQa8cN0a6007XKMeOkXkkTFo9Bgy5l9W3oiV6zKDhdefYHYjELRapQOc62FkAnS/Eo9Il5FU5v3gh1bA6UmfAQKZwi6apL9OTad2R5YpOOs53E616zG1ChMM7ZohAbLOg1//ZvvJ1cFJHfrDe9Ziz+/yYfWXX85vgm0jDjRw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR04MB12558.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(1800799024)(376014)(7416014)(23010399003)(366016)(921020)(10067099003)(56012099006)(11063799006)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?V3JUVnJJVTF2aS84ZkRtTHBnR2hvdXRBQ3ZSb3h1OUtWNGpZOTVaNnlpcUhG?= =?utf-8?B?YlN3VkNpWEpoRE1jQktIMTJGc3YvU0JsdkNuU1lwdFVReTFYTlhnSWlMMlhB?= =?utf-8?B?T0l2eXBiR2t6ZHpIczRYM3kzaHpuckV6UkErcUg2S20xcnpEUVVLeCtmdlBa?= =?utf-8?B?bkZ2VElvcmE2cHhhOE5lWDFNbGdEalJFSkZUTTVpRmRadVg3TXF6VEN4dVM5?= =?utf-8?B?L0tyOWE4RjJESlhoRkovWkUvUTYzZ3ZFdUFQVlIvcW0zL0pTUVV4QXhqblZv?= =?utf-8?B?T2dyWUw4NUJOK3dHbVdlTGVIandvemo2Vmp5UDZRL0JKaWlnVm9VWlIreE5X?= =?utf-8?B?RGdoS3prdVlZNlVWdUZ1eDE0WUwrUzRCMEhQb2wyNXpIdGNLR0ZoWnB1ejZz?= =?utf-8?B?dHpNaGxYOUpENnpCSUJDSFE1T1hYUytacmpPUTNlRWN2aUtEa0Z5QUowT2hU?= =?utf-8?B?cHVOdXhTQ3JwRGpoUSsvMnJxM1pBeDZLcENvZzdmaThRWkVmczRMQUlHUEky?= =?utf-8?B?SlFKQ0l5WHN3SjRhcWplVG9VbzluUTBuL3R6OGRTM0FGRUtiT0RLSXhBdllr?= =?utf-8?B?aUQyV2ZBdmZyUUg2WUZtS0htZ3p2ZGExend5blQrV3RDdHB5OXpleStXQlpD?= =?utf-8?B?WHlJc1hFVVR0MEhkWVBlVWxDbml0MzFTb2tYRmZRTHRERDNIT2dwMlpkbTlu?= =?utf-8?B?dS9XUjBzR1hmcm5Icy9JZGpUM2RDM3YzWUxXdmdubVI0eENYcDVUalJLV3g4?= =?utf-8?B?WjEvdHFrbzZ3MW15eFRnNWdPUVJpcWlPU0dwK0MrVmJyYlEzWUlhU1BvaTV3?= =?utf-8?B?b2RRYUJqcUhLajcrME1wdXZZa0FiZ0ZqYlZKMVlmYTJPZHJ3MkYvVllIcTR1?= =?utf-8?B?YmEwTEEyb2hrZGp2QjdjaXhxbGpUb1JRejljQnU1UWdSZ21FcWJaWFRkRTY1?= =?utf-8?B?bVBUQ2xsTGlsWjh4a01kb09INkxMWUlhM3d3NTdwVzFBS3NoY3lhTTVQeUVV?= =?utf-8?B?eGJMOE9MQVJlYmxqbzhTOUJCYU9GdUdHbzdLdkFSY0xLTkRzTXVGeVRJQ0VF?= =?utf-8?B?V2VpaWNSVW01eFlwVHhRbDZHZG9kenRLaFVTN1NtRWI5N3NhT3psOGwrV3Bz?= =?utf-8?B?a3ZVZE9USWdKQm9JUW9hM1FwczhJTWIzMmQ4V0NjZDVPK1lrNG1aVWJna1Zn?= =?utf-8?B?LytGNUlHaVE4bVVwTVVtbkYwSDUyQVpubTRkNndGSGVFK1B4aEJaM1hDczYv?= =?utf-8?B?UUoyNmUrUURHQmQzQlFRZFIxU3lRcU8rbGNrNGs1V3MvZTF4VmVNYjB1RXZH?= =?utf-8?B?MWxMZ2o2amFCNHRXS3JHVzZqYytvdHRxdXcvdTFFS01GRDdhcmIxU09nYkh2?= =?utf-8?B?M1NPWCtJb05wVXArNmRJNGxrOTZ1OG9zQ05GelB2dU4rTk5VK2tkaTAxVmJR?= =?utf-8?B?cC9NOExQRXphODY0L0UzZS8wODJ6OWNaMk9HejVBVEV3ZzJhQzMwS3pVOHVP?= =?utf-8?B?ekM4bE5CaEJoemlYcm53VC9GMS9HWjZ4MVpqdFRpdi9PYW9TbW0vTkFvKzIz?= =?utf-8?B?d2VHZnhuT0NWVkFrTmRaU0NpamVLVzlvNlJSeGpmY0N1WGNtbzhpUEpTbEJ1?= =?utf-8?B?OFBOMlh6c1ZzeGMvVTdmb3htS1lXNFUvaHVGeVV0OHdPQ1JuS2UreW40OTlp?= =?utf-8?B?dG1KVVdmbzJlNFlka0l0TmpnMmVpYndQS1lDUDVNS0lncUJod0preDhCa2dB?= =?utf-8?B?QXBleFBEMEwzdmQ5blRRNTNmNjdiL3hxeTlmdE9NOTVuWnRJRytoS0p2d2hU?= =?utf-8?B?dmU0OFVIVGlkWTN1dDl2K3JZT1pQN1p5SDM1WjI3S3p6by9RdzZNbGtHbFRB?= =?utf-8?B?cU1JajhOU1JoSnRJWTN5MU14QTFoVlV5Q1Y0RTVua3M3QU5VNUpTaHVPQk5x?= =?utf-8?B?UzZWVXR3ZVY2Tjl3U0NVZURYVVRNcjdjOW4xU29JK0JxV05wOFVUM0NIVmJy?= =?utf-8?B?d3RRMUR5Wnl1L1M4VnVTYUs1RW53cThoUnEwc1VXQXVod1ZkUGlSRSszdVNo?= =?utf-8?B?VXZ3VXR4Y25GWnhhTHVNazZ4S0YzVkVkYW5XR0txM1JheTYxb1ExZFJZeVV5?= =?utf-8?B?UnNBVmE0ZG5ncU96ZTJxMWNoWWEva24weHBJNDA0WDU1QTVLQlZUQ01hazhu?= =?utf-8?B?ZUNxWVJHQmIxRDBibHorbXBEc3dRSUx5NEZ5emk5aXhKMVYxVlZIbGRYM2pC?= =?utf-8?B?eE1QK0RaOHVieTMvTlFMdXNVVjVTeFlPT0IyWkUzM0tCTExwamZVY0JuTzlp?= =?utf-8?B?U3pneVlZdkpPUi90elNvRnk0WVhEU3NrelB1Y0dxS0tTVVdHVFk0WmtjS2RS?= =?utf-8?Q?vqQEoDte8vlURjFk=3D?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9fbed124-1a73-4a36-17fb-08df187bd020 X-MS-Exchange-CrossTenant-AuthSource: GV2PR04MB12558.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Sep 2026 07:33:36.2482 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: U2w94haSIvRyi3lsHV+BD3H3VXE9MVNwYBQt0qPHmi/IhTuZ0dcMYjscL3QPxNNcaRBUcPJb5I2IQWGFQcTe3A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MMZPR04MB213195 Content-Type: text/plain; charset="utf-8" Add maintainer for S32N7 UFS host controller driver. Signed-off-by: Larisa Grigore --- MAINTAINERS | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index 3b2eb2a7a89a..32b01db895f9 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -28096,6 +28096,14 @@ L: linux-scsi@vger.kernel.org S: Maintained F: drivers/ufs/host/ufs-renesas.c =20 +UNIVERSAL FLASH STORAGE HOST CONTROLLER DRIVER S32N7 HOOKS +M: Larisa Grigore +R: NXP S32 Linux Team +L: linux-scsi@vger.kernel.org +S: Maintained +F: Documentation/devicetree/bindings/ufs/nxp,s32n79-ufshc.yaml +F: drivers/ufs/host/ufs-nxp-s32n7.c + UNIWILL LAPTOP DRIVER M: Armin Wolf L: platform-driver-x86@vger.kernel.org --=20 2.43.0