From nobody Fri Oct 2 13:07:19 2026 Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazon11011006.outbound.protection.outlook.com [52.101.70.6]) (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 2D5343C09F5; Fri, 31 Jul 2026 08:07:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.70.6 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785485270; cv=fail; b=dRrFrs63iBOIXLp9g9LViVUhJZFu3Mg8RHV8XpRem1ixFjMy7MqCZnkzwAWLF1cD4XClppuCwcCP4L6UQDAcxGORvKhlBFd/rn/AGjGgRBVic42RXFyCnUNZb2bpO/S+pPChAh7CX8errvtk1fbBnEj3vDQF4xwKT5CwN/tfZMk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785485270; c=relaxed/simple; bh=TaegA7Hy1Es3W2SgL0VNgr734Md4qXYNn5fq4LhUhw0=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=EwH+OR8pPVvpJhRdmkGQcr3ZkEuS3XRHo56cXImpfqVgl8qbz684ahWQwgreQYWoW/s2lnkHaa6VUUpiYz4PUEGrfQR0ue3MnbT4aCkZVxM1Utd1blT7XP5SD/M1smX+fhOV96w90V8EtvbaN6O088uZqtMTYlkdau+/2Yz8JX0= 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=vGm9KwO/; arc=fail smtp.client-ip=52.101.70.6 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="vGm9KwO/" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=COyRaEd75lRwzwfdYXBCsb3RsOZRNQL+VQW+AiPbIWg0y+7MrGmPgFlgQqmhVRE/ZU0K/InoICJQ9oPu4GpSeSuCVcvSrmxLqHkZ2WyGaN4/rClxDZOTdFoNtlfD29gTCIDcQamtvYZ2zHVj0QpARv1Dfyd273zcFXZcu8FGrr9MmrxNat64Z1eB2zbLtonLzrKjbjX51apjT3/anh2FE0QPBgk5EGrUxydF41ON3PeJTojlDs8GGUPA6y/HKmdWvJGp1gSfBz3L492V+9fICdQ6BCh1P0/A72HXwsGerA8ZTbNhNAUahh5qN2es3+A/Nwl1Ff4k+7SZkEe1qk489g== 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=XQ4EbefePnH7M/zW9n4Jb2rJVqJvBEFUKNy+xXjrmRw=; b=K1atpqPJwwghUz0p5jkcJ1HA12L7ojM3vjvN/VhuokT1kITNl/wywOj5SHs2/zZJBAJj592NBTkJUSSvgF+vaY2SbhL9imjLzr18EbS+kyRF+q5Kk5RXOr2gYIiZFy84ss4Y2rO6GhTH668OGxV+AXJDwSayuHSdz1/e1eLq0V7x51l4h4eTlSEvw2VBBVlSGcyL/MQmQ5gBQTvdVIoWd/w6TkXF1BTiBL7ghSxv8ayn2KTKdm/JR3LMyB4pYYAP7d+pEFn7nna7/NkYgckf90DZ3OqiM38o3E2B7O95bSDOPDa5Pe0c68BDh860S8bRNXMYCCSTZ05kHzkmNvvN8g== 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=XQ4EbefePnH7M/zW9n4Jb2rJVqJvBEFUKNy+xXjrmRw=; b=vGm9KwO/mRzMxpSVsq+SDAAhAzhxGryRRYzXzddONakG32hlD0mjZ6JsOY0gHsGeLqUjspb95u4s9Aowfx3LqrPS77DYPOT+3ljha3jE8rRn5d5nwGf1ZrPtvZ//fzJJqi8FrlFrmJ7+QujxtBAe5o2d13nCyP5YiW7jEQ/jjxPLVDcfkai98yNhVxEziL10iTKO9c2koCknrS/xxmxDAO/z3SNyT/a+PiD22ww0CaDqYHqYDhl25Zlanom6D9ukUYq06LJ9p4kiBKDdYJO4mcXO/ii5ey0Bv/taxJKdEuMuaHmbgDV5038KVVk/JXV6qMd2hIS8HaEnFFA1XpvXVg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from PAXPR04MB9422.eurprd04.prod.outlook.com (2603:10a6:102:2b4::21) by AS8PR04MB8657.eurprd04.prod.outlook.com (2603:10a6:20b:428::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.270.15; Fri, 31 Jul 2026 08:07:46 +0000 Received: from PAXPR04MB9422.eurprd04.prod.outlook.com ([fe80::54e:28bf:aa85:d25d]) by PAXPR04MB9422.eurprd04.prod.outlook.com ([fe80::54e:28bf:aa85:d25d%4]) with mapi id 15.21.0270.012; Fri, 31 Jul 2026 08:07:46 +0000 From: Xu Yang Date: Fri, 31 Jul 2026 16:11:19 +0800 Subject: [PATCH v8 1/6] phy: fsl-imx8mq-usb: fix typec switch leak on probe error path Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260731-imx8mp-usb-phy-improvement-v8-1-2ec8d6b3854d@nxp.com> References: <20260731-imx8mp-usb-phy-improvement-v8-0-2ec8d6b3854d@nxp.com> In-Reply-To: <20260731-imx8mp-usb-phy-improvement-v8-0-2ec8d6b3854d@nxp.com> To: Vinod Koul , Neil Armstrong , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Jun Li Cc: linux-phy@lists.infradead.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Felix Gu , stable@vger.kernel.org, Xu Yang X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1785485487; l=2922; i=xu.yang_2@nxp.com; s=20250815; h=from:subject:message-id; bh=OcgMTHT/DO702/bwB0CMlIF78PTpDipwB842e9LK2nc=; b=MmFolJUZlqyii7BNo/36sxqQDDrLNXhCkPSbqlnh3nOTfujzLBmwPzc6+gsgAq/oUaHr7rp9M tk87Ok9IaQ4BOk0xM4vDHyBxDXAr+Q9mlbMxc9Tz49oeO5PaSkdjDWD X-Developer-Key: i=xu.yang_2@nxp.com; a=ed25519; pk=5c2HwftfKxFlMJboUe40+xawMtfnp5F8iEiv5CiKS+4= X-ClientProxiedBy: SG2PR04CA0202.apcprd04.prod.outlook.com (2603:1096:4:187::20) To PAXPR04MB9422.eurprd04.prod.outlook.com (2603:10a6:102:2b4::21) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9422:EE_|AS8PR04MB8657:EE_ X-MS-Office365-Filtering-Correlation-Id: d8fdfaf6-1771-4477-5327-08deeedacde3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|376014|7416014|366016|1800799024|19092799006|56012099006|11063799006|10067099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: Svvqpb67H/4qTzJgEZO48Ghxn6v8zvteE0EKzAwJ0jZr2nysCPYDoQ4HlUB0m6gVXKPCq2jU1Ez6rHIKrniNf0jvEiaXqWew8F3fXr873Bo9UMytcyLvhvvy1vqwwD4Wkv0Iu6tz5vcB4R8RB4UaqOe9LerqiF8P5TC52w7OnsHz+zZdfoDb60/yB7IDSt9LQByyazGxPmNba26cmQkZSvd4cMMznNXjccrl8yuia4F1Enr9ZgJj8ZLQjpnzUOYkAZlwb0VIcIq1w2avVGj1F9d2icylqxHmXdGL8iZXBz7yt5gxmbbRHH9kUeisGfxvSn05vznN6B+KyTeCupCJ64PsCbg2WunthEf1LbKATOPuVfFmgch6j3p4wY28aDg7Er9zPAMTZSfFhMPyU/w79UbTq0/ujXEb89Gg7YRmmKY5UxV+4GNW7WtQ5DtefNXsiKUn5yTuFSRGwpJ/98qFnjkx4CrdAerWZ0sry8QbG5f71vK3LKJdiZl8kr+SrUf0GoJWnpCzNBON9crYiyURLbyjAva69RgMdOgzUEN13i7jnwgOtPM5WqhtxzgmhTZ3zX9jogg3qIwlOyqC2a1OSCf/IYilyeFRBXfYXpQGQTsXRroCdhB1QaVUv8vKwOdZvWifdhOLOVdUG/3AFML+XsbHbZ0fR8kn3TBwBo/4k3U= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9422.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(376014)(7416014)(366016)(1800799024)(19092799006)(56012099006)(11063799006)(10067099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?NnJzWW1neHF5TzdNYUNzNk5zUFZmSVpOeUhDaDNGVjVSY245NGE3VDMrdGVM?= =?utf-8?B?OHdGazdFUlRtR3JIVGpUakpaYlZRY3VsTUd1Z21Fc3dRMjFweDBVQnVmRDcr?= =?utf-8?B?K1IrYWNpeWJYYjFxUUczZzR5OU5yLzhmWTlpTk5YeUlZRXdndUlvQ0d6N1RV?= =?utf-8?B?a1JBVWFOWnQvLzRUcVhZWmM2RVljNGsyZGlVQWZDalorN2sydGtKc29EWnd2?= =?utf-8?B?ZUNSY29Hb0dzT2Z4bHZJajczR01xc1ZLUVFTT2UwbFd6NHFIV1N6TjZtakVI?= =?utf-8?B?SWpXMjN0dTNUR0xQbVhMUVVYdXVqck5VYlRnYzVYTVp1NlFjdllpd3VUMXNv?= =?utf-8?B?ZEQ1UkVXdDdTT3VDWldyZWF1cjRJRXFtOE9nMmJXektXZHF4bkw3OWticHdB?= =?utf-8?B?ZHlUN012d3I3Z2poc3ZjdlhGcEoxU2hSbXNOT0hWMnNleHU5dUFBbGdPMWJn?= =?utf-8?B?VHBvQzR3eHlYRm9LZnZYWjVTR0Q1OWhRMDYwTkZoZnhtcGdXU2JJSUpyVmhR?= =?utf-8?B?anhNM0xqb2w1OUNRUXNmNnFHTHZDRUZkMmpzTDV1WFVHd0FNZ1UwbjR5SWtJ?= =?utf-8?B?eHJVUXFCUXh3ckJNNGtNcmI2QWxXc0x0V1RTbS8wOG4wRjZPNTNSeHBqWEYv?= =?utf-8?B?cHg5eDFyS3FZekxCVEt1ekRPZ3d6cnh0Wmt5RkNuUzJYV3BvTlZTSUN3d3k4?= =?utf-8?B?ckl5M2xSY0hJa3VvSEsvQnBIcW1yRklKMklIOXRvUFdvdklYWmFwVHpkT0ZW?= =?utf-8?B?Y3lNUGdSbFRVd3BBWXR3dkNHdGw0YVhxcE1xS2VaTSsxOWV3SzV3cmV2elNt?= =?utf-8?B?TUNxaE15T1hGNmJ5MUIvMkVNRWZjTnRZalRxYnZManJxaGMzdURTazJTd212?= =?utf-8?B?YlI2aml2L1VoQ3MyMVFSME5LN3pBSmJPMHJjZThIMjd6WGxQM0JQcmNBRllP?= =?utf-8?B?Z0JRR0pBYU1LYWNCTytYTnFnMWk1N1hwbGZLUml3TUlKNiszeENPU3BLZm9P?= =?utf-8?B?VGF1T3ZIRkhIdW1XR3ZvOHROV2Y0MlppWlZqa1JhVnozZzM3OU1ZMHBsWGlk?= =?utf-8?B?U00wTTk3SUhvSTREZm5oU3ZteHpQMlg0ckREVG1YNUswV0RmaDAwOVB6emd1?= =?utf-8?B?YmRHaEMvaGZZdWg2Ly9iWkxDQkpkMVJOVWhoY0xQR01CY2Fmc0NYZlE3SHFv?= =?utf-8?B?V2Y5aHI5Ti9MM05WaFBvTExIS2dYT2NJRDRpZ3J4NHQ5dU54K283TEZGQnRw?= =?utf-8?B?QTh4YUQ5SStsem5EWjVhM0JsdllOUkhrY1l4NEhVWWhVVkRtMVJyU29VWlc4?= =?utf-8?B?Wmp6M1cxUkQ2MWp5Y21VNU5MdExzYUZWQXg1V3FKOEM5MlpmWWU2TVpoZmV0?= =?utf-8?B?K1RLbzkyODFQQy95aktDc2hpVm5QQTBvcWVuZjBEVXpGcTFlMEp2S0NWREVW?= =?utf-8?B?UWgxRUpaVGVRSk5EdlRlY1RDTUV3dHF0K0JuNHJUUGV6aFBYakl0QzdDLzFo?= =?utf-8?B?K0RrYUV4TXFOWEI0R1Mzc2QwMzF2OVh4Ymdyc0ZzN1NSRitKZ1A2Yy8rd1k0?= =?utf-8?B?dUpmM29idFEzR2JUb09pNE02WGFZZ3pCdkkyeUs3eXh4VDQza0FtczJGdk5N?= =?utf-8?B?MkdONllEV2lxZjh6dytIVDVIemVvYW9WM3ZQRzltOHBMY1NnUmpibWlKaGsr?= =?utf-8?B?Rm05YWMvSzVIaFVoOFBHdE83NTZqWjI5ZTZISWp1YjN2N0d5TmRPREZsZGQ2?= =?utf-8?B?UDBJQ0sySFEyb1dKNVh3QUNoRERTR0hmL2phdlVOaHQ2S2lYQ3dIQmFld1hT?= =?utf-8?B?bkp0ZGlkRFBweXJuOXBzbkhzbmNzdVl0d09pcnkzTElXRXNsSnV0Q05lemRX?= =?utf-8?B?Y0ZWODd0bVNQV3BLUUtzSEhTYW5oOVM5YnlDZDgyZU1mTXQ4SXBiZ3o5WU41?= =?utf-8?B?VTdIdWFKQjROcTJEYkM3VmlrRnBwemhPN3I5d3pVZDJGaWlXZlptdWZLK0dU?= =?utf-8?B?MlJNMmtmcmhnRGhDUXJHNGs5VGs3eFBqTGRldUtSTURESURmMkN4Y1RqcHph?= =?utf-8?B?NHkycDduOVg1TUxSRjRGR1J3Vm5aeFVFMG13M0lQVy9qYUpzczNZS0daM2kw?= =?utf-8?B?VGNYVzE2VkNpWm5Tdng0QVc2cisxT2pYc1NXMlNiMHFVdmpIZFFSTUsxSVVi?= =?utf-8?B?Z21GMHlWWUIxd0ZXdGU4ekpwdCtxR0F6OGhsNzV3TWtrMUNhQ1dNM1JBcTBw?= =?utf-8?B?WS83OGlOUUFtYzJRRVI3WjNSUFV1dXVWWCtXVnhweGZPd0Z6SHNMcmJkYm1s?= =?utf-8?B?MExCaWdLeEthYWp5QnhBTlRmWDFrMmRPRkU0dGpTM1ozaENyQmRoaUVrTFpk?= =?utf-8?Q?qyDVfhReMhE/1Lk5k65A+e4quqPVMwJVoEOs/?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: d8fdfaf6-1771-4477-5327-08deeedacde3 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9422.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Jul 2026 08:07:45.9503 (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: 8WHDrmzEZdaaVdmN/xSHRGsKzod24z82Lnjhqwjdpbju7PBAh6o+FGi2VhPpxj1ehY4pDpGv/XMN6Gwof6ko5CSMxCzqn3+/LvctBk7pCJOUcoEDzyFQciVjKIjQTbDV X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8657 From: Felix Gu If probe fails after imx95_usb_phy_get_tca() succeeds, the typec switch leaks because the only cleanup path was in .remove(), which never runs on probe failure. Use devm_add_action_or_reset() so the switch is cleaned up on both probe failure and driver removal. The imx95_usb_phy_put_tca() is no longer needed, it will be removed in .remove() too. Fixes: b58f0f86fd61 ("phy: fsl-imx8mq-usb: add tca function driver for imx9= 5") Cc: stable@vger.kernel.org Reviewed-by: Frank Li Reviewed-by: Xu Yang Signed-off-by: Felix Gu Signed-off-by: Xu Yang --- Changes in v8: - no changes Changes in v7: - no changes Changes in v6: - delete .remove() is deleted words in commit message Changes in v5: - keep remove() callback as patch #3 needs it Changes in v4: - add my signed-off tag Changes in v3: - add R-b tag - cc statble - drop "sw =3D data" conversion --- drivers/phy/freescale/phy-fsl-imx8mq-usb.c | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/drivers/phy/freescale/phy-fsl-imx8mq-usb.c b/drivers/phy/frees= cale/phy-fsl-imx8mq-usb.c index b05d80e849a1..9a33c06d6fc3 100644 --- a/drivers/phy/freescale/phy-fsl-imx8mq-usb.c +++ b/drivers/phy/freescale/phy-fsl-imx8mq-usb.c @@ -173,9 +173,9 @@ static struct typec_switch_dev *tca_blk_get_typec_switc= h(struct platform_device return sw; } =20 -static void tca_blk_put_typec_switch(struct typec_switch_dev *sw) +static void tca_blk_put_typec_switch(void *data) { - typec_switch_unregister(sw); + typec_switch_unregister(data); } =20 static void tca_blk_orientation_set(struct tca_blk *tca, @@ -248,6 +248,7 @@ static struct tca_blk *imx95_usb_phy_get_tca(struct pla= tform_device *pdev, struct device *dev =3D &pdev->dev; struct resource *res; struct tca_blk *tca; + int ret; =20 res =3D platform_get_resource(pdev, IORESOURCE_MEM, 1); if (!res) @@ -266,17 +267,11 @@ static struct tca_blk *imx95_usb_phy_get_tca(struct p= latform_device *pdev, tca->orientation =3D TYPEC_ORIENTATION_NORMAL; tca->sw =3D tca_blk_get_typec_switch(pdev, imx_phy); =20 - return tca; -} - -static void imx95_usb_phy_put_tca(struct imx8mq_usb_phy *imx_phy) -{ - struct tca_blk *tca =3D imx_phy->tca; - - if (!tca) - return; + ret =3D devm_add_action_or_reset(&pdev->dev, tca_blk_put_typec_switch, tc= a->sw); + if (ret) + return ERR_PTR(ret); =20 - tca_blk_put_typec_switch(tca->sw); + return tca; } =20 static u32 phy_tx_vref_tune_from_property(u32 percent) @@ -741,9 +736,7 @@ static int imx8mq_usb_phy_probe(struct platform_device = *pdev) =20 static void imx8mq_usb_phy_remove(struct platform_device *pdev) { - struct imx8mq_usb_phy *imx_phy =3D platform_get_drvdata(pdev); =20 - imx95_usb_phy_put_tca(imx_phy); } =20 static struct platform_driver imx8mq_usb_phy_driver =3D { --=20 2.34.1 From nobody Fri Oct 2 13:07:19 2026 Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazon11011016.outbound.protection.outlook.com [52.101.70.16]) (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 DE7333BCD27 for ; Fri, 31 Jul 2026 08:07:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.70.16 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785485276; cv=fail; b=WhDh6eqPIRnrDd9QGPn0ppFcliHGtnKi3gaLEBNIWuxAhbw1x1Uc/njgaw7xMdsEnKmYjvHgDtWet3MnpwTl36PWimeQvCYKT2daWk02pidwc7wu2ofXFWd0H4WGFZwDziGfkH7bvrPmvl72wj+CRdoIrrbNZ2hWb8SiREknzxU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785485276; c=relaxed/simple; bh=qdyVIz2hsi5lBpaNg+LgXs+rgGgS1ZaRuqs9smYoJL0=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=AfYLQU7O9MTU4YayjBGWpKPb1e+12L+/aZ+ASdZ77SEVx65jyPx5rj2J4uhSbuBGFTc7BlOeQYS83616YOWB6HFYaRGLBGMWXZBLa6tzzF69n4k8yCH6r/t8DKO8PszbVykLF+P7k88HFadsiYIfwQja1Fi4nispbQ8rRy36y6M= 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=WrrkF4Lu; arc=fail smtp.client-ip=52.101.70.16 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="WrrkF4Lu" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=EXSIP7/BgXbH2iw/CYBG/tJEujJwT7MnkI8QkiYBsAMAvqeUcGLihaMTGb/6QphCL+N+kx9LP+4yGZigJUjdscoLq1oCozv/olzIviTV4Exvk/o7vNPDhwR1OMcwC/Lfgg/4+t8GIkrmKxcV/A0ToGCvPf+qjaLPY7jJf4WnaQlv3hcY3HuLi2zkh3CTYALsC035VGeFxpMH3RtaucGCEaH56/xgAhvo3YuRUlWhmrKllk/bT8sj+K6Irp8eJ/qZYmw373TLgmrU0JXg3aQyuHtuXwaKVQULQ3H1uvD/r2nZ7Sg4RncxPclyg5IUVO6pgTkK/Dbopib4PS1QLhIuPQ== 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=J7LjN30fm8V2UipSfLjTXp88y+wMcWww2+oqsSYOqOM=; b=CDwgWpz7Btkq1itL8pmbctAy0tGBuqoPSQIUHnp9eYx4jhsl1+1sMZwZGEzXrzfHj9whP4CgGNc5S73pWmGaiYK2qSdEpOzWOgvpnvjG/R8JtlfqIgeV3reliIqGrti4nR65CgkToFdG2EwmeyG4OG5tpLjQlAPrK9byFJxTzBoJCtKwXX/qik4YJK6geDkaLc14OIUgf+Wh8QKay4NvVDDCWKF15AbGHGbblQQh7+2ujxSFX/E+p7SzbEv+x57audquHJ71WIBxl84hyBFt+DO6MJjYq7RipzrYDHsfANu9vC/Jqn22eUqAxWWLTEZ8nLCsYPhycWi8t9Qiz0aqKA== 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=J7LjN30fm8V2UipSfLjTXp88y+wMcWww2+oqsSYOqOM=; b=WrrkF4LulhHzfqd1tJkoTOjhKQD2nst6IwTyVovOMsAIJleywlQS3pCr7EMKLOdqDoK80EzNjrW1ILHv9N7IFUvPla9el3ednYtDu6ZI1BR0jin+xEPi0UypOIKoKUj1F4PHioQfIIj5P8V/Jh5CvXWrm22jXAsnUce0T+bp5UgcIsuTHM5vwjT01gh7yAB6EnHwAy7y5TFbY7fyVJwoIJRaVsVGgwunysbFZucWWQd8pb1+HTE3y+Ei2i5wX5n3fYvDpmwdwbRgeUcWhyIqtjddeHY/bK1VjGWXLgPZUCmHEiZ32NqVT235MEilfQa2QTGnBYEQxorgvNglEcVcQA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from PAXPR04MB9422.eurprd04.prod.outlook.com (2603:10a6:102:2b4::21) by AS8PR04MB8657.eurprd04.prod.outlook.com (2603:10a6:20b:428::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.270.15; Fri, 31 Jul 2026 08:07:52 +0000 Received: from PAXPR04MB9422.eurprd04.prod.outlook.com ([fe80::54e:28bf:aa85:d25d]) by PAXPR04MB9422.eurprd04.prod.outlook.com ([fe80::54e:28bf:aa85:d25d%4]) with mapi id 15.21.0270.012; Fri, 31 Jul 2026 08:07:52 +0000 From: Xu Yang Date: Fri, 31 Jul 2026 16:11:20 +0800 Subject: [PATCH v8 2/6] phy: fsl-imx8mq-usb: set usb phy to be wakeup capable Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260731-imx8mp-usb-phy-improvement-v8-2-2ec8d6b3854d@nxp.com> References: <20260731-imx8mp-usb-phy-improvement-v8-0-2ec8d6b3854d@nxp.com> In-Reply-To: <20260731-imx8mp-usb-phy-improvement-v8-0-2ec8d6b3854d@nxp.com> To: Vinod Koul , Neil Armstrong , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Jun Li Cc: linux-phy@lists.infradead.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Xu Yang X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1785485487; l=1013; i=xu.yang_2@nxp.com; s=20250815; h=from:subject:message-id; bh=J+ffE596YmIQps6F8WW5VxDMRj/ceOZZKfbWJppciI0=; b=yQzrgonP0UhbTqzldQGkaxSEf4e9yLhHou9eNVC4LVsesnPAIUdAwjfQzo4Uc2SfD7Im5csOz QMJUGEo4puWBPunESWoh4s72Db7LBYdUBf89/4JBKLahoc6jzmSM+iQ X-Developer-Key: i=xu.yang_2@nxp.com; a=ed25519; pk=5c2HwftfKxFlMJboUe40+xawMtfnp5F8iEiv5CiKS+4= X-ClientProxiedBy: SG2PR04CA0206.apcprd04.prod.outlook.com (2603:1096:4:187::21) To PAXPR04MB9422.eurprd04.prod.outlook.com (2603:10a6:102:2b4::21) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9422:EE_|AS8PR04MB8657:EE_ X-MS-Office365-Filtering-Correlation-Id: 6257e1f0-6ec9-46b7-229b-08deeedad13b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|376014|366016|1800799024|19092799006|56012099006|11063799006|5023799004|10067099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: klJExhbi4TCVAfKnF0I4c6yAtLYDYhW/ZQeCPIwr42n2nb4qTP0OVKouSxC55xtzk9THZTFIFwERNHlTuEguxhejZdG1peUO8VIkeRK84Nh2VORr3RK+qqhkvZlPICgc3duPoULz6QAIcGQj4SvgMzv79yrSfA5IoUiDoXK6nnA8ICqqXPIlVTWCAFR1AWMlb4Jv8dpgy3k+tOuwRqhROoTD/sfYlqEiiAP79vaVLo3XFyPro6hS17PLvIWCw68FCDsxkhyb8qyOHtwR/WJ1AYWmx51VPFTdtPjXV8v4V0HWy6opGeGTzk6QkfrMoWRGxrsiUCWbPTj2nv+gSjh+xVQ7fS+QdM/TrUHTD3dud1DH6sR2zH7doQzny1j1pkBEaOncAvb0MOJOXi1BPcgwLQqEFE4qCyddPax5wckvz8FQOCGqVPRNEh5UDEQf9jBcJkudcX1JPzBJCv3kG48j4PT+6xW322AkMuzfyICLfJDrnHpN98RQKyfxYbAGTL4nMvVQ8QAdueMyuz1CjkHAO6wPm0H9vf3xb42HkPQ88pnUgkwj9rYht48SUWPNyyuUxACd3NNqt32phJ8xXgY1TRI4HtRCwqa/bNcwUuuCYkRqImCFl9PoqPd2RzNRNBZmNn+8d3U0IPJf6svv7UL/3tfYLL/nFpgNDOjXzRpVTqc= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9422.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(376014)(366016)(1800799024)(19092799006)(56012099006)(11063799006)(5023799004)(10067099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?eENvZDN5VjlvWVprbFNPMEpieXlNZWNHRTcxcDFnM3g0dC9aRC92SmVqd2t1?= =?utf-8?B?bGhHSTRIeC8yV1VvWkR4U1BsZ2w0cnZSN0hpRUNxUmVDNEl3OTZVY3JIS3o5?= =?utf-8?B?QkNqMGNVaC9rQVE3QkxSUys4UG96QktNVTBLYjl3REdmWVIwams3NXgzYUk1?= =?utf-8?B?UzgzWm9uT3NFcFdpNkovVHBmRU9xeWUyL1FNU1ZNaWpxQURzeHRLWERnZkxm?= =?utf-8?B?MEFmbkg4OGVqMjllTTlGMmJqZUNNeUtpeXhQblNjMTZHNDNlbnpxOVF4Z21m?= =?utf-8?B?OG0yNm1hNDZSQm80MnVPMWRtL05KcXJwaE1UNkR3Y2tidUNETHgyeS9tMEEv?= =?utf-8?B?eXlZcS8zbnNvOGlXNlFTN29FNXgyOXZIeHhwNVg5dGFhdnNEMVBwb1NaMzJD?= =?utf-8?B?WWhuanhhMEpKUVlpaU5RR3B0aHMxZEFpME4wYkE1ZkVhd2xJNlNlRVRXTVdJ?= =?utf-8?B?NE1ZcUF6VHA1RGdLanpEVjZIcTUvZFlDeEpHMVN4c1l1K0l3Yk5Ra1A5dE82?= =?utf-8?B?SXlmZ1hIbERBclVnM1AzcGh3eFY4MDNKb0RPdXBVc0dBb1JLdDNYMnB0NVM4?= =?utf-8?B?Qlg2TCtlem1Pd2F6RXUwUmtaU0VSOUJ1cERvVXN1UkIvK3pydTlNMCtESTBq?= =?utf-8?B?dVVmbFdsSTFicThFL1ZuQ2lmdDRUbWxHOTFuWEZKamNaK3BqNXJkRVRrbW14?= =?utf-8?B?NzRkUWFKOWxXaTltMGxLeDVucWV5bWRyMVp6L3FleWVxWnNpSExRNUNLcldE?= =?utf-8?B?ampmZGo4ZFBBQUx3QmxyUUU3dWxUR1pLQUxtQWxSRUpURTN0bGhRNndTMVU0?= =?utf-8?B?Y1Q1M210RHgvSVhjOURiQkpnRFl5OEQ2cWgwT0VQSzNGNnZpbW56bGFNeVZx?= =?utf-8?B?MXI4dmh5Zmk5ckZwRllLMk5XWjBiend0eEsxSGphcUZXTEZsd29TZlNCYy8r?= =?utf-8?B?dzBSUnU2WVR5Ky8xSzdBNVZQa0dCeGZxVEM4azMvUFRzekVVY0NVYkNYdE56?= =?utf-8?B?emExUzdad08xS3dIaWRYdUdKM09NK3pjS2JWc3RFaEJDUjFLcjNXRFZManFF?= =?utf-8?B?SlF3aFhpb2V2TTRDcEhHa3JRaCt4Q3EwZ05QbkRMVDlyOWNES2k4L2VxRTZr?= =?utf-8?B?a0NzYTZMdnBRZG9Kdm5qYjY0VUErK3RWTnNMU1A4ZHhpeCthdlhJanIxYVBs?= =?utf-8?B?dUpzb2RidmhRK1E4amRrblgwVW5jdGJVRUp3M0NLYmJoSnBIQXg4c1BvUEps?= =?utf-8?B?dUlSckdldHZyR2FkZFhJRC82OEFKblFPRkgyVFYzZFQzY0M2S3ZnVFRnTXcv?= =?utf-8?B?YXJtNEhyaGl0ZUFYNW52WHhYYjRnSlpRZlJpeFpEL21yZ1ppMmFZZGxjSktk?= =?utf-8?B?WnA1MnVDNngrd2ZDMGhyMGZldG9SSVpSUVZ3dHI1MGJMZjc0Y3cramhXMXg3?= =?utf-8?B?ZlhydjBuTy9VdTRHZlNXN3grVlZ0ajdNZVFzQkpHb084WFZMYW4rTDVZRFla?= =?utf-8?B?SmgxOTBKdjRXSFhPOTBvY2ZWbHFaSndLWWZlemo1YVRqSlR4LzRPcXRPZm1C?= =?utf-8?B?LzRTT1FXOTltc3RaYU55NWI5aGxXMWNnczVVK3Q1ZTU2WFlyc01Sa2xCVFFk?= =?utf-8?B?QXJBeE1YMnZXU2M1ZXlPR1YxeUEyTWJ3TTVqNitXY0F2OWxGR0t1ZTZSUVB6?= =?utf-8?B?OHhJMDlEUjd6SjBDaHBwaTBYZ2gycllVQzRaVTRTOGtEdVRvaG94OEw5YXl2?= =?utf-8?B?MjVHWWo5eEdjZzZmTE9BQ28yS0pyOTh3LzBSQUUxK0Q1UVJyOERDUWZib0Y5?= =?utf-8?B?TzVWMDZJNE40Tk93a0N4T21GeUt5MzU0eWxFM0hJU0NMR1FoSkVOTjNCTnpF?= =?utf-8?B?bHNGRHBmVEpaQnhZakI4bmZsUFl3VFlxTlI4QkN0a3lpTTFBMys5QkxrUEZp?= =?utf-8?B?Nk45dlpoWUxvRWMzbTVwM1N5UHA3ajcyaThTMDJXYmwybEdMWW1Ic3NlV1A3?= =?utf-8?B?R0thLzJ4bWd2bVAvN1ZpcU5CYlI2V0w1RTYvM2haN1RtTFdwM3pycEUrRXJI?= =?utf-8?B?NWluY1NRRFc0ZjV6OUw3RnhqRHh5NTZLM20xNTd4MCtkbTUyclV5VGY1YjFP?= =?utf-8?B?aWhyLzZxaWFDRThVbnZTeEN3cENZekFiWURWRFlsUWVYTXNLa01yYlBGaXdt?= =?utf-8?B?d1J1eWFzZm1QRHNnQkZDcFo2ZmpCUEVKYWJBZU1PQnhzZXdwdU1YQWJLLzNw?= =?utf-8?B?bGZjNUtaTFluam02OE1LMnJuV1BIcWtXZk9YZG1YVzRaRTBWNTJzMlV6QmNv?= =?utf-8?B?SVRSS28xSnpPWjJCQXhnNjBjTk1yRkF3WGpPMHZ6YjNrMy9tdjRqazA3K25Y?= =?utf-8?Q?UsNhNr0SRJXjqgkYY4vTUh1B+UeYJ3KO9FTkg?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6257e1f0-6ec9-46b7-229b-08deeedad13b X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9422.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Jul 2026 08:07:51.8963 (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: A+twkjsI5OZWKQ3UDxAoQV86xzuA5vgggCHfjmTGwl3MlKRnMbHojlMY9SH4hueX4/lBw85YuZHm06k0uIcVYaVtOwGmiF5DGb0Cum7T8PNfrY43HyXVArx7iF6qGtf1 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8657 From: Xu Yang Set PHY wakeup capable because this PHY supports remote wakeup function. Reviewed-by: Frank Li Signed-off-by: Xu Yang --- Changes in v8: - no changes Changes in v7: - no changes Changes in v6: - no changes Changes in v5: - no changes Changes in v4: - add Rb tag Changes in v3: - no changes Changes in v2: - no changes --- drivers/phy/freescale/phy-fsl-imx8mq-usb.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/phy/freescale/phy-fsl-imx8mq-usb.c b/drivers/phy/frees= cale/phy-fsl-imx8mq-usb.c index 9a33c06d6fc3..3a5788c609e1 100644 --- a/drivers/phy/freescale/phy-fsl-imx8mq-usb.c +++ b/drivers/phy/freescale/phy-fsl-imx8mq-usb.c @@ -728,6 +728,7 @@ static int imx8mq_usb_phy_probe(struct platform_device = *pdev) "failed to get tca\n"); =20 imx8m_get_phy_tuning_data(imx_phy); + device_set_wakeup_capable(dev, true); =20 phy_provider =3D devm_of_phy_provider_register(dev, of_phy_simple_xlate); =20 --=20 2.34.1 From nobody Fri Oct 2 13:07:19 2026 Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazon11011069.outbound.protection.outlook.com [40.107.130.69]) (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 847DB3603E9 for ; Fri, 31 Jul 2026 08:08:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.130.69 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785485282; cv=fail; b=UL3tpqQmi/aUsg6nhcVLnH9WXbcYbJYo7GFnHzA7jzzmZrXyVJh5FPdeWQrhaAmD28ZHbaeMmy1AkYmBdyaOixqkegxKV3qyo4TJwFLq/vZxC1wX5dHrmJNnXzATl2hVthzLi4beOMBGTnqqkQx5LXOePkqte3ahZDCS2KVdSc0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785485282; c=relaxed/simple; bh=lPXUgQqnXk6i1fY7tiMtm7+qZSbLr9js8+eItYRVDDM=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=JwZK221YCLdaOkrnB4a0htHkydmm11VWRKUDQYI8IhxhjVT0PA6XXi+7X0IjSH/to2wl6QKam/EMHkpAHErg7ABpu79nDzQhdelgVb9DKTnwXWGMd8+34HO4KCgwUQY7XSfQAbyffXFgWEmWYdx90Q6h3j4BTlLEx80KuLosev0= 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=rkFSQoGS; arc=fail smtp.client-ip=40.107.130.69 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="rkFSQoGS" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=qy1YLQYJqKNbZf9gwJGPOgq9EveuIvfmf21Awi8C9yDqkskFaZ3lWsKkm3hlZjaFAyNQHH2pN0HL6gOFYq/9kLxPb99+JIxKVK8aD5pdFKTGmtdoHfBcdmi6X4RMf6MKnSe1KyN81eaIaBlVdClitCAcUY+prkBTEQUk/dQvKGVtsW3yLoqyLyNiOdqEOyXSlMeFED5taxBPgX2JPYi9jkuZJcPubjAbBPVs8CVvn5rMRmX24NuB8/lnF5wuv5MYGDr8MGAL9JWvZ9PyHogYBw8x/NJGxldv5Y1B6eOA1tyN4BCCjIn06C5Vu2efJ7euYqSMPRCxE/3niNfEo0Nmug== 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=CwqypP6wmrbyGRySlv/Nff0Gj1OC7jbwlM/HQVAo7Jc=; b=QC9OCKkschWpAfEESnwhEyaL1SwplEWT0ibaJ9Bl/Jewy1kHuOV5UVBibcuPjYpZhDiOTRnGFNiv9az+aPfB0ilXUoXVARftF0sCPwnwcr7VsgN3h707Ksiwe/ofRWRSvfQomTCOM6AH+mu5TohwJzDHEg9f/9u/lGtWPWCnvWPQJOKNX26WfTJZvw+6KEa8BEv6QfwqVp+nIpnYJ16sNv81G1GwXA8eu2oQBHd6JlteIIGv9zHpRuZORJ4BezpXARJLSc9oCCjYlTc1gK1ybxfASsU+MSY4sFK4qRPX2UhVB0x+bQMsf/JODb0GDpiH0nvhXUP6d2Zs3UrEUyyWAw== 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=CwqypP6wmrbyGRySlv/Nff0Gj1OC7jbwlM/HQVAo7Jc=; b=rkFSQoGS2hxYpPGDHaV7TOBqmWBk8NyYqTVbdvEJx4Oi8g2xsgHIjxlXFm+0EADtALL9ynm5zTL7y5zuJyL6dm7Wwwbqnm+AEl5OPu603BWC2VF4m84wo2VQ0JiygbU5GqGZQW0fQrBYaNTLN1CHlgC9ZSRyDIvoIrR+Xmr9gnyp6ytNPKjDhxO0n/ONz1DhowBVOjF1GrDpgG3jJbexQaWbkqwz5eqobd41NSK/6A4852Rp7+yH3pn92pUYVkM6bptzkJ6vOE11BGp9Ehz7vMASWH8dA/sp0zZ93L4o7XvhSaZ/AB3APMjqrB2WQxAgP2F2ZjvvJibOQdrwt0zg2A== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from PAXPR04MB9422.eurprd04.prod.outlook.com (2603:10a6:102:2b4::21) by AS8PR04MB8657.eurprd04.prod.outlook.com (2603:10a6:20b:428::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.270.15; Fri, 31 Jul 2026 08:07:57 +0000 Received: from PAXPR04MB9422.eurprd04.prod.outlook.com ([fe80::54e:28bf:aa85:d25d]) by PAXPR04MB9422.eurprd04.prod.outlook.com ([fe80::54e:28bf:aa85:d25d%4]) with mapi id 15.21.0270.012; Fri, 31 Jul 2026 08:07:57 +0000 From: Xu Yang Date: Fri, 31 Jul 2026 16:11:21 +0800 Subject: [PATCH v8 3/6] phy: fsl-imx8mq-usb: add runtime PM support Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260731-imx8mp-usb-phy-improvement-v8-3-2ec8d6b3854d@nxp.com> References: <20260731-imx8mp-usb-phy-improvement-v8-0-2ec8d6b3854d@nxp.com> In-Reply-To: <20260731-imx8mp-usb-phy-improvement-v8-0-2ec8d6b3854d@nxp.com> To: Vinod Koul , Neil Armstrong , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Jun Li Cc: linux-phy@lists.infradead.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Xu Yang X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1785485487; l=7773; i=xu.yang_2@nxp.com; s=20250815; h=from:subject:message-id; bh=I+zsUG8G6eiv4f8s9Lsxd/bgPh0RrE5KgTtL6Hua/wg=; b=NRbStHtfMiLBwD1pL/EFGAup7lTutcqdVX/Sd59ZLnS2yXyjXHkQT1O2fA8hUEQtwSzcSzDjd qtGellKfkK7DEqpAY+oYvHUBRL67HNMrhhv87dfCvm8hZffiQZq7AZD X-Developer-Key: i=xu.yang_2@nxp.com; a=ed25519; pk=5c2HwftfKxFlMJboUe40+xawMtfnp5F8iEiv5CiKS+4= X-ClientProxiedBy: SI1PR02CA0022.apcprd02.prod.outlook.com (2603:1096:4:1f4::16) To PAXPR04MB9422.eurprd04.prod.outlook.com (2603:10a6:102:2b4::21) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9422:EE_|AS8PR04MB8657:EE_ X-MS-Office365-Filtering-Correlation-Id: 53d939bd-b7b0-4e60-aeb5-08deeedad458 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|376014|366016|1800799024|19092799006|6133799003|56012099006|11063799006|5023799004|10067099003|22082099003|18002099003|3023799007; X-Microsoft-Antispam-Message-Info: 8K/eRrp5DsfiPwThJLiXhx/jS59XzExqBd3JBXI/IHkogdMpkIgA+V8vK9khHVqB3IDVU/Y40P5fnjC9QsGrxNDIt0grZ6k6MqDfjyfFqcS8b0x4vGkO+XA45MCsep+cbBQycq+OMrPMAsbTAVVOMSxFZ1TUqO0kcM9vRBXNMoqwy3q3pybmLtu1EXYqn7raCrKlfeSIjDjRGmSdhAeX4M2eP2ykmMAbf0HU8+WhX+fipSItHFboq1h1AgujHrZ493btfKgRmumsJiZuRD62W0S0Eidu0ocl2Icpxqs/H2qo+CfGoo5Ka3P+elASzMSSwJ2dpfWs/rxNdvxMwnzap2CEHHwzv5kAbq49+AxfqAzhDtl7n+yTBCkAE/u92BC6NheSYG3ADIwhnLUR3FwKKvM4T49lxSQEEgechcrSZxD2xWVy4VFmDTB5SMYOlXlnXW3sfFU/GdZczfonMmwM9fXIHpdaZtV72hVWGepjSatV6mo1OXvl2+ihuf03p1WDquNSe1wKsMuxZYpIqRobO45yVq/kvF/dcNxiABA4hXvDP77NbEQf/zItvTydpAUbCgXXayWOVx0lCldXJk/LZlIKYDlGbG0uEi79YZD/0v6prVup17b2bB11MZMpVCaMSs1k67XDnDe5kEHahmtgUlF9Y+6sTaZRZwDzWQFDSRE= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9422.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(376014)(366016)(1800799024)(19092799006)(6133799003)(56012099006)(11063799006)(5023799004)(10067099003)(22082099003)(18002099003)(3023799007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?TmY5RlpDUVZJRGtmL1NNeExRRHREdGF3eEpqQVJhL3A2d0xrTDJlWFcxRE5o?= =?utf-8?B?VGNPVGpDVW40RkFyLzJ3cWM3c1pPZm94YVVYQ0hIM3o1V1VrbEpRNGdtYktT?= =?utf-8?B?Ui83OHg4U3FTS1RkOVZSY0ZrVm5rdzZTTE5JNFRNbzBjaWdGRVRMWXo0dSsy?= =?utf-8?B?aHJKKzNPRWdpYXlrYk5XNXlITnlxekRMcDdjNXoxdDh0M2xlTWN5aStqOXZ3?= =?utf-8?B?OHN2cHd1alF1L0R2WG93ZjBhS1dVL3RNamt2bEhQcTRvcUppdERHaEtUMVJo?= =?utf-8?B?YVlaWFczd3ArVE1URU5FMFBWWmk5L3MyalFIRUltUU00ZFI4c0ZueElBNzJv?= =?utf-8?B?ZWhxMlNIWmJXeThnREZNM1RPSWVyTjlQd0RNME1Ia21KM3NocWR1a2xaMjg2?= =?utf-8?B?d1FXejZJSFl5VktUNWVveUJIRzdlRE10OTFQVnpDc1I0elZTSHFMYXlvRjdx?= =?utf-8?B?U0pNUGVZQStXUERhWWRydzBURTN2L0JVY2tPcCtXSklSMVRoZEF1YlJsbjc2?= =?utf-8?B?c2dwT21DY1AwS3V3RDVNdTVOYURsV1M1bWhkSGRZZ3lWdzhZQklORDA2OEY2?= =?utf-8?B?bEk5QlVmUmFOWVorSGpmS2xOdFl6TWlCclZTVENQdHZKNTFXQzYvY05pS1A3?= =?utf-8?B?TFFPd2RSb2xaUnlXckk5ckdOdWI0NlFGY0RzNVhjMlZzVzAyanVtWml5cWcx?= =?utf-8?B?NFg0TUJSbWRRbG5NVlh0QVpMZStvRENKczNpSC9MVTAyMHhYb1FpbVZDNkRZ?= =?utf-8?B?K3VuY0lBVDl2VGRodlo2UFdBVktJajNhZjhyYnNmVTFCdnVSUlZKMkd0VVVI?= =?utf-8?B?ZkxLc0owdTB4MUYrdHk2QXB0cTdwanpkS3Y1bVpyM05NMjJMaU1aS0JDN3dX?= =?utf-8?B?OEg4TE1wREthYlVwRjgrc3JiSlJ6SWN1VzF2R3htMm4xQ3R0aEZYeVpSbS96?= =?utf-8?B?VzQwbVJMUzNFUVpic0RhSWl4OENpSkdZL244RFdMODMvVGZFL01uQUVSNGRJ?= =?utf-8?B?bjE5eGQ2a1J3R3gwRndNRXpJdDBtODgvZk96VVdQWGRtWFE3TjBIUEpDMDdH?= =?utf-8?B?cEVPNlNxREZyR1hJRlRCMEhZbHp3VkZId2VFKzVTYVlrSTkvdThjcjRVeXR2?= =?utf-8?B?Y2FVQUdjTk5aY2MxelFjcWhEb0t3YzdjcTdhVytDVUJqN1dEYzRXY0FBeWQ3?= =?utf-8?B?bjhTZjlqaWFYaUhDWURkYnFNbGN2OERBSVVVaVBaRU9JdG51cUtaRlRQZmdy?= =?utf-8?B?QkkwNjRSRU9pZVRVOEEyNUplbTlUeTM3MUdrWnE5RC9BdktJeFZNbDA3Q2FZ?= =?utf-8?B?RHNkWFBleTdSNk0yT2V3N1RRcVhETXhBbFNtY3ZzK3p4a3E0bGIyWmd4RnlG?= =?utf-8?B?SkxCSUU2WGpPVVJzcUlRc0g5UGZIdU94QUFER3ZMTjdLUmo3VHB5OVBPY3pQ?= =?utf-8?B?VFdLWjhSYUJYelhKajBWMVdFbDNhbnZsQTRobGowQlhORlFOblNCOEM3UERY?= =?utf-8?B?QXJXbFp1RlJIZlhZeFJydDN0Qi9aRExVdlJPREhhYmxMUVpxbXRMTy9TTjRh?= =?utf-8?B?TGRXOFhJQ2tLT0hCVmgzejM1SnZUSXFJN0ZYTUpFbnZTZndEbDI1cXJ2NmdC?= =?utf-8?B?eWp1dThtMVFGUXArWEVUVHV1azRVb1VqQ3ZiRVljdFQzbVJ2TTllaTZ0SFFC?= =?utf-8?B?TDB2aTBFRHU4YnliOWNPcFhsOU9BQ2hnaThuZjdRczBrWER5aFRBS2IwZXAr?= =?utf-8?B?eThCVlZ4OUM1TGFXR2NvNkN2TnRxRTBQQml1dnJ2ay9VeGlzZ0FOeFpoaWlM?= =?utf-8?B?Z09yVFpVK1B1NzN0a2FLc2c3L3QrOW1SZTlBbXVqeUdrOHgraWx4MzFiOXV2?= =?utf-8?B?L04zOTVlcm9FOFBZZnFJdHA2UURFcVZUa2pjS1YrZkg1OFg2MkxqK1Z3cmVi?= =?utf-8?B?U3RkOURBQ2JicmdmN0MzS0lyWThpVUZuamhaVDN2SmlOSWxIUFBZZGNtTFFJ?= =?utf-8?B?ODYzSEt3VkR1WGk3STdvVXZGbXp0QXk3RWNoV0Q5emVhcnRUNWo4MHVtLzlw?= =?utf-8?B?QUlLRUJIc0NzRW5KMlFUQkFaMGh4VFVNWnIxZlVJSUdpR2FVQkhMdnZXVzBZ?= =?utf-8?B?WnJOQ2l5MVVQRlhudXVzanVvODg5bDZrWHhRQ2tsbU9MSXluTkhROUVLL0Zn?= =?utf-8?B?cU53djRBRkYzL3VxN0xTcnBaM0FxNTRWaGhjK0JyWW9IeXN3U1RObGZvNTRU?= =?utf-8?B?aG5xQ29GRHlSb0doeXV5MHE3L2ZSbkgzVjdXM1BGV0JpL3poZThYcGJoL256?= =?utf-8?B?b3h5MXNsV09TQXlKbGloUGc2a1pXNURmbzcyY0V0R3llNis2WDgxS1J1NGk3?= =?utf-8?Q?iwtFhl6lvA/6jf0W66Vx7Tifl74XWieANSiaO?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 53d939bd-b7b0-4e60-aeb5-08deeedad458 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9422.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Jul 2026 08:07:57.0374 (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: VoNjsZ21TvGK5gUaMdeKqanxCEThikVKhm5qTbxLW3BqhWHbyh5y/4Z5tvGkzFmPVJ+wvqv0tfrh+9dw8l3a+zZp8V8SM0RZSb+5o8cBpBT4BAZwfVwQTSDOw/BGSHA5 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8657 From: Xu Yang Add runtime PM support to ensure the PHY clocks are properly gated when the PHY is not in use, reducing power consumption. Clock management is moved from power_on()/power_off() callbacks into the runtime_resume()/runtime_suspend() callbacks respectively. The PHY subsystem core already holds a runtime PM reference around init() and power_on/off() calls, so no explicit clock handling is needed there. Use devm_clk_get_enabled() and devm_clk_get_optional_enabled() in probe() to keep clocks enabled initially. This ensures the PHY remains functional when CONFIG_PM is disabled, where runtime suspend/resume callbacks are never invoked. In tca_blk_typec_switch_set(), replace the manual clk_prepare_enable() / clk_disable_unprepare() pair with PM_RUNTIME_ACQUIRE_IF_ENABLED() to guard register access against a concurrently suspended PHY. Move devm_regulator_get() before pm_runtime_enable() to avoid having to clean up runtime PM state on regulator acquisition failure. In remove(), call pm_runtime_get_sync() before pm_runtime_disable() to ensure the PHY is resumed and clocks are enabled before the devres teardown disables them. Signed-off-by: Xu Yang Reviewed-by: Frank Li --- Changes in v8: - fix if condition in imx8mq_usb_phy_remove() Changes in v7: - replase PM_RUNTIME_ACQUIRE() with PM_RUNTIME_ACQUIRE_IF_ENABLED() - use non-devm PM runtime callback because it's hard to avoid double clock disable issue when probe fails or remove the driver - improve commit message Changes in v6: - use devm_pm_runtime_enable() to disable runtime PM when probe fails - simply pm_runtime_get_sync/disable/put_noidle() to pm_runtime_resume() Changes in v5: - use non-devm PM runtime callback to correctly enable/disable clocks when unbind the device Changes in v4: - replace guard() with PM_RUNTIME_ACQUIRE() Changes in v3: - new patch --- drivers/phy/freescale/phy-fsl-imx8mq-usb.c | 103 +++++++++++++++++++++----= ---- 1 file changed, 74 insertions(+), 29 deletions(-) diff --git a/drivers/phy/freescale/phy-fsl-imx8mq-usb.c b/drivers/phy/frees= cale/phy-fsl-imx8mq-usb.c index 3a5788c609e1..42de2cff4d5f 100644 --- a/drivers/phy/freescale/phy-fsl-imx8mq-usb.c +++ b/drivers/phy/freescale/phy-fsl-imx8mq-usb.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include =20 @@ -136,17 +137,15 @@ static int tca_blk_typec_switch_set(struct typec_swit= ch_dev *sw, { struct imx8mq_usb_phy *imx_phy =3D typec_switch_get_drvdata(sw); struct tca_blk *tca =3D imx_phy->tca; - int ret; =20 if (tca->orientation =3D=3D orientation) return 0; =20 - ret =3D clk_prepare_enable(imx_phy->clk); - if (ret) - return ret; + PM_RUNTIME_ACQUIRE_IF_ENABLED(&imx_phy->phy->dev, pm); + if (PM_RUNTIME_ACQUIRE_ERR(&pm)) + return -ENXIO; =20 tca_blk_orientation_set(tca, orientation); - clk_disable_unprepare(imx_phy->clk); =20 return 0; } @@ -620,16 +619,6 @@ static int imx8mq_phy_power_on(struct phy *phy) if (ret) return ret; =20 - ret =3D clk_prepare_enable(imx_phy->clk); - if (ret) - return ret; - - ret =3D clk_prepare_enable(imx_phy->alt_clk); - if (ret) { - clk_disable_unprepare(imx_phy->clk); - return ret; - } - /* Disable rx term override */ value =3D readl(imx_phy->base + PHY_CTRL6); value &=3D ~PHY_CTRL6_RXTERM_OVERRIDE_SEL; @@ -648,8 +637,6 @@ static int imx8mq_phy_power_off(struct phy *phy) value |=3D PHY_CTRL6_RXTERM_OVERRIDE_SEL; writel(value, imx_phy->base + PHY_CTRL6); =20 - clk_disable_unprepare(imx_phy->alt_clk); - clk_disable_unprepare(imx_phy->clk); regulator_disable(imx_phy->vbus); =20 return 0; @@ -686,6 +673,7 @@ static int imx8mq_usb_phy_probe(struct platform_device = *pdev) struct device *dev =3D &pdev->dev; struct imx8mq_usb_phy *imx_phy; const struct phy_ops *phy_ops; + int ret; =20 imx_phy =3D devm_kzalloc(dev, sizeof(*imx_phy), GFP_KERNEL); if (!imx_phy) @@ -693,13 +681,13 @@ static int imx8mq_usb_phy_probe(struct platform_devic= e *pdev) =20 platform_set_drvdata(pdev, imx_phy); =20 - imx_phy->clk =3D devm_clk_get(dev, "phy"); + imx_phy->clk =3D devm_clk_get_enabled(dev, "phy"); if (IS_ERR(imx_phy->clk)) { dev_err(dev, "failed to get imx8mq usb phy clock\n"); return PTR_ERR(imx_phy->clk); } =20 - imx_phy->alt_clk =3D devm_clk_get_optional(dev, "alt"); + imx_phy->alt_clk =3D devm_clk_get_optional_enabled(dev, "alt"); if (IS_ERR(imx_phy->alt_clk)) return dev_err_probe(dev, PTR_ERR(imx_phy->alt_clk), "Failed to get alt clk\n"); @@ -708,44 +696,101 @@ static int imx8mq_usb_phy_probe(struct platform_devi= ce *pdev) if (IS_ERR(imx_phy->base)) return PTR_ERR(imx_phy->base); =20 + imx_phy->vbus =3D devm_regulator_get(dev, "vbus"); + if (IS_ERR(imx_phy->vbus)) + return dev_err_probe(dev, PTR_ERR(imx_phy->vbus), "failed to get vbus\n"= ); + phy_ops =3D of_device_get_match_data(dev); if (!phy_ops) return -EINVAL; =20 - imx_phy->phy =3D devm_phy_create(dev, NULL, phy_ops); - if (IS_ERR(imx_phy->phy)) - return PTR_ERR(imx_phy->phy); + pm_runtime_set_active(dev); + pm_runtime_enable(dev); =20 - imx_phy->vbus =3D devm_regulator_get(dev, "vbus"); - if (IS_ERR(imx_phy->vbus)) - return dev_err_probe(dev, PTR_ERR(imx_phy->vbus), "failed to get vbus\n"= ); + imx_phy->phy =3D devm_phy_create(dev, NULL, phy_ops); + if (IS_ERR(imx_phy->phy)) { + ret =3D dev_err_probe(dev, PTR_ERR(imx_phy->phy), + "failed to create PHY\n"); + goto disable_rpm; + } =20 phy_set_drvdata(imx_phy->phy, imx_phy); =20 imx_phy->tca =3D imx95_usb_phy_get_tca(pdev, imx_phy); - if (IS_ERR(imx_phy->tca)) - return dev_err_probe(dev, PTR_ERR(imx_phy->tca), - "failed to get tca\n"); + if (IS_ERR(imx_phy->tca)) { + ret =3D dev_err_probe(dev, PTR_ERR(imx_phy->tca), + "failed to get tca\n"); + goto disable_rpm; + } =20 imx8m_get_phy_tuning_data(imx_phy); device_set_wakeup_capable(dev, true); =20 phy_provider =3D devm_of_phy_provider_register(dev, of_phy_simple_xlate); + if (IS_ERR(phy_provider)) { + ret =3D dev_err_probe(dev, PTR_ERR(phy_provider), + "failed to register phy provider\n"); + goto disable_rpm; + } =20 - return PTR_ERR_OR_ZERO(phy_provider); + return 0; + +disable_rpm: + pm_runtime_disable(dev); + return ret; } =20 static void imx8mq_usb_phy_remove(struct platform_device *pdev) { + struct device *dev =3D &pdev->dev; + int ret; + + ret =3D pm_runtime_get_sync(dev); + if (ret < 0) + dev_warn(dev, "failed to resume on remove: %d\n", ret); + + pm_runtime_disable(dev); + pm_runtime_put_noidle(dev); +} + +static int imx8mq_usb_phy_runtime_suspend(struct device *dev) +{ + struct imx8mq_usb_phy *imx_phy =3D dev_get_drvdata(dev); + + clk_disable_unprepare(imx_phy->alt_clk); + clk_disable_unprepare(imx_phy->clk); + + return 0; +} + +static int imx8mq_usb_phy_runtime_resume(struct device *dev) +{ + struct imx8mq_usb_phy *imx_phy =3D dev_get_drvdata(dev); + int ret; + + ret =3D clk_prepare_enable(imx_phy->clk); + if (ret) + return ret; =20 + ret =3D clk_prepare_enable(imx_phy->alt_clk); + if (ret) { + clk_disable_unprepare(imx_phy->clk); + return ret; + } + + return 0; } =20 +static DEFINE_RUNTIME_DEV_PM_OPS(imx8mq_usb_phy_pm_ops, imx8mq_usb_phy_run= time_suspend, + imx8mq_usb_phy_runtime_resume, NULL); + static struct platform_driver imx8mq_usb_phy_driver =3D { .probe =3D imx8mq_usb_phy_probe, .remove =3D imx8mq_usb_phy_remove, .driver =3D { .name =3D "imx8mq-usb-phy", .of_match_table =3D imx8mq_usb_phy_of_match, + .pm =3D pm_ptr(&imx8mq_usb_phy_pm_ops), .suppress_bind_attrs =3D true, } }; --=20 2.34.1 From nobody Fri Oct 2 13:07:19 2026 Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazon11011015.outbound.protection.outlook.com [40.107.130.15]) (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 1B89E3BCD1E for ; Fri, 31 Jul 2026 08:08:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.130.15 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785485286; cv=fail; b=hkTY417dzHsNswCm0ha6QOwameyLWlmk5YuebScVr68dWyU6mBO2dOpK0nQrvOlQzoVDQcgSl3yBi0AdMxb+9BFHnG8qEwbBnOSgilx5GRgRwc6uUpNQXK6WT7jRNxLU9aAypxpaIhunFlc8oq0Ik5a/c/c9C1QAsv8MRTA/RdY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785485286; c=relaxed/simple; bh=thn6bvns0/iC04Xy9CTmESNt4iZmKjMh7OUz/CxNPzk=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=AmXQTfUFwNQ8RQJmwyXYAvL+P/TKj2zdFYELioUiGfYeBSFQZpmj6gHS3tfAJISvUfr9wz8AtDukOMtl5zeBNNmTMZ7l7BsxmXi3UfyVwl+61o1vBgLA/+N6CuwNMn329FMwam6blGq9fbaSFrN/CjzrTQ+ycjgp2+sEFefpC8M= 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=j64UVZ8L; arc=fail smtp.client-ip=40.107.130.15 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="j64UVZ8L" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=so8E81h8SE+SCl/iRfqrImSCMjBVDZ4MtWttMx9Nfj5HjfFn4hTRQV79fDOc+91YQAM0By0qTOjCBjnpzY15odF8wUKvdBH4Ycq5P5eQAFziUKVMLOZ+udU7snH8JzJL84UUi64JGrHb6W4HYzC2kTyaUvYsOvUT2c59sx8VI2vY4/N6frm6i3q1Lf9/omAzzAcuzIEKKGU+ZZTUeuUSq74FajtqWs1kpnPXmqWa9RAezmJeOUqwg/o+yzrd+VVcnkGBu2pgQ7gmUNTY9M7i9p6G+VTr4jB5GJHckkwprH39RW9ipmWRy426lLwp3o/ZsncF6RcO5a+od1bmukCFPA== 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=Fn5kupWeQq5/WINXkxwflWJMYYz/EjDJ15xIkZoJU6I=; b=WR6U+WLDfAYoWBHrEdHqiuspN3yvyAx8mfqTiCLF4PNF4cNSM8s/iqyoZg6gqCEwLHhqQ2qZkkssOYz7it4+RRx8O6dvK9up1y/VOMtg6HSNsDnul+OxMZY+9T1y2QGbnCuHLCa6ifTpG073CaoBm98KqYKYCfhlGo94atOLmrAf2dt1CWqChEik0SfXAdml4c71JrrAdit+R8NK9brLqTFbDJ7aXc/SV/oCWuDiZqb2koJikM5s8tJ5PxbWUbokhpWzOxD4xg8zr29HUZAItwDaIHK4NvkEnLCZWfhRcY5iuN5cN71nWWe7ua+oFN0UBi5jLVEFK2UwDlr7x+/uNA== 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=Fn5kupWeQq5/WINXkxwflWJMYYz/EjDJ15xIkZoJU6I=; b=j64UVZ8LY6NFmvuP62h2Iee8KOCmluAQtriNdjMfwjBQKM9SYklpFI+qUXc1fW1hS8h5zjufUb98RXsatMWjmctFp3ZoRiZnNtoMpVw64+Xm6hdRrHjq9gVeLRe4PbyEmZMjyDn9aHp8rBD4xJM/d+cW6aOxaImfOl7bZ7u7kPwSJNlIZhA/ypqLPUhEtOmyWZLySTvIgo1kqk3AWOX47Q91x4z9PtWBkdHYz42w/FTCzOnNXaHohLV/gqIdO1WD8tb6qBganjMdvKsUn+F3CgADS62bIeDOvkgbodh06loARCSJydRvrcN0WSenD7KZO+hYKami+E+Egyjog8sJwg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from PAXPR04MB9422.eurprd04.prod.outlook.com (2603:10a6:102:2b4::21) by AS8PR04MB8657.eurprd04.prod.outlook.com (2603:10a6:20b:428::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.270.15; Fri, 31 Jul 2026 08:08:02 +0000 Received: from PAXPR04MB9422.eurprd04.prod.outlook.com ([fe80::54e:28bf:aa85:d25d]) by PAXPR04MB9422.eurprd04.prod.outlook.com ([fe80::54e:28bf:aa85:d25d%4]) with mapi id 15.21.0270.012; Fri, 31 Jul 2026 08:08:02 +0000 From: Xu Yang Date: Fri, 31 Jul 2026 16:11:22 +0800 Subject: [PATCH v8 4/6] phy: fsl-imx8mq-usb: add control register regmap Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260731-imx8mp-usb-phy-improvement-v8-4-2ec8d6b3854d@nxp.com> References: <20260731-imx8mp-usb-phy-improvement-v8-0-2ec8d6b3854d@nxp.com> In-Reply-To: <20260731-imx8mp-usb-phy-improvement-v8-0-2ec8d6b3854d@nxp.com> To: Vinod Koul , Neil Armstrong , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Jun Li Cc: linux-phy@lists.infradead.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Xu Yang X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1785485487; l=3839; i=xu.yang_2@nxp.com; s=20250815; h=from:subject:message-id; bh=NI73wlLOP4x40cNo+d7vMqjgYxwbUt1XIp+Ye7Mm+So=; b=2lOD00Z7jB0Ml8G/pqji6SSIyCdHIGslGXv5cZeAwoojZjJXcMPWEI0lXOlqKhON98Igk16YQ vxOnfhH/ifeDYRvcU+SPEGXrIGP4n+2OxB2X6c9QIIqgOdTvW8M2gUm X-Developer-Key: i=xu.yang_2@nxp.com; a=ed25519; pk=5c2HwftfKxFlMJboUe40+xawMtfnp5F8iEiv5CiKS+4= X-ClientProxiedBy: SI1PR02CA0054.apcprd02.prod.outlook.com (2603:1096:4:1f5::13) To PAXPR04MB9422.eurprd04.prod.outlook.com (2603:10a6:102:2b4::21) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9422:EE_|AS8PR04MB8657:EE_ X-MS-Office365-Filtering-Correlation-Id: 2cce083b-46dc-41ae-871b-08deeedad74c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|376014|366016|1800799024|19092799006|56012099006|11063799006|10067099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: GmbR63/DDiJ2WIhJBqOvKOiKwtkfseJG4JHBEgFCJWeaDHWxdNf9o3MzH+dv5N0AyAyluC7EQhoAYtnp4INNCFItLxa9zP3pEfQmO96ywDcO/xJ7qRZk4QsvA+CEzrbgJ8MCjUSodytSpTwZYtPmmtuOt5KpvgKEP+1BuH/v694ZowAtjpsGkScfEhzVj8+uWxje+r8GXfD3apuMhGSk4XvFMhtT9VChRw5q/lfSAMLtTsHOYfyEtR/naoCrajewHOBk05jqggM7wSGqSxExV/PX8F8qdPNML8Q6FgcMR9T8eRmkBXpOPE/bVdmiGah1wtzuU+cJBxm3tPn5mqxkCDt/3ZNwp6gk3DgDl+CZtnC3DpLdo/q8o3KT1QsGKTsedyp3uuA63CZM1JN3KGCBDE8icjT7+VPxjPtzqhsUm0rkSN/KBOIaYhWd++p6QUC1YT5D7scIt3jXMJCeX9qQJzNSgrpDOAD6wQADzsQyFomKt4ErLjk8ZyzRgV+QHMUysU46xiQKY8FRnvu/ZIbBc1V+S1vPUMXMxHLAtTEkc5tSMudc4OJ1xnDrd4R4FGtLjczRv2gt9K67uXxU/ffpXRW8vFXIW5GaTpp+gpZP6FeegNtVzBxsxcYL8EOu5wBUKpi3H7F45YHvrVKeVjohDbeMIZsJrQryrJ3/qza3m1M= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9422.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(376014)(366016)(1800799024)(19092799006)(56012099006)(11063799006)(10067099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?WStaaXBvVG85SklVKzBNcURzSEpjaklmZjVpVVhEc3R6K3ZKa1Z0RG1YVGhK?= =?utf-8?B?MmJkMlBYem1tais4VnZQaDM5WDBVMUNwMThiQkFMcStpRG5UeU1QOHcwMkJa?= =?utf-8?B?MVcrTVh4OHh4SnJsK1lBZGdWQm5tWFFMTVJhY3lUV01yMVZCc0R5bEo3YkYr?= =?utf-8?B?dHJwZ2k0aXB5QWxkSTN6cnd3cmRUY1ZCbHAxbWpKK2g2R21sdXdFa0NySWQ2?= =?utf-8?B?cW9zK1gwZlBSZUdCMWltRVZsajFUMGM3SCtxd2FlMjJYbkJBNythZnBTUU83?= =?utf-8?B?Q29WVlZodzZuTGNheXRuRHlBb3ZrcnlVcjNqYmFJZFFXaFBaUGdFMk1QOTlV?= =?utf-8?B?NTdDd3N5RDZpVkdvYkg5TGp5U2Y0SFhIVXlxbllwN1dMOGhTa0RzN2JRaTVm?= =?utf-8?B?eGtLZmpNN1hTSllma3ZzbE1Mem5sc0ZqWnpnQlZMVzF4ei9jUE51V1NobXJG?= =?utf-8?B?WlQrMVFOWERmU2N2V3RQSFZpdFEzeTlPRXVxdFhGandZbFFtV3VSd1RMSDY5?= =?utf-8?B?c0dTUDIzY2xnRFU2ZzdZbGhKS2Z1NEJXa3RRMjBDS1NrLzNvWERuWTJXRWcx?= =?utf-8?B?eVVhTjZJeDJQYy9IMXFqakVCYjNnSFNiQWhKRGU0MWVCRHBtU1BrdXhVWEdO?= =?utf-8?B?azdyZEI4RTJXdEVDK0taUi9qai9uWnY3QklEQjVxTGFGajBZQ2xRZkZCcnFh?= =?utf-8?B?dXdvUVJHcnE1WFJjaUNYbnhJN1VVSkdVMjJqZlhMY0ZETjgxa09iSDRzV1FL?= =?utf-8?B?ajhRZlRWWVBYclpvblRQL29qMUJ4Q3JIWjZpamUzanhHdG5ENGVTVHBwZGpz?= =?utf-8?B?ZXFJQzY5bXdGSERvS1ViQW1hVzFsczNZdmgrMkNlTnBHd1RKU09YZjhxdXBF?= =?utf-8?B?RmNKQThZZjVOR2hXaG9MZ1dmajRKbVVUblJFUUhUNkVNcmpMVWdkZm9rT3Nn?= =?utf-8?B?bnN0a0VxSlUxUEg5U1l2WmdvaDl4Ym9DWExjWEJJSUJkYjVNVXZPUjZLZENE?= =?utf-8?B?UVFuWEd2WTRhODl6cWllcmZvemNYbFVLdmtJWXRxSkVaZXlDZkkweG11Y24v?= =?utf-8?B?Qkh6U0x3RkZUSnF4eDR1eGlibTByOHVyQVZsZjN1NDhYZjNKaW9yNEErSkFo?= =?utf-8?B?ODlLVnJXdEE0d2dSTkpPM0ZCNys5QWVSdWRTNXY1NzE5TmVmTEtMR3c2R3Qv?= =?utf-8?B?ZXkrdjVJVmpnTzBuMjcvM3docnNoeDRJdE1lNm5UWTQvTXZxTHhBVy9TREpz?= =?utf-8?B?ZTNSYzNWeHFIODgxSlZxTGtkWCtrMk1rZE1KUzltb2VxT3ljT2xrZGI4ODhH?= =?utf-8?B?WkVBOTdxVGQzemEzYTVLREhNWHNqTndMRFQ3cE9BY1NjME8xQ3ZpdFFTWDIr?= =?utf-8?B?V2VlTmZHemZnWjlxbW4rWFYzeUJVUkR5K0FBWDQvZUI1NVNwdklKNzMyUW9K?= =?utf-8?B?KzBIUnZ3WGl4Tm03aXduSDd3T0Y1dldQdFZRaTdXU2dSQ29vWlZic2xmRHMy?= =?utf-8?B?Q2t1Rmdxd1h5WVpaMjBWRktGS2ZjTFpuY1N5MUtxY3lhSHZFTXVwYXY2WDY0?= =?utf-8?B?U25iNTBqSHpPanFLTjF6VFpRaTdYcjJTUWczM2VvdHFlRCtJQUE1K0hOblFJ?= =?utf-8?B?QWxtenFHY1FFSE93QUZqTEFIdzlzK21TbEp6c3pVU2JDRlZZMHFVa0Nabk9r?= =?utf-8?B?ZTVxaHZXSldjR1ZIZE83U2t1SHJaY1pIbCtjUlN2MW1kM1VpRS8zYU1YTTRm?= =?utf-8?B?eGc3MmNRUzJuNkFYY25iQzAzWG5QNE5IZk9FS3lBdG9PZXFSSEhXRWJsNXJN?= =?utf-8?B?bklmZHBlSjk5WEJ5WUlFdDdLWFRKdmpKWHI3RkllTWtiZ2ZlVWk0bk9VTVJI?= =?utf-8?B?bjR0OGRBVFRVSG5JdElJUzQzVW0rcXpQdTlsUTNBdmRmanVzSGlCZ0tQaG1p?= =?utf-8?B?RzhwaFFxVm1DQjNLK25iWjFYYUhrMmZtRzVQZmgyNjhhYUVoZ0JwazVZYTFs?= =?utf-8?B?UmJaR1M3TU9USjhLRVFrYWloR2RqSU9oUXN6TENFWXhGdlJJbU5MQzF6ZDJV?= =?utf-8?B?b3VRNjNjOWNMV05YU3hhWWxZamlXN3V3S3ZHcFRsWmg4cXRpS1c4c0RvRWVH?= =?utf-8?B?VVBxRjU1cndYUWV5djZscEtWMnRyQ1RoMFNjb29XUkNrZy81c1kwUE84ZzN5?= =?utf-8?B?R3pZUldseUk0cEhrQ1BoSkJmZXp1NXhFQUZFSkdMbUxxM3N3MGJjVzl6clkz?= =?utf-8?B?M3RUcnZHQnBIamErOGZ0Y2hUNFlnV0NWTnNqaXhVbGp2cGorenFubEFqU1BE?= =?utf-8?B?b3Y3ZVVSMXl3d1dMYVp3aUpXK1ZlRWFXN0s2bGZEcnlOUWc1WVBub1BXakRY?= =?utf-8?Q?khcYG4TkixedzC0EKtPKv2KHlI3jZLXGfDb8H?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2cce083b-46dc-41ae-871b-08deeedad74c X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9422.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Jul 2026 08:08:01.9407 (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: e0SO7Ve4p/euOKWoxjHtzPkRdwt1MBYpi9mfxdK7+u36l0ZyTjz4p2Lz+0Edx2JR9+tiN2oeUWe/lgM7cdrCcKhOixgXsMXqsrbSqHYD7QXqFjwRxRQ4uXAjnrW+xJOe X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8657 From: Xu Yang The CR port is a simple 16-bit data/address parallel port that is accessed through 32-bit MMIO registers for on-chip access to the control registers inside the USB 3.0 femtoPHY. Add control register regmap and export these registers by debugfs to help PHY's diagnostic. Reviewed-by: Frank Li Signed-off-by: Xu Yang --- Changes in v8: - add select REGMAP_MMIO in Kconfig Changes in v7: - no changes Changes in v6: - no changes Changes in v5: - add Rb tag Changes in v4: - improve commit message as Haibo's suggestion Changes in v3: - drop Frank's tag because it includes other changes - new patch --- drivers/phy/freescale/Kconfig | 1 + drivers/phy/freescale/phy-fsl-imx8mq-usb.c | 27 ++++++++++++++++++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/drivers/phy/freescale/Kconfig b/drivers/phy/freescale/Kconfig index 5bf3864fbe64..7e027755dd8e 100644 --- a/drivers/phy/freescale/Kconfig +++ b/drivers/phy/freescale/Kconfig @@ -7,6 +7,7 @@ config PHY_FSL_IMX8MQ_USB depends on OF && HAS_IOMEM depends on TYPEC || TYPEC=3Dn select GENERIC_PHY + select REGMAP_MMIO default ARCH_MXC && ARM64 =20 config PHY_MIXEL_LVDS_PHY diff --git a/drivers/phy/freescale/phy-fsl-imx8mq-usb.c b/drivers/phy/frees= cale/phy-fsl-imx8mq-usb.c index 42de2cff4d5f..e03f9dafd69e 100644 --- a/drivers/phy/freescale/phy-fsl-imx8mq-usb.c +++ b/drivers/phy/freescale/phy-fsl-imx8mq-usb.c @@ -1,5 +1,5 @@ // SPDX-License-Identifier: GPL-2.0+ -/* Copyright (c) 2017 NXP. */ +/* Copyright 2017-2026 NXP. */ =20 #include #include @@ -11,6 +11,7 @@ #include #include #include +#include #include =20 #define PHY_CTRL0 0x0 @@ -56,6 +57,8 @@ #define PHY_CTRL6_ALT_CLK_EN BIT(1) #define PHY_CTRL6_ALT_CLK_SEL BIT(0) =20 +#define PHY_CRCTL 0x30 + #define PHY_TUNE_DEFAULT 0xffffffff =20 #define TCA_CLK_RST 0x00 @@ -119,6 +122,7 @@ struct imx8mq_usb_phy { void __iomem *base; struct regulator *vbus; struct tca_blk *tca; + struct regmap *cr_regmap; u32 pcs_tx_swing_full; u32 pcs_tx_deemph_3p5db; u32 tx_vref_tune; @@ -667,6 +671,14 @@ static const struct of_device_id imx8mq_usb_phy_of_mat= ch[] =3D { }; MODULE_DEVICE_TABLE(of, imx8mq_usb_phy_of_match); =20 +static const struct regmap_config imx_cr_regmap_config =3D { + .name =3D "cr", + .reg_bits =3D 32, + .val_bits =3D 32, + .reg_stride =3D 4, + .max_register =3D 0x7, +}; + static int imx8mq_usb_phy_probe(struct platform_device *pdev) { struct phy_provider *phy_provider; @@ -696,6 +708,13 @@ static int imx8mq_usb_phy_probe(struct platform_device= *pdev) if (IS_ERR(imx_phy->base)) return PTR_ERR(imx_phy->base); =20 + imx_phy->cr_regmap =3D devm_regmap_init_mmio(dev, imx_phy->base + PHY_CRC= TL, + &imx_cr_regmap_config); + if (IS_ERR(imx_phy->cr_regmap)) { + dev_warn(dev, "Fail to init debug register regmap\n"); + imx_phy->cr_regmap =3D NULL; + } + imx_phy->vbus =3D devm_regulator_get(dev, "vbus"); if (IS_ERR(imx_phy->vbus)) return dev_err_probe(dev, PTR_ERR(imx_phy->vbus), "failed to get vbus\n"= ); @@ -757,6 +776,9 @@ static int imx8mq_usb_phy_runtime_suspend(struct device= *dev) { struct imx8mq_usb_phy *imx_phy =3D dev_get_drvdata(dev); =20 + if (imx_phy->cr_regmap) + regcache_cache_only(imx_phy->cr_regmap, true); + clk_disable_unprepare(imx_phy->alt_clk); clk_disable_unprepare(imx_phy->clk); =20 @@ -778,6 +800,9 @@ static int imx8mq_usb_phy_runtime_resume(struct device = *dev) return ret; } =20 + if (imx_phy->cr_regmap) + regcache_cache_only(imx_phy->cr_regmap, false); + return 0; } =20 --=20 2.34.1 From nobody Fri Oct 2 13:07:19 2026 Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazon11011020.outbound.protection.outlook.com [40.107.130.20]) (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 095BB3C1094 for ; Fri, 31 Jul 2026 08:08:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.130.20 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785485291; cv=fail; b=QKYF8zqe6JsA9PhAa2L1GiSfIMmd6roOxE9WoMvZYiIe1q6fjvSc8dOHow2h1QYOhRsnLD/DefL7vajA1nUCeJ9JJv2CDfwnBhh31f0/u9ejrSNEYnnlYsBaCpP6KMqwzRf74xvgOScxLcKB6Wj6SBd/BWjS8hhC/brqUopHI+k= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785485291; c=relaxed/simple; bh=Y01Ej3LZYdNJh/S6LJonrTWIJSJu1EWL1XqYsX0AM+w=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=f8Vd0zGBGN+ilBbZUJyMdjgjzXyLzjpmyGdDfNJlbDvbSO0JepfbrXYkJKdicH6cfFUAQGi4uzaX6reX81QkGStcGUQkU8dRsshfmQZDcoQKFmnULcCWNd3izVHc3l4pYYIL2F8nxcKQYxljjaW1EnFj8CNhdNAGZYMfD3ONPVE= 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=jW+KDXLc; arc=fail smtp.client-ip=40.107.130.20 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="jW+KDXLc" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ZwywNG3DWmf8m3ZmFbSScxp+FLajq4Tw0ItCL5ySpcMDGZc1wSv4x7Fp1fNSkAN6SfbXhVlMhmhzwKpBV/Kaw7Tx9tDRUrmQe+Xf6rX0JiE6dk7HSj1yPnLDp4Bdt0+9hGblcj45izo4aKcxpwfE67+Uu2fmGbpgSXFE18+fnixhzYmmtCLLB/VEiX0s6F6e2rM77+rdjt4rC01E8XuGTwfuoX3lDwURjPmIMc3wQpChhCuwb7fOqn1Hamjn1Cu3pzGmNpbBLndYGvBBHU0zYQlTMqDko6LccGiOWP1tryMWcsRRJRQc7s58wis71TCzE/rct9uvYveg1tHieP11aA== 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=g8AW2opkCgleQlXAByWwLeErzFA1OEHaa+dWGPKwINA=; b=moi0lXCHrm2X4eVGHGv7vNtBdOPKmmNNpmGAOez49gwKLRGpzXXyrA6ZMWFVmca8FqGzQlgBC02J3VVtasO51AovN30y6PVTX7i2JZu+hgJXO7s1j8jfbLdeeATpTQL6/4WHZ74hZYdeXNpZssjBd5LvemBZW+El/U3VNRqCKxl5QV4soJn+yARKWHzeVuB8Lwl8lY79GjDma5tnfOAZLn//MLuUwvN2XntQ7PON7JZc5PiWOTcPaAYuDAFtBA/KhIl4RHAMH9KuBe3uLp3XxyxLSX3Ke6pd2gqadAE8Obcu6ZTDM0jfdF5kpl+KyzNln8jW0LV0bboGQRVyCDXAqQ== 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=g8AW2opkCgleQlXAByWwLeErzFA1OEHaa+dWGPKwINA=; b=jW+KDXLcj3G2bteSLi7XnR4b6Rfb0Pkp+ux3KE1mOHY8pKWtxNaz14CXOpoizsz/8CG0KjNfW2ZwR4wLzVcci7pyK8+kFdpUDrhfAPP8VSLCqTOioYixvlwXTsW7Hf/KxYhIuUw0uYHgcmmPEIsbHD4qjMqqoedh1qD5zk5zLO6KDUfl+XIRJHV719DrpTqPlFFS9L/nY32UfiUjBpbnu0nclmnDqab5VfcQR8Y+/iSwhkp1mBB2JpsS/QkYeUTMJOj4TAhypokzTBlU9umjotZ98rBGZ0TF/XkeiSLHhHNYTf6DNrP7vDzFejmiM0UH4Iyuvj0PS6MdGuxdsfHpeg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from PAXPR04MB9422.eurprd04.prod.outlook.com (2603:10a6:102:2b4::21) by AS8PR04MB8657.eurprd04.prod.outlook.com (2603:10a6:20b:428::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.270.15; Fri, 31 Jul 2026 08:08:07 +0000 Received: from PAXPR04MB9422.eurprd04.prod.outlook.com ([fe80::54e:28bf:aa85:d25d]) by PAXPR04MB9422.eurprd04.prod.outlook.com ([fe80::54e:28bf:aa85:d25d%4]) with mapi id 15.21.0270.012; Fri, 31 Jul 2026 08:08:06 +0000 From: Xu Yang Date: Fri, 31 Jul 2026 16:11:23 +0800 Subject: [PATCH v8 5/6] phy: fsl-imx8mq-usb: introduce per-variant driver data structure Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260731-imx8mp-usb-phy-improvement-v8-5-2ec8d6b3854d@nxp.com> References: <20260731-imx8mp-usb-phy-improvement-v8-0-2ec8d6b3854d@nxp.com> In-Reply-To: <20260731-imx8mp-usb-phy-improvement-v8-0-2ec8d6b3854d@nxp.com> To: Vinod Koul , Neil Armstrong , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Jun Li Cc: linux-phy@lists.infradead.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Xu Yang X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1785485487; l=2929; i=xu.yang_2@nxp.com; s=20250815; h=from:subject:message-id; bh=vUv4Wkn/3mAebCH0NEmoka+o086CL5jVqE9DUzwhg8k=; b=in+wC3wS6P+HbcY1WXmRiYTuNTb/EdbZrPW+5odXNKDAIcVo89ZhlKHVUP4Zsbst5Fe+W+V87 d6rwIq9RHDDCDQbz5tR9h9yYqRa6PLjBSwtxqU+eGMJQm2wUjTTvJXs X-Developer-Key: i=xu.yang_2@nxp.com; a=ed25519; pk=5c2HwftfKxFlMJboUe40+xawMtfnp5F8iEiv5CiKS+4= X-ClientProxiedBy: SI1PR02CA0050.apcprd02.prod.outlook.com (2603:1096:4:1f5::12) To PAXPR04MB9422.eurprd04.prod.outlook.com (2603:10a6:102:2b4::21) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9422:EE_|AS8PR04MB8657:EE_ X-MS-Office365-Filtering-Correlation-Id: f168ecac-2d84-4db1-0697-08deeedada31 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|376014|366016|1800799024|19092799006|56012099006|11063799006|10067099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: lpSxgUV//ltm0chk4Gyst13RR9ju2T8JtNURWbe9Lq/xnO/MnFNgqeh5NJhr7Sh3HpSzyRXtcE0nmqheRvMCl1vnZaOYSs6NmIzKXSTjbnZuNlaIlobMAIM9O+PSMS8tb2cUS/TFr4ko4MBCfAy6R53ZxzhmFT6gBr4y/NRIu7rM/VKq9mB05kWAdXxgNRIJQgL9cNYYX01lY2t1Q1VpKYwqI38xLgTYslE2oIpKb0JeCX8OL4b0xqsRxdXzwL/sJTT3Z1oWd0qZ+k/jbABkonnq7BcebInvysSwqYu8NZJcQRxiL/VUtlMwfHhgUbIXL72nbp2c5lsI/JhKyyp/94E7KFv5SBwdAfTSpYU9h+CGy7HnBKpWDZahQGz0W+U8Ep8IFEPOl9DG0NGB4+N2EPVQRo/C26Y8zx00t3J/nkqkqnt/HtW/f5wUuJ51asjbkosLlpwefcVaUGrxLrUrZ6bcTvxUgQsxpl8UQtu4UALpCzVDi+uC+bNpTrLCky+xFXyz/3NjeblZ6mMvqdu8t5zHme8h106jvUA8bNrnD/BTGxIAyRjQ35iyUXEqEsw+21VNqCuSfoHQHcMLE5b+wj1tZKYZTXOp40d1PL1+ILQ6BNG5G1q2d4JFPS9DuHnb3miS8Z4h2cUvxsZ4FyfT7QC3xAhRp9r4jwMhFI0Vs9w= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9422.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(376014)(366016)(1800799024)(19092799006)(56012099006)(11063799006)(10067099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?aFJCRTdXWEc3MXRXcGpGT2RaWGVaZlNTaFZ3Ui9JbHpTUi9pU1JDRDNSNEgx?= =?utf-8?B?Nm5KRk90eGVZOWVJbkFKWG5GbEVvNFV4N21UdWVRdGloS2loTDZDYlpLSmNq?= =?utf-8?B?c3p6UjRPYjg3NFJkTmcycEtsenZrbWhhREZLc0EwSk42NWxNZk82UmJ4R0Vw?= =?utf-8?B?Skg3RkVoS1NGSFI3aHNscnFvNE1nM1hsNytlWDQ0cTcvdHVaS1BVVHMwSkt3?= =?utf-8?B?NzhlTk9sWHQxNWQvMGlTSzRFMWJTc0IwaCtUaUtZVTBDL1c5b09PNVR1UTF4?= =?utf-8?B?cEE3VHpzaDBXYmplYWRzMkNuVnZDc2ZUa1BNdEcxelBOVEpBN3h1Yng5U2Fl?= =?utf-8?B?MmpHOWVwdU13SEZaNURZUEloWEdqenJWTEdxaEdndDBRYWJJWUR1djhoVU5U?= =?utf-8?B?VThaQzRLME5JTDhwS2hkUDd1RGdtSVB0RlNYN1pLNlg0R2d6c2tmdG1mdXVT?= =?utf-8?B?dlN6VERPNlY0SnRaTDNHc3NRUWhyRUIxZmpsaGhvSGZzNTlZdHNMQ1lIb0xQ?= =?utf-8?B?ek0yWFhBdk83RU8xZHdXY3VyVVpySmc2OVl1Z1dJOG45cHVxSEFCaSsybXZ5?= =?utf-8?B?VGpUWjdmOERNeHkxL0NHemZxQkZibHFVQUlXWkVJUXVkZlNUSC9rWjF3aFVG?= =?utf-8?B?R2paS3gzTXp5VjdUV0djR3RkbEM3YlFNYXd0TGVsekltMVovbXRqK0N0dlR2?= =?utf-8?B?b1Q4cnJhNTVtbGdPbW5WMmVXeXAwVE1ESnBPb1J1c0szTDVteXdlV0JlM2xy?= =?utf-8?B?eGcrSS91dUs1NisvZytQMXNMU3VSUXlkZ3pIQlRZNnlremdCeW1OR1JIS2o2?= =?utf-8?B?dHVnOGoweWpxNTBlcXptNzlxYWo5UjlxQUJhU1ExT0M4dW83Um1JbVpFbUtq?= =?utf-8?B?d2xxeEFGMnY1aSt6TFlmVDhnTkdOT2lVeWt3dVVTWmtSTVZTK2Y0bklMSXJu?= =?utf-8?B?dzYxNHM3dXJSUUpUZnJqRm45NlNRUnIzOVdkODl4UmF2bmY5ZGM1MzQ5anJQ?= =?utf-8?B?MVR5QXprMzhwUWdsd2o5TVdGR2s4YUhsWDBTU3N5ZWpoRmt4OWRncGpkM0tQ?= =?utf-8?B?bDRTV2UwSk5PSGd1RHpyNWhpWDY0RGkxVU1SSGh3NytWWGp2S2l0SkxtWm5p?= =?utf-8?B?alJGRkkrZGgvZ3lHME1HN2w1RnN4WVBDa3FKRWdXNjJpZXd2dWZxb04xN0RH?= =?utf-8?B?Rk9LSnJNMFFmRU9HZ0NsY3hBWm9OVXp6WHoxdDRySlJ1RUhiVmI5M2hBa1h5?= =?utf-8?B?UmNDeVpycU9CcDBoSUROYTQyUzE2YWZmT1RjNzdPbktFcjE3N0c0T093ZzBi?= =?utf-8?B?R1pydEhhT2d2OGJNWFVqakNVZ1loOXNYcHFvQ2oxcUtKeHFSbUt3bDE2K1VB?= =?utf-8?B?VlR2MTF2TUdPZnFmeG5qTXpFZlhUU3ZQYWxVbUJtQm1BRnVLWVZxakhoZm1h?= =?utf-8?B?V0xWczZlUm1LVnloTlFKc2JraW9DKyt0ZEM3Mis4K29VblNKcmFVQnpUQ3pW?= =?utf-8?B?bzNFdWx3bDdYM3lRVUN0ZEVFS0dCNlhJR0ExNmkyTktKYU5WSWNNbkJkZldy?= =?utf-8?B?TXY0d3FyUDZSeVowR3Z1RmxhUnF3Y1BKT215T2dmVUlCcldwU2xxV3BtWjhG?= =?utf-8?B?SlF2Z3F1UGovS0R5SEdLY0JJN0d3bFRmc0NraDZvWk8xdFo2STI3Z2RPU3kx?= =?utf-8?B?S0FYNlJlM1NUbmtyYjM0aDVNNjh4RnlTWnU1aHFISTZhS01SS0pnS3czaGhE?= =?utf-8?B?YmtVVkFIWFdLOHpMbDIwaUw3SHNWWjQ0WERnbHU2UzVaOERudmZkV25Jdkx5?= =?utf-8?B?WDlOWldMSmkrYithOGpJRm1YVUI3VjdTdUt4VnRpdVZaMWljL1cwU3NwdFQy?= =?utf-8?B?QURvNTRyOHFTWUJ3d21NYmR3WFpyTjlYN0x2RmlISkxEdWliR0h4N3dneEht?= =?utf-8?B?ZlZqbnR4Q2lIcGU3NXNYWHpyQmI5Q0xxRGYxNTdBNFFkd21aRWhDcU1QNmtE?= =?utf-8?B?Y1d4czZyYzNoV2dXZkxhZkhPeHFBSk53K2ZIT3FCRUhtN0VEVEJkaSs2MDNE?= =?utf-8?B?cThFR0RvZForNEVqRVV2aXppeEovdUplb0RDSXpBekd1cnNYUUFlcWp2ZVBy?= =?utf-8?B?N0JoYk90NEpVVkp3WklvRGY0SEJpYVdrRld4RlZveVJuOEUxek9Da3MyMzFN?= =?utf-8?B?UmpiaElIU2ovSzcyRUF6TjkxVCtUbzZpbkMyK3d1V29KdUE2SEtIcTJGRjZl?= =?utf-8?B?TlNYZlZ0QXVFRmdOa1I3dTJ2OWE1Y05DVXA0SXRzQUE0YXBNc0oyNWxTSTFO?= =?utf-8?B?L0x6blVBRGZ4ZlF0OVBKSXZQV3MvMU5lRUN3cjdDbEtSNVBlMzkvbE5hU2c4?= =?utf-8?Q?QQUJYFf4V1uxa0Br9JcqXOlhae3zhLCiMY/W+?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: f168ecac-2d84-4db1-0697-08deeedada31 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9422.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Jul 2026 08:08:06.6829 (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: lPHnwBcE+ERCYpC331gh95eKaFxfhtyVww/ctqOoIsXndVLedXtmsyjP6RpJtE7cRyy0iDUcX9iFNz4NAs09Ac5OsQYb1L6h6vE3b5D/w5mNUO1yL2oFpoeazH5gSSR/ X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8657 From: Xu Yang Replace direct use of phy_ops pointer in of_device_id .data with a dedicated imx8mq_usb_phy_drvdata structure. This allows per-variant driver data to be extended in the future without changing the match table. Reviewed-by: Frank Li Signed-off-by: Xu Yang --- Changes in v8: - no changes Changes in v7: - no changes Changes in v6: - new patch --- drivers/phy/freescale/phy-fsl-imx8mq-usb.c | 29 ++++++++++++++++++++++----= --- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/drivers/phy/freescale/phy-fsl-imx8mq-usb.c b/drivers/phy/frees= cale/phy-fsl-imx8mq-usb.c index e03f9dafd69e..ba7603a008d8 100644 --- a/drivers/phy/freescale/phy-fsl-imx8mq-usb.c +++ b/drivers/phy/freescale/phy-fsl-imx8mq-usb.c @@ -132,6 +132,9 @@ struct imx8mq_usb_phy { u32 comp_dis_tune; }; =20 +struct imx8mq_usb_phy_drvdata { + const struct phy_ops *ops; +}; =20 static void tca_blk_orientation_set(struct tca_blk *tca, enum typec_orientation orientation); @@ -660,13 +663,25 @@ static const struct phy_ops imx8mp_usb_phy_ops =3D { .owner =3D THIS_MODULE, }; =20 +static const struct imx8mq_usb_phy_drvdata imx8mq_usb_phy_data =3D { + .ops =3D &imx8mq_usb_phy_ops, +}; + +static const struct imx8mq_usb_phy_drvdata imx8mp_usb_phy_data =3D { + .ops =3D &imx8mp_usb_phy_ops, +}; + +static const struct imx8mq_usb_phy_drvdata imx95_usb_phy_data =3D { + .ops =3D &imx8mp_usb_phy_ops, +}; + static const struct of_device_id imx8mq_usb_phy_of_match[] =3D { {.compatible =3D "fsl,imx8mq-usb-phy", - .data =3D &imx8mq_usb_phy_ops,}, + .data =3D &imx8mq_usb_phy_data,}, {.compatible =3D "fsl,imx8mp-usb-phy", - .data =3D &imx8mp_usb_phy_ops,}, + .data =3D &imx8mp_usb_phy_data,}, {.compatible =3D "fsl,imx95-usb-phy", - .data =3D &imx8mp_usb_phy_ops,}, + .data =3D &imx95_usb_phy_data,}, { } }; MODULE_DEVICE_TABLE(of, imx8mq_usb_phy_of_match); @@ -684,7 +699,7 @@ static int imx8mq_usb_phy_probe(struct platform_device = *pdev) struct phy_provider *phy_provider; struct device *dev =3D &pdev->dev; struct imx8mq_usb_phy *imx_phy; - const struct phy_ops *phy_ops; + const struct imx8mq_usb_phy_drvdata *phy_data; int ret; =20 imx_phy =3D devm_kzalloc(dev, sizeof(*imx_phy), GFP_KERNEL); @@ -719,14 +734,14 @@ static int imx8mq_usb_phy_probe(struct platform_devic= e *pdev) if (IS_ERR(imx_phy->vbus)) return dev_err_probe(dev, PTR_ERR(imx_phy->vbus), "failed to get vbus\n"= ); =20 - phy_ops =3D of_device_get_match_data(dev); - if (!phy_ops) + phy_data =3D of_device_get_match_data(dev); + if (!phy_data) return -EINVAL; =20 pm_runtime_set_active(dev); pm_runtime_enable(dev); =20 - imx_phy->phy =3D devm_phy_create(dev, NULL, phy_ops); + imx_phy->phy =3D devm_phy_create(dev, NULL, phy_data->ops); if (IS_ERR(imx_phy->phy)) { ret =3D dev_err_probe(dev, PTR_ERR(imx_phy->phy), "failed to create PHY\n"); --=20 2.34.1 From nobody Fri Oct 2 13:07:19 2026 Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazon11011025.outbound.protection.outlook.com [40.107.130.25]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 99E0319E968 for ; Fri, 31 Jul 2026 08:08:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.130.25 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785485297; cv=fail; b=Jz5EHVjLmSa6i+r5qly044SR/kNN+jOe1ZdB0FOJw+JJ2nsh+P3k1EFGMA0e/130vKVTnny7u1qmhM1qhN6Wf4jTnmEJBZBrAcJS1M5YxIm4amqh1u3C8Fzf4neguzeukjJuz90yFI4ftSxd/+B5gxi8x/CxZjCedjX+/vfOrAw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785485297; c=relaxed/simple; bh=gI9rP4hxmZRbM5ezyTnsdb2UUgs8R5+2jLYGxKEhqw8=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=oEQkaDF0gGX9jAw+rRO9OYhTnVTAZLXSWe6tfSFtyZqMzmBBZCCxIIZmWiybaI050pfvgLM5HfSQ8bjQJawtMeMcjycXQI7FBYuN7NQZAH17MMbOZLzhlwJimlHdSx0mzFwY+mj51rZFZWp1nrPoJ7wKuO4Adm1BPOHPEkIYoIk= 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=V535Bu46; arc=fail smtp.client-ip=40.107.130.25 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="V535Bu46" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=AE/M32HOsAFI+b+IoATM17SB2wzW7kt6u9+qvkm4lZqNpyOEQ4JFtEXXliWRpLc6u/cL/naJtVVBDn4VmV0ktENAi+JhebRqWAmibxSp3VwG8y1mBASSQ64wWZhQWhq3tEO10oyWcz+ngDJdYzXp2J2E13YtzRbccJSt/6NewgTQoqaWo0GyRyF+z6mvyG88+4H/uZhRETo5EWKid8jk3PJDajcGfs+V44rMF3843uruJFJUJ1RzmCDRpcwbhZB1tnhDq3rZCwX67x0a8hS8Y1Q9u8wJi5ALRfRnyWJtHfZ1mQav1F7gfCvthlK270LkDSOmazFesZ7buSS5yMZ8yw== 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=c4C8Dr6co95YKaw+iElhyqdjsa/e9Ta/1esicflyM3s=; b=hNT5m/9SlfcS/IhT4D6+GzONMiNHhYo1uJiXnjTa8A/VWCuq2eLMbRugE+ZBVx/X2Fa04IafWGIZjpr7HrG3aNiOOf4tYnkBW58wnDhIj700APEl1phC4VJaxWcHW4HIXAQfFJFoCRF3CoeEVxaLwS3DcFl+qRtrRDwJlWUlVbp25SqLS4HWdGWL8dtAa4EtYXqk1dIT00vZw3TiI/vNbZhW0RVX+SUpiXnmUKXcdL2G52BpJNxDWCP4c0yi6RiEAXMNoCcAniDjfrkLRRLp4YZhLkDD+fR9DNs9jDtPfQY8qqiGq9Gk6RgKwBiWE6rzq2oAx/48w2Bbq3/ria/iIw== 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=c4C8Dr6co95YKaw+iElhyqdjsa/e9Ta/1esicflyM3s=; b=V535Bu46bSj81B1taf8Zksi9rN7hvVAy5F2lK7tiiZ4zOE/BX1+eeTOnN8ljzvncSQfhiI7DoOWQLghAhU2y8UMxWloXFSRV1WIuXSg5CskY4qSYM7xQKJPj9w7CpTB3kBRCFFZFdw9ikaMy75twlnL6siexONiaynhk9UWa+yUWqxada32QC+Ajqznhjp6KLPl/D5Fd/GABrdaEsHmYz3bQ3XULWihCRvS0lI2e3WN974sr61CPKeAwbHa2uHGbFkkKqeC0YQDifbjOYTy0nL9NI2oePDY/4Q1nLa6Coxkxa59U7eA69mTldVVIHkCmBQ+sNX49ZxuiXWgWgp2BOA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from PAXPR04MB9422.eurprd04.prod.outlook.com (2603:10a6:102:2b4::21) by AS8PR04MB8657.eurprd04.prod.outlook.com (2603:10a6:20b:428::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.270.15; Fri, 31 Jul 2026 08:08:12 +0000 Received: from PAXPR04MB9422.eurprd04.prod.outlook.com ([fe80::54e:28bf:aa85:d25d]) by PAXPR04MB9422.eurprd04.prod.outlook.com ([fe80::54e:28bf:aa85:d25d%4]) with mapi id 15.21.0270.012; Fri, 31 Jul 2026 08:08:12 +0000 From: Xu Yang Date: Fri, 31 Jul 2026 16:11:24 +0800 Subject: [PATCH v8 6/6] phy: fsl-imx8mq-usb: keep PHY power domain runtime always-on for i.MX8MP Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260731-imx8mp-usb-phy-improvement-v8-6-2ec8d6b3854d@nxp.com> References: <20260731-imx8mp-usb-phy-improvement-v8-0-2ec8d6b3854d@nxp.com> In-Reply-To: <20260731-imx8mp-usb-phy-improvement-v8-0-2ec8d6b3854d@nxp.com> To: Vinod Koul , Neil Armstrong , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Jun Li Cc: linux-phy@lists.infradead.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Xu Yang X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1785485487; l=2319; i=xu.yang_2@nxp.com; s=20250815; h=from:subject:message-id; bh=g43getvMDQHHUdjqYvtI0dmM60kcgh5E0zSC+VvDa5g=; b=HOV5mMEBVjLxjohNwoV12+BaUYCH7hCM3fdVxkraEQarnK47Ci9x9nOy8KYP9ilOL9KOBmn4L 8dVR5bPHTa1C1NTn11geAFmu1Z4wFLyD2iq8sD6yRCNqAvoGIqe+9NL X-Developer-Key: i=xu.yang_2@nxp.com; a=ed25519; pk=5c2HwftfKxFlMJboUe40+xawMtfnp5F8iEiv5CiKS+4= X-ClientProxiedBy: SI2PR06CA0003.apcprd06.prod.outlook.com (2603:1096:4:186::14) To PAXPR04MB9422.eurprd04.prod.outlook.com (2603:10a6:102:2b4::21) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9422:EE_|AS8PR04MB8657:EE_ X-MS-Office365-Filtering-Correlation-Id: 07edffca-078a-458f-ab64-08deeedadd56 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|376014|366016|1800799024|19092799006|56012099006|11063799006|10067099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: swvkFtiYfl9RgRkLUvHPefWeRZOFGFtY/vThK3XQvurlWng8Y2/YxdZHPU9w0HfL2mXMX8NEaizTCUxb7DKAzWKjau/usuNpZeEVOwJyTKvXJpHmYCEQbTzE3nxFyix/QSPW2P2Y7CuUgk/F7WN2j+KoIQXijQSdct1uelisCbFmyoQUIho0rSDsOKvW63rQJTMeyO51vai4kuNsJEYlrDU9a3Bp0apqHBqXJ6xg6m1ahVvwAMop5xPt73yQoEvnI7pvKfWrGDV5jRuDjEngmFxB5u5mcI5IyqkleMr0YcbOZoC1BrLjIrdEjHpodWonG2ilzf4udjGa1Dex5QHtFIQIRU/ylhG2JhfAWAMgYU1hHycozU9ivVwKmRJZ7mk1L8kCCOab9TOuHVuUUXvznREVo/efFaN0uksMsCFLxXJceCOhb3tSJg6T/QJpcnWo6/zamaZ1ufN5Eu4OHOBI8LNUgOSiRS5SpWQ15gYN+BLPLWirZlZkRlHd2ZVXZo7Iqd3JKsHRlC1MQzFgwtvFvwRm6jR+KOAktL9TiWCKGXWk/V7bKLa/Jas49VrbuQ/TfXRME8OZl2ke/o1ak+P5CqwPsPfYo9LTRL4LBCtYM5UHXPO/YMOwjdN//xRFB0glotdEory7qjiAV4mouuDp0522Ha+DEJFvvOT8iJHSUx4= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9422.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(376014)(366016)(1800799024)(19092799006)(56012099006)(11063799006)(10067099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?QWZmbGJQa3RPZEMyaTFxdEtBbUtTRHFWSUxVVVpGbUJFTEdyT2RJQlNxd29G?= =?utf-8?B?QjRxMHQyelB0ZWw4Y0VXczJIWjZTWlEzQVN2VmFETDljM3puYThOVDFoSGRm?= =?utf-8?B?QTJZWFlLSVM4QVlKcjBOZldIRUFNSG1wcStsdTdHWHJhNDgxWHlSSTN6NHE2?= =?utf-8?B?d0hpVEF0ZlRwdmM5K0dFMHI4ZkZ5WHl6RmY3N3l1eXB6Zi9IeWVNOUNOelVk?= =?utf-8?B?KzRuaWVVWnozcU5la0xOUG96ejlxcE5IMXdMWW5nTmVteDc1N1VsQmUvYWhJ?= =?utf-8?B?SmFPdTFuVEhHem1TdE9SYjNEY1FzeU9OV0JEcFF6MFFvaVFBbmVDc0V3dkh2?= =?utf-8?B?dGRuZis3THY5VVp2ckxkK3NhMHJjNk93M3FHRDFFeUhPTXJvaE1tVVFrVkdo?= =?utf-8?B?c0pQb2l5Y2w3LzdrUU1kS05aYnQwVzYyK2FjWk54RDV1RVB6QlRaSURwclAr?= =?utf-8?B?QXR4SE5DeGN6WXJXZFA2ZEFneCt4ZGsraG9tblhFU0RIakY3K1hqWm43R1E2?= =?utf-8?B?cTR6Mi9qaFlUdEJxc2JvSFJMV0dlb3RDeHhRNTdrNzl3b01QL0NpWTNLMGQr?= =?utf-8?B?VTc4K21PVEl0RStjWFlBM29RWkZtc0hzeHM2Q2cyYWVSR2tBMXkwOTduaitO?= =?utf-8?B?aDVtcDFOZ1ZvV3Z1cDdqQjV1cDhjY1VLVzJpSzd4NVl1OENqci95cytmU2hn?= =?utf-8?B?SGNEcWZZeDM0d3hXc203R3ppUXZGZDBtekY3U2x3OUtRdTF6czVhamRoYnhr?= =?utf-8?B?M01wczRFRG1ZM3V5V0tLeGlQcUh6UjFFYzBsWXpNTEF0K0haOHlLeW05UXlO?= =?utf-8?B?WndCUXl3aE1TejJyMFIyUXBHWStmczNDOHVOdUgzQjg3ZVJIS1BkV3EvSmpT?= =?utf-8?B?VStQcWZVTVNJYmI5b3Q4Z25LSTl3QnovVFNvaWZyRXBIQm1iNTE4U3Y4UGs3?= =?utf-8?B?UUx6R0tmMmVBTFB3NHg3NVdSWFRpdThxSmc0eTNsNUtKM2NuaVRtY09LUktw?= =?utf-8?B?Ry9zKzlrK1hNVEZiNXJ3MllPVURlMzl6NzhsWFUyWFpBWW1jUG4yOEZiYStR?= =?utf-8?B?RjNoekhpMHNyZUEzY2VwUHZReThNb25vaHVpVmhISGE0R1M0YXdRN1BOUzll?= =?utf-8?B?a2JDYkJ4OW9JTjQ5UmlKQ3BXVFFFdk5lZ2QwOFZQZnFGYjg5UDlTTHpPTkYv?= =?utf-8?B?N1E4MUxkcmdWSnlVTlZxRjZOWmdzd2d4M2xSRThvb243ZmVhM0Jvci93ek1h?= =?utf-8?B?UUgrVHF5a2FLdzNEZFh0Z3NtVzhFM2t3S1MzenE1ellVQnZmOUZrbDJDd0t6?= =?utf-8?B?c2tKdHZmL3NOMDhKZUoyaXIyM0VVamcxZlBaL0FFdHZiNnVNVWFHSzBxUWF6?= =?utf-8?B?djJQSFE3a2xReTJ2c1pHM0Iwa3djSVRNN2Yxdi9kTGxoWit1d1RaRGRtbE02?= =?utf-8?B?Y09KY1M3S2FrM091SnhIRUpTL21IcmtKUEVOdjRHaWFzVjIzRElVUjRNQ0Fh?= =?utf-8?B?REhLSHAzTHN6RlF4dlRCU2ExWmlaazkya3ZmeE84SkNzMzV4U3BZdjA3YVk0?= =?utf-8?B?UEVHb2FkQ0hncFgxcGxkZXdyQlA4ZXQ5eG1mdzA5ZWJSODBVaExnbTlPV2Na?= =?utf-8?B?TEpOa2dLZjZZaUJkM0dUWUkwdW9QNWc0OEs4ZXpsWDl6M0VvbE5tZEthTmMx?= =?utf-8?B?Y1djdUROQk52c3lZOXNPL1d6d1N1MEdtUFF3VHlkbUFZSSt3M2FYU0xMcE9s?= =?utf-8?B?ZXhQNkh5QnZhNDlaWFNISk9ieHRPd0luNVJtVlRzRVNPY2dSYU9KT0l4NXkr?= =?utf-8?B?OXpIZXBZVFBISFlXQ010aGw1Tk5vTWZhQzRoWi8vL1RESXFEN1JxajYwR2Nn?= =?utf-8?B?LzM4dlgvUGYxK0k2ancrbVZJbUcwQkhsaGdkWDExZ2U3U0ljenJ4ZitVNjlX?= =?utf-8?B?aW9FZkcyYmh3MEVUOFV2YVdGanpycDJYQ2FTYmE1eTByMXBpUC9FRCticGZz?= =?utf-8?B?dkx0cEE3d1ZiTS9XcmdGQVk0L21qNUJtZnFDSEJoS1A0Vm9Xd3AwSm0xTHZq?= =?utf-8?B?K3F4am50VjlLdFRkdkkxekdDUWUzaWxENm9INWVPaFZFMzFYK2VSOFptbFB1?= =?utf-8?B?czFpUjJIcXhyVHdwQVRTd3NRYU04UitZUkpVS1gwU3R6eFpMWUF6cUtUR0pn?= =?utf-8?B?bWpTbURlV0N0eGNvcEZSZURjOVA5cTY0ZkprYTQzSzhRMHZHQzFBTzJwYWxC?= =?utf-8?B?bFVhd0pGdHR4SEFUQ1FUcU5tcS9DYzdLeGFmTXA4WWlOYUFMWUtwUW5FQkxt?= =?utf-8?B?bjVzRHhZWUROZnR6cTZjeEdUYkNyejhSRDA3QVMrRUxvRGU2VzZsT3JBREo5?= =?utf-8?Q?5rnpg+J2Hxt2LbSquD7NwgPv/QKpv0dfwg4+B?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 07edffca-078a-458f-ab64-08deeedadd56 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9422.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Jul 2026 08:08:11.9566 (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: boDUgPwWL7CsJZMXdz7Q7i9NFw+Mw/UCMb1sJTNDhvYKwtHPCtuHOn8CAXKp/5q2muVOIbxBovf7ynZCynbcSOsU2oDX1MUuz43alDzhaSElIPunGNeX6+mU/412/Td+ X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8657 From: Xu Yang On i.MX8MP, the USB PHY has a dedicated power domain that was previously never powered off at runtime. With the introduction of runtime PM support, the power domain will be powered off if the device is runtime suspended, which breaks USB wakeup functionality. To preserve wakeup functionality, mark the PHY power domain as runtime always-on for i.MX8MP platform. To limit the behavior to i.MX8MP, add a need_genpd_rpm_on to imx8mq_usb_phy_drvdata and set it as true for i.MX8MP. Signed-off-by: Xu Yang Reviewed-by: Frank Li --- Changes in v8: - no changes Changes in v7: - replace dev_err_probe() with dev_warn() Changes in v6: - set need_genpd_rpm_on flag for i.MX8MP and call dev_pm_genpd_rpm_always_= on() if the flag is true Changes in v5: - no changes Changes in v4: - no changes Changes in v3: - new patch --- drivers/phy/freescale/phy-fsl-imx8mq-usb.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/phy/freescale/phy-fsl-imx8mq-usb.c b/drivers/phy/frees= cale/phy-fsl-imx8mq-usb.c index ba7603a008d8..8859835541b1 100644 --- a/drivers/phy/freescale/phy-fsl-imx8mq-usb.c +++ b/drivers/phy/freescale/phy-fsl-imx8mq-usb.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -134,6 +135,7 @@ struct imx8mq_usb_phy { =20 struct imx8mq_usb_phy_drvdata { const struct phy_ops *ops; + bool need_genpd_rpm_on; }; =20 static void tca_blk_orientation_set(struct tca_blk *tca, @@ -669,6 +671,7 @@ static const struct imx8mq_usb_phy_drvdata imx8mq_usb_p= hy_data =3D { =20 static const struct imx8mq_usb_phy_drvdata imx8mp_usb_phy_data =3D { .ops =3D &imx8mp_usb_phy_ops, + .need_genpd_rpm_on =3D true, }; =20 static const struct imx8mq_usb_phy_drvdata imx95_usb_phy_data =3D { @@ -738,6 +741,12 @@ static int imx8mq_usb_phy_probe(struct platform_device= *pdev) if (!phy_data) return -EINVAL; =20 + if (phy_data->need_genpd_rpm_on) { + ret =3D dev_pm_genpd_rpm_always_on(dev, true); + if (ret && ret !=3D -EOPNOTSUPP) + dev_warn(dev, "failed to set genpd rpm always on\n"); + } + pm_runtime_set_active(dev); pm_runtime_enable(dev); =20 --=20 2.34.1